標籤:
為了更有效地轉寄IP資料報和提高交付成功的機會,在網際層使用了網際控制報文協議ICMP。ICMP允許主機或路由器報告差錯情況和提供有關異常情況的報告。ICMP是網際網路的標準協議。但ICMP不是高層協議,而是IP層的協議。ICMP報文作為IP層資料報的資料,加上資料報的首部,組成IP資料報發送出去。
ICMP報文分為了兩類類:ICMP差錯報告報文,ICMP詢問報文,通知類。ICMP報文包括8個位元組的前序和長度可變的資料部分。對於不同的報文類型,前序的格式一般是不相同的,但是前3個欄位(4個位元組)對所有的ICMP報文都是相同的。
ICMP差錯報文種類:
- 終點不可達:當路由器或主機不能交付資料報時就像源點發送終點不可達報文。
- 源點抑制:源點抑制提供了擁塞控制,當路由器或者主機因擁塞丟棄資料報時,每個被丟棄的資料報都要向源點發送源點抑制報文;源點抑製作用有:1:告訴源點資料報被丟棄2:要求源點放慢發包速度.
- 逾時:有兩種情況:存留時間(實際是跳數)遞減為0,資料報被丟棄,向源點發送ICMP逾時報文,這種報文只有可能是路由器發送。當目的主機收到一個分區時,就會啟動一個分區計時器,如果計時器內分區沒完全到達,則發送逾時報文並丟棄已經收到的所有分區
- 參數問題:資料報首部出現錯誤或者首部缺少一些選項發送此報文,主機和路由器都可能發送此報文。
- 改變路由(重新導向):路由器要經常更新自己的路由表,網路上主機的數量遠遠大於路由器的數量,如果主機也動態更新,將產生無法忍受的通訊量,所以主機使用靜態路由選擇,一般情況下,開始時主機只知道預設路由地址,IP資料報將被發送到預設路由器,但也許此資料報應該被發到另外的路由器,預設路由器知道這種情況後,轉寄此資料報,並向源點發送改變路由ICMP, 讓主機重新整理自己的路由表,主機的路由表通過這種方式進行更新。
ICMP詢問報文種類:
- 回送請求和回答:一般用於源主機或源路由器判斷目的主機或目的路由器能否與其通訊,主機和路由器都能發送此報文,此報文包括了回送請求報文和回送回答報文,ping命令便是此報文。
- 時間戳記請求和回答:括時間戳記請求報文和時間戳記回答報文,它能夠確定IP資料報在兩台機器的往返時間,即使兩個路由器本地時間不同步,但他們的往返時間仍然是精確的。
網際報文控制協議ICMP