IP报文格式详解

在这里插入图片描述
4位版本号:指IP协议的版本。通信双方使用的IP协议版本必须一致,对于IPv4来说,就是4。

4位首部长度:可表示的最大十进制数是15,注意首部长度字段所表示数的单位是32位字(也就是4字节),所以IP头部最大长度是60字节(最小20字节)。

8位区分服务:由3位优先权字段(已弃用),4位TOS字段和1位保留字段(必须置为0)组成。4位TOS分别表示:最小延迟、最大吞吐量、最高可靠性、最小成本。这四者相互冲突,只能选一个。对于ssh/telnet 这样的应用程序,最小延迟比较重要;对于ftp这样的程序,最大吞吐量比较重要。

16位总长度: IP数据报(首部+数据)整体占多少字节。该字段为16位,所以数据报最大长度为 216−1=65535216−1=65535字节。

16位标识:唯一的标识主机发送的报文。IP软件在储存器中维护一个计数器,每产生一个数据报,计数器就+1,并将此值赋值给标识字段。当数据报长度超过网络的MTU而必须分片时,这个标识字段的值就被复制到所有的数据报片的标识字段中。

3位标志字段:第一位保留(现在不用,但说不定以后要用到);第二位DF,意思是“不能分片”,只有当DF=0时,才允许分片;第三位(最低位)MF,MF=1表示后面还有分片的数据报,MF=0表示这是若干数据报片中的最后一个。

13位片偏移:较长的报文在分片之后,某片在原报文中的相对位置。片偏移以8字节为单位,这就是说除了最后一个分片,每个分片的长度是8字节的整数倍。

8位生存时间(Time To Live, TTL):数据报到达目的地的最大报文跳数,一般是64。每经过一个路由,TTL 就会 -1,一直减到0还没有到达,那就丢弃了。这个字段主要是防止出现路由循环。

8位协议:表示上层协议的类型。

16位首部检验和:用来鉴别头部是否损坏(不检验数据部分),并不是使用CRC进行校验。

32位源地址和32位目标地址:表示发送端和接收端的IP地址。

可变字段:就是一个选项长度,大小从1字节到40字节不等。

我们用一个具体的ip报文来进行分析。该报文是Etheral报文分析软件抓的包。

示例:
在这里插入图片描述
这是是ip报文的第一行,Version是版本,Header length是头长度,Differentiated Services Field就是区分服务,Total Lehgth为总长度。
在这里插入图片描述
其中,45 00 05 dc 为上面的四个信息的传输过程中的值,这里面一个数代表4位二进制数。其中,4和5分别表示版本,头长度,00表示TOS为0。05,
在这里插入图片描述
这是ip报文的第二行,Identification 位标识,FLags为标志,在这里可以看到MF为 set 标识还有分片,DF为not set可以分片。片偏移为0.标识这是初始的ip片
在这里插入图片描述
90 ad 20 00 为上面的标识字段,90 ad 标识该ip的标识, 2转换为二进制为0010,其中前三位001位标志,后面的0,是13位的标识的一部分。
在这里插入图片描述
这是 TTL 协议 检验和这几部分。可以看到TTL为12,上层协议为ICMP,头部检验和为true.
在这里插入图片描述
80 01 ef 05为相应字段的值80位生存时间转换成10进制为128. 01为协议。ef 05为首部检验和。
在这里插入图片描述
上面是源和目的IP,

下面是相应的编码
在这里插入图片描述
c0 a8 0a 0e 为源ip

c0 a8 0a of 为目的ip

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值