使用IP选项实现traceroute程序

使用IP选项实现traceroute程序
使用IP选项实现traceroute程序
1。今天的traceroute
目前该实现是这样的:主机首先发出1个一包的TTL(生存时间、生存时间)。然后分组到达第一跳路由器后。这时,路由器将发送一个ICMP错误消息{ 1 }表明包不能继续前进,因为它的TTL已过期。traceroute程序然后发送一个包的TTL 2,这是两跳后过期。重复这个过程直到数据包到达目的主机。这个过程的目的是记录所有信息源发送ICMP超时消息,可以确定数据包到达目的主机的路径
该算法的优点是,所有的路由器都能够发送TTL超时消息,所以没有特殊的代码需要支持的算法,但缺点是输出数据包的数目(2n,其中n是数据分组跳(2003)可能包含由路由器发送的消息,在超时)利用连续的数据包的路由路径可以短时间和检测过程中这一事实的变化。同时,这种算法不能跟踪路径时,数据包返回,和这条路很可能是从不同的输出路径。
2。在未来的traceroute
方法的实施将使用不同的算法来实现的,是同一个目标,,到达目的主机的路径。因为新的traceroute实现使用一个专用的ICMP消息,用户可以获得一些额外的信息是不可用之前(使用旧的traceroute)。
2.1基本算法
在这里,我们将定义一个新的IP选项mdash;mdash;traceroute的选择。在一个ICMP响应的存在如果期权(或任何其他)包,以下简称外向的包(出境;包),将发送的报文ICMP Traceroute消息发布端的路由器的一个新定义的。这样,通过N + 1包(而不是2n),路径的传出数据包通过可以由发送端记录,路径变化的同时不影响算法的有效性,该算法也允许过时的响应,以下简称返回包(返回;包),跟踪,只要在目的主机发送的报文发送响应数据保持原来的我P traceroute选项。
这种方法的缺点是,traceroute功能必须添加到路由器,优点是这种机制可以很容易地添加到IP协议的新版本。
2.2 IP Traceroute选项格式
为了便于对比,我以相同的格式列出了英文和中文
f(复制到拆分标志,复制到片段):

0(未复制到切片)

c(类别,类):

2(调试测量)

数字(数字):

18(f + + +号= 82)

身份证号码(身份证号码):

这是一个任意的输出数据包发送指定的,其目的是使程序确定相应的自己的包ICMP Traceroute消息。这个值不涉及IP头的识别号码。

源IP地址(发端IP地址):

发送传出数据包的主机地址。这是必需的,因为路由器必须根据这个地址将数据包发送回地址。

跳数(出境跳数,简称OHC):

出站数据包已经通过的路由器的数量。传出数据包的目标主机不会增加这个字段的值。

回到跳数(返回跳数,简称RHC):

返回数据包通过的路由器的数量。返回数据包的目标主机不会增加这个字段的值。
2.3 ICMP Traceroute报文格式
类型(类型):

三十

代码(代码):

0出包转发成功

1 -前面没有路由器,包被丢弃了。

校验和(校验和):

在每个16位字中的头部的补和,在计算校验和之前,这个字段应该是零,然后是计算结果。

身份证号码(身份证号码):

场为IP Traceroute选项部分,导致这一消息的包一样。这也不是第一的身份识别号码相关的IP。

跳数(出站跳数):

场为IP Traceroute选项部分,导致这一消息的包一样。

返回跳转计数(返回跳数):

场为IP Traceroute选项部分,导致这一消息的包一样。

输出连接速度(输出链接速度):

送出去/返回包的连接速度是字节(8位) /秒米。选择字节/秒;而不是比特/秒;采取以下事实:网络速度将很快突破4.3gb / s,而一些机器处理效率低32位以上的领域。如果这个值不确定,现场应设置为零。

输出连接的MTU(输出链路MTU):

送出去/返回包MTU为连接,字节meter.mtu只针对部分数据包中的IP,包括,但不包括首和尾包添加到链路层。如果这个值不确定,现场应设置为零。
三.协议
输出数据包IP Traceroute选项通常不需要使用服务或失误的类型,除非你想要特殊服务类型或优先级的数据包路径跟踪。
输出数据包的TTL值应该设置为;号被分配到{ 2 }文章中指定的默认值。
3.1跳(跳)数
跳计数提供了输出/返回数据包到目的主机的路径长度的信息。这些计数也提供一种方法来确定ICMP Traceroute消息丢失或没有。例如,如果一个顶置凸轮轴6的消息是由一个4 OHC值的信息,我们可以得出这样的结论:消息的OHC 5丢了。这也说明,只有traceroute的消息数量不能用来确定路径长度有效的原因
即将离任的包的源端应分组设置顶置凸轮轴0,和RHC 0xFFFF。0xffff的特殊价值是用来表明这是不是一个返回数据包发送的数据包,并返回包RHC 0。
需要注意的另一件重要的事情是,这种跳跃计数不与TTL与IP相关。跳数步只能当一个ICMP路由跟踪消息发送。
3.2主机操作
如果主机接收IP Traceroute选项发送数据包,当它被要求回答,如ICMP服务请求/回复,还需要返回这个包。在返回的数据包,你必须填写以下内容:身份识别号码,OHC,和源IP地址。RHC场应设置为0。
即将离任的数据包的目的主机不应该增加跳数或发送任何ICMP Traceroute消息。
3.3路由器的操作
当路由器发送一个包含IP Traceroute选项,它应该发送一个ICMP路由跟踪消息到主机的源IP地址字段表示。如果在接收到的数据包的RHC场0xffff,然后包被传出的数据包,因此路由器应该添加的OHC字段的值。否则,路由器应该添加RHC领域之一。返回的traceroute的消息应该反映的跳数的增加,输出连接速度应设置送输出/返回包的连接速度是字节(8位) /秒(例如,以太网的速度是1250000),现场也可以设置为零表示速度无法确定。输出连接的MTU应设置发送出去/返回包MTU在连接处,而现场也可以表明MTU是零待定。
当traceroute选项存在,输出/返回的数据包转发过程应该是一样的因为它不存在。换句话说,到目的主机的路径无关的traceroute选项的存在。
ICMP路由跟踪消息应该有相同的TOS和优先输出/返回包的TTL值应设置为的数量分配在{ 2 }的文章中指定的默认值。
ICMP路由跟踪消息不应该再有IP Traceroute选项。
如果发送数据包不能被转发,其返回ICMP Traceroute消息的代码字段应该设置为1。但如果数据包返回无法转发因为没有可用的路由器,那么就不需要发送一个traceroute的消息,因为该消息不会即使它发送转发。
4。参考文献
{ 1 }波斯特尔,J.互联网控制消息协议,标准5,RFC 792,

南加州大学/信息科学研究所,1981年9月。

{ 2 }雷诺兹,J.,J. Postel,分配号码,STD 2,RFC 1340,

南加州大学/信息科学研究所,1992年7月。
5。安全注意事项

本文没有讨论安全的相关内容。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部