ping命令執行過程詳解

2021-08-08 06:50:57 字數 1696 閱讀 4997

ping命令執行過程詳解

機器a ping 機器b

同一網段

ping通知系統建立乙個固定格式的icmp請求資料報

icmp協議打包這個資料報和機器b的ip位址轉交給ip協議層(一組後台執行的程序,與icmp類似)

獲取機器b的mac位址

4.1 ip層協議通過機器b的ip位址和自己的子網掩碼,發現它跟自己屬同一網路,就直接在本網路查詢這台機器的mac

4.1.1 若兩台機器之前有過通訊,在機器a的arp快取表應該有b機ip與其mac的對映關係

4.1.2 若沒有,則傳送arp請求廣播,得到機器b的mac位址,一併交給資料鏈路層

4.2 資料鏈路層構建乙個資料幀,目的位址是ip層傳過來的mac位址,源位址是本機的mac位址,再附加一些控制資訊,依據乙太網的介質訪問規則,將他們傳送出去

4.3 機器b收到這個資料幀後,先檢查目的位址,和本機mac位址對比

4.3.1    符合,接收。接收後檢查該資料幀,將ip資料報從幀中提取出來,交給本機的ip協議層協議。ip層檢查後,將有用的資訊提取交給icmp協議,後者處理後,馬上構建乙個icmp應答包,傳送給主機a,其過程和主機a傳送icmp請求包到主機b類似(這時候主機b已經知道了主機a的mac位址,不需再發arp請求)
4.3.2 不符合,丟棄

不同網段

ping通知系統建立乙個固定格式的icmp請求資料報

icmp協議打包這個資料報和機器b的ip位址轉交給ip協議層(一組後台執行的程序,與icmp類似)

獲取主機b的mac位址

ip協議通過計算發現主機b與自己不在同一網段內,就直接交給路由處理,就是將路由的mac取過來,至於怎麼得到路由的mac位址,和之前一樣,先在arp快取表中尋找,找不到可以利用廣播。路由得到這個資料幀之後,再跟主機b聯絡,若找不到,就向主機a返回乙個超時資訊。

對ping後返回資訊的分析

request timed out

對方已關機,或者網路上沒有這個位址

對方與自己不在同一網段內,通過路由也無法到達

對方存在,不過設定了icmp資料報過濾(比如防火牆設定)

錯誤設定ip位址

正常情況下,一台主機一張網絡卡,乙個ip位址或多個網絡卡,多個ip位址。但如果一台電腦的「撥號網路介面卡」(相當於一塊軟網絡卡)的tco/ip設定中,設定了乙個與網絡卡ip位址處於同一子網的ip位址,這樣,在ip層協議看來,這台主機就有兩個不同的介面處於同一網段內。當從這台主機ping其他機器時,會存在這樣的問題:

** 主機不知道將資料報發到哪個網路介面,因為有兩個網路介面都連線在同一網段。

** 主機不知道用哪個位址作為資料報的源位址。因此,從這台主機去ping其他機器,ip層協議會無法處理,超時後,ping就會給出乙個「超時無應答」的錯誤資訊提示。但從其他主機ping這台主機時,請求包從特定網絡卡來,icmp只須簡單的將目的、源位址互換,並更改一些標誌即可,icmp應答包能順利發出,其他主機就能成功ping通這台主機了。

2 destination host unreachable

自己未設定預設路由,對方跟自己不在同已網段

網線有問題

ping命令執行過程詳解

ping命令執行過程詳解 ping 是我們經常會接觸到的命令,但是大家對這個命令的了解有多少,這個命令的執行過程以及返回過來的資訊代表什麼意思呢?接下來我為大家逐一講解。先看一下 ping 的執行過程 就以這樣乙個網路作為例子 假設有a b c d四台機器,一台路由ra,子網掩碼均為255.255....

ping命令執行過程詳解

ping命令執行過程詳解 ping 是我們經常會接觸到的命令,但是大家對這個命令的了解有多少,這個命令的執行過程以及返回過來的資訊代表什麼意思呢?接下來我為大家逐一講解。先看一下 ping 的執行過程 就以這樣乙個網路作為例子 假設有a b c d四台機器,一台路由ra,子網掩碼均為255.255....

ping過程詳解

ping過程詳解 ping命令的主要作用的是檢查網路的連通情況和檢測網路的速度。相信大家都用過ping命令,下面主要介紹一下ping命令是怎樣乙個執行過程。主要的ping有兩種情況,一種是同一網段,一種是跨網段的。首先看乙個拓撲圖 首先,如果主機a要ping主機b,那麼主機a就要封裝二層報文,他會先...