为什么Windows下的tracert速度较慢
Windows下的 tracert
发送 ICMP echo 请求; 许多路由器和防火墙会直接 DROP
掉 tracert
发出的ICMP echo 请求。所以工具必须等待内部超时,然后才能宣布该路由超时。
Linux下的 traceroute
发送 UDP 连接请求; 路由此时会转发流量,因此Linux中的 traceroute
较为可靠。这也意味着工具不必等待沿途大多数路由器的超时答复。
综上所述,Windows 中tracert
在跃点之间会等待大约 1 秒的时间。而 Linuxtraceroute
不会在跃点之间停留。
同时 tracert
默认会进行 DNS 反向名称查找(将IP解析为域名)。这可以为跟踪路由添加调试信息,但也很慢。
如果是Cisco 交换机/路由器,可以使用 no ip domain-lookup
禁用。
可以加入 -d -w 100
以减少延迟
tracert -d -w 100
-d 阻止域名解析
-w 100 设置响应超时上限为100ms
traceroute
一次会测试16个路由跃点,而 tracert
只能一次一个。