1.1.1. 前言
1.1.2. ICMP的概念
Internet Control Message Protocol,因特網控制消息協議
用于可達性測試
使用ping命令調用
1.1.3. ICMP的主要功能
确認IP包是否成功送達目标地址
通知在發送過程中當IP包被丢棄的具體原因
我們需要注意幾點:
1. ICMP是基于IP協議工作的,但它并不是傳輸層的功能,因此我們仍然把它歸結為網絡層協議
2. ICMP隻能搭配IPv4使用,如果是IPv6情況下,需要用ICMPv6
1.1.4. ICMP數據包格式
ICMP頭部有8個字節,前4個字節格式固定
類型(1字節)
标識ICMP報文的類型,從類型值來看ICMP報文可以分為兩大類。1-127為差錯報文;128以上為信息報文
代碼(1字節)
表示同一消息類型中的不同信息。它與類型字段一起共同标識了ICMP報文的詳細類型
校驗和
數據的校驗
後四個字節不固定:可能有可能沒有,和類型有關系
ICMP從功能上報文大概可以分為兩類:
一類是通知出錯原因;一類是用于診斷查詢
差錯報告報文
Type 3
終點不可達,當數據包不能發送到目标主機或路由時,就會丢棄該數據包向源點發送終點不可達報文。出錯原因多種,例如:我們要連接對方一個不存在的系統端口時,将返回Type 3、Code 3的ICMP報文。其他的參考錯誤代碼
Type 11
超時,當路由器收到TTL=0的數據包時,會丢棄該數據包并向源點發送超時報文;也有可能數據分片在重組的時超過規定時間也會丢棄已收到的報文然後向源點發送超時報文
Type 12
參數問題,可能是IP頭部有的字段值是錯誤的或者IP首部被修改、破壞都有可能。因為IP頭部有一個校驗和會對IP頭部進行校驗
查詢報告報文
Type 0和8
類型8表示請求,類型0表示回答
Type 9和10
路由器通告查詢,一般指的是返回路由的狀态信息
Type 13和14
類型13表示時間戳請求;類型14表示時間戳回答
記錄數據報文的發送時間和接收時間,一般來說發送時間和接收時間是一樣的,比如主機A發送時間是14點,主機B的接收時間是16點,說明這兩個時間不同步,是有問題的
1.1.5. ICMP重定向重定向的概念
ICMP重定向報文是ICMP控制報文的一種,當檢測到一台路由器使用次優路徑的時候,它就會像該主機發送一個ICMP重定向報文,請求主機改變路由。路由器也會将初始報文向它的目的地轉發
ICMP雖然不是路由協議,但是有時也可以指導數據包的流向。ICMP協議通過重定向(Type=5 Code=0)達到這個目的
重定向的工作原理
1. 如圖PC要去訪問192.168.3.0/24,主機判斷出目标不屬于同一網段,就會将數據包發送給自己的網關。但是在此之前必須發送ARP請求來獲取網關的MAC地址
2. 收到ARP請求後,先進行ARP應答,然後将數據包發送給R2。此時數據包就相當于多了一段路。R1在此時就會發送一個ICMP重定向給PC,通知PC告知網關是192.168.1.254
何時重定向
數據包的入接口和轉發的出接口是同一個接口
數據包的源IP和它的下一跳屬于同一個網段
系統開啟重定向
1.1.6. ping的使用方法
ping ip地址或域名 –參數
ping成功
ping超時
對方主機不在線、屏蔽等
ping傳輸失敗
當主機嘗試去訪問其他網絡内的主機,而自身沒有配置網關
ping無法訪問
網關沒有路由、沒有獲取到MAC地址
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!