1. icmp同意主機或路由報告差錯情況和提供有關異常情況。icmp是網際網路的標準協議,但icmp不是高層協議,而是ip層的協議。通常icmp報文被ip層或更高層協議(tcp或udp)使用。一些icmp報文把差錯報文返回給使用者程序。
2. icmp報文作為ip層資料報的資料,加上資料報的首部,組成資料報傳送出去。
3. icmp報文的種類有兩種,即icmp差錯報告報文和icmp詢問報文。
1. 型別:佔8位
2. **:佔8位
3. 檢驗和:佔16位
說明:icmp全部報文的前4個位元組都是一樣的,可是剩下的其它位元組則互不同樣。
4. 其它欄位都icmp報文型別不同而不同。
1> icmp報文的前4個位元組是統一的格式,共同擁有三個字段:即型別,**和檢驗和。
2> 8位型別和8位**字段一起決定了icmp報文的型別。
型別8,**0:表示
回顯請求(ping請求)。
型別0,**0:表示回顯應答(ping應答)
型別11,**0:超時
3>16位的檢驗和字段:包含資料在內的整個icmp資料報的檢驗和;其計算方法和ip頭部檢驗和的計算方法一樣的。
icmp報文詳細分為查詢報文和差錯報文(對icmp差錯報文有時須要做特殊處理,因此要對其進行區分。如:對icmp差錯報文進行響應時,永遠不會生成還有乙份icmp差錯報文,否則會出現死迴圈)
1. icmp差錯報告報文共同擁有5種
1> 終點不可達:終點不可達分為:網路不可達,主機不可達,協議不可達,port不可達,須要分片但df位元已置為1,以及源路由失敗等六種情況,其**字段分別置為0至5。當出現以上六種情況時就向源站傳送終點不可達報文。
說明:port不可達:udp的規則之中的乙個是:假設收到udp資料報並且目的port與某個正在使用的程序不相符,那麼udp返回乙個icmp不可達報文。
2> 源站抑制:當路由器或主機因為擁塞而丟棄資料報時,就向源站傳送源站抑制報文,使源站知道應當將資料報的傳送速率放慢。
3> 時間超過:當路由器收到生存時間為零的資料報時,除丟棄該資料報外,還要向源站傳送時間超過報文。當目的站在預先規定的時間內不能收到乙個資料報的全部資料報片時,就將已收到的資料報片都丟棄,並向源站傳送時間超過報文。
4> 引數問題:當路由器或目的主機收到的資料報的首部中的字段的值不對時,就丟棄該資料報,並向源站傳送引數問題報文。
5> 改變路由(重定向)路由器將改變路由報文傳送給主機,讓主機知道下次應將資料報傳送給另外的路由器。
說明:下面幾種情況都不會導致產生icmp差錯報文
1>icmp差錯報文(可是,icmp查詢報文可能會產生icmp差錯報文)
2>目的位址是廣播位址或多播位址的ip資料報
3>作為鏈路層廣播的資料報
4>不是ip分片的第一片
5>源位址不是單個主機的資料報。即源位址不能為零位址、環迴位址、廣播位址或多播位址。
這些規則是為了防止過去同意icmp差錯報文對廣播分組響應所帶來的廣播風暴。
2.全部的icmp差錯報告報文中的資料字段都具有同樣的格式。將收到的須要進行差錯報告ip資料報的首部和資料字段的前8個位元組提取出來,作為icmp報文的資料字段。再加上響應的icmp差錯報告報文的前8個位元組,就構成了icmp差錯報告報文。提取收到的資料報的資料字段的前8個位元組是為了得到運輸層的port號(對於tcp和udp)以及運輸層報文的傳送序號(對於tcp)。
注:一下情況不傳送icmp差錯報告報文
1.icmp詢問報文有四種回送請求和回答,時間戳請求和回答,掩碼位址請求和回答,以及路由器詢問和通過。
1>icmp回送請求報文是由主機或路由器向乙個特定的目的主機發出的詢問。收到此報文的機器必須給源主機傳送icmp回送應答報文。這樣的詢問報文用來測試目的站是否可達以及了解其有關狀態。
2>icmp時間戳請求同意系統向還有乙個系統查詢當前的時間。該icmp報文的優點是它提供了毫秒級的解析度,而利用其它方法從別的主機獲取的時間僅僅能提供秒級的解析度。請求端填寫發起時間,然後傳送報文。應答系統收到請求報文時填寫接收時間戳,在傳送應答時填寫傳送時間戳。大多數的實現是把後面兩個欄位都設成同樣的值。
3>主機使用icmp位址掩碼請求報文可向子網掩碼server得到某個介面的位址掩碼。系統廣播它的icmp請求報文。icmp報文中的識別符號和序列號字段由傳送端隨意選擇設定,這些值在應答中將被返回,這樣,傳送端就能夠把應答與請求進行匹配。
4>主機使用icmp路由器詢問和通過報文可了解連線在本網路上的路由器是否正常工作。主機將路由器詢問報文進行廣播(或多播)。收到詢問報文的乙個或幾個路由器就使用路由器通過報文廣播其路由選擇資訊
1.概述
1>ping程式是為了測試還有一台主機是否可達。該程式傳送乙份icmp回顯請求報文給主機,並等待返回icmp回顯應答。
2>ping程式還能測出到這台主機的往返時間,以表明該主機離我們有多遠。
2.我們將傳送回顯請求的ping程式為客戶,而稱被ping的主機為server。
3.icmp回顯請求和回顯應答報文格式:
1>unix系統在實現ping程式時把icmp報文中的識別符號欄位置成傳送程序的id號。這樣即使在同一臺主機上同一時候執行了多個ping程式例項,ping程式也能夠識別出返回的資訊。
2>序列號從0開始,每傳送一次新的回顯請求就加1。ping程式列印出返回的每乙個分組的序列號,同意我們檢視是否有分組丟失,失序或反覆。.
3>ping程式通過在icmp報文中存放傳送請求的時間值來計算往返時間。當應答返回時,用當前時間減去存放在icmp報文中的時間值,即是往返時間。
4>當返回icmp回顯應答時,要列印出序列號和ttl,並計算往返時間。ttl位於ip首部的生存時間字段。ping程式通過在icmp報文資料段中存放傳送請求的時間值來計算往返時間。當應答返回時,用當前時間減去存放在icmp報文中的時間值,即是往返時間。
ICMP網際控制報文協議分析
icmp internet control message protocol 網際控制報文協議。它是tcp ip協議族的乙個子協議,是一種面向無連線的協議,用於傳輸出錯報告控制資訊。用於在ip主機 路由器之間傳遞控制訊息。這些控制訊息雖然並不傳輸使用者資料,但是對於使用者資料的傳遞起著重要的作用。鑑...
icmp報文 計算機網路 ICMP報文
icmp報文分為兩種 1.差錯報告報文 2.詢問報文 下面我們首先來說一下差錯報告報文 差錯報告報文共分為四種 1.終點不可達 當路由器或主機不能交付資料報的時候就向源點傳送終點不可達報文。2.時間超過 這個和ttl生存時間有關。並且是分為兩種情況的。當路由器收到生存時間為0的資料報的時候除了丟棄該...
ICMP報文型別
型別 型別描寫敘述 0 響應應答 echo reply 3 不可到達 4 源抑制 5 重定向 8 響應請求 echo request 11 超時 12 引數失靈 13 時間戳請求 14 時間戳應答 15 資訊請求 已作廢 16 資訊應答 已作廢 17 位址掩碼請求 18 位址掩碼應答 用wiresh...