Internet Protocol Internet协议( 五 )


记录路由
-------- -------- -------- ---------//--------
00000111 lengthpointer route data ;;;;;
-------- -------- -------- ---------//--------
Type=7
此选项提供了记录数据报路由的方法 。这个选项以选项类型码开始 。第二位是选项长度,第三位是一个指针,指向路由数据中下一个要被处理的源地址,它的最小值为4 。记录的路由是由一系列IP地址构成的,每个IP地址是32位 。假如指针大于长度,记录路由数据域已满 。源主机必须为这一选项分配足够大的空间 。空间分定后不会因为加入地址而增加 。初始内容必须为0 。
当IP模块处理数据报时,它检查是否有记录路由选项,假如有,它将自己的IP地址放入记录路由地址空间,指针值加4 。假如地址空间已满,模块不会把自己的IP地址加入了;假如空间未满,可是不够整个地址加入,模块会认为源数据报出错并抛弃它 。上面两种情况下,ICMP参数信息消息会发送到源主机 。在分段时不复制,而仅仅存在于第一个段 。

更多的请看:http://www.QQread.com/windows/2003/index.Html
流标记
10001000
00000010
流ID
类型=136 长度=4
此选项提供一种在不支持流的网络中传送16位SATNET流标记的方法 。分段时必须复制 。
Internet时间戳
01000100
长度
指针
oflw标记
IP地址
时间戳
......
类型=68
选项长度是在选项内的类型,长度,指针和溢出/标记字节的大小 。指针是从选项开始到时间戳结束的字节数加一 。最小值为5 。当指针大于长度时时间戳域满 。溢出(oflw)(大小为4位)是IP模块号,这个模块因缺省空间而不能注册时间戳 。它的值分别为:
0 -- 仅有时间戳,保存于连续的32位字中;
1 -- 每个时间戳前都有注册单元的IP地址;
3 -- IP地址域是预先指定的,假如IP模块的地址和下一个指定的IP地址一致,则注册自己的时间戳 。
时间戳是从UT午夜时间开始以毫秒计算的,假如时间不以毫秒计算,或不能提供以UT午夜为基准,那用什么时间倒都可以,只要时间戳的最高位设置为1,表示这不是一个标准值就行了 。源主机必须为这一选项分配足够大的空间 。空间分定后不会因为加入地址而增加 。初值必须为零或IP地址/零这样的偶对 。假如空间已满,模块在传送数据报时不加入时间戳,但溢出计数仍然加一 。
假如剩余的空间不能使完全的时间戳加入,或溢出计数溢出,源数据报出错并被抛弃 。ICMP参数信息消息会发送到源主机 。此选项在分段时不复制,仅在第一段出现 。
填充:变长
报头域填充用于保证报头是32位的倍数 。填充值为0 。
3.2. 讨论
协议的实现必须健壮,每个实现都要保证与其它人的实现兼容 。通常一个实现在发送时应该遵守比较保守的策略,在接收时大可不必保守 。也就是说,发送构成良好的包,接收自己能够解释的包(有些错误也是将就着了) 。
基本的Interent服务是面向数据报的,在网关处可以提供以数据报的分段和在目的主机的重组服务 。当然,在一个网络内或在因遵守私下的协议而在一个网络的网关间进行分段和重组也是可以的,因为这对IP协议和高层协议是透明的 。这种透明的分段称为基于网络的分段,这里不做讨论 。IP地址是在主机一级区别源地址和目的地址的 。
寻址
为了可以对网络大小进行灵活的控制,IP地址提供了几类地址,一类是可以容纳比较多主机的网络,一种容纳的主机数就比较少,我们大家听说过的什么A类,B类地址,C类地址就是为了用于不同规模的网络而提出的 。下面是一些地址格式: