❶ ICMP協議詳解
全稱:Internet 控制消息協議(Internet Control Message Protocol)
是網路層的一個重要協議。ICMP協議用來在網路設備間傳遞各種差錯和控制信息,並對於收集各種網路信息、診斷和排除各種網路故障等方面起著至關重要的作用
作用:通過傳遞ICMP報文,進行 差錯檢查 , 錯誤報告 以及 控制功能 。
總結:三大功能+兩大應用
<img src="https://upload-images.jianshu.io/upload_images/20425542-00666941cb1857c6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="icmp重定向.png" style="zoom: 67%;" />
如上圖場景中:當主機A(10.0.0.1)想要訪問伺服器A(20.0.0.1)時,由於主機和伺服器處於不同網段,主機A需要將訪問信息發送給網關路由RTB,RTB再將訪問信息發送給伺服器A,這種情況下就會出現: 次優路徑
<u>ICMP的解決方法</u>:主機在進行不同網段訪問時,數據會交給網關(路由器),當路由器從介面收到該數據包時,進行查找路由表條目,發現數據包 發出的介面和收到的介面一致 時,會 觸發重定向報文
重定向報文包含:訪問的目的地址+ 最優下一跳
回到上圖場景:網關路由器收到主機A要訪問伺服器A的信息後,會將重定向報文發送給主機A,主機A收到後,產生主機路由,主機後續訪問伺服器A直接通過重定向報文中的下一跳進行訪問,也就是直接將訪問信息直接發送給RTA,不需要再通過網關路由器進行轉發, 從而解決次優路徑
通過查詢(request),和響應(reply)進行實現
設備無法訪問時,會自動會送相應的ICMP報告報文,可用於排障
①:ICMP是工作在網路層,協議號1
②:報文重要欄位:Type+Code
type和code的不同組合可以表示不同功能的ICMP報文
type為3的都是不可達信息,
使用request和reply
使用功能:差錯檢測
作用:測試網路連通性
使用方法:
ping -a:指定報文的源IP,默認為出介面IP地址
ping -c:指定報文發送的數量,默認為5
ping -t:持續發送報文
ping -h:指定TTL的值,默認值為255
ping -i:指定發送ICMP報文的介面
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-5372E6z5-1601099717174)( https://upload-images.jianshu.io/upload_images/20425542-be76d4b1825d0cb1.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]
用以跟蹤數據包經過的 三層設備
使用功能:錯誤報告
作用:用於跟蹤數據包的轉發路徑。一般用於排障。
使用方法:
tracert -a 指定源IP
tracert -f 指定初次TTL的值
tracert -q 指定發送單個報文的次數,默認為3
tracert -m 最大的TTL值,默認為30
TTL(Time To LIVE):用於路由防環路,封裝在IP報文頭部,默認為255,經過一台三層設備TTL-1,當TTL=0時,報文會被丟棄
原理:通過UDP報文和ICMP的錯誤報告(TTL)結合。
第一步:發送一個TTL值為1的報文1,經過一跳路由器後,會返回一個ICMP錯誤報告,包含該跳路由器的IP地址
第二步:發送一個TTL值為2的報文2,經過兩跳路由器後,返回一個ICMP錯誤報告,包含第二跳路由器的IP地址
往後,TTL值逐步加1(默認最大加到30),發送。然後返回ICMP錯誤報告。
❷ ICMP協議是什麼
ICMP協議是一種面向無連接的協議,用於傳輸出錯報告控制信息。PING禁入意思是能夠防止別的有病毒的電腦或網站等惡意的進攻自己的電腦。
ICMP(Internet Control Message Protocol)Internet控制報文協議。它是TCP/IP協議簇的一個子協議,用於在IP主機、路由器之間傳遞控制消息。控制消息是指網路通不通、主機是否可達、路由是否可用等網路本身的消息。這些控制消息雖然並不傳輸用戶數據,但是對於用戶數據的傳遞起著重要的作用。
ICMP使用IP的基本支持,就像它是一個更高級別的協議,但是,ICMP實際上是IP的一個組成部分,必須由每個IP模塊實現。
ICMP 是 TCP/IP 模型中網路層的重要成員,與 IP 協議、ARP 協議、RARP 協議及 IGMP 協議共同構成 TCP/IP 模型中的網路層。ping 和 tracert是兩個常用網路管理命令,ping 用來測試網路可達性,tracert 用來顯示到達目的主機的路徑。ping和 tracert 都利用 ICMP 協議來實現網路功能,它們是把網路協議應用到日常網路管理的典型實例。