Can you summarize the following document?
        
  ICMP是在 RFC 792 中定義的網際網路協議族之一。通常用於返回的錯誤資訊或是分析路由。ICMP錯誤訊息總是包括了源資料並返回給傳送者。 ICMP錯誤訊息的例子之一是TTL值過期。每個路由器在轉發資料包的時候都會把IP包頭中的TTL值減1。如果TTL值為0,“TTL在傳輸中過期”的訊息將會回報給源地址。 每個ICMP訊息都是直接封裝在一個IP資料包中的,因此,和UDP一樣,ICMP是不可靠的。  雖然ICMP是包含在IP資料包中的,但是對ICMP訊息通常會特殊處理,會和一般IP資料包的處理不同,而不是作為IP的一個子協議來處理。在很多時候,需要去檢視ICMP訊息的內容,然後傳送適當的錯誤訊息到那個原來產生IP資料包的程式,即那個導致ICMP訊息被傳送的IP資料包。  很多常用的工具是基於ICMP訊息的。traceroute 是通過傳送包含有特殊的TTL的包,然後接收ICMP超時訊息和目標不可達訊息來實現的。 ping 則是用ICMP的"Echo request"(類別程式碼:8)和"Echo reply"(類別程式碼:0)訊息來實現的。

  

  ICMP報頭從IP報頭的第160位開始(IP首部20位元組)(除非使用了IP報頭的可選部分)。

  填充的資料緊接在ICMP報頭的後面(以8位為一組):
網際網路控制訊息協議(英語:Internet Control Message Protocol,縮寫:英語:ICMP)是網際網路協議族的核心協議之一。它用於網際協議(IP)中傳送控制訊息,提供可能發生在通訊環境中的各種問題反饋。通過這些資訊,使管理者可以對所發生的問題作出診斷,然後採取適當的措施解決。