ping命令是在日常網路管理維護工作中最常用到的命令之一
ping命令的基本原理
ping命令利用icmp協議進行工作,icmp是internet控制訊息協議,用於在主機和路由器之間傳遞控制訊息。ping命令利用了icmp兩種型別的控制訊息:「echo request」(回顯請求)、「echo reply」(回顯應答)。
比如在主機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值,
這點可以通過tracert命令進行驗證,執行「tracert www.baidu.com」命令,
發現資料報正是經過了12次路由。tracert也是乙個利用icmp協議工作的命令,它的原理非常巧妙:它向指定的目的主機傳送多次回顯請求訊息,並把封裝該訊息的資料報的ttl值從1開始遞增。即tracert命令第一次傳送出去的資料報的ttl為1,這些資料報在經過第乙個路由器時,ttl值便被減為了0,這台路由器就要將資料報丟棄,並同時向源主機發回乙個回顯應答訊息,通過這種方式就獲得了資料報所經過的第一台路由器的資訊。通過這種遞進的查詢過程,查詢端就可以追蹤到達目的主機所經過的所有路由器的情況。
另外,大家可能會發現,每次執行tracert命令所查詢到路徑都不大一樣,這是完全正常的,資料報每次傳送時採用不同的路徑,這正是internet所採用的分組交換方式的特點
ping命令錯誤提示分析
如果執行ping命令後,無法接收到對方的回顯應答,則錯誤提示通常為:
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命令時,最常見的錯誤提示還是「request timed out」(請求超時),此時只能根據不同的情況來具體分析。比如電腦無法接入internet,那麼我們可以按照如下思路來排查故障:
① 首先ping閘道器,如果能夠ping通,則證明內部網路沒有問題,問題應該出在外部網路。
② 如果閘道器能夠ping通,接下來再ping某個**,比如「ping www.baidu.com」,測試能否將**解析為ip,以確認是否dns伺服器設定錯誤。
③ 如果在步驟①中ping閘道器不通,則證明問題出在內部網路。此時可以測試能否ping通內網中的其它電腦,如果不能ping通,則證明是我們自己的電腦或是網線出了問題;如果能ping通,問題則與我們的電腦或網線無關,而多半是內部網路的某處出現了故障。
ping命令的基本操作 asdwqx的部落格
ping命令是在日常網路管理維護工作中最常用到的命令之一 ping命令的基本原理ping命令利用icmp協議進行工作,icmp是internet控制訊息協議,用於在主機和路由器之間傳遞控制訊息。ping命令利用了icmp兩種型別的控制訊息 echo request 回顯請求 echo reply 回...
ping 命令 Ping命令
簡單介紹使用ping命令檢查網路連線是否可達以及分析網路發生故障的位置。其中,ping用於檢查網路連線及主機是否可達 ping命令主要用於檢查網路連線及主機是否可達。ping功能是基於icmp協議來實現的 源端向目的端傳送icmp請求 echo request 報文後,根據是否收到目的端的icmp應...
ping 命令 測試物理網路的ping命令
ping命令是測試網路連線 資訊傳送和接受狀況的實用 是乙個系統內建的探測工具。原理是 網路上的機器都有唯一確定的ip位址,使用者給目標ip位址傳送乙個資料報,對方就要返回乙個同樣大小的資料報,根據返回的資料報使用者可以確定目標主機的存在,可以初步判斷目標主機的作業系統等。win r,輸入 ping...