ping命令執行過程詳解

ping命令執行過程詳解

機器A ping 機器B服務器

同一網段

  1. ping通知系統創建一個固定格式的ICMP請求數據包網絡

  2. ICMP協議打包這個數據包和機器B的IP地址轉交給IP協議層(一組後臺運行的進程,與ICMP相似)code

  3. IP層協議將以機器B的IP地址爲目的地址,本機IP地址爲源地址,加上一些其餘的控制信息,構建一個IP數據包接口

  4. 獲取機器B的MAC地址
    • IP層協議經過機器B的IP地址和本身的子網掩碼,發現它跟本身屬同一網絡,就直接在本網絡查找這臺機器的MAC進程

      • 若兩臺機器以前有過通訊,在機器A的ARP緩存表應該有B機IP與其MAC的映射關係ip

      • 若沒有,則發送ARP請求廣播,獲得機器B的MAC地址,一併交給數據鏈路層
    • 數據鏈路層構建一個數據幀,目的地址是IP層傳過來的MAC地址,源地址是本機的MAC地址,再附加一些控制信息,依據以太網的介質訪問規則,將他們傳送出去路由

    • 機器B收到這個數據幀後,先檢查目的地址,和本機MAC地址對比域名

      • 符合,接收。接收後檢查該數據幀,將IP數據包從幀中提取出來,交給本機的IP協議層協議。IP層檢查後,將有用的信息提取交給ICMP協議,後者處理後,立刻構建一個ICMP應答包,發送給主機A,其過程和主機A發送ICMP請求包到主機B相似(這時候主機B已經知道了主機A的MAC地址,不需再發ARP請求)it

      • 不符合,丟棄

不一樣網段

  1. ping通知系統創建一個固定格式的ICMP請求數據包

  2. ICMP協議打包這個數據包和機器B的IP地址轉交給IP協議層(一組後臺運行的進程,與ICMP相似)

  3. IP層協議將以機器B的IP地址爲目的地址,本機IP地址爲源地址,加上一些其餘的控制信息,構建一個IP數據包

  4. 獲取主機B的MAC地址

    • IP協議經過計算髮現主機B與本身不在同一網段內,就直接交給路由處理,就是將路由的MAC取過來,至於怎麼獲得路由的MAC地址,和以前同樣,先在ARP緩存表中尋找,找不到能夠利用廣播。路由獲得這個數據幀以後,再跟主機B聯繫,若找不到,就向主機A返回一個超時信息。

對ping後返回信息的分析

  1. Request timed out

    • 對方已關機,或者網絡上沒有這個地址

    • 對方與本身不在同一網段內,經過路由也沒法到達

    • 對方存在,不過設置了ICMP數據包過濾(好比防火牆設置)

    • 錯誤設置IP地址

    正常狀況下,一臺主機一張網卡,一個IP地址或多個網卡,多個IP地址。但若是一臺電腦的「撥號網絡適配器」(至關於一塊軟網卡)的TCO/IP設置中,設置了一個與網卡IP地址處於同一子網的IP地址,這樣,在IP層協議看來,這臺主機就有兩個不一樣的接口處於同一網段內。當從這臺主機ping其餘機器時,會存在這樣的問題:

    ** 主機不知道將數據包發到哪一個網絡接口,由於有兩個網絡接口都鏈接在同一網段。
    ** 主機不知道用哪一個地址做爲數據包的源地址。所以,從這臺主機去ping其餘機器,IP層協議會沒法處理,超時後,ping就會給出一個「超時無應答」的錯誤信息提示。但從其餘主機ping這臺主機時,請求包從特定網卡來,ICMP只須簡單的將目的、源地址互換,並更改一些標誌便可,ICMP應答包能順利發出,其餘主機就能成功ping通這臺主機了。

  2. Destination host Unreachable

    • 本身未設定默認路由,對方跟本身不在同已網段

    • 網線有問題

    備註
    Request timed out 與 Destination host Unreachable 的區別
    所通過的路由器的路由表具備到達目標的路由,而目標由於緣由不可到達,這時出現前者。若是路由表中連到達目標的路由都沒有,就會出現後者。

  3. Bad ip address

    • 沒有鏈接到DNS服務器,沒法解析IP,也多是IP不存在
  4. Source quench received

    • 對方或中途服務器繁忙而沒法應答
  5. Unkonw host

    • 遠程主機的名字不能被域名服務器轉換成IP地址,故障緣由多是DNS服務器有故障,或者名字不正確,或者網絡管理員的系統與遠程主機之間的通訊線路故障。
  6. No answer

    • 無響應。說明本地系統有一條通向中心主機的路由,但卻接收不到它發給該中心主機的人呢和信息。故障緣由多是:中心主機沒有工做;本地或中心主機網絡配置不正確;本地或中心的路由器沒有工做;通訊線路有故障;中心主機存在路由選擇問題。
  7. Ping 127.0.0.1

    • 若是ping不通,則代表本地址TCP/IP協議不能正常工做
  8. no rout to host

    • 網卡工做不正常
  9. transmit failed。error code

    • 10043網卡驅動不正常
  10. unknown host name

    • DNS配置不正確
相關文章
相關標籤/搜索