当前位置:八五教程网教学知识电脑学习电脑故障维修网络故障使用IP选项实现Traceroute程序» 正文
  1. 使用IP选项实现Traceroute程序

  2. [10-10 23:22:12]   来源:http://www.85jc.com  网络故障   阅读:8199

概要:使用IP选项实现Traceroute程序 1. 现今的Traceroute现在的 traceroute 的实现是这样的:主机先发出一个TTL(Time To Live,生存时间)为1的数据包。接着数据包经过第一跳之后到达一个路由器,此时路由器将发回一个ICMP错误消息[1],以说明这个数据包不能继续向前传送,因为其TTL已经过期了。然后 traceroute 程序又发出一个TTL为2的数据包,这个数据包经过两(电脑没声音)次跳跃后其TTL过期。这个过程不断重复,直到数据包到达目的主机。此过程的目的就是要记录下所有发出 ICMP超时消息的消息源,据此就可以确定出数据包到达目的主机的路径了。 这个算法的优点是所有的路由器都能够发出TTL超时消息,因而不需要特殊的代码以支持此算法。而其缺点在于:发出的数据包的数目(2n个,其中n是数据包跳跃次数)(译注:可能包含了路由器发送的超时消息),花费在用连续的数据包记录较近路由的时间,以及路径在这个检测过程中可能会发生改变这个事实。同时,这个算法并不能跟踪检测数据包返回时的路径,而这个路径很

使用IP选项实现Traceroute程序,标签:网络故障解决,网络故障排除,http://www.85jc.com

使用IP选项实现Traceroute程序

1. 现今的Traceroute

 现在的 traceroute 的实现是这样的:主机先发出一个TTL(Time To Live,生存时间)为1的数据包。接着数据包经过第一跳之后到达一个路由器,此时路由器将发回一个ICMP错误消息[1],以说明这个数据包不能继续向前传送,因为其TTL已经过期了。然后 traceroute 程序又发出一个TTL为2的数据包,这个数据包经过两(电脑没声音)次跳跃后其TTL过期。这个过程不断重复,直到数据包到达目的主机。此过程的目的就是要记录下所有发出 ICMP超时消息的消息源,据此就可以确定出数据包到达目的主机的路径了。

  这个算法的优点是所有的路由器都能够发出TTL超时消息,因而不需要特殊的代码以支持此算法。而其缺点在于:发出的数据包的数目(2n个,其中n是数据包跳跃次数)(译注:可能包含了路由器发送的超时消息),花费在用连续的数据包记录较近路由的时间,以及路径在这个检测过程中可能会发生改变这个事实。同时,这个算法并不能跟踪检测数据包返回时的路径,而这个路径很可能与外出路径不同。

2. 将来的Traceroute

  这个被提议的 traceroute 实现将使用一种不同的算法来达到相同的目的,即得到到达目的主机的路径。由于新的 traceroute 实现采用了一种专用的ICMP消息,所以用户还可以得到一些以前(使用老的 traceroute )得不到的额外信息。

2.1 基本算法

  这里(电脑自动关机),我们将定义一种新的IP选项——Traceroute选项。若此选项存在在一个ICMP应答(或任何其他)数据包中,在下文中称之为“外出数据包”(Outbound Packet),则会使路由器给这个外出数据包的源端发出一个新定义的ICMP Traceroute消息。这样,通过n+1个数据包(而不是2n个),这个外出数据包所经过的路径就可以被其发送端记录下来。路径的改变并不影响这个算法的有效性,同时,该算法还允许对外出数据的应答,下文称之为“返回数据包”(Return Packet),进行跟踪,只要外出数据包的目的主机在发送应答数据时保留原来的 IP Traceroute选项就可以了。

  这个方法的不足之处在于必须把 traceroute 功能加到路由器中去。而好处是这种机制能够很容易的加入到新版本的IP协议中去。

2.2 IP Traceroute选项格式

(译注:为方便对比,我将英文和中文的格式都列了出来,下同)

F(复制到分片标志,copy to fragments):
   0(不复制到分片)
C(类别,class):
   2(调试 & 测量)
数字(Number):
   18(F+C+Number = 82)
ID标识号(ID Number):
   这是由外出数据包发送者指定的任意一个数值,其目的在于可以让程序识别与自身发出数据包对应的ICMP Traceroute消息。这个数值与IP头部的标识号没有关系。
源IP地址(Originator IP Address):
   发送外出数据包的主机地址。这是必须的,因为路由器要根据这个地址发送返回数据包。含有源站选路(Source Route)选项的外出数据包同样需要这个字段。
外出跳跃计数(Outbound Hop Count,简称OHC):
   外出数据包已经通过的路由器数目。外出数据包的目的主机不增加这个字段的值。
返回跳跃计数(Return Hop Count,简称RHC):
   返回数据包已经通过的路由器数目。返回数据包的目的主机不增加这个字段的值。

2.3 ICMP Traceroute消息格式

类型(Type):
   30
代码(Code):
   0 - 外出数据包转发成功
   1 - 前面已没有路由器,数据包被抛弃
校验和(Checksum):
   对首部中每个16位字进行二进制反码求和的结果。在计算校验和之前,应当先把此字段填零,然后填入计算结果。
ID标识号(ID Number):
   与引起此消息的数据包中的IP Traceroute选项部分的相应字段相同。这同样不与IP首部的ID标识号有任何关系。
外出跳跃计数(Outbound Hop Count):
   与引起此消息的数据包中的IP Traceroute选项部分的相应字段相同。
返回跳跃计数(Return Hop Count):
   与引起此消息的数据包中的IP Traceroute选项部分的相应字段相同。
输出连接速度(Output Link Speed):
   发送“外出/返回数据包”所在连接的速度,以“字节(8位)/秒”计。选择“字节/秒”而不是“位/秒”是考虑到如下事实:网络速度不久即将突破4.3GB/s,同时有些机器处理大于32位字段的效率很低。如果这个值不能确定,那么该字段应该置为零。

[1] [2]  下一页


Tag:网络故障网络故障解决,网络故障排除电脑学习 - 电脑故障维修 - 网络故障

上一篇:OneTouch网络故障一点通应用案例
《使用IP选项实现Traceroute程序》相关文章
留言板
取消 发布留言