IP数据报的格式如图所示。普通的IP首部长为20个字节,除非含有选项字段。
分析图中的首部。最高位在左边,记为0bit;最低位在右边,记为31 bit。
1)目前的协议版本号是4,因此IP有时也称作IPv4
2)首部长度指的是首部占32 bit字的数目,包括任何选项。由于它是一个4比特字段,因此首部最长为60个字节。
3)服务类型(TOS)字段包括一个3bit的优先权子字段(现在已被忽略),4bit的TOS子字段和1bit未用位但必须置0。4bit的TO S分别代表:最小时延、最大吞吐量、最高可靠性和最小费用。4bit中只能置其中1bit。如果所有4bit均为0,那么就意味着是一般服务。
下图列出了对不同应用建议的TO S值。
4)总长度字段是指整个IP数据报的长度,以字节为单位。利用首部长度字段和总长度字段,就可以知道IP数据报中数据内容的起始位置和长度。由于该字段长16比特,所以IP数据报最长可达65535字节,但是一般不会这么长。
5)标识字段唯一地标识主机发送的每一份数据报。通常每发送一份报文它的值就会加1。
6)TTL(time-to-live)生存时间字段设置了数据报可以经过的最多路由器数。它指定了数据报的生存时间。TTL的初始值由源主机设置(通常为32或64),一旦经过一个处理它的路由器,它的值就减去1。当该字段的值为0时,数据报就被丢弃,并发送ICMP报文通知源主机。
7)协议字段 表达了它如何被IP用来对数据报进行分用。根据它可以识别是哪个协议向IP传送数据。
8)首部检验和字段是根据IP首部计算的检验和码。它不对首部后面的数据进行计算。ICMP、IGMP、UDP和TCP在它们各自的首部中均含有同时覆盖首部和数据检验和码。
9)每一份IP数据报都包含源IP地址和目的IP地址。
10)
最后一个字段是任选项,是数据报中的一个可变长的可选信息。目前,这些任选项定义如下:
这些选项很少被使用,并非所有的主机和路由器都支持这些选项。
选项字段一直都是以32 bit作为界限,在必要的时候插入值为0的填充字节。这样就保证IP首部始终是32 bit的整数倍(这是首部长度字段所要求的)。