2.4.4 IP数据报选项

IP数据报首部可能包含IP选项字段。选项字段的用途主要是网络测试或调试。尽管是选项字段,但并不意味着在实现TCP/IP协议时可以不实现对选项字段的处理。

选项字段的长度是可变的,其长度取决于具体的选项。有的选项只有一个八位组,而更多的选项长度为多个八位组。

选项字段的第一个八位组是识别不同选项的关键。这个八位组被称为选项码(Option Code),其后根据选项的不同,可以有0个或者若干个八位组。下面我们详细介绍选项码的结构。

选项码的0比特为复制(copy)标志,用于控制路由器在分片过程中对选项字段的处理方式。若该标志置“1”,表示选项被复制到所有的分片中;若该标志置“0”,则仅把该选项复制到第一分片中。

选项码的第1和第2比特为选项类(Option Class),指明选项的类别。选项类的具体分配为:

选项码余下的5比特为选项号(Option Number),用来表示选项类中的具体选项。IP数据报定义的选项有:

下面我们讨论具体选项的用途。

记录路由选项

选项目的:用来监视和控制互联网路由器如何路由数据报。

工作原理:源主机创建一个IP地址的空表,由数据报经过的路由器将其IP地址添加到这个表中。

格式说明:选项类0,选项代码7。长度指明选项在数据报中的以八位组为单位的总长度,其中包括前3个八位组。指针指明在选项中下一个可存放地址的位置。初始值为4,即指针指向第一个IP地址的开始,每添加一个IP地址,指针值加4。

数据报到达目的主机时,由目的主机提取选项中的IP地址表进行处理。这意味着使用记录路由选项时,源主机和目的主机必须同意协作。

源站路由选项

选项目的:限定IP数据报传输的路径。

工作原理:由源主机指定一条通过互联网到达目的主机的路径。该路径通过IP地址表指定。

用途:通常用于测试网络的性能。

源站路由支持两种形式:

严格源站路由规定IP数据报严格经过制定的地址到达目的主机。如果路由器无法遵循严格源站路由,则报告错误。

不严格源站路由要求IP数据报必须沿着IP地址表中的地址序列传输,但是允许表中相继两个地址之间经过其它的IP地址。

以下动画反映了严格源站路由和不严格源站路由的区别:

时间戳选项

选项目的:测量IP数据报路由过程中的经过每个路由器的时间戳,便于对路由的性能进行分析。

工作原理:IP数据报经过路由器时,路由器记录一个时间戳,用格林尼治标准时间午夜开始的毫秒数表示。如果得不到标准时间,则路由器将时间戳字段的最高位设置为“1”,时间戳采用本地时间表示。

格式说明:

长度字段指定为选项所保留的空间大小;

指针字段指定下一个可使用空间的位置;

溢出字段为4比特,这是一个整数计数器,表示因选项空间太小而不能提供时间戳的路由器的个数;

标志字段为4比特,用于控制选项的确切格式及路由器提供时间戳的方式。