TCP/IP學習筆記之六 --- ICMP: Internet控制報文協議

ICMP被認爲是IP層的一部分,它傳遞差錯報文及其他需要注意的信息。ICMP報文經常被IP層或更高協議(TCP/UDP)使用(有一些差錯報文返回給用戶進程)。
ICMP報文是在IP數據報內部被傳輸的,如下圖:
ICMP報文的格式如下:
各種類型的ICMP報文如下圖,不同類型由報文中的類型字段和代碼字段共同決定。
爲了使ICMP差錯報文與特定的協議或者用戶進程聯繫起來,當發送一份ICMP差錯報文時,報文始終包含IP的首部和產生ICMP差錯報文的IP數據報的前8個字節。
爲了防止過去允許ICMP差錯報文對廣播分組響應所帶來的廣播風暴,下面的規則都不會導致產生ICMP差錯報文:
1)ICMP差錯報文(但是,ICMP查詢報文可能會產生ICMP差錯報文)。
2)目的地址是廣播地址(見圖3-9)或多播地址(D類地址,見圖1-5)的IP數據報。
3)作爲鏈路層廣播的數據報。
4)不是IP分片的第一片(將在11.5節介紹分片)。
5)源地址不是單個主機的數據報。這就是說,源地址不能爲零地址、環回地址、廣播地址或多播地址。
 
ICMP地址掩碼請求與應答
ICMP地址掩碼請求用於無盤系統在引導過程中獲取自己的子網掩碼。報文格式如下:
 
ICMP時間戳請求與應答
ICMP時間戳請求允許系統向另一個系統查詢當前的時間。返回的建議值是自午夜開始計算的毫秒數,協調的統一時間(CoordinatedUniversalTime,UTC)。報文格式如下:
請求端填寫發起時間戳,然後發送報文。應答系統收到請求報文時填寫接收時間戳,在發送應答時填寫發送時間戳。
 
ICMP端口不可達差錯
UDP的規則之一是,如果收到一份UDP數據報而目的端口與某個正在使用的進程不相符,那麼UDP返回一個ICMP不可達報文。
ICMP不可達報文如下:
 
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章