IGMP Snooping 是什麼?(監控網絡為何需要啟用)
IGMP Snooping 是交換機監聽 IGMP(Internet Group Management Protocol)訊息、控制多播(Multicast)流量分發的機制。在使用多播傳輸的監控網絡中,未啟用 IGMP Snooping 的交換機會將視像串流氾濫轉發至所有端口,浪費頻寬。本頁講解其運作原理及在 CCTV/監控網絡的實際意義。
IGMP Snooping 的定義
IGMP Snooping 是交換機監聽(Snoop)主機與路由器之間 IGMP 對話內容的過程,目的是控制 IP 多播(Multicast)流量的分發路徑。具備 IGMP Snooping 功能的交換機,會建立並維護一張記錄「哪些端口需要哪個多播串流」的對照表,只把多播流量轉發至確實有接收者的端口,其餘端口則不會收到該串流,藉此節省頻寬。
IGMP Snooping 本質上是針對第三層 IGMP 協定的第二層(Data Link Layer)優化,運作完全在交換機內部進行,並不是交換機主動參與 IGMP 協定本身,而是被動監聽並據此建立轉發規則。與 IGMP Snooping 相關的網絡分段概念,可參考我們的VLAN 是什麼?頁面。
為何需要 IGMP Snooping:多播氾濊的問題
交換機在預設情況下,會將多播流量廣播至同一廣播網域(或對應 VLAN)內的所有端口,這種行為稱為多播氾濫(Multicast Flooding)。當網絡中有 IP 攝影機或 NVR 以多播方式輸出視像串流時,未啟用 IGMP Snooping 的交換機會把每一路多播串流複製到全部端口,即使某些端口只連接一台與監控完全無關的辦公室電腦,也會收到這些串流,佔用該端口及上聯線路的頻寬,並增加終端設備不必要的處理負擔。
IGMP Snooping 的設計目的,正是防止本地網絡上未曾明確加入某個多播群組的主機,繼續接收該群組的流量。啟用後,交換機只會把多播串流修剪(Prune)至確實有接收者加入的端口,其餘端口的頻寬得以保留給其他正常流量使用。
啟用 IGMP Snooping 前後的交換機行為對比
| 比較項目 | 未啟用 IGMP Snooping | 已啟用 IGMP Snooping |
| 多播流量轉發方式 | 氾濫轉發至同一 VLAN 內所有端口 | 只轉發至已加入該多播群組的端口 |
| 無關端口的影響 | 無關設備亦會收到多播串流,增加處理負擔 | 無關端口不會收到該串流,不受影響 |
| 頻寬使用 | 多播串流佔用所有端口及上聯鏈路的頻寬 | 頻寬只保留給實際需要接收的端口 |
| 運作層面 | 沿用交換機預設的第二層廣播式轉發 | 交換機監聽第三層 IGMP 對話並建立轉發表 |
交換機是否支援 IGMP Snooping,是選擇管理型交換機(Managed Switch)時的其中一項考慮因素,詳見管理型與非管理型交換機分別。