icmp是ip層的乙個組成部分,它傳遞查詢報文和差錯報文,icmp報文通常被ip層或更高層協議(tcp或udp)使用,它是在ip資料報內被傳輸的,如圖1所示。
圖1:icmp封裝在ip資料報內部
icmp
報文格式
如圖2所示,所有報文的前4個位元組都是一樣的,但是剩下的其他位元組則互不相同。
圖2:icmp報文格式
型別字段可以有15個不同的值,以描述特定型別的icmp報文。某些icmp報文還使用代
碼字段的值來進一步描述不同的條件。
檢驗和字段覆蓋整個icmp報文。使用的演算法與前面介紹的ip首部檢驗和演算法相同。icmp的檢驗和是必需的。
icmp
報文的型別
各種型別的icmp報文如3所示,不同型別由報文中的型別欄位和**欄位來共同決定。
圖中的最後兩列表明icmp報文是乙份查詢報文還是乙份差錯報文。因為對icmp差錯報
文有時需要作特殊處理,因此我們需要對它們進行區分。例如,在對icmp差錯報文進行響應
時,永遠不會生成另乙份icmp差錯報文(如果沒有這個限制規則,可能會遇到乙個差錯產生
另乙個差錯的情況,而差錯再產生差錯,這樣會無休止地迴圈下去)。
圖3:icmp報文型別
icmp
位址掩碼請求與應答
icmp位址掩碼請求用於無盤系統在引導過程中獲取自己的子網掩碼。系統廣播它的icmp請求報文(這一過程與無盤系統在引導過程中用rarp獲取ip位址是類似的)。無盤
系統獲取子網掩碼的另乙個方法是bootp協議。icmp位址掩碼請求和應答報文的格式如圖4所示。
icmp報文中的識別符號和序列號字段由傳送端任意選擇設定,這些值在應答中將被返回。這樣,傳送端就可以把應答與請求進行匹配。
icmp
時間戳請求與應答
icmp時間戳請求允許系統向另乙個系統查詢當前的時間。返回的建議值是自午夜開始計
算的毫秒數,協調的統一時間(coordinated universal time, utc)。
icmp時間戳請求和應答報文格式如圖5所示。
圖5:icmp時間戳請求和應答報文
請求端填寫發起時間戳,然後傳送報文。應答系統收到請求報文時填寫接收時間戳,在傳送應答時填寫傳送時間戳。但是,實際上,大多數的實現把後面兩個欄位都設成相同的值。
icmp
埠不可達差錯
上面介紹了icmp兩種查詢報文—位址掩碼和時間戳查詢及應答。現在來分析一種icmp差錯報文,即埠不可達報文,它是icmp目的不可到達報文中的一種,以此來看一看icmp差錯報文中所附加的資訊。
我們使用採用udp協議的tftp服務(預設埠號69),在客戶端使用tftp客戶程式connect服務端的非69埠,這樣就會發生埠不可達錯誤。完整的差錯報文如圖6所示:
圖6:「udp埠不可達」返回的icmp報文
icmp的乙個規則是, icmp差錯報文必須包括生成該差錯報文的資料報ip首部(包含任何選項),還必須至少包括跟在該ip首部後面的前8個位元組(包含源埠和目的埠)。在我們的例子中,跟在ip首部後面的前8個位元組包含udp的首部。
ICMP協議和ICMP協議
一 icmp協議 因為ip協議不提供可靠的傳輸服務,也不提供端到端或點到點的確認,如果出錯可以通過icmp報告來看,它是在ip模組中實現。tcp ip協議設計的icmp協議就是為了彌補ip協議的不足。它是tcp ip協議族的乙個子協議,用於在ip主機 路由器之間傳遞控制訊息。控制訊息指網路通不通 主...
網路協議 ICMP協議(1) 報文格式
網際網路控制訊息協議 英文 internet control message protocol,icmp 是網際網路協議族的核心協議之一。定義在rfc 792文件中。icmp的訊息大致可以分為兩類 一類是差錯報文,即通知出錯原因的錯誤訊息 如traceroute 另一類是查詢報文,即用於診斷的查詢訊...
ICMP協議分析
icmp報文 icmp應用 icmp安全性 icmp的兩級封裝 更加詳細地看一下資料報的格式吧。用來傳送icmp 報文的ip 資料報上實際上有不少字段。但是實際上與icmp 協議相關的只有7 個子段。1 協議 2 源ip 位址 3 目的ip 位址 4 生存時間 這四個包含在ip 首部的字段。5 型別...