摘要:在測驗和部署網路通信應用時,我們經常會遇到網路不通的問題,一般都會想到ping一下,本文將帶您了解ping命令的作用和原理~

在測驗和部署網路通信應用時,我們經常會遇到網路不通的問題,一般都會想到ping一下,那么ping命令的作用和原理到底是什么呢?
ping 命令是基于 ICMP 協議來作業的,要明白ping, 先了解下ICMP協議吧~
ICMP協議
ICMP全稱為互聯網控制報文協議(Internet Control Message Protocol),
那么具體是怎么“控制”的呢?
在復雜的網路傳輸環境里,資料包常常會遇到各種問題導致傳輸失敗,網路層的IP協議是一種無連接的,不可靠的資料包協議,它并不能保證資料一定被送達,因此,我們需要其它的協議,在資料包傳發送例外時,能將例外資訊傳回來,這樣才可以調整傳輸策略,以此來控制整個局面,
ICMP協議格式
ICMP 協議是通過IP協議來發送的,報文封裝在 IP 包里面,如下:

ICMP報文格式:

ICMP資料包由8bit的型別欄位和8bit的代碼欄位以及16bit的校驗欄位再加上選項資料組成,
ICMP報文大致分為兩類:查詢報文型別和差錯報文型別,

查詢報文型別
查詢報文主要應用于ping查詢、子網掩碼查詢、時間戳查詢等,
ping命令其實就是對ICMP協議查詢報文型別的使用,

主機A ping 主機B時,ping命令在主機A構建ICMP請求資料包時,ICMP的型別欄位為8(回送請求),當主機B構建ICMP請求資料包時,ICMP的型別欄位為0(回送應答),如果主機A在一定時間內收到了主機B的應答,則表明兩臺主機之間網路是可達的,
差錯報文型別
差錯報文主要產生于資料傳送發送錯誤的時候,包括:目標不可達(網路不可達、主機不可達、協議不可達、埠不可達、禁止分片等)、超時、引數問題、重定向(網路重定向、主機重定向等)等,
IP 路由器無法將 IP 資料包發送給目標地址時,會給發送端主機回傳一個目標不可達的 ICMP 訊息,并在這個訊息中顯示不可達的具體原因,原因記錄在 ICMP 包頭的代碼欄位,
ping命令的作業程序
舉一個例子來描述「ping」命令的作業程序:
假設有兩個主機,主機A(192.168.0.1)和主機B(192.168.0.2),現在我們要監測主機A和主機B之間網路是否可達,
在主機A上輸入命令:ping 192.168.0.2

1)發送端主機構建ICMP請求資料包,ping命令會在主機A上構建一個 ICMP的請求資料包,資料包包含多個欄位,主要的有型別和序號,
型別:在請求資料包中,型別欄位為8;
序號:主要用于區分連續 ping 的時候發出的多個資料包,
每發出一個請求資料包,序號會自動加 1,為了能夠計算往返時間 RTT,它會在報文的資料部分插入發送時間,
2)IP層構建IP資料包, ICMP協議會將這個資料包以及目標IP(192.168.0.2)等資訊一同交給IP層協議,IP層協議得到這些資訊后,將源地址(即本機IP)、目標地址(即目標IP:192.168.0.2)、再加上一些其它的控制資訊,構建成一個IP資料包,
3)加入MAC地址,需要通過ARP映射表找出目標IP(192.168.0.2)所對應的MAC地址,當拿到了目標主機的MAC地址和本機MAC后,一并交給資料鏈路層,組裝成一個資料幀,依據以太網的介質訪問規則,將它們傳送出出去,
主機B收到資料幀后,進行如下步驟:
- 檢查MAC地址,丟棄或接收,提取IP資料包,當主機B收到這個資料幀之后,會首先檢查它的目標MAC地址是不是本機,如果是就接收下來處理,接收之后會檢查這個資料幀,將資料幀中的IP資料包取出來,交給本機的IP層協議,
- IP層檢查IP,IP層協議檢查完之后,再將ICMP資料包取出來交給ICMP協議處理,
- 構建ICMP應答包,應答包的型別欄位為 0,序號為接收到的請求資料包中的序號,
- 應答資料包回發給主機A,
在一定的時間內,如果主機A收到了應答包,則說明它與主機B之間網路可達,如果沒有收到,則說明網路不可達,除了監測是否可達以外,還可以利用應答時間和發起時間之間的差值,計算出資料包的延遲耗時,
課堂練習
關于ICMP協議與ping命令如何作業我們已經了解了,那對于我們在云上搭建的應用,如何測驗彈性云服務器間的通信狀況呢?
回憶一下,彈性云服務器資料流量的進出是需要遵守安全組規則的,沒有安全組規則的允許,誰都不能訪問,
那我們就可以在安全組中添加放通ICMP協議的安全組規則,允許其他云服務器通過 ICMP 協議訪問該云服務器,進而實作通過ping命令來測驗彈性云服務器間的通信狀況了,
安全組規則配置如下:

獲取更多安全組資訊,請戳這里,
本文分享自華為云社區《【云小課】基礎服務第65課 網路知識一籮筐——網路好不好,ping一下就知道》,原文作者:云小萌,
點擊關注,第一時間了解華為云新鮮技術~
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/267037.html
標籤:其他
