IPv4的数据报的首部格式与TCP首部格式的比较,清晰明了一遍懂

IPv4的数据报的首部格式

一、IP数据报的首部格式图
注意和TCP数据报首部格式的对比,这样也好记忆
  • 两者相同的地方是:
    • 固定部分都是20字节,可变部分都是最大40字节
    • IPv4头部中的首部长度字段和TCP头部中的数据偏移字段表达的含义一样,都是说该头部的长度,且单位都是4字节
    • 都需要进行填充,将头部长度补齐为4的倍数个字节

二、具体的IPv4数据报头部格式详解
  1. 版本(4bit):指明了IP协议的版本,IPv4还是IPv6;通信双方的版本要一致

  2. 首部长度(4bit):指明了IP数据报头部的长度,以4字节为单位(和TCP数据报中的数据偏移字段类似)

  3. 可选字段(1~40字节):可增加一些拓展功能,但很少使用,该字段的拓展直接影响了首部长度字段

  4. 填充字段:IP数据报头部的长度要求是4的整数倍,因此需要该字段填充补0,使头部满足要求

  5. 区分服务(1字节)一般不使用,用于提供不同等级的服务质量

  6. 总长度(2字节):指明了整个IP数据报的长度,以字节为单位,首部长度换算成字节后,总长度 - 首部长度 = 数据载荷的长度

  7. 标识、标志、片偏移:这三个字段共同说明了IP的分片情况

    • 标识:16bit,就是一个数字;属于同一个IP数据报的子分片有相同的标识;IP协议栈维持一个计数器,每产生一个数据报,就将标识值加1,然后赋值给标识字段
    • 标志:3bit,分别是DFMF保留位
      1. DF:DF=1表示不允许分片,DF=0表示允许分片
      2. MF:MF=1表示后边还有分片,MF=0表示后边没有分片,这就是最后一个分片
      3. 保留位:暂不使用,为0
    • 片偏移:13bit,以8字节为单位,这也就要求:如果要分片,只要不是最后一个IP片,其数据载荷长度都必须是8的倍数;该字段指明了分片数据报载荷部分首字节相对于其原始数据报偏移了多少字节,如第一个IP分片的数据报为原始数据载荷的0~800,那该IP分片的片偏移为0/8=0;第二个分片的片偏移就是800/8=100;
  1. 生存时间TTL(Time To Live)(8bit):指明了IP数据报的生存时间还有多少

    • 当前是以跳数为单位,路由器转发IP数据报时,先将该字段减1,若不为0则转发;若为0,则表示其生存时间无了,也就是该数据包失效了,就不转发
    • 主要是为了避免发生路由环路时,IP数据报在环路内永久兜圈
  2. 协议字段(8bit):指明了IP数据包的数据载荷部分包装的是何种协议数据单元PDU,该字段是网络层与运输层之间的接口,通过该字段的标识,可以将IP数据报正确的交给运输层的某个协议模块处理

    ICMPIGMPUDPTCPIPv6OSPF
    126174189
  3. 首部检验和(16bit):用于在IP报的转发、发送过程中校验IP头部。因为IP头部是动态变化的,所以该校验和也是动态变化的。这一点与TCP的校验和不同(TCP校验的是头部和数据载荷也即整个TCP报文段,且转发途中不会动态变化)

  4. 源IP地址和目的IP地址(各占32bit,4字节):用于标识发送方的IP地址接收方的IP地址,可以说是最重要的字段存在了


如果本文对您有用,可以点赞、收藏本文哦,下次用到时就好找多了
如果能关注作者就太好了,作者将持续学习,持续输出,持续分享!谢谢鼓励!

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

咖啡与乌龙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值