我们首先了解一下 IP 分组的格式,对 IP 协议的功能有一个初步的认识。IP分组的完整格式如图 一所示。在 TCP/ IP 标准中,各种数 据格式 通 常以 32 比特(即 4 字节)为单位来描述。从图中可以看出,每个 IP 分组由首部和数据两部分组成。首部的前一部分是固定长度,共 20 字节,是所 有 IP 分组所必须具有的。在首部的固定部分的后面是一些可选字段,其 长度是可变的。下面具体介绍首部各字段的意义。
图一 IP 分组格式
1 ) 版本指 IP 协议的版本。通信双方使用的 IP 协议的版本必须一致。目前有 IPv4 和IPv6 两种版本,IPv4 为目前广泛使用的版本,对于新兴的 1Pv6 我们将在 以后中进行讨论。
2) 首部长度
由于首部的长度是不固定的,因 此 设 立此字段以指明首部的长度。需要注意的是,该字段 以 32 位 字 ( 4 字节)为单位。该字段的最小值为 5 , 此时首部大小为 20 字节,不包含任何的可选项。该字段的最大值为 ( 24 - 1 ) x 4 = 60 字节,因此选项字段最多为 40 字节。然而,对 于 某 些 选 项 ,比 如 记 录一个分组沿途路径的选项,这个大小往往是不够的。这样做的主要目的是希望用户尽量 减小开销。此外,当IP分组的首部长度不是 4 字节的整数倍时,必 须 利 用 最后的填充字段加以填充。
3) ) 区分服务
该字段在旧标准中称为“服务类型" (Type of Service) , 1998 年 IETF 将其更名为"区分服务" ( Diffe rentiated Services ) 。 但无论是改变之前还是改变之后,其 目 的均 为区分不同的服务种类。例如,对于网络视频传输,速度比准确性更为重要,而对于文件传输,准确性比速度更加重要。
该 8 位字段目前只使用了6 位(从左至右)。早期的“服务类型” 包含了一个 3位的 Precedence 域和 3 个标志 D、T、R。Precedence 域是一个从O ( 普通级别)至7(网络控制分组)的优先级。而通过 3 个标志位,源主机可以指定 它最关心的是什么,即时延( Delay 汃吞吐量( Throughput) 和可靠性( Reliability ) 。理论上,路由器可以根据该字段所设定的值在多条路径中做出路由选择,但在实际应用中,路由器通 常完全忽略该字段。最终 IETF 承认了失败,并且将该字段加以微调,以适应区分服务的需要。
4) 总长度
总长度为首部长度和数据长度之和,以字节为单位。该字段长度为 16 位,因此 IP 分组的最大长度为21 6 - I = 65535 字节。
5) ) 标识
我们知道 ,当 IP 分组的长度大于数 据链路层 MTU ( 最大传输单元 ,以太网为1500 字节)的要求时,需要将 IP 分组分割成多个小的报片,以 便数据链路层进行数据帧封装。然而,IP服务是无连接服务 ,不保证分组的按序接收,这样就会在将报片恢复成分组时产生混乱。为解决这一问题,在将 IP 分组分片时,属于同一个分组的所有报片被写入相同的标识值,使目的主机可以确定一个新到达的报片属于哪一个 IP 分组。