首页 理论教育 计算机网络IP选项:长度、格式及可填IP地址数

计算机网络IP选项:长度、格式及可填IP地址数

时间:2023-11-05 理论教育 版权反馈
【摘要】:IP报头基本长度20B,如加上选项,则最长为60B,选项最长可达40B。该字段的长度1B,理论上最多可定义255B长度,实际上,选项长度不可超过40B。数据字段数据字段表示选项的信息,如偏移量、指针、长度、地址等数据。图5-6给出SSRR选项的格式。第2字段:1B长度字段,长度值可变,由选项总长度决定,但不超过40B。选项长度不超40B,减去3B代码、长度和指针,最多可填入9个IP地址。

计算机网络IP选项:长度、格式及可填IP地址数

IP报头基本长度20B,如加上选项,则最长为60B,选项最长可达40B。选项非必须,但对网络测试与纠错,及数据传输安全防护方面有重要作用。每个IP模块都必须具备处理选项功能,不同种类选项具不同作用,并不要求每个IP都支持所有选项。

1.选项格式

选项的格式包括:1B的代码(Code)字段,1B的长度(Length)字段。

(1)代码字段

长度1B,包括3个子字段:复制(Copy)、类(Class)和数(Option Number)。

复制字段:表示分割时是否需要将选项复制到所有的小数据报中,长度1bit。有两种不同组合,见表5-5。

类字段:表示该选项一般用途,长度2bit。有4种不同组合,见表5-6。

数字段:表示该选项类型,长度5bit,有32种不同类型,目前仅用6种,见表5-7。

表5-5 复制字段的内容

978-7-111-43162-6-Chapter05-8.jpg

表5-6 类字段的内容

978-7-111-43162-6-Chapter05-9.jpg

表5-7 数字段的定义

978-7-111-43162-6-Chapter05-10.jpg

(2)长度字段

长度字段表示选项的总长度。该字段的长度1B,理论上最多可定义255B长度,实际上,选项长度不可超过40B。

除了“选项结束”和“无操作”的长度为1B之外,其余选项的长度必须是4B的倍数。但实际应用中,选项长度不一定恰好为4B倍数,此时须进行边界对正(Boundary Alignment),即以一个“NOP”将选项填满为4B的倍数。

(3)数据字段

数据字段表示选项的信息,如偏移量指针、长度、地址等数据。数据字段长度是可变的,因不同选项运用而不同。当“选项结束”和“无操作”长度是1B,无数据字段和长度字段。

2.选项类型

目前主要使用的选项类型有6种。其中两种是lB选项,包括EOL和NOP,不需要长度字段和数据字段;其余4种是多字节字段,包括RR、SSRR、LSRR和TimeStamp,需要长度字段和数据字段。

1)End of Option List(EOL):EOL是1字节选项,用于提示这是最后一个选项,必须放在所有选项的后面。对于长度不满4B倍数的选项,放入一个EOL后如仍不够,则不能继续加入另一个EOL,而需要进行位填补,加入一连串“0”,将剩下空间填满为4B的倍数。EOL可以因分割或其他原因而被复制、加入或删除。

2)No Operation(NOP):NOP也是1B选项,用于选项之间的边界对正。当数据报中有两个以上的选项时,如果其中某个选项的长度不满4B的倍数,则可在其后加入NOP,将长度补满为4B的倍数,以便能够对正到下一个选项的起始位置。

应注意,在选项之间不可进行位填补,因为位填补只能使用在报头最后面。NOP可以因分割或其他原因而被复制、加入或删除。

3)Record Route(RR):RR是记录路由选项,用于记录数据报在互联网中传送的路由。选项长度可变,分割时不需复制,仅保留在第一个数据报中。图5-4给出RR选项格式。

978-7-111-43162-6-Chapter05-11.jpg

图5-4 RR选项的格式

第1字段:1B的代码字段,Code=00000111或7。

第2字段:1B长度字段,Length值可变,由选项总长度决定,最长不超过40B。

第3字段:1B指针(Pointer)字段,配合第4个字段的记录路由数据(Record Route Data)一起使用,用于指示路由数据开始填入的位置,其默认值是4。

第4字段:长度可变的记录路由数据字段,由一系列IP地址组成,用于记录数据报在网中路由。由于选项长度不超40B,减去3B代码、长度和指针,最多可记录9个IP地址。

路由记录数据字段在IP模块送出数据报之前是空的,指针字段的初值是4,指向第一个空字段。每经过一个路由器,指针值将与长度值比较。如指针值不大于长度值,路由器就在指针指向的空字段填入其出口IP地址,并将指针值加4,然后再将数据报转发出去。图5-5所示为运用RR选项的数据报传送。为便于说明,这里没有考虑边界对正问题。

978-7-111-43162-6-Chapter05-12.jpg

图5-5 运用RR选项的数据报传送

如路由器检测到指针值大于长度值,则表示记录路由字段已满,此时不能再加入新地址,路由器继续将数据报传送到IP报头目的地址字段指定的目的主机;如记录路由字段未满但不够空间填入完整的地址,则此数据报被认为是错误的并被丢弃。在上述两种情况下,路由器都会发送ICMP错误信息通知源主机。

源主机在开始发送数据报时必须预先设定好RR长度值,即必须预先设定好需要记录的地址数,而且在数据报的传送过程中,RR的长度不会因为新地址的填入而改变。

该选项常用于网络测试,可方便查出从源主机发送的数据报经哪些网络才能到达目的主机。

4)Strict Source and Record Route(SSRR):SSRR是严格的源路由选项,用于源主机预先指定数据报在网中传送的路由并且记录传送过程中经过的路由。该选项长度可变,分割时必须复制。图5-6给出SSRR选项的格式。

978-7-111-43162-6-Chapter05-13.jpg

图5-6 SSRR选项的格式

第1字段:1B代码字段,Code=10001001或137。(www.xing528.com)

第2字段:1B长度字段,长度值可变,由选项总长度决定,但不超过40B。

第3字段:1B指针(Pointer)字段,配合第4个字段的路由数据(Route Data)一起使用,用于指示路由数据开始填入的位置,其默认值是4。

第4字段:长度可变的路由数据字段,由一系列的IP地址组成,是源主机指定的传送路由或传送后的记录路由。选项长度不超40B,减去3B代码、长度和指针,最多可填入9个IP地址。

SSRR是一种严格的路由策略,要求源主机送出的数据报必须经过路由数据字段指定的所有路由器,到达最后一个指定地址(最终目的地址)。如数据报经过的路由器地址不是SSRR在路由数据字段中指定的IP地址,此数据报将被丢弃。经过的路由器出口地址必须记录在路由数据字段。从目的主机回传的数据报必须以相反顺序访问记录的路由,即把接收到SSRR数据报的目的主机地址设为源地址,发送SSRR数据报的源主机地址设为“最终目的地址”。

对于带有SSRR(或LSRR)选项的数据报,IP报头中的目的地址只代表数据报要传送的下一个地址,并非真正目的地址。真正的目的地址是路由数据字段指定的最后一个IP地址,即“最终目的地址”。这种特殊情况仅发生在带有SSRR(或LSRR)选项的数据报中。

指针字段的初值是4,指向第一个指定的地址。每经过一个指定的路由器,指针值将与长度值比较。如指针值不大于长度值,路由器将在指针指向的位置填入其出口IP地址,覆盖原来的指定地址,成为记录地址。同时,路由器将下一指定地址覆盖IP报头的目的地址,并把指针值加4,然后再把数据报转发出去。图5-7给出运用SSRR选项的数据报的传送过程。为叙述方便,这里没有边界对正问题,也没有给出EOL或NOP,以及目的地址的变化。

978-7-111-43162-6-Chapter05-14.jpg

图5-7 运用SSRR选项的数据报传送

按照RFC 1812的规范,只要指针值不大于长度值,此数据报就必须继续传送到下一个指定的地址,直到到达最后一个指定的地址,或被丢弃为止。如指针值超过长度值,理论上该数据报已到达其最终目的地址,不能继续传送。

如数据报已到达其最终目的地址,但没有经过每一指定路由器,且指针值已超过长度值,则此数据报应被丢弃,路由器将发送ICMP错误信息通知源主机。

源主机在开始发送数据报时必须预先设定好SSRR的长度值,在数据报的传送过程中,SSRR的长度不会因为记录地址的填入而改变。

SSRR为重要选项。运用SSRR机制,源主机可指定数据报的传送路由以实现某些方面的用途。如源主机可选择具有特定服务类型的路由以提高传输性能,或源主机可指定路由以避开某些网络,使数据报沿安全的路径传送到目的地址。

5)Loose Source and Record Route(LSRR):它为宽松的源路由选项,与SSRR类似,也可用于源主机预先指定数据报的传送路由并记录传送过程中经过路由。图5-8为选项格式。

978-7-111-43162-6-Chapter05-15.jpg

图5-8 LSRR选项的格式

LSRR选项各字段的定义与SSRR的定义类似,只是代码字段的Code=10000011或131。

LSRR为一种宽松的路由策略,对传送路由的要求没有SSRR严格。其要求数据报在传送过程中必须经过所有指定的路由器,但中途可经过任何非指定路由器,到达最后一个指定的地址(最终目的地址),并将经过的路由器的出口地址记录在路由数据字段中。

LSRR允许数据报经过任何非指定路由器,这是与SSRR的最大区别。

运用LSRR选项的数据报的传送过程与SSRR的情况类似,唯一区别是,如数据报经过的路由器地址非LSRR在路由数据字段中指定的IP地址,则指针值将维持不变,字段中的数据也维持不变,数据报将继续向前传送。图5-9为运用LSRR选项的数据报传送过程。

978-7-111-43162-6-Chapter05-16.jpg

图5-9 运用LSRR选项的数据报传送

LSRR和SSRR是很特殊的选项,带有这类选项的数据报报头中的目的地址只是代表数据报要传送的下一个地址,并不是真正的目的地址。真正的目的地址是路由数据字段指定的最后一个IP地址,即“最终目的地址”。

LSRR和SSRR选项主要用于网络测试,要求必须对网络拓扑有深入了解。在建立这类数据报的IP报头时,应把第一个测试点的地址设为IP报头中的目的地址,最后一个测试点或目的主机的地址设为路由数据字段中的最后一个指定地址。

6)Timestamp(TS):TS是时间戳选项,用于记录路由器处理数据报的时间。该选项长度可变,分割时不需复制,仅存在于第一个数据报中。图5-10所示为TS选项的格式。

第1字段:1B代码字段,Code=01000100或68。

第2字段:1B长度字段,长度值可变,由选项总长度决定,但不能超40B。

第3字段:1B指针字段,配合第6个字段的IP地址或TS数据一起使用,用于指示IP地址或TS数据开始填入的位置,其默认值是5。

第4字段:4位溢出(Over-Flow)字段,用于表示处理数据报但无法记录数据的路由器的个数,其初值是0。

第5字段:4位标志(Flags)字段,用于表示路由器必须执行的工作,配合第6字段一起使用。各值意义如下。

978-7-111-43162-6-Chapter05-17.jpg

图5-10 TS选项的格式

0:路由器仅记录TS数据,忽略IP地址。

1:路由器记录其出口IP地址及TS数据;

3:发送方预先指定IP地址,如指定的地址与路由器的入口IP地址相同,则路由器仅记录TS数据。不需记录路由器的IP地址。

第6字段:长度可变的IP地址和TS数据字段,用于记录路由器的IP地址或TS数据。由于选项长度不超过40B,减去4B的代码、长度、指针、溢出和标志字段最多可填入9个IP地址或TS数据。

TS数据以ms为计算单位,从世界标准时间午夜零时开始计算。

源主机在发送数据报之前,必须设定好第1至第5个字段的值,此时TS数据区是空白的,指针初值是5。当数据报到达某个路由器时,路由器将指针值与长度值比较,只要指针值不大于长度值,路由器将把其出口IP地址填入指针指向的位置,指针值加4,计算出所花费时间后,再填入新指针指向的位置,指针值再加4,然后把数据报转发出去。图5-11所示为带有标志位为l的TS选项的数据报的传送过程。

978-7-111-43162-6-Chapter05-18.jpg

图5-11 带有标志位为1的TS选项的数据报的传送

在数据报的传送中,如TS字段已满,此时不能再记录任何数据,溢出字段的值加l后再经数据报转发;如字段未满,但不够空间填入完整的TS数据,或溢出字段本身已超4位,则此数据报被认为错误且被丢弃。上述两种情况,路由器都会发送ICMP错误信息通知源主机。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈