什麽是 IGMP?| 網際網路群組管理通訊協定

網際網路群組管理通訊協定 (IGMP) 可讓一組網路裝置共用相同的 IP 位址並接收相同的訊息。

學習目標

閱讀本文後,您將能夠:

  • 定義多點傳送
  • 瞭解 IGMP 如何實現多點傳送
  • 探索 IGMP 如何運作

相關內容


想要繼續瞭解嗎?

訂閱 TheNET,這是 Cloudflare 每月對網際網路上最流行見解的總結!

請參閱 Cloudflare 的隱私權政策,了解我們如何收集和處理您的個人資料。

複製文章連結

什麼是網際網路群組管理通訊協定 (IGMP)?

網際網路群組管理通訊協定 (IGMP) 是一種通訊協定,可讓多個裝置共用一個 IP 位址,以便所有裝置都能接收相同的資料。IGMP 是一種網路層通訊協定,用來在使用網際網路通訊協定第 4 版 (IPv4) 的網路上設定多點傳送。具體來說,IGMP 允許裝置加入多點傳送群組。

什麼是多點傳送?

多點傳送是指一組裝置全部接收相同的訊息或封包。多點傳送的運作方式是在多個裝置之間共用 IP 位址。任何導向該 IP 位址的網路流量都會傳送到共用該 IP 位址的所有裝置,而非只有一個裝置。這很像一組員工都收到針對某個電子郵件別名的公司電子郵件。

ICMP 如何運作?

當想要加入一個多點傳送群組時,連接到網路的電腦和其他裝置都使用 IGMP。支援 IGMP 的路由器會聆聽來自裝置的 IGMP 傳輸,以找出哪個裝置屬於哪個多點傳送群組。

IGMP 使用預留用於多點傳送的 IP 位址。多點傳送 IP 位址在 224.0.0.0 和 239.255.255.255 之間的範圍內。(相比之下,Anycast 網路可以使用任何常規 IP 位址。)每個多點傳送群組共用其中一個 IP 位址。當路由器收到指向共用 IP 位址的一系列封包時,它會複製這些封包,並將複本傳送給多點傳送群組的所有成員。

IGMP 多點傳送群組可隨時變更。裝置可以隨時傳送 IGMP「加入群組」或「離開群組」訊息。

IGMP 可直接在網際網路通訊協定 (IP) 之上運作。每個 IGMP 封包都有一個 IGMP 標頭和一個 IP 標頭。就像 ICMP 一樣,IGMP 不使用 TCPUDP 之類的傳輸層通訊協定。

有哪些類型的 IGMP 訊息?

IGMP 通訊協定允許多種 IGMP 訊息:

  • 成員資格報告:裝置會將這些報告傳送至多點傳送路由器,以成為多點傳送群組的成員。
  • 「離開群組」訊息:這些訊息從裝置傳送到路由器,並允許裝置離開多點傳送群組。
  • 一般成員資格查詢:具備多點傳送功能的路由器會將這些訊息傳送至整個連線的裝置網路,以更新網路上所有群組的多點傳送群組成員資格。
  • 特定於群組的成員資格查詢:路由器會將這些訊息傳送至特定的多點傳送群組,而非整個網路。

什麼是 IGMP 窺探?

IGMP 是一種網路層通訊協定,只有知道網路層的網路裝置才能傳送和接收訊息。路由器在網路層上運作,而網路交換器可能只知道第 2 層,也稱為資料連結層。因此,交換器可能不知道哪些網路裝置是多點傳送群組的一部分,哪些裝置並不是。最終可能會將多點傳送流量轉送到不需要的裝置,這會佔用網路頻寬和裝置處理能力,從而降低整個網路的速度。

IGMP 窺探透過啟用交換器以「窺探」IGMP 訊息來解決此問題。通常,第 2 層交換器不會知道 IGMP 訊息,但他們可以透過 IGMP 窺探來聆聽這些訊息。這可讓使用者識別多點傳送訊息的轉寄位置,以便只有正確的裝置接收多點傳送流量。

IPv4 和 IPv6 中的多點傳送有何不同?

IPv4 和 IPv6 是網際網路通訊協定 (IP) 的兩種不同版本。IPv6 是更現代的,但 IPv4 仍在廣泛使用。在 IPv6 中,多點傳送接聽程式探索 (MLD) 是多點傳送的通訊協定,而不是 IGMP。

多點傳送與 Anycast 和 Unicast 有何不同?

多點傳送與 Anycast

Anycast 是另一種可讓網路通訊到多個地方的技術。與多點傳送類似,Anycast 網路可讓相同的伺服器群組共用一或多個 IP 位址。然而,並非所有伺服器都接收到這些 IP 位址的所有流量,而是網路根據一組預先決定的標準將流量路由到這些伺服器中的一個。與多點傳送群組相比,Anycast 網路也可以支援更廣泛的 IP 位址。例如,Cloudflare 網路使用 Anycast 將所有使用者流量路由到最近的資料中心。

多點傳送與 Unicast

「Unicast」描述了大多數網際網路的運作方式。在 Unicast 網路中,網路上每個連接的裝置都有一個唯一的位址。導向至該位址(在網際網路上是 IP 位址)的訊息只會傳送至該裝置,而不是像多點傳送一樣傳送到多個裝置。