天天看點

ping的工作原理

ping是 基于 ICMP協定 工作的

ICMP協定

ICMP協定(Internet Control Message Protocol), 又稱網際網路控制封包協定

主要工作:

  1. 确認IP資料包是否成功發送到目的位址
  2. 報告發送過程 IP包被廢棄的原因
  3. 改善網絡設定(比如通過ICMP協定擷取MTU, 可以控制發送包的大小)

ICMP封包封裝在 IP包中, 工作在網絡層 , 是IP協定的助手

主機A192.168.1.1 ping -> 主機B 192.168.1.2

192.168.1.1:

  1. 主機A ICMP協定建構 ICMP回送請求消息資料包(類型:8, 序号:1, 發送時間)
  2. ICMP将資料包連同目的位址192.168.1.2, IP層 加上 IP頭(源IP位址, 目的ip位址, 協定 1 表示ICMP協定)
  3. 加上MAC頭(從本機ARP映射表中找尋 目的IP位址的MAC位址,如果找不到,發送ARP協定,找到 目的MAC位址後,資料鍊路層建構資料幀, 源MAC位址 即本機MAC位址)

192.168.1.2:

  1. 主機B接收 資料幀後, 首先 檢查該封包的目的MAC位址 是否與 本機MAC位址相同, 相同則接受,不同則丢棄
  2. 從資料幀中提取IP資料包,交給本機IP層,IP層 檢查後将有用資訊交給ICMP協定, 由ICMP協定 建構 ICMP回送響應消息資料包

192.168.1.1:

  1. 主機A在規定時間内沒有接收到 ICMP的應答包,說明目标主機不可達
  2. 由目前時間 -最初源主機 發送時間 = ICMP請求延遲時間

總結自小林coding的計算機網絡

繼續閱讀