IP包首部格式
http://selfishman.bokee.com/2316650.html
IPv4首部一般是20字节长。在以太网帧中,IPv4包首部紧跟着以太网帧首部,同时以太网帧首部中的协议类型值设置为080016。 IPv4提供不同,大部分是很少用的选项,使得IPv4包首部最长可扩展到60字节(总是4个字节4个字节的扩展)
0 | 4 | 8 | 12 | 16 | 19 | 24 | 31 |
版本 | 首部长度 | 服务类型 | 长度 | ||||
认证 | 标志 | 段偏移量 | |||||
TTL | 协议 | 校验和 | |||||
源IP地址 | |||||||
目的IP地址 | |||||||
选项 ... |
IP包头字段说明
版本:4位,指定IP协议的版本号。
包头长度(IHL):4位,IP协议包头的长度,指明IPv4协议包头长度的字节数包含多少个32位。由于IPv4的包头可能包含可变数量的可选项,所以这个字段可以用来确定IPv4数据报中数据部分的偏移位置。IPv4包头的最小长度是20个字节,因此IHL这个字段的最小值用十进制表示就是5 (5x4 = 20字节)。就是说,它表示的是包头的总字节数是4字节的倍数。
服务类型:定义IP协议包的处理方法,它包含如下子字段
-
- 过程字段:3位,设置了数据包的重要性,取值越大数据越重要,取值范围为:0(正常)~ 7(网络控制)
-
- 延迟字段:1位,取值:0(正常)、1(期特低的延迟)
-
- 流量字段:1位,取值:0(正常)、1(期特高的流量)
-
- 可靠性字段:1位,取值:0(正常)、1(期特高的可靠性)
-
- 成本字段:1位,取值:0(正常)、1(期特最小成本)
-
- 未使用:1位
长度:IP包的总长
认证:
标志:是一个3位的控制字段,包含:
-
- 保留位:1位
-
- 不分段位:1位,取值:0(允许数据报分段)、1(数据报不能分段)
-
- 更多段位:1位,取值:0(数据包后面没有包,该包为最后的包)、1(数据包后面有更多的包)
段偏移量:当数据分组时,它和更多段位(MF, More fragments)进行连接,帮助目的主机将分段的包组合。
TTL:表示数据包在网络上生存多久,每通过一个路由器该值减一,为0时将被路由器丢弃。
协议:8位,这个字段定义了IP数据报的数据部分使用的协议类型。常用的协议及其十进制数值包括ICMP(1)、TCP(6)、UDP(17)。
校验和:16位,是IPv4数据报包头的校验和。
源IP地址:
目的IP地址: