實際上查詢報文分成5類,但是其中有3類已經過時了,只有2類還在使用,一類是回送請求與回答報文,一類是時間戳請求與回答報文。第一類就是我們今天要介紹的實現ping命令的關鍵報文。另外一類也是實現乙個命令的關鍵報文,這個命令就是traceroute,這個命令可能大家平時用的比較少,但是一般it人員有的時候會用到,如果有機會下次可以介紹一下這個命令的實現。
我們先來看一下這類報文的格式:
查詢報文格式
不過這裡有2個比較重要的字段需要解釋一下,乙個是識別符號字段,乙個是序號字段:大家想像一下,我們可以在控制台的不同視窗使用很多個ping命令,那麼這麼多ping命令傳送的包是如果區分的?或者說為什麼同時有這麼多的ping包在傳送和接收相互之間卻不會串了?這就要靠識別符號欄位和序號欄位來區分了,識別符號字段通常是發起請求的程序的id,而序號字段就是icmp包的序號。所以有了這兩個欄位就可以區分到底是哪個ping的哪乙個包了。
下面是這個ping命令對應的程序id:
這個大家應該都很熟悉,這裡就不多說了,至於裡面一些資料到底是什麼意思後面會介紹。
再來看一下對應請求icmp包:
請求icmp包
下面是對應的響應icmp包:
相應icmp包
從上面的圖中可以看到實際的ping命令傳送的包和之前分析的是一致的。
下面介紹一下剛才看到的命令列中的那個資料是什麼意思,這裡要注意的是命令列中顯示的都是響應包:
icmp_seq:對應的就是包的序號
time:就是從請求包發出到收到響應包經過的時間
看到這裡大家應該很明白了,那56 bytes就是資料部分的預設大小,所以加起來一共是64 bytes。
對於平時使用的一些工具命令,最好還是去**一下其底層是如何實現的,原理是什麼,在**的過程中可以學到很多其他的東西,通過wireshark抓包看看我個人覺得也是很有意思的,可以看到命令底層到底在做些什麼。
計算機網路 十六 網路層 ICMP協議
目錄 一 icmp協議詳解 1 差錯報告報文 2 詢問報文 二 icmp協議的應用 1 ping應用 2 traceroute應用 網際控制報文協議 internet control message protocol 可以報告錯誤資訊或者異常情況。網路故障排查 ping回環位址127.0.0.1,若...
icmp報文 計算機網路 ICMP報文
icmp報文分為兩種 1.差錯報告報文 2.詢問報文 下面我們首先來說一下差錯報告報文 差錯報告報文共分為四種 1.終點不可達 當路由器或主機不能交付資料報的時候就向源點傳送終點不可達報文。2.時間超過 這個和ttl生存時間有關。並且是分為兩種情況的。當路由器收到生存時間為0的資料報的時候除了丟棄該...
計算機網路 網路層 ICMP網際控制協議
icmp報文主要是進行差錯報告和詢問報文 icmp差錯報告主要分四種 終點不可達 時間超過,ip資料報生存時間為0 引數問題 收到的資料報首部有字段不正確 改變路由 重定向 有更好的路由 路徑 icmp詢問報文有兩種 回送請求和回答,向乙個特定的主機傳送詢問,用於了解目的是否可到達,及其有關狀態。目...