王 鋒,楊志軍
(北京交通大學信息中心,北京100044)
IP組播技術由于它所具有的獨特優越性—在IP組播網絡中,即使用戶數量成倍增加,主干網絡帶寬不需要隨之成倍增加,而成為熱點網絡技術之一。
為了更好地使用和管理組播應用,IPv6對組播做了進一步的增強,明確要求IPv6設備必須支持組播,使IPv6網絡中網絡設備將普遍支持組播應用。在增強IPv6組播技術后,利用IPv6組播技術和流媒體技術構建視頻組播系統,能充分發揮IPv6組播技術特點和優勢,在下一代互聯網上更好地傳輸圖形和圖像等流媒體業務。
根據接收者對組播源處理方式的不同,組播模型分為3類:ASM 模型、SFM 模型和SSM 模型。
ASM(Any-Source Multicast)模型就是任意源組播模型。在ASM 模型中,任意一個發送者都可以作為組播源向某組播組地址發送信息。眾多接收者通過加入由該組播組地址標識的組播組以獲得發往該組播組的組播信息。在 ASM 模型中,接收者無法預先知道組播源的位置,但可以在任意時間加入或離開該組播組。
SFM(Source-Filtered Multicast,信源過濾組播)模型繼承了ASM 模型并進行了擴展,接收者只能收到來自被允許組播源的組播數據。從接收者的角度來看,只有部分組播源是有效的,組播源被經過了篩選。從發送者角度來看,兩者的組播組成員關系完全相同。
SSM(Source-Specific Multicast,指定信源組播)模型為用戶提供了能夠在客戶端指定組播源的傳輸服務。SSM模型與ASM模型的根本區別在于:SSM模型中的接收者已經通過其它手段預先知道了組播源的具體位置。SSM模型使用與ASM/SFM模型不同的組播地址范圍,直接在接收者與其指定的組播源之間建立專用的組播轉發路徑。
基于IPv6的網上教學視頻組播應用,由于組播網絡覆蓋范圍廣泛,并通過適當的方式讓教學視頻組播接收者了解組播源和組播組的信道信息,因此,采用效率高的SSM組播模型是合適的選擇。
MLD (Multicast Listener Discovery Protocol,組播偵聽者發現協議)的簡稱,它用于IPv6路由器在其直連網段上發現組播偵聽者。組播偵聽者(Multicast Listener)是那些希望接收組播數據的主機節點。目前,MLD有兩個版本:
(1)MLDv1(由RFC 2710 定義),源自IGMPv2。(2)MLDv2(由RFC 3810 定義),源自IGMPv3。
所有版本的MLD協議都支持ASM模型;MLDv2可以直接應用于SSM模型,而MLDv1則需要在MLD SSM Mapping技術的支持下才能應用于SSM模型。
目前IPv6環境中使用的組播路由協議主要為PIM-SM協議。IPv6 PIM是Protocol Independent Multicast for IPv6(IPv6協議無關組播)的簡稱,表示可以利用靜態路由或者任意IPv6單播路由協議(包括RIPng、OSPFv3、IS-ISv6、BGP4+等)所生成的IPv6單播路由表為IPv6組播提供路由。IPv6組播路由與所采用的IPv6單播路由協議無關,只要能通過IPv6單播路由協議產生相應的IPv6組播路由表項即可。IPv6 PIM借助RPF(Reverse Path Forwarding,逆向路徑轉發)機制實現對IPv6組播報文的轉發。當IPv6組播報文到達本地設備時,首先對其進行RPF檢查:若RPF檢查通過,則創建相應的IPv6組播路由表項,從而進行IPv6組播報文的轉發;若RPF檢查失敗,則丟棄該報文。
根據實現機制的不同,IPv6 PIM分2種模式:
(1)IPv6 PIM-DM(Protocol Independent Multicast-Dense Mode for IPv6,IPv6協議無關組播-密集模式)。(2)IPv6 PIM-SM(Protocol Independent Multicast-Sparse Mode for IPv6,IPv6協議無關組播-稀疏模式)。
SSM模型和ASM模型是兩個完全對等的模型。目前,ASM模型包括IPv6 PIM-DM和IPv6 PIM-SM兩種模式,SSM 模型能夠借助IPv6 PIMSM的部分技術來實現。
SSM 模型為指定源組播提供了解決方案,通過MLDv2來維護主機與路由器之間的關系。鑒于IPv6 PIM-DM模式以“擴散—剪枝”方式構建以IPv6組播源為根的SPT,SPT的路徑最短,但是分發樹的建立過程效率較低,不適合大中型網絡。
在實際應用中,通常采用IPv6 PIM-SM模式的一部分技術來實現SSM模型。由于接收者已經通過其它渠道知道了IPv6組播源的具體位置,因此在SSM模型中無需RP,無需構建RPT,也無需IPv6組播源注冊過程來發現其它IPv6 PIM域內的IPv6組播源。與ASM模型相比,SSM模型僅需要MLDv2和IPv6 PIM-SM部分子集的支持,并且能夠以相對于PIM-DM模式和PIM-SM模式更高的效率建立和維護組播分發樹。
RFC4607定義具有前綴FF3x::/32的地址保留為1Pv6 SSM使用。即SSM地址是特殊的Unicatprefix-based 組播地址,必須滿足P=l、T=I、Rsvd=Ox00、Plcn=Ox00。RFC3307規定,SSM地址必須將Network Prefix字段全部設置為0,因此當前SSM組播地址具有前綴FF3x::/96。
此外,考慮到未來地址格式的兼容性(例如,或許將來某個文檔規定Network Prefix字段可以映射MAC地址,從而導致Network Prefix字段不為0),所有系統應該將所有前綴為FF3x::/32的組播地址視為SSM組播地址(此處RFC4607和RFC3306定義之間存在不一致:RFC3306定義的FF3x::/32可用于ASM。而此處卻視為SSM),但當前SSM地址指派需在FF3x::/96地址范圍之內。
RFC3307 還規定位于FF3x::4000:0001和FF3x::7FFF:FH之間的地址保留為IANA分配;FF3x::8000:0000到 FF3x::FFFF:FFFF之問的地址是用于動態分配的地址;而FF3x::0000:0000到FF3x::3FFF:FFFF之問的地址則是無效的SSM地址(RFC3307規定IANA分配的永久IPv6組播地址必須指定GID在0x0000 0001到0x3FFF FFFF之間,P和T比特都設置為0,然而SSM中P、T比特必須都為l。這種SSM地址指派是無效的)。
北京交通大學IPv6校園網絡采用了多廠商的產品和技術。鑒于組播環境需要在不同品牌的網絡設備下組建,因此,我們對不同廠商的產品對IPv6組播的支持和互操作性進行了研究和測試,并與設備廠商的研發進行了多次的交互和研討,使在我校網絡平臺下實現了全網IPv6組播環境的建立。測試方案如表1。

表1 測試方案
測試環境如圖1。
說明:
(1)SA1配置為組播服務器,PB1,PC1,PC2配置為組播客戶端。
(2)路由器A、B、C之間運行OSPFv2 和OSPFv3,PIM組播路由協議;測試內容與結果見表2。

表2 測試內容與結果

圖1 IPv6組播測試環境
項目組已經在北京交通大學IPv6/IPv4全校雙棧網絡環境下,建立了PIM-SSM組播模型實現環境,并提供全校用戶的IPv6視頻組播服務。
[1] [美] Qing Li,[日] Tatuya Jinmei. IPv6詳解 卷2:高級協議實現(英文版)[M] . 北京:人民郵電出版社,2009,2:33-206.
[2] 劉瑩,徐恪 .Internet 組播體系結構[M] . 北京:科學出版社,2008.
[3] H Holbrook, Cain B. Source-specific Multicast for IP Internet Draft[D] . 2003.
[4] A Adams. RFC3973. Protocol Independent Multicast-Dense Mode (PIM-DM):Protocol Specification (Revised)[J] . The Internet Society, 2005 (2).