Ping 命令的執行過程和應用協議

1.  ICMP是「Internet Control Message Ptotocol」的縮寫。它是TCP/IP協議族的一個子協議,用於在IP主機、路由器之間傳遞控制消息。緩存

   控制消息是指網絡通不通、主機是否可達、路由是否可用等網絡自己的消息。這些控制消息雖然並不傳輸用戶數據,可是對於用戶數據的傳遞起着重要的做用。在網絡中常常會使用到ICMP協議。例如常常用於檢查網絡不通的ping命令,這個ping的過程實際上就是ICMP協議工做的過程。還有跟蹤路由的trancert命令也是基於ICMP協議的。服務器

2.  ping.exe的原理:向指定的IP地址發送必定長度的數據包,按照約定,若指定IP地址存在的話,會返回一樣大小的數據包,固然,若在特定時間內沒有返回,就是「超時」,會被認爲指定的IP地址不存在。因爲ping使用的是ICMP協議,有些防火牆軟件會屏蔽ICMP協議,因此有時候ping的結果只能做爲參考,ping不通並不必定說明對方IP不存在。網絡

3.  ping命令執行過程詳解:spa

   機器A ping 機器B進程

   同一網段ip

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

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

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

   4.獲取機器B的MAC地址原理

 

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

  2. 若兩臺機器以前有過通訊,在機器A的ARP緩存表應該有B機IP與其MAC的映射關係;若沒有,則發送ARP請求廣播,獲得機器B的MAC地址,一併交給數據鏈路層

  3. 數據鏈路層構建一個數據幀,目的地址是IP層傳過來的MAC地址,源地址是本機的MAC地址,再附加一些控制信息,依據以太網的介質訪問規則,將他們傳送出去
  4. 機器B收到這個數據幀後,先檢查目的地址,和本機MAC地址對比

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

  6. 不一樣網段

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

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

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

  10. 4.獲取主機B的MAC地址

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

4.  ping的結果:

   1.Request timed out:對方與本身不在同一網段內,經過路由也沒法到達;對方已關機,或者網絡上沒有這個地址;對方存在,不過設置了ICMP數據包過濾;錯誤設置IP地址

   2.Destination host Unreachable:本身未設定默認路由,對方跟本身不在同已網段。

   3.Bad ip address:沒有鏈接到DNS服務器,沒法解析IP,也多是IP不存在

   4.Source quench received:對方或中途服務器繁忙而沒法應答

   5.Ping 127.0.0.1:若是ping不通,則代表本地址TCP/IP協議不能正常工做

相關文章
相關標籤/搜索