機器A ping 機器B服務器
ping通知系統創建一個固定格式的ICMP請求數據包網絡
ICMP協議打包這個數據包和機器B的IP地址轉交給IP協議層(一組後臺運行的進程,與ICMP相似)code
IP層協議將以機器B的IP地址爲目的地址,本機IP地址爲源地址,加上一些其餘的控制信息,構建一個IP數據包接口
IP層協議經過機器B的IP地址和本身的子網掩碼,發現它跟本身屬同一網絡,就直接在本網絡查找這臺機器的MAC進程
若兩臺機器以前有過通訊,在機器A的ARP緩存表應該有B機IP與其MAC的映射關係ip
數據鏈路層構建一個數據幀,目的地址是IP層傳過來的MAC地址,源地址是本機的MAC地址,再附加一些控制信息,依據以太網的介質訪問規則,將他們傳送出去路由
機器B收到這個數據幀後,先檢查目的地址,和本機MAC地址對比域名
符合,接收。接收後檢查該數據幀,將IP數據包從幀中提取出來,交給本機的IP協議層協議。IP層檢查後,將有用的信息提取交給ICMP協議,後者處理後,立刻構建一個ICMP應答包,發送給主機A,其過程和主機A發送ICMP請求包到主機B相似(這時候主機B已經知道了主機A的MAC地址,不需再發ARP請求)it
不符合,丟棄
ping通知系統創建一個固定格式的ICMP請求數據包
ICMP協議打包這個數據包和機器B的IP地址轉交給IP協議層(一組後臺運行的進程,與ICMP相似)
IP層協議將以機器B的IP地址爲目的地址,本機IP地址爲源地址,加上一些其餘的控制信息,構建一個IP數據包
獲取主機B的MAC地址
Request timed out
對方已關機,或者網絡上沒有這個地址
對方與本身不在同一網段內,經過路由也沒法到達
對方存在,不過設置了ICMP數據包過濾(好比防火牆設置)
錯誤設置IP地址
正常狀況下,一臺主機一張網卡,一個IP地址或多個網卡,多個IP地址。但若是一臺電腦的「撥號網絡適配器」(至關於一塊軟網卡)的TCO/IP設置中,設置了一個與網卡IP地址處於同一子網的IP地址,這樣,在IP層協議看來,這臺主機就有兩個不一樣的接口處於同一網段內。當從這臺主機ping其餘機器時,會存在這樣的問題:
** 主機不知道將數據包發到哪一個網絡接口,由於有兩個網絡接口都鏈接在同一網段。
** 主機不知道用哪一個地址做爲數據包的源地址。所以,從這臺主機去ping其餘機器,IP層協議會沒法處理,超時後,ping就會給出一個「超時無應答」的錯誤信息提示。但從其餘主機ping這臺主機時,請求包從特定網卡來,ICMP只須簡單的將目的、源地址互換,並更改一些標誌便可,ICMP應答包能順利發出,其餘主機就能成功ping通這臺主機了。
Destination host Unreachable
本身未設定默認路由,對方跟本身不在同已網段
網線有問題
備註:
Request timed out 與 Destination host Unreachable 的區別
所通過的路由器的路由表具備到達目標的路由,而目標由於緣由不可到達,這時出現前者。若是路由表中連到達目標的路由都沒有,就會出現後者。
Bad ip address
Source quench received
Unkonw host
No answer
Ping 127.0.0.1
no rout to host
transmit failed。error code
unknown host name