1. 程式人生 > >組播基本概念、IGMP、IGMP監聽學習筆記

組播基本概念、IGMP、IGMP監聽學習筆記

為什麼需要組播

簡單來說,就是因為在一些諸如視訊點播的應用時,單播對主機的壓力太大、而廣播又對網路鏈路的壓力太大。所以……

組播IP地址

224.0.0.0~239.255.255.255 所有組播地址

224.0.0.0~224.0.0.255 有特殊用途的組播地址(不能被路由)
224.0.0.1 同一網段所有主機
224.0.0.2 同一網段所有組播路由器
224.0.1.0~238.255.255.255 公網組播地址
239.0.0.0~239.255.255.255 私網組播

組播IP地址和MAC地址的關係

組播MAC地址的高24bit位是以01-00-5E開頭,低23bit為組播IP地址的低23bit。
由於IP組播地址的高4bit是1110,標識了組播組,而低28bit中只有23bit被映像到組播MAC地址上,這樣IP組播地址中就會有5bit沒有使用,從而出現了32個IP組播地址映像到同一MAC地址上的結果。

IGMP簡介

網路群組管理協議(Internet Group Management Protocol或簡寫IGMP)是用於管理網路協議多播組成員的一種通訊協議。IP主機和相鄰的路由器利用IGMP來建立多播組的組成員。像ICMP用於單播連線一樣,IGMP也是IP多播說明的一個完整部分。 IGMP為網際網路協議的一種,屬於開放系統連結(OSI) 模組的第三層協議,IP主機用它將主機的多點發送成員人數報告給臨近的多點發送路由器。
IGMP目前有三個版本,目前用的最多的是IGMPv2。IGMPv1主要基於查詢和響應機制來完成對組播組成員的管理;IGMPv2增加了查詢器選舉機制和離開組機制;IGMPv3在相容和繼承IGMPv1和IGMPv2的基礎上,進一步增強了主機的控制能力,並增強了查詢和報告報文的功能。

IGMPv2報文分類和詳解

一、查詢報文
該報文由組播路由器發出。可細分為通用查詢報文和特定組查詢報文。組播路由器定時發出通用查詢報文(下圖的組播路由器每125s傳送一次)。通用查詢報文的目標IP為224.0.0.1(所有主機),IGMP報頭內的組播IP為0.0.0.0。用來查詢該網段有哪些組播組的成員。特定組查詢報文的目標IP則是要查詢的組播組地址。查詢報文如下圖所示:

二、報告報文

該報文由主機發出。可對組播路由器發出的查詢報文進行迴應,同時主機在主動加入特定組的時候,也會主動傳送該報文報告。報告報文的目標IP和IGMP報頭內的組播IP均為主機加入的組播組地址(注意!這裡雖說是迴應路由器的,但是資料包的目標IP不是路由器)。


三、離開報文(僅限IGMPv2和v3)

該報文由主機發出。當主機離開組播組時傳送此報文,向組播路由器報告離開了特定的組播組。離開報文的目標IP為224.0.0.2(所有組播路由器),IGMP報頭內的組播IP為特定離開組的IP。

交換機處理組播的方式

1、一切沒有開啟或不支援IGMP監聽功能的交換機,組播資料包都以廣播的形式在廣播域內泛洪。

2、開啟IGMP監聽功能的交換機的每個VLAN會維護一個組播地址表。當收到組播資料包時,如果表中含有該資料包組播IP的條目,則按照表中的組播IP向對應的埠進行轉發,否則以廣播的形式在廣播域內泛洪。

交換機的組播地址表樣式

包型別 組播IP 所在埠
IGMP 224.0.0.251 1
IGMP 224.0.0.251 2, 3, 4