TCP/IP協議-學習筆記3-ICMP報文

目錄

一、報文結構

二、各種ICMP報文類型

2.1 查詢報文

2.1.1 回顯請求和應答

2.1.2 時間戳請求和應答

2.1.3 信息請求和應答

2.1.4 地址掩碼和應答

2.2 差錯報文

2.2.1 目的不可達

2.2.2 冷卻報文

2.2.3 重定向 

2.2.4 超時

2.2.5 參數錯誤 


一、報文結構

ICMP(網絡控制管理協議)報文是封裝在IP報文內部傳輸的,也就是ICMP報文是IP報文的數據部分。

下圖爲ICMP報文格式:

其中 8位類型,有15種不同類型,部分協議還可以複用8位代碼來擴展類型。

二、各種ICMP報文類型

可以總的將ICMP報文分爲查詢報文和差錯報文。

 

2.1 查詢報文

2.1.1 回顯請求和應答

Ping就是用這種報文進行查詢和迴應。Type(8)請求回顯報文(Echo)Type(0)回顯應答報文(Echo Reply)

2.1.2 時間戳請求和應答

時間戳報文是用來記錄收發以及傳輸時間的報文。Originate Timestamp記錄的是發送方發送報文的時刻;Receive Timestamp記錄的是接收方收到報文的時刻;Transmit Timestamp表示回顯這最後發送報文的時刻。Type(13) 是請求報文,Type(14)是應答報文

2.1.3 信息請求和應答

這種報文是用來找出一個主機所在的網絡個數(一個主機可能會在多個網絡中)。報文的IP消息頭的目的地址會填爲全0,表示this,源地址會填爲源IP所在的網絡IP。

2.1.4 地址掩碼和應答

ICMP地址掩碼請求用於無盤系統在引導過程中獲取自己的子網掩碼。

 

2.2 差錯報文

2.2.1 目的不可達

        網絡在傳輸過程中,發現目的無法到達, 這時候,就會向源主機發送目的不可達(type 爲 3), code 不同代表不同的原因。

2.2.2 冷卻報文

        路由器在處理報文時會有一個緩存隊列。如果超過最大緩存隊列,將無法處理,從而丟棄報文。並向源發送方發一個ICMP冷卻報文(Type4)

2.2.3 重定向 

         當路由收到IP數據報,發現數據報的目的地址在路由表上沒有,它就會發ICMP重定向報文(Type爲5)給源發送方

2.2.4 超時

        網絡傳輸IP數據報的過程中,如果IP數據包的TTL值逐漸遞減爲0時,需要丟棄數據報。這時,路由器需要向源發送方發送ICMP超時報文(Type爲11),Code爲0,表示傳輸過程中超時了。

        一個IP數據報可能會因爲過大而被分片,然後在目的主機側把所有的分片重組。如果主機遲遲沒有等到所有的分片報文,就會向源發送方發送一個ICMP超時報文,Code爲1,表示分片重組超時了。

2.2.5 參數錯誤 

         當路由器或主機處理數據報時,發現因爲報文頭的參數錯誤而不得不丟棄報文時,需要向源發送方發送 ICMP 參數錯誤(type爲12) IP首部錯誤code爲0,缺少必須的選項code爲1.

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章