iT邦幫忙

2024 iThome 鐵人賽

DAY 11
0
自我挑戰組

網路概論系列 第 11

iT鐵人賽 DAY11 ICMP 與 Ping 原理:介紹 Internet 控制訊息協定及網路診斷工具

  • 分享至 

  • xImage
  •  

ICMP(Internet 控制訊息協定)與 Ping 原理
ICMP(Internet Control Message Protocol,網際網路控制訊息協定) 是網際網路協定套件中的一個輔助協定,主要用來傳遞網路設備之間的控制訊息和診斷資訊。它主要用於報告網路狀態和錯誤,例如無法到達某個主機、路徑變更或時間超時等狀況。

ICMP 並不傳遞實際的應用數據,而是負責提供網路層的錯誤回報和資訊性回應。它通常由路由器和主機使用,用來通報網路通信過程中的問題或提供一些狀態回報。

ICMP 的功能與用途
1.錯誤報告:當路由器或主機發現無法傳遞數據包時,它會通過 ICMP 發送一個錯誤報告。常見的錯誤包括:

•無法到達主機或網路(Destination Unreachable):當數據包無法到達目標主機或網路時,源主機會收到這個 ICMP 錯誤訊息。
•時間超時(Time Exceeded):當數據包的 TTL(Time to Live,生存時間)過期時,表示數據包在網路中傳輸時間過長,也會通過 ICMP 報告。
•重定向(Redirect):當路由器發現有更合適的路徑傳送數據包時,會向源主機發送 ICMP 重定向訊息,告知其應選擇新的路徑。
2.診斷與網路管理:ICMP 用來幫助網管員和使用者檢測網路問題,例如使用 Ping 或 Traceroute 等工具來測試連通性和路徑狀況。

Ping 的工作原理
Ping 是基於 ICMP 的一種網路診斷工具,用來測試兩台設備之間的網路連通性。它通過向目標設備發送 ICMP Echo Request 訊息,並等待回覆(ICMP Echo Reply),來確定目標設備是否可達。

Ping 操作步驟:
1.發送 ICMP Echo Request:Ping 工具會向目標設備發送一個 ICMP Echo Request 訊息,並且記錄下發送的時間。

2.目標設備回應 ICMP Echo Reply:如果目標設備可達且工作正常,它會回應一個 ICMP Echo Reply 訊息,表示自己收到了請求並且正常運作。

3.計算延遲:Ping 工具計算從發送 ICMP Echo Request 到收到 ICMP Echo Reply 所花費的時間,這個時間稱為 往返時間(Round Trip Time,RTT)。此數值表示數據包在網路中傳輸的速度。

4.多次測試:Ping 通常會發送多次 ICMP Echo Request,並計算平均延遲時間和丟包率(如果 Echo Reply 沒有收到)。

Ping 結果的解讀:
•成功回應:顯示目標設備可達並計算往返時間。
•Request timed out(請求超時):表示 Ping 請求未能成功到達目標設備或目標設備沒有回應,可能是網路故障或目標設備關閉了 ICMP 回應。
•Packet loss(丟包率):顯示在多次 Ping 測試中,丟失的 Echo Reply 回應數量,通常用來衡量網路的穩定性。
ICMP 與 Ping 的應用場景

1.網路連通性檢測:

Ping 是檢測兩台設備之間網路連通性的最常用工具,能快速判斷某台設備是否在線或可達。
2.診斷網路延遲:

Ping 工具還可以幫助測量網路延遲,從而檢查網路中的瓶頸或慢速連接。高往返時間(RTT)可能意味著網路壅塞或連接品質差。

3.排除網路故障:

當網路中出現連接問題時,Ping 能夠幫助排除問題是出在本地網路、路由器,還是由於目標設備不可達。通過使用 Ping,網管員可以快速判斷是設備故障還是網路中斷。

4.確認主機狀態:

Ping 能幫助確認網路中某些伺服器或設備的運行狀態,特別是當某些應用程序無法正常工作時,Ping 是第一個可以測試的工具。
Ping 的限制
•防火牆阻擋:許多網絡防火牆會阻擋 ICMP Echo Request 或 Echo Reply,這意味著即使目標設備正常運行,Ping 也可能無法得到回應。這在某些情況下會導致誤判。

•ICMP 的限制:ICMP 的功能比較簡單,它只能用來檢測基本的連通性和網路故障,無法提供詳細的網絡性能分析或數據流量的監控。

Traceroute 與 ICMP:

除了 Ping,Traceroute 是另一種常見的網路診斷工具,它也是基於 ICMP 的工作原理。Traceroute 的功能是顯示數據包在從源到目的地的途中經過的所有路由器。這可以幫助確定路由上的哪一段網路發生了問題或延遲。

•Traceroute 的工作方式:Traceroute 工具發送帶有不同 TTL 值的數據包。每當數據包的 TTL 歸零時,當前的路由器會回傳一個 ICMP Time Exceeded 訊息,讓 Traceroute 工具知道這個數據包經過了哪個路由器。通過逐步增加 TTL 值,Traceroute 能夠記錄數據包途徑的所有路由器。
總結
ICMP 是網際網路協定中用來傳遞錯誤和控制訊息的協定,而 Ping 是基於 ICMP 的網路診斷工具,用來測試網路連通性和延遲。Ping 發送 ICMP Echo Request 訊息並等待目標設備的回應,是網管員和使用者最常用的網路連通測試工具之一。儘管簡單,Ping 在網路故障排查和診斷中非常實用,尤其在配合 Traceroute 等其他工具時,能幫助網管員深入了解網路狀況並快速定位問題。


上一篇
iT鐵人賽 DAY10 NAT與端口轉發:網路地址轉換如何工作及其在家用和企業網路中的應用
下一篇
iT鐵人賽 DAY12 防火牆技術:不同類型的防火牆及其如何保護網路
系列文
網路概論26
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言