IP报头格式
Version(版本) 4比特 指明当前使用的IP版本号 4:表示IPV4
6:表示IPV6
IHL(报头长度) 4比特 保存IPV4头部中32位字的数量,包括任何选项(options),由于是4位,
所以IPV4头部被限制为最多15个32位字,用8位字换算即相当于60字节。如果没有选项(后面会解释)的加入,字段的正
常值为5,即20字节。IPV6中不存在这个字段,其头部长度固定为40字节,IPV4的两倍。
Type of Service(服务类型) 8比特 服务类型字段(TOS)共8位长的字段被分为两个部分,前六位被称为区分
服务字段(DS字段),后两位是显示拥塞通知(ECN)字段或指示位,在QS中用到。
Total Length(数据总长度) 16比特 IPV4数据报的总长度,通过这个字段和上边说过的IHL字段,我们知道数
据报的数据部分从哪里开始,以及它的长度。由于他是整个IP数据报的长度,包括首部和数据之和,单位为字节,最长65535,
总长度必须不超过最大传输单元MTU。
Idenitfication(标识符) 16比特 主机每发一个报文,加1,分片重组时会用到该字段。
Flags(标记位) 3比特 保留位,必须为0。
分片位DF(Don't Fragment):能否分片位,0表示可以分片,1表示不
能分片。
更多位:MF(More Fragment),表示是否该报文为最后一片,0表示最
后一片,1代表后面还有。
Fragment Offset(分段偏移量) 12比特 表示该 IP 包在该组分片包中位置,接收端靠此来组装还原 IP 包。
Time to Live(生存时间) 8比特 设计之初是以秒(s)为单位的,但实际以跳数为单位,建议的缺省值为 64,
TTL值最大为255 。当 IP 包进行传送时,先会对该字段赋予某个特定的值。
当 IP 包经过每一个沿途的路由器的时候,每个沿途的路由器会将 IP 包的
TTL 值减少 1 。如果 TTL 减少为 0,则该 IP 包会被丢弃。这个字段可以
防止由于路由环路而导致 IP 包在网络中不停被转发。
Protocol(协议) 8比特 识了上层所使用的协议。以下是比较常用的协议号:1 ICMP;2 IGMP;6
TCP;17 UDP;88 IGRP;89 OSPF 。
Header Checksum(报头校验和)16比特 首部检验和,只检验数据包的首部,不检验数据部分。这里不采用CRC检验码,
而采用简单的计算方法。
Source Address 32比特 源IP地址。
Destination Address 32比特 目的IP地址。
Options 可变 选项字段,用来支持排错,测量以及安全等措施,内容丰富(请参见下表)。
选项字段长度可变,从1字节到40字节不等,取决于所选项的功能。
Padding 可变 填充字段,全填0。