溫馨提示×

溫馨提示×

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

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

網絡層--icmp協議(05)

發布時間:2020-06-13 14:33:27 來源:網絡 閱讀:542 作者:祖比凸陛 欄目:網絡安全

ping 原理與ICMP協議

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

    

ping 的原理

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

   ICMP協議通過IP協議發送的,IP協議是一種無連接的,不可靠的數據包協議。

   ICMP協議在實際傳輸中數據包:20字節IP首部 + 8字節ICMP首部+ 1472字節<數據大小>38字節

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

網絡層--icmp協議(05)

 網絡層--icmp協議(05)

        icmp協議構成的數據包通過抓包發現是有序的隨機一段或者幾段的字母表





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

抓包分析一組數據:

網絡層--icmp協議(05)

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


網絡層--icmp協議(05)


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


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

網絡層--icmp協議(05)



附具體的ICMP報文的類型

網絡層--icmp協議(05)

 



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

  1. ping查詢

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

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

而差錯報文則產生在數據傳送發生錯誤的時候。就不贅述了。

  • 2.ICMP的應用--ping

ping可以說是ICMP的最著名的應用,當我們某一個網站上不去的時候。通常會ping一下這個網站。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的值從目的主機到源主機,每經過一個路由減1,實際上也可以通過TTL的大小判斷目的主機的系統,默認windows系統是128,linux系統是64.

  • ICMP的應用--Traceroute

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

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

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

    

向AI問一下細節

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

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女