網路層(十一)ICMP協議
ICMP協議
ICMP協議是TCP/IP協議棧中的網路層的一個協議,ICMP是(Internet Control Message Protocol)Internet控制報文協議,用於在IP主機、路由器之間傳遞控制訊息。控制訊息是指網路通不通、主機是否可達、路由是否可用等網路本身的訊息
ICMP報文是在IP資料報內部被傳輸的,它封裝在IP資料報內。ICMP報文通常被IP層或更層協議(TCP或UDP)使用。一些ICMP報文把差錯報文返回給使用者程序
ICMP報文分為:
- ICMP請求報文
- ICMP響應報文
- ICMP差錯報告報文
ICMP請求報文
ICMP響應報文
ICMP報文型別和程式碼
- 終點不可到達: 當路由器或主機沒有到達目標地址的路由時,就丟棄該資料包,給源點發送終點不可到達報文
- 源點抑制: 當路由器或主機由於擁塞而丟棄資料包時,就會向源點發送源點抑制報文,使源點知道應當降低資料包的傳送速率
- 時間超時: 當路由器收到生存時間為零的資料報時,除丟棄該資料報外,還要向源點發送時間超過報文。當終點在預先規定的時間內不能收到一個數據報的全部資料報片時,就把己收到的資料報片都丟棄,並向源點發送時間超過報文
- 引數問題: 當路由器或目的主機收到的資料報的首部中有的欄位的值不正確時,就丟棄該資料報,並向源點發送引數問題報文
- 改變路由(重定向): 路由器把改變路由報文傳送給主機,讓主機知道下次應將資料報傳送給另外的路由器(可通過更好的路由)
ICMP報文格式
ICMP報文的前4個位元組是統一的格式,共有三個欄位:即型別、程式碼和檢驗和。接著4個位元組的內容與ICMP的型別有關
