日期:2014-05-17  浏览次数:20828 次

问一个关于trackrt命令的问题
tracert的实现方法是每一次发送一个TTL为N的包,这个N从0开始一直递增上去。
然后在发送的时候TTL递减,当减为0的时候,路由器返回错误报告,这样子就知道包传到了哪个路由器
从而记录下发送一个包到某个目标时(假如www.csdn.net)所经过的所有路由器。

我想问的是,假如N现在为10,那怎么知道tracert发送的第9个包和第10个包时所走的前8个路由是相同的呢?
为什么第9个包和第10个包它们没有分别不同的链路。
如果这两个包走的是不同的链路,那么第10个包返回的路由器就不一定在第9个包的路由线路中了,
即返回错误的路由器不一定是第9个包返回错误的路由器的下一个路由器

------解决方案--------------------
linux下的工具 mtr是动态的持续的发包的.这个能解决你的问题.
------解决方案--------------------
有这样一个事实,同一个网站(IP)在不同的时候TRCERT得到的结果可能不同,以上在单位内网有过实践。。。。原因是网络结构可能发生变化或路由中某个节点发生故障,
二,在一次具体的TRACERT中,TRACERT诊断程序是具有记录路由选项的功能的,路由的线路是一定的,也就是一个具体的时刻,从A访问B所走的路由是一定的,TRACERT有一项功能如ping -r www.baidu.com,-R参数的意义就是记录下中间的路由选项

用A来TRACERT B ,第一次发出的是TTL为1的包,第一个中转路由器将TTL减1后,发现TTL为0而后将包丢弃,并告诉A请求超时,然后A再发送一个TTL为2的包,第一个中转路由器将TTL减1后发现TTL不是0,于是将包交给下一个中转路由器,也就是第二个中转路由器,此时A没有收到请求超时的包,由此确定第一个中转路由器的地址,当第二个中转路由器将包的TTL减1后同样向A发送了一个请求超时的包,当A收到这一个请求超时代的包时,会接着发送TTL为3的包,此时它知道了第一个中转路由器是谁了,所以这个包会按照已知的路由前进到第二个中转路由,如果发现此时未收到第二个中转路由发来的请求超时的包,便可以确定出第二个中转路由器的地址,以此类推。。。。
请赐教。。。。
------解决方案--------------------
有这样一个事实,同一个网站(IP)在不同的时候TRCERT得到的结果可能不同,以上在单位内网有过实践。。。。原因是网络结构可能发生变化或路由中某个节点发生故障,
二,在一次具体的TRACERT中,TRACERT诊断程序是具有记录路由选项的功能的,路由的线路是一定的,也就是一个具体的时刻,从A访问B所走的路由是一定的,TRACERT有一项功能如ping -r www.baidu.com,-R参数的意义就是记录下中间的路由选项

用A来TRACERT B ,第一次发出的是TTL为1的包,第一个中转路由器将TTL减1后,发现TTL为0而后将包丢弃,并告诉A请求超时,然后A再发送一个TTL为2的包,第一个中转路由器将TTL减1后发现TTL不是0,于是将包交给下一个中转路由器,也就是第二个中转路由器,此时A没有收到请求超时的包,由此确定第一个中转路由器的地址,当第二个中转路由器将包的TTL减1后同样向A发送了一个请求超时的包,当A收到这一个请求超时代的包时,会接着发送TTL为3的包,此时它知道了第一个中转路由器是谁了,所以这个包会按照已知的路由前进到第二个中转路由,如果发现此时未收到第二个中转路由发来的请求超时的包,便可以确定出第二个中转路由器的地址,以此类推。。。。
请赐教。。。。
------解决方案--------------------
路由器上有缓存的索引,通常对同一目的地的路由是不重新计算的,所以不用担心路径不同.
有一些负载均衡的路由器,虽然看起来不同,其实是同一组路由器的子节点.