IP数据报格式

来源:互联网 发布:网络炒股软件 编辑:程序博客网 时间:2024/05/01 12:54

版本字段为4位,包含该数据报的IP协议的版本信息,当前的IP协议版本是4,通常称为IPv4。下一个版本是6,称为IPv6。

首部长度为4位,用于表示IP数据报首部的长度,每个单位为32位(4个八位组)。可见IP首部的长度必须是32位的整数倍。

服务类型为8位,有时也称为TOS(Type Of Service),字段的格式为如下图所示:

前3位为优先级,用于表示数据报的重要程度,优先级取值从0(普通优先级)到7(网络控制高优先级)。

D、T和R位表示本数据报希望的传输类型。值为1时,D表示低时延(Delay)需求,T表示高吞吐量(Throughput)要求,R代表高可靠性(Reliability)要求。这些位的设置会作为路由算法选择路由的一个参考。但是我们也会发现,这些设置可能存在相互的矛盾,比如用户将D、T、R均置1,而候选的两条路线中,一条吞吐量高,但是不可靠,另一条吞吐量低,但是可靠。

于是IETF在20世纪90年代中期重新定义了服务类型8位的含义,适应区分服务DS(Differentiated Service)。如下图所示:

前6位组成码点(Code Point),称为DSCP,码点的前3位和后3位分别定义。当后3位为全0时,前3位对应8种主要服务类,其中数字越高的服务类获得的服务越优待。显然这种方式保持了与TOS方式的兼容性。

同时,码点值被分为3组,通过不同的特征位进行标识。其中1组码点为XXXXX0,由IETF分配;2组码点位XXXX11,用于本地使用或用于实验性目的;3组码点位XXXX01,用于目前的本地应用或实验性目的。其中X代表0或1。

总之,服务类型规范作为路由算法的一个提示,帮助它根据本地策略和对路径上可用的硬件技术的知识,选择不同的路径。但是互联网不保证提供某种特定类型的服务。

总长度 总长度指首部和数据之和的长度,单位为字节。总长度字段为16位,因此数据报的最大长度为216-1=65535字节。但是,这并不意味着数据报通常都是按最大长度来组织。这里还需要考虑一个限制条件,这就是最大传送单元MTU(Maximum Transfer Unit)。MTU根据数据链路层帧的最大长度限制以及可能的网络中其他因素限制。例如,目前最广泛应用的以太网中,MTU通常按照以太网帧的最大长度设置,即1518字节。这样,在构造IP数据报时,其总长度应该不超过1518字节。

标识 占16位。IP层维持一个计数器,每产生一个数据报,计数器就加1,并将此值赋给标识字段。但这个“标识”并不是序号,因为IP是无连接服务,数据报不存在按序接收的问题。当数据报在传输过程中由于网络传输限制需要分片时,这个标识字段的值就被复制到所有的数据报的标识字段中。具有相同标识值的数据报分片最后在目的站重装成初始的数据报。可见,标识是保证数据报分片后进行正确重装的重要参照。

标志和片偏移字段在后面的2.4.3数据报分片部分介绍。

寿命TTL(Time to Live),也称生存时间,设置了该数据报在互联网中允许存在的时间,以秒为单位。当数据报经过主机或路由器时,它们将对数据报进行处理,根据时间的消逝,递减TTL的值。一旦TTL递减至0,路由器就丢弃该数据报,并向源主机发送一个出错信息。

由于计算数据报延迟的秒处理复杂,而且不准确。因此现在的路由器实际是按经过路由器的数量来计算,这种计算方法也称为跳数(hop)。

协议类型用来指定数据报的数据区中包含报文所采用的高层协议。

首部校验和用来保证首部数据的完整性。其计算方法是把首部看作一个16位的整数序列,对每个整数分别进行二进制反码相加,再对计算的结果求反码。计算时,首部校验和取值为0。IP数据报没有对数据区计算校验和,其目的是减少路由器处理的开销。数据区的完整性通过高层协议来校验。

源IP地址目的IP地址分别是发送主机的IP地址和接收主机的IP地址。数据报可能经过许多中间路由器,但是这两个字段始终不变。

填充字段取决于IP选项的长度,其目的是保证数据报首部为32位的整数倍。填充时,填充内容为全0。

原创粉丝点击