网络层-3、IP数据报结构和IP分片

参考哈工大公开课。


Internet网络层包括四个部分:路由协议、转发表、IP协议、ICMP协议。

1、路由协议:寻找转发路径;2、转发表:存储转发路径;3、IP协议:规定寻址规约,数据报格式、分组处理规约;4、ICMP协议:差错报告。本文重点讨论IP数据报的格式。

图一:Internet网络层

 

IP数据报格式:

IP数据报包括首部和数据两个部分,首部包括20字节的固定部分和其他(长度不确定)的可变部分,需要注意的是可变部分的字节数一定是4的倍数,如果不是这需要填充。

图二:IP数据报格式

 

版本号:占4位,IP协议版本号;例如:4àIPv4,6àIPv5.

首部长度:占4位,IP数据报的首部长度 :20个固定部分+可变长度字节数,以4字节为单位

服务类型:占5位,指望期待那种类型的服务,只有在网络提供分区服务的时候才使用。

总长度:占16位,记录首部+数据总长度,那么理论上一个IP数据报的长度可以是2^16个bit,但是由于传输链路的限制,数据报不可能这么大。

标识、标志位、偏移量在后面的IP分片中介绍。

生存时间(TTL):占8位,表示IP 数据在链路中最多被转发的次数,每转发一次就减1,当TTL为0 还没有到达目标端系统时,直接将该数据报丢弃。

协议:占8位,指示IP分组分装的是哪个协议的数据包。比如:TCP,UDP。

首部检验和:与UDP协议校验类似的校验和,对数据报首部进行校验

源IP地址和目的IP地址:占32位,就是源IP地址和目的IP地址。

选项字段:1-40B之间,携带安全,源选路径,时间戳等内容,很少使用。

填充:补全选项字段,确保选项字段字节数+填充字节数是4的倍数。

 

 

IP分片:

在网络链路中存在最大传输单元(MTU)- 它是数据链路曾数据分装的上限,且不同链路的MTU不同。那么就存在一个问题就是当大的MTU链路发送分片给小的MTU链路的时候小的MTU链路无法发送分片,那么就需要把分片进行拆分发送,最后在端系统进行重组,注意在发送过程中不会发生重组,避免再次被拆分。

图三:拆分发送过程

 

为了能够在端系统把分组正确的组合起来,IP协议的头部中的标识、标志位、偏移量信息为分组的正确到达和重组提供了依据。

标识(ID):占16位,用来标识一个IP分组,IP协议利用一个计数器,每产生一个IP分组计算器+1,作为该IP分组的标识。

标志位:占3位,主要有用的是DF(Don’tFragment), MF(More Fragment)两个位,DF=1:禁止分片;DF=0:允许分片。MF=1,非最后一片;MF=0,最后一片。如果DF=1并且MTU1> MTU2,那么路由器会直接丢弃这个分片,并向源主机发送相关信息。

片偏移:占13位,表示一个IP分组分片封装源IP分组数据的相对偏移量且片偏移量字段以8字节为单位。

 

那么当一个路由器接收到大于自己MTU的分组,因为可封装的数据应该是8的倍数,所以路由器首先会把数据按照MTU-20来拆分(除最后一个分片),然后加上TCP头部信息且TCP头部信息的总长度、MF位,片偏移需要修改。

 

例如:路由器接收到4000B的数据报,输出电路为1500B,DF=0。那么就需要把数据分为3片,前两片的数据长度是1500B(含20B头部)且MF=1,最后一片长度就是1040B且MF=0;第一片的片偏移是0,第2片的片偏移是185(185*8=1480),第3片片偏移量就是370。

图四:路由器分片示例

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值