日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

24 張圖搞定 ICMP:最常用的網絡命令 ping 和 tracert

 

ICMP

IP 是盡力傳輸的網絡協議,提供的數據傳輸服務是不可靠的、無連接的,不能保證數據包能成功到達目的地。那么問題來了:如何確定數據包成功到達目的地?

24 張圖搞定 ICMP:最常用的網絡命令 ping 和 tracert

 

這需要一個網絡層協議,提供錯誤檢測功能和報告機制功能,于是出現了 ICMP(互聯網控制消息協議)。ICMP 的主要功能是,確認 IP 包是否成功送達目的地址通知發送過程中 IP 包被丟棄的原因。有了這些功能,就可以檢查網絡是否正常、網絡配置是否正確、設備是否異常等信息,方便進行網絡問題診斷

24 張圖搞定 ICMP:最常用的網絡命令 ping 和 tracert

 

舉個栗子:如果在傳輸過程中,發生了某個錯誤,設備便會向源設備返回一條 ICMP 消息,告訴它發生的錯誤類型。

24 張圖搞定 ICMP:最常用的網絡命令 ping 和 tracert

 

ICMP 消息是通過 IP 進行傳輸,但它的目的并不是讓 IP 成為一種可靠的協議,而是對傳輸中發生的問題進行反饋。ICMP 消息的傳輸同樣得不到可靠性保證,也有可能在傳輸過程中丟失。因此 ICMP 不是傳輸層的補充,應該把它當做網絡層協議

ICMP 消息封裝

ICMP 消息使用 IP 來封裝,封裝格式如下圖。

24 張圖搞定 ICMP:最常用的網絡命令 ping 和 tracert

 

其中 type(類型)字段表示 ICMP 消息的類型,code(代碼)字段表示 ICMP 消息的具體含義。例如:type 值為 3 表示目的不可達消息( Destination Unreachable Message ),若 code 值為 0 表示目的網絡不可達( Network Unreachable )。常見的 ICMP 消息類型如下圖。

24 張圖搞定 ICMP:最常用的網絡命令 ping 和 tracert

 

從功能上,ICMP 的消息可分為兩類:一類是通知出錯原因的錯誤消息,另一類是用于診斷的查詢消息

24 張圖搞定 ICMP:最常用的網絡命令 ping 和 tracert

 

常見的 ICMP 消息類型

  • 回送請求消息( Echo Request ):是由源設備(主機或路由器等)向一個指定的目的設備發出的請求。這種消息用來測試目的地是否可達。
  • 回送響應消息( Echo Reply ):對 Echo Request 的響應。目的設備發送 Echo Reply 來響應收到的 Echo Request 。最常用的 ping 命令就是使用 Echo Request 和 Echo Reply 來實現的。
24 張圖搞定 ICMP:最常用的網絡命令 ping 和 tracert

 

  • 目的不可達( Destination Unreachable ):路由器無法將 IP 包發送給目的地址時,會給源設備返回一個 Destination Unreachable 消息,并在消息中顯示不可達的具體原因。
  •  
  • 實際情況下,經常會遇到的錯誤代碼是 1 ,表示主機不可達,它是指路由表中沒有目的設備的信息,或目的設備沒有連接到網絡。
24 張圖搞定 ICMP:最常用的網絡命令 ping 和 tracert

 

  • 參數問題( Parameter Problem ):路由器發現 IP 包頭出現錯誤或非法值后,向源設備發送一個 Parameter Problem 消息。這個消息包含有問題的 IP 頭,或錯誤字段的提示信息。
24 張圖搞定 ICMP:最常用的網絡命令 ping 和 tracert

 

  • 重定向( Redirect ):如果路由器發現一條更優的路徑發送數據,那么它就會返回一個 Redirect 消息給主機。這個消息包含了最合適的路由信息和源數據。
  • 實際情況下,這種 Redirect 消息會引發路由問題,所以不進行這種設置。比如:路由器的路由表不準確時,ICMP 有可能就無法正常工作。
24 張圖搞定 ICMP:最常用的網絡命令 ping 和 tracert

 

  • 超時( Time Exceeded ):IP 包中有一個字段是 TTL(生存周期),它的值每經過一次路由器就減 1 ,直到減到 0 時 IP 包會被丟棄。這時,路由器會發送一個 Time Exceeded 消息給源設備,并通知 IP 包已被丟棄。
  • 設置 TTL 的主要目的,是當路由發生環路時,避免 IP 包無休止的在網絡上轉發。還可以用 TTL 控制 IP 包的可達范圍,比如設置一個較小的 TTL 值。
24 張圖搞定 ICMP:最常用的網絡命令 ping 和 tracert

 

  • 時間戳請求/時間戳響應( Timestamp Request / Timestamp Reply ):時間戳可以記錄 ICMP 消息一次往返所需的時間。源設備發送一個帶有發送時間的 Timestamp Request 消息,目的設備收到后,發送一個帶有原設備發送時間、目的設備接收時間以及目的設備發送時間的 Timestamp Reply 消息。源設備收到 Timestamp Reply 時,并同時記錄到達時間。這些時間戳可以估計網絡上的傳輸時間。
24 張圖搞定 ICMP:最常用的網絡命令 ping 和 tracert

 

ICMP 的應用

ICMP 被廣泛應用于網絡測試,最常用的 ping 和 tracert 網絡測試工具,都是使用 ICMP 協議實現的。

ping

ping 是 ICMP 最著名的一個應用,通過 ping 可以測試網絡的可達性,即網絡上的報文能否成功到達目的地。使用 ping 命令時,源設備向目的設備發送 Echo request 消息,目的地址是目的設備的 IP 地址。目的設備收到 Echo request 消息后,向源設備回應一個 Echo reply 消息,可知目的設備是可達的。也可以通過 ping 命令來判斷目標主機是否啟用。

24 張圖搞定 ICMP:最常用的網絡命令 ping 和 tracert

 

如果中間某個路由器沒有到達目的網絡的路由,便會向源設備回應一個 Destination Unreachable 消息,告知目的設備不可達。

24 張圖搞定 ICMP:最常用的網絡命令 ping 和 tracert

 

如果源主機在一定時間內無法收到回應報文,就認為目的設備不可達,并顯示超時。

24 張圖搞定 ICMP:最常用的網絡命令 ping 和 tracert

 

需要注意的是 ping 過程是雙向的消息通信,只有雙向都成功傳輸時,才能說明通信是正常的。另外主機也可能因為防火墻攔截,導致 ping 不通。

tracert

ping 工具只能測試目的設備的連通性,但是看不到數據包的傳輸路徑。所以在網絡不通的情況下,無法知道網絡問題發生在哪個位置。tracert 工具可以查看數據包的整條傳輸路徑,包括途中經過的中間設備

24 張圖搞定 ICMP:最常用的網絡命令 ping 和 tracert

 

IP 頭部的 TTL 字段是為避免數據包循環轉發而設計的。每經過一個路由器,數據包頭中的 TTL 值減 1 。如果 TTL 值為 0 則丟棄報文,并向源設備回應一個 Time Exceeded 消息,告知錯誤類型。tracert 就是基于 TTL 字段和 ICMP 協議實現的。在 windows 中命令是 tracert ,在 Unix 、macOS 中命令是 traceroute 。

使用 tracert 命令時,源設備的 tracert 逐跳發送數據包,并等待每一個響應報文。發送第一個數據包時,TTL 值設為 1 。第一個路由器收到數據包后 TTL 值減 1 ,隨即丟棄數據包,并返回一個 Time Exceeded 消息。源設備的 tracert 收到響應報文后,取出源 IP 地址,即路徑上的第一個路由器地址。然后 tracert 發送一個 TTL 值為 2 的數據包。第一個路由器將 TTL 值減 1 ,并轉發數據包。第二個路由器再將 TTL 值減 1 ,丟棄數據包并返回一個 Time Exceeded 消息。tracert 收到響應報文后,取出源 IP 地址,即路徑上的第二個路由器地址。類似步驟,tracert 逐跳獲得每一個路由器的地址,并探測到目的設備的可達性。

24 張圖搞定 ICMP:最常用的網絡命令 ping 和 tracert

 

tracert 過程也是雙向的消息通信,只有雙向都成功傳輸時,才能正確探測路徑。另外主機安裝了防火墻,也可能造成路徑探測失敗。

網絡實戰

ping

在 Windows 電腦上使用 ping 命令,并查看返回信息。

24 張圖搞定 ICMP:最常用的網絡命令 ping 和 tracert

 

同步抓包進行驗證。

24 張圖搞定 ICMP:最常用的網絡命令 ping 和 tracert

 

還可以直接使用 ping 命令,查看 ping 命令的使用方法

24 張圖搞定 ICMP:最常用的網絡命令 ping 和 tracert

 

tracert

在 Windows 電腦上使用 tracert 命令,并查看返回信息。

24 張圖搞定 ICMP:最常用的網絡命令 ping 和 tracert

 

同步抓包進行驗證。

24 張圖搞定 ICMP:最常用的網絡命令 ping 和 tracert

 

也可以直接使用 tracert 命令,查看 tracert 命令的使用方法

24 張圖搞定 ICMP:最常用的網絡命令 ping 和 tracert

 

飲水思源:

TCP/IP詳解 卷1:協議 - Kevin R.Fall

網絡基礎 - 田果

圖解TCP/IP - 竹下隆史

路由交換技術 - 杭州華三通信技術有限公司

分享到:
標簽:ICMP
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定