ICMP 和 IGMP 的區別
ICMP 和 IGMP 都是 OSI(開放系統互聯)模型的網路協議。ICMP 用於跟蹤訊息並確定資料是否到達網路目的地,而 IGMP 用於管理網路使用者。ICMP 只診斷網路,而不參與網路管理。當計算機使用者在沒有網際網路連線的情況下在網際網路上搜索某些資料時,會收到諸如“目的地不可達”之類的錯誤訊息,這些型別的錯誤訊息是使用 ICMP 協議傳送的。
什麼是 ICMP?
ICMP 位於模型的網路層。如果網路中發生錯誤,它會記錄錯誤並報告故障。ICMP 中涉及兩種型別的訊息:
錯誤訊息 − 當主機之間通訊發生錯誤時,會顯示此類訊息。一些錯誤訊息包括:目的地從源不可達、超時超過預期、路由重定向以及請求傳送者傳送低速率資料。
查詢訊息 − 此類訊息用於獲取有關所涉及主機的任何資訊。一些查詢訊息包括:確定傳送和接收資料所需的時間以及檢查連線可用性。
ICMP 的功能
問題報告:資料包旨在突出顯示網路問題情況。例如,它們執行的一些操作包括將資料重新發送到不同的位置或生成類似“目的地不可達”的訊息。
網路可達性:可以使用 ICMP 資料包確保網路可達性。“ping”命令經常用於檢查網路連線,收到回顯回覆表示網路無錯誤,如果未收到回顯回覆則表示存在某些錯誤。
網路擁塞:可以透過 ICMP 資料包檢測網路擁塞。例如,在擁擠的網路中,主機可能會收到 ICMP“源抑制”訊息以降低其傳輸速率。
網路重定向:可以透過 ICMP 資料包將流量重定向到更有利的路徑。例如,可以透過向主機發送 ICMP“重定向”訊息來告知其是否存在特定目的地的更好下一跳路由器。
什麼是 IGMP?
IGMP 的功能包括允許裝置加入和離開組。所涉及的組型別是多播,其中所有裝置使用相同的 IP 地址。IGMP 管理組的所有成員並根據適當的請求傳送資料。
當裝置想要加入多播組時,它會向其本地路由器傳送 IGMP“加入組”訊息。當這些訊息到達時,路由器會調整多播組成員身份。路由器會複製它接收到的傳送到多播組公共 IP 地址的資料包,並將這些複製的資料包的副本分發給多播組的每個成員。
類似地,當裝置想要離開多播組時,它會透過 IGMP“離開組”訊息通知其本地路由器。然後更新多播組成員身份,路由器停止向該裝置傳輸資料包。
在支援一對多網路應用程式(如線上流媒體影片和遊戲)時,IGMP 在控制多播組成員身份和確保有效利用網路資源方面至關重要。
ICMP 和 IGMP 的區別
基本引數 |
ICMP |
IGMP |
|---|---|---|
縮寫 |
ICMP 的縮寫是網際網路控制訊息協議 (Internet Control Message Protocol)。 |
IGMP 的縮寫是網際網路組管理協議 (Internet Group Management Protocol)。 |
網路型別 |
它遵循單播網路,其中通訊是在一個傳送方和一個接收方之間建立的。 |
它遵循多播網路,其中通訊是從一個傳送方到多個接收方建立的。 |
機制 |
它監控和維護訊息是否成功傳送。 |
它同時將資料從傳送方傳送到多個接收方。 |
控制通訊 |
它控制一對一通訊,並報告任何發生的錯誤。 |
它控制一對多通訊。 |
操作 |
它在一個主機到主機或一個路由器到路由器之間執行。 |
它在一個主機到多個路由器之間以及一個路由器到多個主機之間執行。 |
測試可達性 |
它測試特定節點是否到達主機。 |
它管理組的所有節點是否同時接收相同的資料。 |
傳送請求 |
它向目標主機發送 ICMP 回顯請求訊息。 |
它向本地路由器傳送 IGMP 成員報告訊息。 |
使用的功能 |
它使用 PING 功能。 |
它使用多播功能。 |
結論
ICMP 是一個主要的網路協議,用於根據網路功能生成近似訊息。它只能生成錯誤訊息,而不能糾正這些錯誤。在 IGMP 中,使用了三個不同版本來在路由器中將資料包從一個主機發送到多個主機。
資料結構
網路
關係型資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP