網絡協議筆記:ICMP==》網絡層

ICMP(Internet Control Message Protocol,報文控制協議)屬於網絡層,和IP協議同層。
劉超老師將其比喻爲網絡界的偵察兵,我感覺非常非常合適,很形象。
1、ping命令是基於ICMP協議工作的,而ICMP是封裝在IP包裏面的。ICMP報文有(主動)查詢報文類型和差錯報文類型。
2、ping 的主動請求的包,稱爲ICMP Echo Request(代碼,8),對主動請求的回覆稱爲ICMP Echo Reply(代碼,0)。它會比原生的ICMP多兩個字段:類型和序號。還存放發送請求的時間值,用來計算往返時間。
3、差錯報文主要有:
(1)終點不可達:網絡不可達(代碼:0;地方)、主機不可達(1;人)、協議不可達(2,口號不對)、端口不可達(3,種類)、需要分片但設置了不分片位(4);
(2)源站抑制(讓源站放慢發送速度);
(3)時間超時;
(4)路由重定向
6、ping的發送過程:(同一局域網)
(1)源主機首先會構造一個ICMP請求數據包,包括多個字段:類型、順序號等。還會插入發送時間;
(2)然後,由ICMP協議將這個數據包連通目標IP地址交給IP層;
(3)IP層構建IP數據包;加入MAC頭,使用ARP映射表查找目標IP對應的MAC地址(若沒有,發送ARP協議查詢MAC);之後,由數據鏈路層構建數據幀,將其發送。
(4)目標主機接收到後,先檢查MAC地址==》符合,接收後提取IP數據包,交給IP層;IP層檢查後,提取信息交給ICMP協議;
很多中間設備是禁止ping的,但ping不同不代表網絡不通,這時要使用Telnet。
7、Tranceroute:使用ICMP規則,故意製造產生錯誤的場景。
(1)故意設置一個特殊的TTL,來追蹤去往目的地沿途經過的路由器。它的參數指向一個目標IP地址,會發送一個UDP的數據包。但它的UDP端口號會選擇一個不可能的值,當該數據到達時,目的主機會產生一個“端口不可達”的錯誤ICMP報文。
(2)故意設置不分片,從而確認路徑的MTU。

ping使用查詢報文,Tranceroute使用差錯報文。重點內容

推薦一下:《極客時間》裏面的一節網絡課程—-劉超老師

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章