一、什麼是Traceroute?
Internet,即國際互聯網,是目前世界上最大的計算機網絡,更確切地說是網絡的網絡。它
由遍布全球的幾萬局域網和數百萬台計算機組成,並通過用於異構網絡的TCP/IP協議進行網
間通信。互聯網中,信息的傳送是通過網中許多段的傳輸介質和設備(路由器,交換機,服
務器,網關等等)從一端到達另一端。每一個連接在Internet上的設備,如主機、路由器、
接入服務器等一般情況下都會有一個獨立的IP地址。通過Traceroute我們可以知道信息從你
的計算機到互聯網另一端的主機是走的什麼路徑。當然每次數據包由某一同樣的出發點(so
urce)到達某一同樣的目的地(destination)走的路徑可能會不一樣,但基本上來說大部分時
候所走的路由是相同的。UNIX系統中,我們稱之為Traceroute,MS Windows中為Tracert。 T
raceroute通過發送小的數據包到目的設備直到其返回,來測量其需要多長時間。一條路徑上
的每個設備Traceroute要測3次。輸出結果中包括每次測試的時間(ms)和設備的名稱(如有的
話)及其IP地址。
在大多數情況下,作為網絡工程技術人員或者系統管理員會在UNIX主機系統下,直接執行命
令行:
Traceroute hostname
而在Windows系統下是執行Tracert的命令:
Tracerert hostname
比如在北京地區使用windows NT 主機(已經與北京163建立了點對點的連接後)
使用NT系統中的Tracert命令:(用戶可用:開始->運行,輸入"command" 調出command窗口使
用此命令)
C:\>tracert www.yahoo.com
Tracing route to www.yahoo.com [204.71.200.75]
over a maximum of 30 hops:
1 161 ms 150 ms 160 ms 202.99.38.67
2 151 ms 160 ms 160 ms 202.99.38.65
3 151 ms 160 ms 150 ms 202.97.16.170
4 151 ms 150 ms 150 ms 202.97.17.90
5 151 ms 150 ms 150 ms 202.97.10.5
6 151 ms 150 ms 150 ms 202.97.9.9
7 761 ms 761 ms 752 ms border7-serial3-0-0.Sacramento.cw.net [204.70.122.69]
8 751 ms 751 ms * core2-fddi-0.Sacramento.cw.net [204.70.164.49]
9 762 ms 771 ms 751 ms border8-fddi-0.Sacramento.cw.net [204.70.164.67]
10 721 ms * 741 ms globalcenter.Sacramento.cw.net [204.70.123.6]
11 * 761 ms 751 ms pos4-2-155M.cr2.SNV.globalcenter.net [206.132.150.237]
12 771 ms * 771 ms pos1-0-2488M.hr8.SNV.globalcenter.net [206.132.254.41]
13 731 ms 741 ms 751 ms bas1r-ge3-0-hr8.snv.yahoo.com [208.178.103.62]
14 781 ms 771 ms 781 ms www10.yahoo.com [204.71.200.75]
Trace complete.
您目前正在ONLINE狀態的話,可以直接嘗試一下。
參數說明:
tracert [-d] [-h maximum_hops] [-j computer-list] [-w timeout] target_name
該診斷實用程序通過向目的地發送具有不同生存時間 (TL) 的 Internet 控制信息協議 (CM
P) 回應報文,以確定至目的地的路由。路徑上的每個路由器都要在轉發該 ICMP 回應報文之
前將其 TTL 值至少減 1,因此 TTL 是有效的跳轉計數。當報文的 TTL 值減少到 0 時,路
由器向源系統發回 ICMP 超時信息。通過發送 TTL 為 1 的第一個回應報文並且在隨後的發
送中每次將 TTL 值加 1,直到目標響應或達到最大 TTL 值,Tracert 可以確定路由。通過
檢查中間路由器發發回的 ICMP 超時 (ime Exceeded) 信息,可以確定路由器。注意,有些
路由器“安靜”地丟棄生存時間 (TLS) 過期的報文並且對 tracert 無效。
參數
-d
指定不對計算機名解析地址。
-h maximum_hops
指定查找目標的跳轉的最大數目。
-jcomputer-list
指定在 computer-list 中松散源路由。
-w timeout
等待由 timeout 對每個應答指定的毫秒數。
target_name
目標計算機的名稱。
二、什麼是Traceroute網關—— Traceroute Gateway?
一般使用Traceroute(或者是Tracert)是基於一台主機的,但是通常您只能知道以手邊的主機
為源地址到互聯網絡上任意一台在線的主機的路由連接質量以及數據傳輸效率的情況,而使
用基於WEB的方式,只要一台主機安裝了特定的CGI程序,用戶就可以通過這台主機運行相關
的程序,執行Traceroute的功能。這台主機我們把它叫做Traceroute網關。Traceroute網關
可以幫助用戶了解網絡的物理與邏輯連接的拓撲情況以及數據傳輸的效率。如果這種網關足
夠多,我們就可以方便地了解到各主機之間連接的情況了。
三、為什麼要使用Traceroute?
1.幾乎每一個網上人(尤其是Webmaster)對他們的計算機(或其它設備)與Internet的連接
,路由(徑),連通時間,速度等都很關心。使用由ChianNetMap組織起來的各地區Webmast
er提供的Traceroute網關的服務,將給你一個滿意的答案。從你的計算機到任何別的地方,
ChinaNetMap(Traceroute)都能提供其間的每個設備(IP地址)及其連通時間。它可以讓你畫
出通過網絡的路徑。
2.許多公司和單位都設有或正在設立自己的服務器-尤其是Web服務器。一旦有自己的Web服務
器,隨著網民數量的日益增加(包括潛在的,沒法統計的網民),你一定很想知道是否他們
都能與你連接。你的ISP如何與一個或多個NAP連接,以及他們的連接效率會直接影響到你的連
接質量.
3.在選擇ISP,骨干網連接,你站點的主機時,大多數有見識的網民喜歡檢查該Site的連接性
能及其它是怎樣精確的與誰連,連到哪兒。ChinaNetMap(Traceroute)將給你一個完美的答
案。
四、Traceroute的功能介紹:
Traceroute最早是由Van Jacobson在1988寫出的小程序。當時主要是解決他自己碰到的
一些網絡的問題。Traceroute是一個正確理解IP網絡並了解路由原理的重要工具。他們對負
責網絡工程技術與系統管理的Webmaster是一個使用方便的程序。
對ISP而言,設立Traceroute網關,將使網絡服務提供商幫助用戶建立並維持對服務商服務質
量的信心。服務質量高的ISP可以通過設立Traceroute網關,使用戶了解其與網絡連接以及數
據傳輸的效率。當然,基礎設施差,服務質量低的ISP是比較害怕提供這種服務。因為,這樣
用戶可以使用這一工具了解服務商目前的網絡連接情況。
在一台主機安裝了相關的Traceroute的CGI程序後,您可以輸入相應的目的主機的IP地址或者
名字,就可以得到相關的數據:
如:在美國的主機http://bs.mit.edu:8001/cgi-bin/traceroute上
查詢其到中國南京的北極星站點www.lodesoft.com(中國Webmaster聯盟的合作伙伴)數據傳
輸的路徑。
查詢界面為:
Traceroute Hack
--------------------------------------------------------------------------------
可以搜索該索引。請鍵入要搜索的關鍵字:
查詢結果為:
Traceroute Hack
1 E40-RTR-E40SERVER72-ETHER.MIT.EDU (18.72.0.1) 4 ms 4 ms 4 ms
2 EXTERNAL-RTR-FDDI.MIT.EDU (18.168.0.12) 4 ms 4 ms 4 ms
3 f1-0.cambridge2-br2.bbnplanet.net (192.233.33.6) 4 ms 4 ms 4 ms
4 s11-0-1.cambridge1-br1.bbnplanet.net (4.0.1.201) 8 ms 4 ms 4 ms
5 p1-0.cambridge1-nbr2.bbnplanet.net (4.0.1.45) 4 ms 4 ms 4 ms
6 p4-1.bstnma1-ba1.bbnplanet.net (4.0.2.170) 4 ms 4 ms 4 ms
7 p1-0.bstnma1-ba2.bbnplanet.net (4.24.4.194) 4 ms 8 ms 8 ms
8 p2-1.nyc4-nbr3.bbnplanet.net (4.24.4.238) 8 ms 12 ms 12 ms
9 p1-0.nyc4-nbr2.bbnplanet.net (4.0.5.25) 8 ms 12 ms 8 ms
10 p4-0.sanjose1-nbr2.bbnplanet.net (4.0.5.97) 70 ms 70 ms 70 ms
11 p1-0.sanjose1-nbr1.bbnplanet.net (4.0.5.85) 70 ms 70 ms 70 ms
12 p4-0.paloalto-nbr2.bbnplanet.net (4.0.1.1) 70 ms 74 ms 70 ms
13 p0-0-0.paloalto-cr18.bbnplanet.net (4.0.3.86) 70 ms 74 ms 74 ms
14 h1-0.atteasylink.bbnplanet.net (4.1.142.254) 74 ms 74 ms 78 ms
15 199.37.127.234 (199.37.127.234) 78 ms 74 ms 78 ms
16 205.174.74.170 (205.174.74.170) 230 ms 238 ms 227 ms
17 202.97.9.65 (202.97.9.65) 238 ms 231 ms 223 ms
18 * 202.97.9.49 (202.97.9.49) 234 ms *
19 202.97.10.110 (202.97.10.110) 246 ms 250 ms *
20 202.97.24.178 (202.97.24.178) 234 ms 238 ms 238 ms
21 202.102.24.74 (202.102.24.74) 234 ms 254 ms *
五、Traceroute的命令參數:
Traceroute的用法為: Traceroute [options] <IP-address or domain-name> [data size]
[options]的內容有:
[-n]:顯示的地址是用數字表示而不是符號
[-v]:長輸出
[-p]:UDP端口設置(缺省為33434)
[-q]:設置TTL測試數目(缺省為3)
[-t]:設置測包的服務類型
[data size]:每次測試包的數據字節長度(缺省為38)
六、Traceroute的工作原理:
Traceroute最簡單的基本用法是:traceroute hostname
Traceroute程序的設計是利用ICMP及IP header的TTL(Time To Live)欄位(field)。
首先,traceroute送出一個TTL是1的IP datagram(其實,每次送出的為3個40字節的包,包
括源地址,目的地址和包發出的時間標簽)到目的地,當路徑上的第一個路由器(router)
收到這個datagram時,它將TTL減1。此時,TTL變為0了,所以該路由器會將此datagram丟掉
,並送回一個「ICMP time exceeded」消息(包括發IP包的源地址,IP包的所有內容及路由
器的IP地址),traceroute 收到這個消息後,便知道這個路由器存在於這個路徑上,接著t
raceroute 再送出另一個TTL是2 的datagram,發現第2 個路由器...... traceroute 每次將
送出的datagram的TTL 加1來發現另一個路由器,這個重復的動作一直持續到某個datagram
抵達目的地。當datagram到達目的地後,該主機並不會送回ICMP time exceeded消息,因為
它已是目的地了,那麼traceroute如何得知目的地到達了呢?
Traceroute在送出UDP datagrams到目的地時,它所選擇送達的port number 是一個一般
應用程序都不會用的號碼(30000 以上),所以當此UDP datagram 到達目的地後該主機會送
回一個「ICMP port unreachable」的消息,而當traceroute 收到這個消息時,便知道目的
地已經到達了。所以traceroute 在Server端也是沒有所謂的Daemon 程式。
Traceroute提取發 ICMP TTL到期消息設備的IP地址並作域名解析。每次 ,Traceroute
都打印出一系列數據,包括所經過的路由設備的域名及 IP地址,三個包每次來回所花時間。
Traceroute face="宋體" 有一個固定的時間等待響應(ICMP TTL到期消息)。如果這個時
間過了,它將打印出一系列的*號表明:在這個路徑上,這個設備不能在給定的時間內發出I
CMP TTL到期消息的響應。然後,Traceroute給TTL記數器加1,繼續進行。