ICMP控制報文協議


        IP層的主要控制功能包括TCP/IP中設計了ICMP協議來處理報文傳輸過程中出現的錯誤,當中間路由器或目標主機發現數據報文在傳輸過程中出現錯誤,不能到達接收端時,主機或者路由器的ICMP模塊將被觸發,並產生一個ICMP報文向信源機報告出錯情況。
      (2)在實際應用中,ICMP不但用來傳輸報告差錯的報文,它還用來傳輸控制報文。
      (3)ICMP並不能提高IP協議的可靠性,只是當IP數據報不能到達接收端時,用來向發送端的IP層通知數據報因何原因沒有到達接收端,以便發送端的IP層能夠進行差錯控制和差錯處理。
      (4)目前的ICMP已成為用於IP層差錯和控制報文傳輸的專用協議。
 
什么情況下不發送ICMP報文
     (1)ICMP差錯報文(ICMP查詢報文可能會產生ICMP差錯報文)
      (2)目的地址是廣播地址或多播地址的IP數據報
      (3)作為鏈路層廣播的數據報
      (4)不是IP分片的第一片
      (5)源地址不是單個主機的數據報  
      (6)具有特殊地址(如127.0.0.0或0.0.0.0)的數據報
 
ICMP應用
     (1)源主機消亡:源主機接收到源主機消亡(抑制)報文后,必須將此信息交給高層進程處理。
     (2)超時
     (3)參數問題
     (4)重定向
     (5)回送請求和回送應答是一對查詢報文,用於測試兩個機器(主機或路由器)之間能否實現通信。
     (6)時間戳請求和時間戳應答一對查詢報文,用於確定IP數據報在源端和目的端之間往返所需要的時間,也可用作源端和目的端機器的時鍾同步。
     (7)地址掩碼請求和地址掩碼應答是一對查詢報文,用於獲得一個主機所在網絡的子網掩碼。
     (8)路由器通告和路由器請求是一對查詢報文,用於主機與路由器之間交換信息。 
     (9)信息請求和信息應答是一對查詢報文,用於主機查找所連接網絡的地址。
     (10)路由跟蹤
ICMP的封裝
       ICMP封裝在IP報進行傳輸。ICMP報文本身被封裝在IP數據報的數據區中,而這個IP數據報又被封裝在幀數據中。IP數據報報頭中的協議(Protocol)字段設置成1,表示該數據是ICMP報文。      
    
       其中,ICMP報文包含:ICMP首部(8字節)+產生差錯的數據報IP首部+IP首部后的8個字節。具體如下圖:
       IP包首部要被傳回的原因,因為IP首部中包含了協議字段,使得ICMP可以知道如何解釋后面的8個字節。而IP首部后面的8字節(UDP的首部或者TCP首,UDP和TCP首部的8個字節分別包含了16位的目的端口號和源端口號),根據源端口號就可以把差錯報文與某個特定的用戶進程關聯。
 
ICMP報文的報頭
       ICMP報文包括8個字節的報頭和長度可變的數據部分。對於不同的報文類型,報頭的格式一般是不相同的,但是前3個字段(4個字節)對所有的ICMP報文都是相同的。
 
     (1)類型(Type)字段,長度是1字節,用於定義報文類型。
     (2)代碼(Code)字段,長度是1字節,表示發送這個特定報文類型的原因。
     (3)校驗和(Checksum)字段,長度是2字節,用於數據報傳輸過程中的差錯控制。與IP報頭校驗和的計算方法類似,不同的是其是對整個ICMP報文進行校驗。
     (4)報頭的其余部分,其內容因不同的報文而不同。
     (5)數據字段,其內容因不同的報文而不同。對於差錯報告報文類型,數據字段包括ICMP差錯信息和觸發ICMP的整個原始數據報,其長度不超過576字節。
 
總結
   (1)IP協議是一種不可靠的、無連接的協議,不具備差錯報告和差錯糾正機制,它必須依賴於ICMP協議來報告處理一個IP數據報傳輸過程中的錯誤並提供管理和狀態信息
    (2)ICMP即網際控制報文協議,是IP協議的一部分。當數據報在傳輸過程中發生錯誤時,主機或者路由器的ICMP模塊將被觸發,並產生一個ICMP報文
    (3)ICMP報文有兩大類:差錯報告報文和查詢報文。其中,差錯報告報文包括:目的不可達、源主機消亡、超時、參數問題、重定向。查詢報文包括:回應請求和應答、信息請求和應答(已棄用)、時間戳和時間戳應答、地址掩碼請求和應答、路由器通告和請求
    (4)ICMP報文封裝成IP數據報的形式傳送。ICMP報文包括1字節的類型字段、1字節的代碼字段、2字節的校驗和字段和長度可變的數據字段
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM