ICMP協議
阿新 • • 發佈:2021-08-14
ICMP(網際控制報文協議)
- ICMP允許主機或者路由器報告差錯情況。ICMP是網際網路的協議標準。但ICMP並不是高層協議。因為ICMP報文是封裝在IP資料報中,ICMP報文作為IP資料報的資料部分。加上IP資料報的首部,組成了IP資料報。ICMP報文格式如圖所示:
- ICMP報文種類分為兩類:
- ICMP差錯報告報文
- ICMP詢問報文
- ICMP報文的前4個位元組是統一的,共有三個欄位:
- 型別
- 程式碼
- 檢驗和
- 中間4個位元組決定ICMP型別,最後是資料欄位
- ICMP差錯報告報文有四種
- (3)終點不可達:當路由器或者主機不能交付資料報時就向源點發送終點不可達報文。
- (11)時間超時:當路由器收到TTL=0IP資料報,除了丟棄這個資料報,還要向源地點發送時間超時報文。
- (12)引數問題:當路由器或者目的主機接收到的資料報的首部有的欄位不正確時候,就丟棄這個報文,並向源地點發送引數問題報文。
- (5)改變路由(重定向):路由器把改變路由報文傳送給主機,讓主機下一應該將資料報傳送給另外的路由器(可能是有更好的路由器)。
- ICMP詢問報文有兩種
- (8/0)回送請求和回答:ICMP回送請求報文是路由器或者主機向一個特定的目標主機發送的詢問。收到報文的主機必須向源主機或者路由器傳送ICMP回送回答報文。這種詢問報文用來測試目的站是否可達等相關資訊。
- (13/14)時間戳的請求與回答:ICMP時間戳請求報文是請某臺主機或者路由器回答當前的日期和時間,在ICMP時間戳回答報文裡一共有32個位的欄位,其中寫入的整數代表從1900年1月1日到當前時刻一共有多少秒,時間戳請求與回答可用於時鐘同步和時間測量
- ICMP應用舉例
- 一個重要作用就是ping(packet Internet Groper)用來測試兩臺主機的連通性。ping使用了ICMP回送請求與回送回答報文。ping 是應用層直接使用網路層ICMP的一個例子
- 另一個命令是tracert命令,他用來跟蹤一個分組從源點到終點的路徑