ip首部可选字段_IP数据包的格式详解

IP数据包在通信中是非常重要的,为了加深对IP数据包格式的理解,今天来看看IP数据包究竟包含哪些字段,这些字段起到什么作用。

来先看看IP包长啥样子的,请看下图

03eb3077a3feb5ed93cf285f1348a432.png

从上图可看到IP包的包头是20个字节。看看IP包头包含哪些信息

版本:

占4位,指IP协议版本。并且通信双方使用的版本必须一致,目前我们使用的是IPv4,IPv6也是一种版本,目前用的不多,以后会使用

首部长度:

占4位,表示的最大十进制数是15(注意:首部长度字段所表示的单位是32位子,一个32位字长是4字节),因此首部长度的最小值为5(即:0101),相当于5*4=20字节,最大值为15(即:1111),相当于15*4=60字节,切记当首部长度不是4的整数倍时,必须利用最后的填充字段填充

区分服务:

占 8位,用来获得更好的服务,一般情况下不怎么使用这个字段,只有在区分服务时使用这个字段。

总长度:

指首部和数据之和的长度,单位为字节,总长度字段为16位,因此数据报的最大长度为2^16 - 1 = 65535

标识:

占16位,IP软件在存储器中维持一个计数器,每产生一个数据包,计数器加1,并将此值赋给标识字段,当数据包长度超过网络的MTU时,就要采用分片处理,分片时,这个标识字段的值就会被复制到所有的数据报切片中。最后相同的数据报标识字段的分片就会重装成为原来的数据报。

标志:

占3位,但目前只有两位有意义

  • 标志字段中最低位记MF,MF=1表示后面还有分片的数据报,MF=0,表示这是若干数据报中的最后一个
  • 中间的一位为DF,意思是不能分片,只有当DF=0时才允许分片

片偏移:

占13位,表示相对于用户数据的起点,该片从何处开始,片偏移以8字节为偏移量,也就是说每一个分片的长度一定是8字节的整数倍。

生存时间:

占8位,生存时间常用的字段是TTL(Time To Live),表示数据报在网络中的寿命,由发出的源站点设置,目的就是防止无法交付的数据报在因特网中无限制的兜圈子,白白消耗资源。TTL字段是以跳数限制的,每经过一个路由器,在转发之前就把跳数减为1,当TTL减为0时就会丢弃这个数据报,因为数据报在因特网中最大经过的路由器是255

协议:

占8位,协议字段指数据报携带的数据是使用何种协议的,以便使目的主机的IP层知道将数据部分上交给那个处理过程。

a10c02e49920bb9058d760d5061aae24.png

首部校验和:

占16位,这个字段只检验数据报的首部,不包括数据部分。这是因为数据报没经过一次路由器,都要重新计算一下首部校验和(因为,一些字段如生存时间、标志、片偏移等可能发生变化)

源地址和目的地址:

占32位,表示发送端和接收端的IP地址

可选字段:

占25位,该字段大小长度可变,从一字节到40字节不等

填充

占7位,前面字段加起来不是4的整数倍时,该字段填充全0补齐为4字节的倍数

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值