圖1.1
1. IP組播
IP組播是指一個IP報文向一個“主機組”的傳送,,這個包含零個或多個主機的主機組由一個單獨的IP地址標(biāo)識,。主機組地址也稱為“組播地址”,或者D類地址,。除了目的地址部分,,組播報文與普通報文沒有區(qū)別,網(wǎng)絡(luò)盡力傳送組播報文但是并不保證一定送達,。
主機組的成員可以動態(tài)變化,,主機有權(quán)選擇加入或者退出某個主機組。主機可以加入多個主機組,,也可以向自己沒有加入的主機組發(fā)送數(shù)據(jù),。主機組有兩種:永久組和臨時組。永久組的IP地址是周知的,,由Internet管理機構(gòu)分配,,是保留地址。臨時組的地址則使用除永久組地址外的非保留D類地址,。
IP組播分組在互聯(lián)網(wǎng)上的轉(zhuǎn)發(fā)由支持組播的路由器來處理,。主機發(fā)出的IP組播分組在本子網(wǎng)內(nèi)被所有主機組成員接收,同時與該子網(wǎng)直接相連的組播路由器會把組播報文轉(zhuǎn)發(fā)到所有包含該主機組成員的網(wǎng)絡(luò)上,。組播報文傳遞的范圍由報文的生存期值(TTL, Time-to-Live)決定,,如果TTL值等于或者小于設(shè)置的路由器端口TTL門限值(TTL Threshold),路由器將不再轉(zhuǎn)發(fā)該報文,。
2. 組播地址
IP組播地址,,或稱為主機組地址,由D類IP地址標(biāo)記,。D類IP地址的最高四位為“1110”,,起范圍從224.0.0.0到239.255.255.255。如前所述,,部分D類地址被保留,,用作永久組的地址,這段地址從224.0.0.0-224.0.0.255,。比較重要的地址有:
224.0.0.1 - 網(wǎng)段中所有支持組播的主機
224.0.0.2 - 網(wǎng)段中所有支持組播的路由器
224.0.0.4 - 網(wǎng)段中所有的DVMRP路由器
224.0.0.5 - 所有的OSPF路由器
224.0.0.6 - 所有的OSPF指派路由器
224.0.0.9 - 所有RIPv2路由器
224.0.0.13 -所有PIM路由器
臨時主機組的組播地址由網(wǎng)絡(luò)管理員選擇,,他需要保證這個地址在一定的范圍內(nèi)沒有其他的主機組在使用這個組播地址。
第2層的組播地址(組播MAC地址)可以從IP組播地址中衍生,。計算方法是把IP地址的最后23位拷貝到MAC地址的最后23位,,然后把這23位前面的那一位置為0,。MAC地址的前24位必須為0x01-00-5E。例如:組播IP地址224.0.1.128,,16進制表示為0xE0-00-01-10,,最低的23位為0x00-01-10,計算得出的MAC地址為:0x01-00-5E-00-01-10,。
3.Internet組管理協(xié)議(IGMP)
IGMP協(xié)議由主機成員關(guān)系協(xié)議發(fā)展而來,,目前有兩個版本:IGMPv1(RFC1112),IGMPv2 (RFC2326),。主機使用IGMP消息通告本地的組播路由器它想接收組播流量的主機組地址,。如果主機支持IGMPv2,它還可以通告組播路由器它退出某主機組,。組播路由器通過IGMP協(xié)議為其每個端口都維護一張主機組成員表,,并定期的探詢表中的主機組的成員,以確定該主機組是否存活,。
IGMP消息被置于IP報文中傳送,。IGMPv1的報文如圖1.2所示。IGMPv1中定義了兩種消息類型:主機成員詢問和主機成員報告,。當(dāng)某主機想要介紹某個組播流量時,,它向本地的組播路由器發(fā)送"主機成員報告"消息,告知欲接收的組播地址,。組播路由器收到"主機成員報告"消息后把該主機加入指定的主機組,,并在設(shè)定的周期內(nèi)向組播地址224.0.0.1(代表所有支持組播的主機) 發(fā)送"主機成員詢問"消息。主機如果還想繼續(xù)接收組播流量,,必須發(fā)送"主機成員報告"消息,。
IGMPv2的報文如圖1.3所示。與IGMPv1不同的是它將版本字段和消息類型字段融合,,把未使用字段作了"最大響應(yīng)時間"字段。IGMPv2報文的消息類型字段定義了四種消息類型:
圖1.3
0x11 - 成員詢問
0x12 - IGMPv1 成員報告
0x16 - IGMPv2 成員報告
0x17 - 退出主機組
IGMPv2向前兼容IGMPv1協(xié)議,, IGMPv1的設(shè)備可以接收處理IGMPv2的消息報文,。 IGMPv2中允許路由器對指定的主機組地址做"成員詢問",非該組的主機不必響應(yīng),。如果某主機想退出,,它可以主動向路由器發(fā)送"推出主機組"消息,而不必像IGMPv1中那樣只能被動退出,。
4. CGMP協(xié)議
在交換網(wǎng)絡(luò)中,,2層交換機可能即不了解哪個端口有哪些組播組,也不能在其源MAC地址表中找到組播MAC地址的表項,。從而,,交換機只能簡單地把組播報文向所有端口轉(zhuǎn)發(fā),,組播的優(yōu)勢將大大削弱。因此,,Cisco提出CGMP協(xié)議,,讓組播路由器來配置交換機的組播轉(zhuǎn)發(fā)表,從而徹底解決交換網(wǎng)絡(luò)中的組播問題,。
CGMP ( Cisco Group management protocol)全稱Cisco組管理協(xié)議,,采用CGMP的路由器將主機加入或者退出組播組的IGMP消息通知交換機,交換機則根據(jù)該消息將該主機所在端口從組播轉(zhuǎn)發(fā)表中加入或者刪除,。通過CGMP協(xié)議的使用,,2層交換機可以掌握接收組播的主機的情況,從而提高整個網(wǎng)絡(luò)的性能和利用率,。
5. 分布樹(Distribution Tree)
在傳送組播分組時,,指派路由器需要構(gòu)造一個連接所有組播組成員的樹。根據(jù)這個樹,,路由器得出轉(zhuǎn)發(fā)分組的一條唯一路徑,。這個樹就稱為分布樹。由于成員可以動態(tài)的加入和退出,,分布樹也必須動態(tài)更新,。
根據(jù)構(gòu)造方法的不同,分布樹分為源分布樹(Source Distribution Tree)和共享分布樹(Shared Distribution Tree),。源分布樹以組播源為根節(jié)點構(gòu)造到所有組播組成員的生成樹,,通常也稱為最短路徑樹(SPT)。共享分布樹,,也稱為RP樹或基于核心的樹(CBT, Core_based Tree),。它的構(gòu)造方法是以網(wǎng)絡(luò)中的某一個指定的路由器為根節(jié)點,該路由器稱為集合點或中心點,,由此節(jié)點生成包含所有組成員的樹,。使用共享分布樹時,組播源需要首先把組播分組發(fā)送給集合點路由器,,再由這個路由器轉(zhuǎn)發(fā)給其他的組成員,。
6. 組播路由協(xié)議
組播路由協(xié)議的主要任務(wù)就是構(gòu)造組播的分布樹,使組播分組能夠傳送到相應(yīng)的組播組成員,。根據(jù)對網(wǎng)絡(luò)中的組播成員的分布和使用的不同,,組播路由協(xié)議分為兩類:密集模式路由協(xié)議(DM)和稀疏模式路由協(xié)議(SM)。
DM路由協(xié)議通常用于組播成員較為集中,、數(shù)量較多-網(wǎng)絡(luò)的大部分用戶,、并且有足夠帶寬的網(wǎng)路環(huán)境,比如公司或園區(qū)的局域網(wǎng),。因此,,DM路由協(xié)議用定期廣播組播報文的方法維護組播分布樹,。DM協(xié)議只使用源分布樹(SPT),組播流量被廣播到網(wǎng)絡(luò)中所有的組播路由器,。DM路由協(xié)議有:
DVMRP:距離向量組播路由協(xié)議,。這是一種基于距離向量算法的組播路由協(xié)議。目前已基本上被PIM和MOSPF所取代,。
MOSPF:組播OSPF協(xié)議,。
PIM-DM:協(xié)議無關(guān)組播協(xié)議-密集模式。它不需要單獨的組播協(xié)議,,利用路由器上單播路由協(xié)議的路由表作反向路徑轉(zhuǎn)發(fā)檢查,,由此獲得組播分布樹。相比另兩種協(xié)議,,PIM-DM的開銷要小很多,,它用于組播源和目的非常靠近,、接收者數(shù)量大于發(fā)送者數(shù)量并且組播流量比較大的環(huán)境中效果很好,。在網(wǎng)路中稀疏分布、網(wǎng)絡(luò)也沒有充足帶寬的情況,,如廣域網(wǎng)環(huán)境,,可以使用SM路由協(xié)議。因此,,SM路由協(xié)議采用選擇性的建立和維護分布樹的方式,,由空樹開始,僅當(dāng)成員顯式的請求加入分布樹才做出修改,。SM路由協(xié)議有:
CBT:基于中心的分布樹協(xié)議(RFC 2201),。協(xié)議由以一個中心的路由器為根構(gòu)造一個共享分布樹,所有的組播流量都經(jīng)由這個中心路由器轉(zhuǎn)發(fā),。
PIM-SM:協(xié)議無關(guān)組播協(xié)議-稀疏模式,。工作原理與PIM-DM類似,但專門針對稀疏環(huán)境優(yōu)化,。適用于組播組中接收者較少,、間歇性組播流量的情況。不同于PIM-DM的廣播方式,,PIM-SM定義了一個集合點(RP),,所有的接收者在RP注冊,,組播分組由RP轉(zhuǎn)發(fā)給接收者,。
7.總結(jié)
單個數(shù)據(jù)流可以發(fā)送到多個客戶端的組播能力已成為大多數(shù)多媒體應(yīng)用的傳輸手段。組播技術(shù)利用一個IP地址使IP數(shù)據(jù)報文發(fā)送到用戶組,。IP組播采用了特殊定義的目的IP地址和目的MAC地址,。IGMP為客戶端提供加入和離開組播組的方式,。CGMP使路由器為交換機配置組播轉(zhuǎn)發(fā)表,并告訴交換機當(dāng)前的組播成員,。指派路由器根據(jù)對網(wǎng)絡(luò)中的組播成員的分布和使用的不同采用密集模式DM或稀疏模式SM組播路由協(xié)議來構(gòu)造組播的分布樹,,而這個分布樹將在源子網(wǎng)和組播組之間確定一條唯一路徑以提高數(shù)據(jù)傳輸效率。