回覆列表
-
1 # 鄂東阿川
-
2 # 買房不求人
icmp差錯報文有5種,分別是:終點不可達、源站抑制、時間超時、參數問題、改變路由。
1、 終點不可達:
分為:網絡不可達,主機不可達,協議不可達,端口不可達,需要分片但DF比特已置為1,以及源路由失敗等六種情況,其代碼字段分別置為0至5。當出現以上六種情況時就向源站發送終點不可達報文。
2、源站抑制:
當路由器或主機由於擁塞而丟棄數據報時,就向源站發送源站抑制報文,使源站知道應當將數據報的發送速率放慢。
3、時間超時:
當路由器收到生存時間為零的數據報時,除丟棄該數據報外,還要向源站發送時間超過報文。當目的站在預先規定的時間內不能收到一個數據報的全部數據報片時,就將已收到的數據報片都丟棄,並向源站發送時間超過報文。
4、參數問題:
當路由器或目的主機收到的數據報的首部中的字段的值不正確時,就丟棄該數據報,並向源站發送參數問題報文。
5、改變路由:
路由器將改變路由報文發送給主機,讓主機知道下次應將數據報發送給另外的路由器。
icmp包是ip包沒錯,ip包頭中的協議號字段為1,tcp和udp分別為6和17,但是它並不像tcp和udp樣有端口號對應到上層的應用,所以可以認為是介於網絡層和傳輸層之間的協議,但沒有單獨為它劃分一個層,所以一般認為屬於IP層;主要用於三層主機之間檢測可達性和提供差錯故障報告報文等控制信息的,例如ping的echo request可以根據返回的信息來判斷是由於什麼原因導致網絡不通,或者根據traceroute的返回消息也可以判斷出中間網絡的情況。
個人認為倒沒必要糾結於這種分類和劃定,重要的是它的作用和原理。