ping命令的基本操作 asdwqx的部落格

2022-09-23 01:48:13 字數 2305 閱讀 8513

ping命令是在日常網路管理維護工作中最常用到的命令之一

ping命令的基本原理ping命令利用icmp協議進行工作,icmp是internet控制訊息協議,用於在主機和路由器之間傳遞控制訊息。ping命令利用了icmp兩種型別的控制訊息:「echo request」(回顯請求)、「echo reply」(回顯應答)。比如在主機a上執行ping命令,目標主機是b。在a主機上就會傳送「echo request」(回顯請求)控制訊息,主機b正確接收後即發回「echo reply」(回顯應答)控制訊息,從而判斷出雙方能否正常通訊。其工作原理如圖1所示。ping命令的基本操作如果在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所採用的分組交換方式的特點

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命令的基本操作

ping命令是在日常網路管理維護工作中最常用到的命令之一 ping命令的基本原理 ping命令利用icmp協議進行工作,icmp是internet控制訊息協議,用於在主機和路由器之間傳遞控制訊息。ping命令利用了icmp兩種型別的控制訊息 echo request 回顯請求 echo reply ...

ping 命令 測試物理網路的ping命令

ping命令是測試網路連線 資訊傳送和接受狀況的實用 是乙個系統內建的探測工具。原理是 網路上的機器都有唯一確定的ip位址,使用者給目標ip位址傳送乙個資料報,對方就要返回乙個同樣大小的資料報,根據返回的資料報使用者可以確定目標主機的存在,可以初步判斷目標主機的作業系統等。win r,輸入 ping...

ping命令的使用

ping 是測試網路聯接狀況以及資訊包傳送和接收狀況使用的工具,是網路測試最常用的命令。ping 向目標主機 位址 傳送乙個回送請求資料報,要求目標主機收到請求後給予答覆,從而判斷網路的響應時間和本機是否與目標主機 位址 連通。如果執行 ping 不成功,則可以 故障出現在以下幾個方面 1 網線故障...