1. 程式人生 > >Tracert命令簡介

Tracert命令簡介

cmp 無法解析 域名服務 固定格式 位置 ping 轉換成 rac 計算

tracert 命令概述:

  Tracert是路由跟蹤程序,用於確定 IP 數據報訪問目標所經過的路徑。Tracert 命令用 IP 生存時間 (TTL) 字段和 ICMP 錯誤消息來確定從一個主機到網絡上其他主機的路由。 在工作環境中有多條鏈路出口時,可以通過該命令查詢數據是經過的哪一條鏈路出口。

  Tracert一般用來檢測故障的位置,我們可以使用用tracert IP命令確定數據包在網絡上的停止位置,來判斷在哪個環節上出了問題,雖然還是沒有確定是什麽問題,但它已經告訴了我們問題所在的地方,方便檢測網絡中存在的問題。

tracert 命令原理:

  通過向目標發送不同 IP 生存時間 (TTL) 值的“Internet 控制消息協議 (ICMP)”回應數據包,Tracert 診斷程序確定到目標所采取的路由。要求路徑上的每個路由器在轉發數據包之前至少將數據包上的 TTL 遞減 1。數據包上的 TTL 減為 0 時,路由器應該將“ICMP 已超時”的消息發回源系統。

  Tracert 先發送 TTL 為 1 的回應數據包,並在隨後的每次發送過程將 TTL 遞增 1,直到目標響應或 TTL 達到最大值,從而確定路由。通過檢查中間路由器發回的“ICMP 已超時”的消息確定路由。某些路由器不經詢問直接丟棄 TTL 過期的數據包,這在 Tracert 實用程序中看不到。

  Tracert 命令按順序打印出返回“ICMP 已超時”消息的路徑中的近端路由器接口列表。如果使用 -d 選項,則 Tracert 實用程序不在每個 IP 地址上查詢 DNS。

tracert 命令參數以及描述:

  命令格式如下:

  tracert 目標主機地址(IP或者域名)[參數]

    • -d:不將地址解析成主機名,能夠更快地顯示路由器路徑;
    • -h:指定跟蹤的躍點數;
    • -w:指定等待每個應答的時間(以毫秒為單位)。默認值為3000毫秒(3秒)

下圖顯示了一些有用的Ping命令選項

技術分享圖片

測試示例:

技術分享圖片

出現提示消息如下:

  • Destination net unreachable(目標網絡不可到達):響應表明沒有到目標位置的路由。需要檢查在“Destination net unreachable(目標網絡不可到達)”消息的“Reply from(回答來自)”地址中列出的路由器的路由表。
  • Request timed out(請求超時):響應表明在默認的時間期間(1 秒鐘)內沒有對 ping 作出響應。對於“請求超時”可以檢查以下原因:
    • 目標主機關閉,或者網絡上根本沒有這個地址;物理驗證主機正在運行或通過其他協議檢查連通性。
    • 路由器問題,對方與自己不在同一個網段內,通過路由無法找到對方;要檢查在源和目標之間的路徑中的路由器,請使用 tracert 命令。
    • 對方確實存在,但設置了ICMP數據包過濾(比如防火墻設置)。
    • 響應的等待時間多於一秒。使用 ping 命令上的 -w 選項增加超時。例如,要允許在 5 秒鐘內響應,請使用 ping -w 5000
  • Bad IP address:沒有連接到DNS服務器,所以無法解析這個IP地址,也可能是IP地址不存在。
  • Source quench received:表示對方或中途的服務器繁忙無法回應。
  • Unknown host:遠程主機的名字不能被域名服務器(DNS)轉換成IP地址。故障原因可能是域名服務器有故障,或者其名字不正確,或者網絡管理員的系統與遠程主機之間的通信線路有故障。
  • No answer:本地系統有一條通向中心主機的路由,但卻接收不到它發給該中心主機的任何信息。故障原因可能是下列之一:中心主機沒有工作;本地或中心主機網絡配置不正確;本地或中心的路由器沒有工作;通信線路有故障;中心主機存在路由選擇問題。
  • no rout to host:網卡工作不正常。
  • transmit failed,error code:10043網卡驅動不正常。
  • unknown host name:DNS配置不正確。

ping 示例:

  示例:有A、B、C、D四臺機子(其中A、B的IP分別為192.168.0.4-192.168.0.5,子網掩碼均為255.255.255.0;C、D的IP分別為192.168.1.3-192.168.1.4,子網掩碼均為255.255.255.0),一臺路由RA連接以上兩個子網。

技術分享圖片

  1)、在同一網段

  在主機A上運行“Ping 192.168.0.5”後,都發生了些什麽呢? 首先,Ping命令會構建一個固定格式的ICMP請求數據包,然後由ICMP協議將這個數據包連同地址“192.168.0.5”一起交給IP層協議(和 ICMP一樣,實際上是一組後臺運行的進程),IP層協議將以地址“192.168.0.5”作為目的地址,本機IP地址作為源地址,加上一些其他的控制信息,構建一個IP數據包,並想辦法得到192.168.0.5的MAC地址(物理地址,這是數據鏈路層協議構建數據鏈路層的傳輸單元——幀所必需的),以便交給數據鏈路層構建一個數據幀。關鍵就在這裏,IP層協議通過對比機器B的IP地址、自己的IP地址和自己的子網掩碼,發現它跟自己屬同一網絡,就直接在本網絡內查找這臺機器的MAC。如果以前兩機有過通信,在A機的ARP緩存表應該有B機IP與其MAC的映射關系;如果沒有,就發一個ARP請求廣播,得到B機的MAC, 一並交給數據鏈路層。後者構建一個數據幀,目的地址是IP層傳過來的物理地址,源地址則是本機的物理地址,還要附加上一些控制信息,依據以太網的介質訪問規則,將它們傳送出去。
  主機B收到這個數據幀後,先檢查它的目的地址,並和本機的物理地址對比,如符合,則接收;否則丟棄。接收後檢查該數據幀,將IP數據包從幀中提取出來,交給本機的IP層協議。同樣,IP層檢查後,將有用的信息提取後交給ICMP協議,後者處理後,馬上構建一個ICMP應答包,發送給主機A,其過程和主機A發送ICMP請求包到主機B一模一樣。

  2)、在不同網段

  在主機A上運行“Ping 192.168.1.4”後,開始跟上面一樣,到了怎樣得到MAC地址時,IP協議通過計算發現D機與自己不在同一網段內,就直接將交由路由處理,也就是將路由的MAC取過來,至於怎樣得到路由的MAC,跟上面一樣,先在ARP緩存表找,找不到就廣播吧。路由得到這個數據幀後,再跟主機D進行聯系,如果找不到,就向主機A返回一個超時的信息。

Tracert命令簡介