溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

網(wǎng)絡層--icmp協(xié)議(05)

發(fā)布時間:2020-06-13 14:33:27 來源:網(wǎng)絡 閱讀:495 作者:祖比凸陛 欄目:網(wǎng)絡安全

ping 原理與ICMP協(xié)議

    以前剛開始看的時候總覺得網(wǎng)絡協(xié)議只能是層層封裝,雖然查找資料,都說在網(wǎng)絡上面同時有IP協(xié)議,arp協(xié)議,ICMP和IGMP協(xié)議,但自己就是繞不過彎來,現(xiàn)在想想,唉。。。。

    

ping 的原理

    ping 程序是用來探測主機到主機之間是否可通信,如果不能ping到某臺主機,表明不能和這臺主機建立連接。ping 使用的是ICMP協(xié)議,它發(fā)送icmp回送請求消息給目的主機。ICMP協(xié)議規(guī)定:目的主機必須返回ICMP回送應答消息給源主機。如果源主機在一定時間內收到應答,則認為主機可達。    

   ICMP協(xié)議通過IP協(xié)議發(fā)送的,IP協(xié)議是一種無連接的,不可靠的數(shù)據(jù)包協(xié)議。

   ICMP協(xié)議在實際傳輸中數(shù)據(jù)包:20字節(jié)IP首部 + 8字節(jié)ICMP首部+ 1472字節(jié)<數(shù)據(jù)大小>38字節(jié)

    ICMP首部:8位類型+8位代碼+16位校驗和+(不同的類型和代碼,格式也有所不同)

網(wǎng)絡層--icmp協(xié)議(05)

 網(wǎng)絡層--icmp協(xié)議(05)

        icmp協(xié)議構成的數(shù)據(jù)包通過抓包發(fā)現(xiàn)是有序的隨機一段或者幾段的字母表





   ICMP是(Internet Control Message Protocol)Internet控制報文協(xié)議一種面向無連接的協(xié)議。控制消息是指網(wǎng)絡通不通、主機是否可達、路由是否可用等網(wǎng)絡本身的消息。這些控制消息本身并不傳輸用戶數(shù)據(jù)。

抓包分析一組數(shù)據(jù):

網(wǎng)絡層--icmp協(xié)議(05)

  對于request的抓包,可以看到類型為8,代碼為0,代表請求回顯(ping請求),同時有16位的校驗和 


網(wǎng)絡層--icmp協(xié)議(05)


**************************************************************************************


對于reply的抓包,可以看到類型為0,代碼為0,代表回顯應答(ping應答)

網(wǎng)絡層--icmp協(xié)議(05)



附具體的ICMP報文的類型

網(wǎng)絡層--icmp協(xié)議(05)

 



ICMP協(xié)議大致分為兩類,一種是查詢報文,一種是差錯報文。其中查詢報文有以下幾種用途:

  1. ping查詢

  2. 子網(wǎng)掩碼查詢(用于無盤工作站在初始化自身的時候初始化子網(wǎng)掩碼)

  3. 時間戳查詢(可以用來同步時間)

而差錯報文則產生在數(shù)據(jù)傳送發(fā)生錯誤的時候。就不贅述了。

  • 2.ICMP的應用--ping

ping可以說是ICMP的最著名的應用,當我們某一個網(wǎng)站上不去的時候。通常會ping一下這個網(wǎng)站。ping會回顯出一些有用的信息。一般的信息如下:

Reply from 10.4.24.1: bytes=32 time<1ms TTL=255
Reply from 10.4.24.1: bytes=32 time<1ms TTL=255
Reply from 10.4.24.1: bytes=32 time<1ms TTL=255
Reply from 10.4.24.1: bytes=32 time<1ms TTL=255

    TTL的值從目的主機到源主機,每經(jīng)過一個路由減1,實際上也可以通過TTL的大小判斷目的主機的系統(tǒng),默認windows系統(tǒng)是128,linux系統(tǒng)是64.

  • ICMP的應用--Traceroute

Traceroute是用來偵測主機到目的主機之間所經(jīng)路由情況的重要工具,也是最便利的工具。前面說到,盡管ping工具也可以進行偵測,但是,因為ip頭的限制,ping不能完全的記錄下所經(jīng)過的路由器。所以Traceroute正好就填補了這個缺憾。

Traceroute的原理是非常非常的有意思,它受到目的主機的IP后,首先給目的主機發(fā)送一個TTL=1(還記得TTL是什么嗎?)的UDP(后面就 知道UDP是什么了)數(shù)據(jù)包,而經(jīng)過的第一個路由器收到這個數(shù)據(jù)包以后,就自動把TTL減1,而TTL變?yōu)?以后,路由器就把這個包給拋棄了,并同時產生 一個主機不可達的ICMP數(shù)據(jù)報給主機。主機收到這個數(shù)據(jù)報以后再發(fā)一個TTL=2的UDP數(shù)據(jù)報給目的主機,然后刺激第二個路由器給主機發(fā)ICMP數(shù)據(jù) 報。如此往復直到到達目的主機。這樣,traceroute就拿到了所有的路由器ip。從而避開了ip頭只能記錄有限路由IP的問題。

有人要問,我怎么知道UDP到?jīng)]到達目的主機呢?這就涉及一個技巧的問題,TCP和UDP協(xié)議有一個端口號定義,而普通的網(wǎng)絡程序只監(jiān)控少數(shù)的幾個號碼較 小的端口,比如說80,比如說23,等等。而traceroute發(fā)送的是端口號>30000(真變態(tài))的UDP報,所以到達目的主機的時候,目的 主機只能發(fā)送一個端口不可達的ICMP數(shù)據(jù)報給主機。主機接到這個報告以后就知道,主機到了

    

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI