IPV4包头概述

IP(v4) Packet Header(IP包头)[ 以下无特殊说明时IP均表示IPV4,也是我们当前大部分人在使用的。]

IPV4包头概述



下面,我来结合通过抓包工具所截取到的IP包头来对它的各个字段作说明:

IPV4包头概述



Version:标识数据包所归属的IP版本号。这个4 bit的字段当被设置为0100时表示IPV4(可以看到我抓包中version:4这个内容),设置为0110时表示IPV6(IPV6将在我以后的文章中讲到)。

 

Header Length:标识IPV4数据包头部长度。这个字段值的会根据后面Options字段变化而变化。IP数据包包头最小长度为20字节(在抓到的数据包中可以看到Header length:20 bytes这个内容),而最大可以60个字节。但由于IPV4的Options段用得比较少,我们看到的大部分IP数据包都为20字节。

 

Type of Service (TOS)或DiffServ:服务类型或差分服务。该字段长度为8 bit,可以用来标识特殊数据包的处理方式。出现两个定义的主要原因在于,早期的TOS只使用了前3位来标识优先级,最多表示8个不同的优先级,实施不灵活;于是后来就重新定义为DSCP(DiffServ Code Point,区分服务代码点),利用ToS的前6位来定义服务类别。因此最多可以定义64种不同的服务类别。由于这个字段通常是与QoS技术结合使用,因此我们在抓到的数据包中看到这个字段被全部置0,即未使用。

 

Total Length:总长度,表示IP数据包的总长度,包括IP包头部分。此字段长度为16 bit,因此用十进制表示最大为65535,也就是说IP数据包最大长度为65535字节。并且接收方用这个字段的值减IP头部长度的字段,就可得出数据包的有效载荷 (抓包中Total Length :75,再根据前面提到的Header length:20 bytes,我们可得出这个IP包的有效载荷为75-20=55bytes) 。

 

Identifier:标识符,长度为16 bit。一般需与后面的Flag及Fragment Offset字段配合使用,用来将同一个数据包的分片数据包打上同样的标记,以供接收者识别。(抓包中的Identification:0x0f49,表示为数据包打的标记。)

 

Flags:标记字段,长度为3 bit。第一位未使用(抓包中Reserved bit:not set);第二位为DF位(抓包中Don’t fragment:Not set,表示未设置),当此位被设置(1)时,表示节点不对数据进行分片操作。由此带来的坏处是,当节点遇到超过它自身的MTU(最大传输单元)时,将无法传递数据包;第三位为MF位(抓包中More fragments:Not set,表示未设置),当此位被置位(1)时,表示后面还有被分片的数据包,直到MF=0才表示为被分片的最后一个数据包。由此可以方便接收者知道何时为分片数据包传输完毕。

 

Fragment Offset:分段偏移位,字段长度为13 bit。指明被分片的数据包相对于数据包起始位置,由此可使接收者正确的重组被分片的数据包 (抓包中此字段被设置为0) 。

 

Time to Live (TTL):生存时间,字段长度为8位。在数据包被创建时,该字段被设置为某个特定值(抓包中的TTL被设置为128)。每经过一个路由器,该值会被减1,当TTL值被减到0时,该数据包会被丢弃!其中一大好处是当一个IP数据包在形成环路的链路上传输时,它的TTL值会被减为0,由此而避免了数据包在网络中无限期的传输下去。我们常用的Trace命令就是利用了这个字段。

 

Protocol:协议字段,长度为8位。它指出了上层传输的协议号(抓包中Protocol字段被设置为UDP)。

 

Header Checksum:头部校验和,字段长度为16 bit。可以对于IP报头纠错,它不包括被封装的数据内容。由于这个字段与上层协议中这个功能有冗余之嫌,故在IPV6中取消了此字段。

 

Source and Destination Addresses:源、目标地址字段,长度为32 bit。标识发送者的源及目标IP地址(抓包中可以看出它们相对应的值:Source:145.254.160.237 Destination:145.253.2.203。)

 

Options:可选项字段,内容如其名,可选且长度可变,但最长为20字节。此字段在实际中用得并不多,也可以看出在我抓取的数据包中并没有包含此字段。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值