1、版本(Version):标识了报文的IP版本号。这个4位字段的值通常为二进制0100;通常的IP版本号是4(IPV4)。新版的IP协议版本号是6(IPV6),但还没有普遍使用,有时又叫做“下一代IP”(IPng)。所有已分配的现行版本号及相关RFC见下表。除4和6(早期提出的简单internet协议,SIP,也使用版本号6)之外,所有其他版本号仅作为“文化”而存在。

 

2、报头长度(header length):字段长度为4位,正如字段名所示,它表示IP报头的长度。设计报头长度字段的原因是报文的选择项字段大小会发生变化。IP报头最小长度为20个8bit字节,最大为24个8bit字节(将可选项中启用了4个8bit字节)。报头长度字段描述了以32比特的字为单位的报头长度,其中5表示IP报头的最小长度为160比特,6表示最大。

 

3、服务类型(Type of server,TOS):字段长度为8位,它用来指定特殊的报文处理方式。服务类型字段实际上被划分为两个字段:优先权和TOS。优先权用来设置报文的优先级,这就像邮寄包裹一样,可以是平邮、隔日送到或两日内送到。TOS允许按照吞吐量、时延、可靠性和费用方式选择传输服务。虽然TOS字段通常不用(所有位被设置为0),但是在开发式最短优先协议(OSPF)的早期规范中还是提倡TOS路由选择的。在服务质量(QOS)应用中有时使用优先权位。

 

4、总长度(Total length):字段长度为16位,它是指整个IP报文的长度,以8bit字节为单位,其中包括IP报头。接收者用IP报文总长度减去IP报头长度,就可以确定报文数据有效载荷的大小。16位长的二进制数用十进制表示最大可以为65535,所以IP报文的最大长度是65535。

 

5、标识符(Identifier):字段长度为16位,通常与标记字段和分片偏移字段一起用于IP报文的分片。如果报文原始长度超过报文所要经过的数据链路的最大传输单元(MTU),那么必须将报文分片为更小的报文。例如,一个大小为5000字节(byte)的报文在穿过互联网时,如果遇到一条MTU为1500字节的数据链路,即数据帧最多容纳大小为1500字节的报文。那么路由器需要在数据成帧之前将报文分片成多个报文,其中每个报文长度不得超过1500个8bit字节。然后路由器在每片报文的标识字段上打上相同的标记,以便接收设备可以识别出属于同一个报文的分片。

 

6、标记字段(Flag):长度为3位,其中第1位没有使用。第2位是不分片位(DF)。当DF位被设置为1时,表示路由器不能对报文进行分片处理。如果报文由于不能被分片而未能被转发,那么路由器将丢弃该报文并向源点发送错误信息。这一功能可以再互连网络上用于测试MTU值。在CISCO的路由器上,使用扩展ping工具可以对DF进行设置。

第3位表示还有后继分片(MF),当路由器对报文进行分片时,除了最后一个分片的MF位设置为0外,其他所有分片的MF位均设置为1,以便接收者直到收到MF位为0的分片为止。

 

7、分片偏移(Fragment Offset):字段长度为13位,以8个bit字节为单位,用于指明分片起始点相对于报头起始点的偏移量。由于分片到达时可能错序,所以分片偏移字段可以使接受者按照正确的顺序重组报文。

注意:如果一个分片在传输中丢失,那么必须在网络中同一点对整个报文重新分片并重新发送。因此,容易发生故障的数据链路会造成时延不成比例。另外,如果由于网络拥塞而造成分片丢失,那么重传整组分片会进一步加重网络拥塞。

 

8、生存时间(Time To Live,TTL):字段长度为8位,在最初创建报文时TTL即被设置为某个特定值。当报文逐个沿路由器被传输时,每个路由器都会降低TTL的数值。当TTL值减为0时,路由器将会丢弃该报文并向源点发送错误信息。这个方法可以防止报文在互联网上无休止地被传送。

按照最初构想,TTL值以s(秒)为单位。如果报文在路由器上被延迟的时间超过1S,路由器将会相应地调整TTL值。然而,这种方法实施起来十分困难,因而也很少被支持。大部分路由器不管实际时延是多少,统统将TTL值减1,所以TTL实际上时表示跳数。虽然TTL的通常值为15和32,但是建议的缺省值是64。

一些追踪工具,如cisco的trace命令,使用TTL字段。如果路由器被告知需要追踪到达主机地址为10.11.12.13的路径,路由器将发送3个报文,其中TTL值被设置为1;第1个路由器将会把TTL值减少到0,而且在丢弃报文的同时向源点发送错误信息。源点路由器通过阅读错误信息从而得知发送错误信息的路由器即为路径上的第1个路由器。再一次被路由器发送的3个报文的TTL值被设置为2。第1个路由器将TTL值减1,第2个路由器将TTL值再减1后为0,此时源点路由器将会接收到第2个路由器发送来的错误信息。第3次发送的报文TTL值为3,依次类推,直到目的地被发现。最终,沿途所有的路由器都会被标识出来。

 

9、协议(Protocol):字段长度为8位,它给出了主机到主机层或传输层协议的“地址”或协议号,协议字段指定了报文中信息的类型。当前已分配了100多个不同的协议号。

 

10、报头校验和(Header Checksum):是针对IP报头的纠错字段。校验和的计算不适用被封装的数据内容,UDP、TCP和ICMP都有各自的校验和。报头校验和字段包含一个16位二进制补码和,这是由报文发送者计算得到的。接收者将连同原始校验和重新进行16位二进制补码和计算。如果报文传输中没有发生错误,那么结果应该16位全部为1。回忆前面所述内容,由于每个路由器都会降低报文的TTL值,所以每个路由器都必须重新计算校验和。

 

11、源地址和目的地址(Source and Destination Address):字段长度为32位,分别表示发送报文源点和目的地的IP地址。

 

12、可选项

 

13、填充(Padding):该字段通过在选择字段后面添加0来补足32位,这样保证报头长度是32比特的倍数。

 

原文出处:http://blog.sina.com.cn/s/blog_43eb83b90102dtw2.html