linux上和windows上路由追踪有关问题

linux下和windows下路由追踪问题
今天我用linux(ubuntu虚拟机)和windows分别对百度的地址进行了路由追踪,但是我发现在windows下追踪是正常的但在linux下除了第一个虚拟机自带的网关其他的路由全是星号,我用wireshark抓包看了一下在linux下虽然发了udp的包,但是没有icmp的超时包返回,而在windows下我抓包后发现他进行追踪的时候好像不止发了udp包还发了icmp的包,然后会有icmp的超时包返回。搞不清楚是怎么回事,希望有大神能帮忙解释一下。。。。。。



谢谢各位了

------解决方案--------------------
在实际操作中,未必是所有的路由器设备都会或者愿意送回ICMP包,碰到这样的情况,你都会看到跳站显示全为*的情形了。假如traceroute最后的结果一直维持着*符号,那可能是因为ICMP被对方的防火墙拦下来的结果。这样的话,你可能无法完成防火墙后的路由追踪。
------解决方案--------------------
应该是两个系统发送的数据不一样,Linux默认用UDP,而Windows是ICMP,从你的描述看应该路由器不对UDP的超时发送ICMP分组,建议解决方案: 在Linux系统用-I选项, "-I 使用ICMP回应取代UDP资料信息".
这里也有traceroute的实现源码,你可以参考,解压后找Trace,下载地址:
http://download.csdn.net/detail/geoff08zhang/4571358