2010-03-31 110 views
-1

我正在追蹤跟蹤路線,我的應用程序發送一個ttl爲0的ICMP回顯請求,每當我收到超時消息時,我都會將ttl遞增一個並且將該包重新發送,但是會發生什麼情況是我有2我的網絡上的路由器可以跟蹤通過這些路由器的路由,但第三跳總是最終成爲同一個IP的開放DNS服務器之一,無論我在哪裏跟蹤路由。 AFAIK這是正確的traceroute實現,誰能告訴我我做錯了什麼?Traceroute Theory

+0

第一個數據包應該有1 TTL,不是0。這聽起來我像是路由轉發所有ICMP請求一個特定的位置。把你的應用程序轉到不同的位置,看看它是否在那裏工作。 – dbasnett 2010-04-05 21:44:07

回答

1

有可能兩臺路由器都連接到同一個對等設備,並且會得到所描述的行爲。

沒有更多的信息,它不是真的可以回答你的問題。

+0

「路由器連接到同一個對等體」你能解釋你的意思嗎? – 2010-03-31 13:20:03

+0

我的意思是說,你的兩臺路由器路由到同一臺機器並沒有什麼特別的奇怪之處。 – 2010-03-31 13:53:46

0

雖然很難說沒有任何額外的信息,最好的辦法是安裝一些數據包嗅探器 - 可能wireshark/www.wireshark.org - 並比較icmp數據包 - 跟蹤路由器上的電線和系統/ usr/bin/traceroute(或\ windows \ system32 \ tracert)發送了什麼?

0

如果你擁有它可以搞砸了路徑上的NAT路由器你很好地調整TTL的

+0

我在路徑上有兩臺路由器,一臺是我的,我在房間內使用另一臺屬於我住的建築物,非常喜歡混淆我的連接,但在這種情況下,常規的traceroute工作正常。 – 2010-03-31 15:08:32

+0

我明白了。這個「開放DNS服務器」,這也是一個路由器「在建築物」或某處關閉?您是否嘗試過使用常規traceroute命令(使用ICMP和UDP)來查看結果是否不同?沒有更多的信息,我會得出結論,第三個路由器,也作爲DNS,阻止你的數據包 - 可能是因爲它也NAT'ing。 – joveha 2010-03-31 16:04:14

+0

你是說如果你使用traceroute命令,它可以工作,但是你的模仿traceroute的應用不會呢?看到代碼可能會幫助我們幫助你。 – dbasnett 2010-04-05 21:46:40