2011-04-06 103 views
10

我有兩臺計算機,一個Windows和一個Linux並排放在我的桌子上,都連接到同一個互聯網。如果我在www.stackoverflow.com和traceroute www.stackoverflow.com上運行tracert,兩者都會返回相同的數據。但是,Windows上的tracert與Linux上的traceroute相同(使用相同的參數)需要3倍(linux tr幾乎是瞬間)Windows上的Tracert返回速度比Linux上慢

我試過tracert -d,但沒有真正的區別。

如何讓Windows Tracert以相同的速度返回?

感謝

回答

8

Windows tracert工具發送ICMP echo requests;很多路由器只會使用DROP ICMP迴應請求。因此,在聲明該路由死亡之前,該工具必須等待內部超時。

Linux traceroute工具發送UDP連接嘗試;路由器必須轉發這些數據包,所以它的工作非常可靠。這意味着該工具不需要等待大多數路由器的超時。

+0

作爲補充,我相信有一個cygwin的traceroute插件,所以你可以在windows上獲得linuxesque traceroutes。 – richzilla 2011-04-06 23:45:33

+0

不錯!我一直都在想這個! – 2011-07-02 03:49:04

+2

這是來自匿名用戶留下的評論,但被拒絕(無效的消息編輯):'這個答案是錯誤的,原因有三個:1)很少有互聯網路由器丟棄ICMP數據包2)Linux/Unix跟蹤路由使用UDP而不是TCP 3)ICMP與UDP的使用對速度沒有實際影響 下面的答案(Windows在hop之間等待1秒)是真實準確的答案。# – ChrisWue 2012-03-30 23:44:29

10

在Windows tracert等待跳之間約1秒。 Linux traceroute不會在中繼段之間等待。 Windows tracert沒有文檔選項來禁用此延遲。

3

作爲提示,您可以通過禁用使用tracert -d解決問題來加速Windows中的traceroute。

2

tracert逐個發送探頭,traceroute一次發送16個(可以用-N參數改變)。

+0

這似乎沒有回答這個問題。請解釋OP需要做什麼。 – superEb 2014-02-26 21:54:29

2

偶然發現了這個舊線程,並且想說在Windows中有一個選項可以加速tracert。

tracert的-d -w 100

-d防止主機名解析

-w 100將響應超時爲100ms。

如果您的Ping測試慢速網絡通過VPN或遠處的MPLS進行傳輸,您可能會收到錯誤的ping回覆,但它會將tracert加速到大約40秒。

相關問題