记录路由选项提供了一种记录Internet数据包的路由的方法。
选件以选件类型代码开头。第二个八位位组是选项长度,它包括选项类型代码和路由数据的长度八位位组,指针八位位组和长度为3个八位位组。第三个八位位组是指向路由数据的指针,指示八位位组,该八位位组从下一个区域开始存储路由地址。指针是相对于此选项的,并且指针的最小合法值为4。
一条记录的路线由一系列Internet地址组成。
每个互联网地址为32位或4个八位位组。如果指针大于长度,则记录的路线数据区域已满。
始发主机必须使用足够大的路由数据区域来组成此选项,以容纳所有预期的地址。该选项的大小不会因添加地址而改变。路线数据区域的初始内容必须为零。
当Internet模块路由数据包时,它会检查是否存在“记录路由”选项。如果是这样,它将在该数据包转发到的环境中插入它自己已知的互联网地址,该环境从指针所指示的八位字节开始转发到记录的路由中,并将指针增加四。
如果路由数据区已满(指针超过长度),则转发数据包,而无需将地址插入记录的路由中。如果有一些空间但没有足够的空间可插入完整地址,则原始数据包被认为是错误的,并被丢弃。无论哪种情况,都可以将ICMP参数问题消息发送到源主机。
分段时不复制,仅在第一个分段中进行。
在数据包中最多出现一次。
流标识符

此选项为不支持流概念的网络携带16位SATNET流标识符提供了一种方法。
必须在分段上复制。在数据包中最多出现一次。
互联网时间戳

选项长度是选项中的八位字节数,该字节计数类型,长度,指针和溢出/标志八位字节(最大长度为40)。
指针是从此选项的开始到时间戳记的末尾的八位字节数加1(即,它指向从下一个时间戳记开始的八位字节数)。最小合法值为5。当指针大于长度时,时间戳记区域已满。
溢出(oflw)[4位]是由于空间不足而无法注册时间戳的IP模块的数量。
标志(flg)[4位]的值是
0-仅时间戳,以连续的32位字存储,
1-每个时间戳前面都有注册实体的互联网地址,
3-互联网地址字段是预先指定的。 IP模块仅在其自己的地址与下一个指定的Internet地址匹配时才注册其时间戳。
时间戳是自午夜UT起以毫秒为单位的右对齐32位时间戳。如果该时间以毫秒为单位不可用或相对于午夜UT无法提供,则可以插入任何时间作为时间戳,前提是时间戳字段的高阶位设置为1以指示使用非标准值。
原始主机必须使用足够大的时间戳数据区域组成此选项,以容纳所有预期的时间戳信息。由于添加了时间戳,该选项的大小不会更改。时间戳数据区域的初始内容必须为零或Internet地址/零对。
如果时间戳数据区域已满(指针超过长度),则在不插入时间戳的情况下转发数据包,但溢出计数将增加1。
如果有足够的空间但没有足够的空间插入完整的时间戳,或者溢出计数本身溢出,则认为原始数据包有误,将其丢弃。
无论哪种情况,都可以将ICMP参数问题消息发送到源主机。
分段时不会复制timestamp选项。它携带在第一个分段中。在数据包中最多出现一次。
填充:可变
Internet标头填充用于确保Internet标头以32位边界结束。填充为零。
3.2、讨论
协议的实现必须健壮。每个实现都必须期望与不同个人创建的其他实现互操作。尽管本规范的目标是明确说明协议,但可能会有不同的解释。通常,实现在发送行为上必须是保守的,而在接收行为上则必须是自由的。也就是说,必须谨慎发送格式正确的数据包,但必须接受它可以解释的任何数据包(例如,不反对含义仍然清晰的技术错误)。
基本的Internet服务面向数据包,并在网关处提供数据包的分段,并在目标主机中的目标Internet协议模块上进行重组。当然,也允许在网络内或通过网络网关之间的私有协议对数据包进行分段和重组,因为这对于Internet协议和更高级别的协议是透明的。这种透明的分段和重组类型称为“网络相关”(或Intranet)分段,此处不再赘述。