您好,登錄后才能下訂單哦!
ping命令是在日常網絡管理維護工作中最常用到的命令之一
比如在主機A上執行ping命令,目標主機是B。在A主機上就會發送“echo request”(回顯請求)控制消息,主機B正確接收后即發回“echo reply”(回顯應答)控制消息,從而判斷出雙方能否正常通信。其工作原理如圖1所示。
如果在A主機上能夠ping通B主機,那么主機A上顯示的信息就是從主機B上返回來的“回顯應答”。如果不能ping通,主機A上顯示的信息則是由系統自身所產生的錯誤提示。
在Windows系統中,默認情況下,每次執行ping命令會發送4個“回顯請求”消息,每個消息的數據包大小為32字節,如果一切正常,應能收到4個同樣為32字節大小的“回顯應答”消息。其格式如下:
Reply from ...(IP):bytes=32 time<1ms TTL=128
在這些“回顯應答”中包含了豐富的信息:
通過回顯應答中的“time”時間,可以大致的推斷出網速情況,數據傳遞經過的時間越長,網速越慢。
回顯應答中的“TTL”,即數據包的生存周期。每個系統對其所發送的數據包都要賦一個TTL的初始值,默認情況下,
Windows XP系統為128,Win7系統為64,Linux系統為64或255(當然,系統的TTL值都是可以修改的)。數據包每經過一次路由,TTL值就要減1,所以通過TTL值,
我們既可以大概地推算出對方主機所用的操作系統,又可以推斷出在數據包在傳送過程中經過了多少次路由。比如,在執行“ping www.baidu.com”命令時,
回顯應答中顯示的TTL值為52,則首先可以大概推斷出百度使用的是Linux系統,其次可以得知數據在傳送過程中經過了12次路由。
這點可以通過tracert命令進行驗證,執行“tracert www.baidu.com”命令,
發現數據包正是經過了12次路由。tracert也是一個利用ICMP協議工作的命令,它的原理非常巧妙:它向指定的目的主機發送多次回顯請求消息,并把封裝該消息的數據包的TTL值從1開始遞增。即tracert命令第一次發送出去的數據包的TTL為1,這些數據包在經過第一個路由器時,TTL值便被減為了0,這臺路由器就要將數據包丟棄,并同時向源主機發回一個回顯應答消息,通過這種方式就獲得了數據包所經過的第一臺路由器的信息。通過這種遞進的查詢過程,查詢端就可以追蹤到達目的主機所經過的所有路由器的情況。
另外,大家可能會發現,每次執行tracert命令所查詢到路徑都不大一樣,這是完全正常的,數據包每次傳送時采用不同的路徑,這正是Internet所采用的分組交換方式的特點
Request timed out(請求超時)
出現這種提示,表示網絡不通,但具體故障原因要視實際網絡情況而定。
另外還有一種錯誤提示為:
Destination host unreachable(目的主機不可達)
出現這種提示,則通常是因為沒有設置網關或網關設置不正確而導致的。
比如,一臺主機的IP地址為192.168.0.10/24,默認網關為192.168.0.1。在這臺主機上隨便ping另外一個網段中的不存在的IP,如“ping 172.16.1.10”,因為這個IP根本不存在,所以肯定無法ping通,但此時發送方主機的“回顯請求”消息已發送給了網關,只是網關無法將其轉發給目的主機,因而此時顯示的錯誤提示就為“Request timed out”(請求超時)。
接下來將這臺主機的默認網關刪掉,再次執行“ping 172.16.1.10”命令,此時由于沒有網關為其轉發數據,因而發送方主機根本不會將“回顯請求”消息發送出去,此時顯示的錯誤提示就為“Destination host unreachable”(目的主機不可達),即根本找不到數據發送的路徑。
因而通過ping命令不同的錯誤提示,我們可以大致地判斷出故障原因。
① 首先ping網關,如果能夠ping通,則證明內部網絡沒有問題,問題應該出在外部網絡。
② 如果網關能夠ping通,接下來再ping某個網址,比如“ping www.baidu.com”,測試能否將網址解析為IP,以確認是否DNS服務器設置錯誤。
③ 如果在步驟①中ping網關不通,則證明問題出在內部網絡。此時可以測試能否ping通內網中的其它電腦,如果不能ping通,則證明是我們自己的電腦或是網線出了問題;如果能ping通,問題則與我們的電腦或網線無關,而多半是內部網絡的某處出現了故障。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。