前言:一直對(duì)組播這個(gè)概念迷迷糊糊,特別是交換機(jī)處理組播的方式,非常想搞懂但是懶癌發(fā)作。這幾天終于耐心地看了下有關(guān)組播的資料,大致了解了一下同一廣播域內(nèi)組播的相關(guān)知識(shí)。組播占了計(jì)算機(jī)網(wǎng)絡(luò)的一大部分,特別是組播路由這一塊,知識(shí)點(diǎn)、名詞非常多,要完全掌握并不是一件容易的事情。下面海翎光電的小編跟大家分享一下我的學(xué)習(xí)經(jīng)驗(yàn),如有錯(cuò)誤請(qǐng)?zhí)岢觯x謝。還有,此文全部組播均為IPv4環(huán)境下的組播,IPv6的組播跟IPv4完全不同,請(qǐng)注意區(qū)分。
簡(jiǎn)單來(lái)說(shuō),就是因?yàn)樵谝恍┲T如視頻點(diǎn)播的應(yīng)用時(shí),單播對(duì)主機(jī)的壓力太大、而廣播又對(duì)網(wǎng)絡(luò)鏈路的壓力太大。所以……
- 224.0.0.0~239.255.255.255 所有組播地址
- 224.0.0.0~224.0.0.255 有特殊用途的組播地址(不能被路由)
- 224.0.0.1 同一網(wǎng)段所有主機(jī)
- 224.0.0.2 同一網(wǎng)段所有組播路由器
- 224.0.1.0~238.255.255.255 公網(wǎng)組播地址
- 239.0.0.0~239.255.255.255 私網(wǎng)組播地址
(二) 組播IP地址和MAC地址的關(guān)系 組播MAC地址的高24bit位是以01-00-5E開(kāi)頭,低23bit為組播IP地址的低23bit。 由于IP組播地址的高4bit是1110,標(biāo)識(shí)了組播組,而低28bit中只有23bit被映像到組播MAC地址上,這樣IP組播地址中就會(huì)有5bit沒(méi)有使用,從而出現(xiàn)了32個(gè)IP組播地址映像到同一MAC地址上的結(jié)果。 根據(jù)接收者對(duì)組播源處理方式的不同,組播模型分為以下三類(lèi): (1) ASM 模型:Any-Source Multicast,任意信源組播 在ASM 模型中,任意一個(gè)發(fā)送者都可以作為組播源向某組播組地址發(fā)送信息。眾多接收者通過(guò)加入由該組播組地址標(biāo)識(shí)的組播組以獲得發(fā)往該組播組的組播信息。在ASM 模型中,接收者無(wú)法預(yù)先知道組播源的位置,但可以在任意時(shí)間加入或離開(kāi)該組播組。 (2) SFM 模型:Source-Filtered Multicast,信源過(guò)濾組播 該模型繼承了ASM 模型,從發(fā)送者角度來(lái)看,兩者的組播組成員關(guān)系完全相同。SFM 模型在功能上對(duì)ASM 模型進(jìn)行了擴(kuò)展。 在SFM 模型中,上層軟件對(duì)收到的組播報(bào)文的源地址進(jìn)行檢查,允許或禁止來(lái)自某些組播源的報(bào)文通過(guò)。 因此,接收者只能收到來(lái)自部分組播源的組播數(shù)據(jù)。從接收者的角度來(lái)看,只有部分組播源是有效的,組播源被經(jīng)過(guò)了篩選。 (3) SSM 模型:Source-Specific Multicast,指定信源組播 在現(xiàn)實(shí)生活中,用戶(hù)可能只對(duì)某些組播源發(fā)送的組播信息感興趣,而不愿接收其它源發(fā)送的信息。該模型為用戶(hù)提供了一種能夠在客戶(hù)端指定組播源的傳輸服務(wù)。 SSM 模型與ASM 模型的根本區(qū)別在于:SSM 模型中的接收者已經(jīng)通過(guò)其它手段預(yù)先知道了組播源的具體位置。SSM 模型使用與ASM/SFM 模型不同的組播地址范圍,直接在接收者與其指定的組播源之間建立專(zhuān)用的組播轉(zhuǎn)發(fā)路徑。 (四) 組播服務(wù)模型:針對(duì)接受者對(duì)源如何進(jìn)行選擇

(五)組播ip地址

高24bit=0x01005e,第25bit=0,第23bit=組播ip地址的第23bit

優(yōu)于ip地址的前4bit是1110,代表主筆標(biāo)識(shí),而后28bit中只有23bit被映射到mac地址表,這樣ip地址中就有5bit信息丟失,直接的結(jié)果就是出現(xiàn)32個(gè)ip組播地址映射到同一個(gè)mac地址上。

數(shù)據(jù)發(fā)送-轉(zhuǎn)發(fā)-接受
(八) 組播路由協(xié)議包括
(九)域間組播協(xié)議
對(duì)于ssm模型,沒(méi)有域內(nèi)和域間劃分。優(yōu)于接受者預(yù)先只掉組播的具體位置,因此可以借助pim sm的功能直接創(chuàng)建組播傳輸路勁 IGMP是Internet Group Management Protocol的簡(jiǎn)稱(chēng),又被稱(chēng)為互聯(lián)網(wǎng)組管理協(xié)議,是TCP/IP協(xié)議族中負(fù)責(zé)IPv4組播成員管理的協(xié)議。IGMP用來(lái)在接收者主機(jī)和與其直接相鄰的組播路由器之間建立和維護(hù)組播組成員關(guān)系。IGMP通過(guò)在接收者主機(jī)和組播路由器之間交互IGMP報(bào)文實(shí)現(xiàn)組成員管理功能,IGMP報(bào)文封裝在IP報(bào)文中。 該報(bào)文由組播路由器發(fā)出。可細(xì)分為通用查詢(xún)報(bào)文和特定組查詢(xún)報(bào)文。組播路由器定時(shí)發(fā)出通用查詢(xún)報(bào)文(下圖的組播路由器每125s發(fā)送一次)。通用查詢(xún)報(bào)文的目標(biāo)IP為224.0.0.1(所有主機(jī)),IGMP報(bào)頭內(nèi)的組播IP為0.0.0.0。用來(lái)查詢(xún)?cè)摼W(wǎng)段有哪些組播組的成員。特定組查詢(xún)報(bào)文的目標(biāo)IP則是要查詢(xún)的組播組地址。

該報(bào)文由主機(jī)發(fā)出。可對(duì)組播路由器發(fā)出的查詢(xún)報(bào)文進(jìn)行回應(yīng),同時(shí)主機(jī)在主動(dòng)加入特定組的時(shí)候,也會(huì)主動(dòng)發(fā)送該報(bào)文報(bào)告。報(bào)告報(bào)文的目標(biāo)IP和IGMP報(bào)頭內(nèi)的組播IP均為主機(jī)加入的組播組地址(注意!這里雖說(shuō)是回應(yīng)路由器的,但是數(shù)據(jù)包的目標(biāo)IP不是路由器)。
3、離開(kāi)報(bào)文(僅限IGMPv2和v3) 該報(bào)文由主機(jī)發(fā)出。當(dāng)主機(jī)離開(kāi)組播組時(shí)發(fā)送此報(bào)文,向組播路由器報(bào)告離開(kāi)了特定的組播組。離開(kāi)報(bào)文的目標(biāo)IP為224.0.0.2(所有組播路由器),IGMP報(bào)頭內(nèi)的組播IP為特定離開(kāi)組的IP。
1、一切沒(méi)有開(kāi)啟或不支持IGMP監(jiān)聽(tīng)功能的交換機(jī),組播數(shù)據(jù)包都以廣播的形式在廣播域內(nèi)泛洪。 2、開(kāi)啟IGMP監(jiān)聽(tīng)功能的交換機(jī)的每個(gè)VLAN會(huì)維護(hù)一個(gè)組播地址表。當(dāng)收到組播數(shù)據(jù)包時(shí),如果表中含有該數(shù)據(jù)包組播IP的條目,則按照表中的組播IP向?qū)?yīng)的端口進(jìn)行轉(zhuǎn)發(fā),否則以廣播的形式在廣播域內(nèi)泛洪。
五、交換機(jī)組播地址表的學(xué)習(xí)和維護(hù)(IGMP監(jiān)聽(tīng)過(guò)程) (假設(shè)當(dāng)前只有一個(gè)VLAN) 1、當(dāng)組播路由器發(fā)出IGMP通用查詢(xún)報(bào)文然后收到主機(jī)回應(yīng)的IGMP報(bào)告報(bào)文時(shí),交換機(jī)會(huì)把收到回應(yīng)的端口和對(duì)應(yīng)的組播地址學(xué)習(xí)到組播地址表中(其實(shí)只要是IGMP報(bào)告報(bào)文,都會(huì)學(xué)習(xí),不管有沒(méi)有事先查詢(xún))。如下圖所示:

2、當(dāng)主機(jī)發(fā)出IGMP離開(kāi)報(bào)文時(shí),組播路由器會(huì)發(fā)送IGMP特定組查詢(xún)報(bào)文。如果該端口在一定時(shí)間內(nèi)得不到回應(yīng),則刪除條目對(duì)應(yīng)的端口;如果得到回應(yīng)則不刪除。當(dāng)開(kāi)啟端口快速離開(kāi)功能時(shí),一旦該端口收到離開(kāi)報(bào)文,交換機(jī)將立即刪除條目對(duì)應(yīng)的端口。 3、和MAC地址表一樣,自動(dòng)學(xué)習(xí)到的條目都有老化時(shí)間。若在一定時(shí)間內(nèi)沒(méi)有收到對(duì)應(yīng)組播地址某個(gè)端口上的IGMP報(bào)告報(bào)文,條目上相應(yīng)的端口會(huì)自動(dòng)刪除。當(dāng)所有端口都被刪除時(shí),條目則自動(dòng)刪除。 4、組播地址表的學(xué)習(xí)和維護(hù)全靠IGMP監(jiān)聽(tīng)(不考慮CGMP)。 5、如果網(wǎng)絡(luò)中沒(méi)有組播路由器,也就沒(méi)有IGMP查詢(xún)報(bào)文,組播地址表的建立將會(huì)變得十分困難(思科2960可以配置定期發(fā)送IGMP查詢(xún)報(bào)文)。 6、除非把交換機(jī)配置成IGMP查詢(xún)器,否則交換機(jī)不會(huì)發(fā)送任何IGMP報(bào)文,只會(huì)靜靜地監(jiān)聽(tīng)。