IP数据报的格式以及分片细节

IPv4网络数据报格式

  • 版本号(4bit):规定了数据报的IP协议版本。通过查看版本号,路由器能够确定如何解释IP数据报的剩余部分。
  • 首部长度(4bit): 因为一个IPv4数据报可包含一些可变数量的选项(这写选项包括在IPV4数据报首部中),故需要用这4bit来确定IP数据报中载荷(例如在这个数据报中被封装的运输层文段)实际开始的地方。
  • 服务类型TQS(区分服务)8bit:使不同类型的IP数据包能相互区别开来
  • 总长度(16bit):IP数据报的总长度(首部+数据载荷),最大长度为65535字节。
  • 标识、标志、片位移:与IP分片有关。IPV6不允许分片
    • 标识:16bit,属于同一个数据报的各个分片数据报应该具有相同的标识,IP软件维持一个计数器,每产生一个数据报,计时器值加1,并将此值赋给标识字段。
    • 标志字段:3bit
      • DF位:1表示不允许分片,0表示允许分片
      • MF位:1表示后面还有分片,0表示是最后一个分片,后面没有分片
      • 保留位:必须设置为0
    • 片偏移:13bit,指出分片数据报的数据载荷部分偏移其在原数据报的位置有多少单位(8个字节为单位)
  • 生存时间(TTL):用来确保数据报不会永远在网络中循环。每当一台路由器处理数据报时,该字段的值减一。如果TTL变为了0,则该数据报必须丢弃。
  • 协议:用于指示IP数据报的数据部分应交给哪个特定的运输层协议。该字段通常仅当一个IP数据报到达其最终目的地时才会有用--例如:值为6表明数据部分交给TCP,数值为17表明交给UDP
  • 首部校验和:用于帮助路由器检测收到的IP数据报中的比特错误。
  • 源IP和目的IP:用来表示起始和目的地
  • 可选字段(1-40个byte):允许IP首部被扩展,很少被使用
  • 填充字段:确保IP数据报的长度为4的整数倍。

IPv4数据报分片

因为并不是所有的链路层协议都能承载相同长度的网络层分组。有的协议可以承载大数据报,而有的协议只能承载小分组(MTU,最大传送单元)。

方法:可以将IP数据报中的数据分片成两个或更多个较小的IP数据报,用单独的链路层帧封装这些较小的IP数据报,然后通过输出链路发送这些帧,这些较小的数据报都称为片。

当一台目的主机从相同源收到一系列数据报时,它需要确定这些数据报中的某些片是否是一些原来较大的数据报的片。如果某些数据报是这些片的话,则它必须进一步确定何时收到了最后一片,并且如何将这些接收到的片以形成初始的数据报。

方法:当生成一个数据报时,发送主机在为该数据报设置源和目的地址的同时贴上标签号。发送主机通常会将它发送的每个数据报的标识号+1。当某路由器需要对一个数据报分片时,形成的每个片具有初始数据报的源地址、目的地址和标识号。为了让目的主机绝对地相信它已收到了初始数据报的最后一片,最后一片的标志比特被设为0。另外,为了让目的主机确定是否丢失了一个片(且能按正确的顺序重新组成片,使用偏移字段指定该片应放在初始IP数据报的哪个位置)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值