1.版本(Version):
由四位bit构成,表示IP的版本信息,如IPv4的版本号为4
2.首部长度:
表示IP首部的字节长度,如果没有可选字段,则首部长度为20字节
3.区分服务:
表示服务质量,如延时,吞吐量等
4.总长度(Total Length):
表示IP首部与数据部分总的字节数,该段长16比特,所以IP包的最大长度为65535字节(2^16-1)。虽然不同数据链路的MTU不同,但是IP协议屏蔽了这些区别,通过自己实现的数据分片功能,从上层的角度来看,IP协议总是能够以65535为最大包长进行传输。
5.标识(ID:Identification):
用于分片重组。属于同一个分片的帧的ID相同。但即使ID相同,如果目标地址、源地址、上层协议中有任何一个不同,都被认为不属于同一个分片。
6.标志(Flags):
由于分片重组,由三个比特构成。
第一个比特未使用,目前必须是0。
第二个比特表示是否进行分片,0表示可以分片,1表示不能分片。在路径MTU发现技术中就用到了这个位。
第三个比特表示在分片时,是否表示最后一个包。1表示不是最后一个包,0表示分配中最后一个包。
7.片偏移(FO: Fragment Offset):
由13比特组成,表示被分片的段相对于原始数据的位置。它可以表示8192(2^13)个位置,单位为8字节,所以最大可以表示8 x 8192 = 65536字节的偏移量。
8.生存时间(TTL: Time To Live):
表示包可以经过多少个路由器的中转。每经过一个路由器,TTL减1。这样可以避免前文提到的无限传递包的问题。
9.协议:
表示IP协议的上层协议使用了哪个协议。比如TCP协议的编号为6,UDP编号为17.
10.首部校验和:
用于检查IP首部是否损坏
11.可选项:
仅在试验或诊断时用,可以没有。如果有,需要配合填充(Padding)占满32比特。