tracert命令
Tracert 工作原理
通過向目標發送不同 IP 生存時間 (TTL) 值的“Internet 控制消息協議 (ICMP)”回應數據包,Tracert
診斷程序確定到目標所采取的路由。要求路徑上的每個路由器在轉發數據包之前至少將數據包上的 TTL 遞減 1。數據包上的 TTL 減為 0
時,路由器應該將“ICMP 已超時”的消息發回源系統。
Tracert 先發送 TTL 為 1 的回應數據包,并在隨后的每次發送過程將 TTL 遞增 1,直到目標響應或 TTL
達到最大值,從而確定路由。通過檢查中間路由器發回的“ICMP 已超時”的消息確定路由。某些路由器不經詢問直接丟棄 TTL 過期的數據包,這在
Tracert 實用程序中看不到。
tracert命令參數
-d
防止 tracert 試圖將中間路由器的 IP 地址解析為它們的名稱。這樣可加速顯示 tracert 的結果。
-h MaximumHops
指定搜索目標(目的)的路徑中存在的躍點的最大數。默認值為 30 個躍點。
-j HostList
指定回顯請求消息將 IP 報頭中的松散源路由選項與 HostList
中指定的中間目標集一起使用。使用松散源路由時,連續的中間目標可以由一個或多個路由器分隔開。HostList 中的地址或名稱的最大數量為
9。HostList 是一系列由空格分隔的 IP 地址(用帶點的十進制符號表示)。僅當跟蹤 IPv4 地址時才使用該參數。
-w Timeout
指定等待“ICMP 已超時”或“回顯答復”消息(對應于要接收的給定“回現請求”消息)的時間(以毫秒為單位)。如果超時時間內未收到消息,則顯示一個星號 (*)。默認的超時時間為 4000(4 秒)。
-R
指定 IPv6 路由擴展標頭應用來將“回顯請求”消息發送到本地主機,使用目標作為中間目標并測試反向路由。
-S
指定在“回顯請求”消息中使用的源地址。僅當跟蹤 IPv6 地址時才使用該參數。
-4
指定 Tracert.exe 只能將 IPv4 用于本跟蹤。
-6
指定 Tracert.exe 只能將 IPv6 用于本跟蹤。
TargetName
指定目標,可以是 IP 地址或主機名。
-?
在命令提示符下顯示幫助。
注釋
• 該診斷工具通過向目標發送具有變化的“生存時間 (TTL)”值的“ICMP
回響請求”消息來確定到達目標的路徑。要求路徑上的每個路由器在轉發數據包之前至少將 IP 數據包中的 TTL 遞減 1。這樣,TTL
就成為最大鏈路計數器。數據包上的 TTL 到達 0 時,路由器應該將“ICMP 已超時”的消息發送回源計算機。Tracert 發送 TTL 為
1 的第一條“回響請求”消息,并在隨后的每次發送過程將 TTL 遞增
1,直到目標響應或躍點達到最大值,從而確定路徑。默認情況下躍點的最大數量是 30,可使用 -h 參數指定。檢查中間路由器返回的“ICMP
超時”消息與目標返回的“回顯答復”消息可確定路徑。但是,某些路由器不會為其 TTL 值已過期的數據包返回“已超時”消息,而且這些路由器對于
tracert 命令不可見。在這種情況下,將為該躍點顯示一行星號 (*)。
• 要跟蹤路徑并為路徑中的每個路由器和鏈路提供網絡延遲和數據包丟失信息,請使用 pathping 命令。
• 只有當“Internet 協議 (TCP/IP)”協議在“網絡連接”中安裝為網絡適配器屬性的組件時,該命令才可用。
這是驗證通往遠程主機路徑的實用程序
用法: tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout] target_name
示例
要跟蹤名為 corp7.microsoft.com 的主機的路徑,請鍵入:
tracert corp7.microsoft.com
要跟蹤名為 corp7.microsoft.com 的主機的路徑并防止將每個 IP 地址解析為它的名稱,請鍵入:
tracert -d corp7.microsoft.com
要跟蹤名為 corp7.microsoft.com 的主機的路徑并使用松散源路由 10.12.0.1-10.29.3.1-10.1.44.1,請鍵入:
tracert -j 10.12.0.1 10.29.3.1 10.1.44.1 corp7.microsoft.com
執行tracert命令時,會有如下結果,這其中的第2列,第3列,第4列為何有三個時間,如果要表示經過該IP的時間,分別對每一跳的地址發送三個測試包,所以有三個時間,分別是最小、平均、最大時間。
C:\>tracert -d www.hzcnc.com
Tracing route to www.hzcnc.com [218.108.250.243]
over a maximum of 30 hops:
1 <10 ms <10 ms <10 ms 210.83.128.110
2 <10 ms <10 ms <10 ms 210.83.128.110
3 11 ms <10 ms <10 ms 218.108.253.241
4 <10 ms 10 ms <10 ms 218.108.254.34
5 10 ms <10 ms 10 ms 218.108.252.66
6 <10 ms <10 ms <10 ms 218.108.250.243
在下例中,數據包必須通過兩個路由器(10.0.0.1 和 192.168.0.1)才能到達主機
172.16.0.99。主機的默認網關是 10.0.0.1,192.168.0.0 網絡上的路由器的 IP 地
址是 192.168.0.1。
C:\>tracert 172.16.0.99 -d
Tracing route to 172.16.0.99 over a maximum of 30 hops
1 2s 3s 2s 10,0.0,1
2 75 ms 83 ms 88 ms 192.168.0.1
3 73 ms 79 ms 93 ms 172.16.0.99
Trace complete.
用 tracert 解決問題
可以使用 tracert 命令確定數據包在網絡上的停止位置。下例中,默認網關確定 19 2.168.10.99 主機沒有有效路徑。
這可能是路由器配置的問題,或者是 192.168.10. 0 網絡不存在(錯誤的 IP 地址)。
C:\>tracert 192.168.10.99
Tracing route to 192.168.10.99 over a maximum of 30 hops
1 10.0.0.1 reportsestination net unreachable.
Trace complete.
Tracert 實用程序對于解決大網絡問題非常有用,此時可以采取幾條路徑到達同一個
點。