ICMP(Internet Control Message Protocol,網際網路控制報文協定)是TCP/IP協定簇中的一個子協定,主要用於在IP主機和路由器之間傳遞控制訊息。這些控制訊息包括網路通不通、主機是否可達、路由是否可用等信息,雖然不傳輸用戶數據,但對於用戶數據的傳遞起著重要的作用。ICMP協定是TCP/IP模型中網路層的重要成員,與IP協定、ARP協定、RARP協定及IGMP協定共同構成TCP/IP模型中的網路層。
ICMP協定的主要作用包括:
檢測網路通信故障:ICMP可以通過傳送回送請求報文和回送回答報文來檢測源主機到目的主機的鏈路是否有問題,目的地是否可達,以及通信的延遲情況。
實現鏈路追蹤:ICMP可以用於追蹤數據包經過的路徑,例如traceroute命令就是通過傳送不同TTL值的探測報文來獲取鏈路地址信息,從而顯示到達目的主機的路徑。
傳遞錯誤報告和控制信息:當IP數據無法訪問目標、IP路由器無法按當前的傳輸速率轉發數據包等情況時,會自動傳送ICMP訊息,以報告錯誤或交換受限控制和狀態信息。
ICMP協定是一種面向無連線的協定,對於網路安全具有極其重要的意義。它使用IP的基本支持,就像它是一個更高級別的協定,但實際上ICMP是IP的一個組成部分,必須由每個IP模組實現。