南京郵電學院 王國華 劉華東
目前以光纖為主的網(wǎng)絡(luò)建設(shè)已經(jīng)基 本完成,隨著新業(yè)務的不斷開展,用戶要求網(wǎng)絡(luò)必須能夠提供更高的帶寬并支持服務的迅速開通,支持應用與業(yè)務的多樣化。其中一個重要的業(yè)務應用就是在網(wǎng)絡(luò)會議電視、視頻點播(VOD)、互動游戲和網(wǎng)絡(luò)信息的“推”技術(shù)等應用中廣泛使用的IP多播協(xié)議(IP Multicast Protocol)。
一、IP多播路由的基本類型
多播路由的一種常見的思路就是在多播組成員之間構(gòu)造一棵擴展分布樹。在一個特定的“發(fā)送源,目的組”對上的IP多播流量都是通過這個擴展樹從發(fā)送源傳輸?shù)浇邮苷叩,這個擴展樹連接了該多播組中所有主機。不同的IP多播路由協(xié)議使用不同的技術(shù)來構(gòu)造這些多播擴展樹,一旦這個樹構(gòu)造完成,所有的多播流量都將通過它來傳播。 根據(jù)網(wǎng)絡(luò)中多播組成員的分布,總的說來IP多播路由協(xié)議可以分為以下兩種基本類型。第一種假設(shè)多播組成員密集地分布在網(wǎng)絡(luò)中,也就是說,網(wǎng)絡(luò)大多數(shù)的子網(wǎng)都至少包含一個多播組成員,而且網(wǎng)絡(luò)帶寬足夠大,這種被稱作“密集模式”(Dense-Mode)的多播路由協(xié)議依賴于廣播技術(shù)來將數(shù)據(jù)“推”向網(wǎng)絡(luò)中所有的路由器。密集模式路由協(xié)議包括距離向量多播路由協(xié)議(DVMRP:Distance Vector Multicast Routing Protocol)、多播開放最短路徑優(yōu)先協(xié)議(MOSPF:Multicast Open Shortest Path First)和密集模式獨立多播協(xié)議(PIM-DM:Protocol-Independent Multicast-Dense Mode)等。
多播路由的第二種類型則假設(shè)多播組成員在網(wǎng)絡(luò)中是稀疏分散的,并且網(wǎng)絡(luò)不能提供足夠的傳輸帶寬,比如Internet上通過ISDN線路連接分散在許多不同地區(qū)的大量用戶。在這種情況下,廣播就會浪費許多不必要的網(wǎng)絡(luò)帶寬從而可能導致嚴重的網(wǎng)絡(luò)性能問題。于是稀疏模式多播路由協(xié)議必須依賴于具有路由選擇能力的技術(shù)來建立和維持多播樹。稀疏模式主要有基于核心樹的多播協(xié)議(CBT:Core Based Tree)和稀疏模式獨立協(xié)議多播(PIM-SM:Protocol-Independent Multicast-Sparse Mode)。
本文將比較和討論這些路由協(xié)議的功能,并且介紹透明的隧道機制,它們可以在沒有多播能力的路由器上為IP多播流量建立路由。
二、密集模式多播路由協(xié)議
1、距離向量多播路由協(xié)議 (DVMRP)
第一個支持多播功能的路由協(xié)議就是距離向量多播路由協(xié)議。它已經(jīng)被廣泛地應用在多播骨干網(wǎng)MBONE上。
DVMRP為每個發(fā)送源和目的主機組構(gòu)建不同的分布樹。每個分布樹都是一個以多播發(fā)送源作為根,以多播接受目的主機作為葉的最小擴展分布樹。這個分布樹為發(fā)送源和組中每個多播接受者之間提供了一個最短路徑,這個以“跳數(shù)”為單位的最短路徑就是DVMRP的量度。當一個發(fā)送源要向多播組中發(fā)送消息時,一個擴展分布樹就根據(jù)這個請求而建立,并且使用“廣播和修剪”的技術(shù)來維持這個擴展分布樹。
要簡單的描述DVMRP,我們首先假設(shè)網(wǎng)絡(luò)中所有的路由器都支持DVMRP協(xié)議。使用DVMRP的前提是假設(shè)網(wǎng)絡(luò)中所有的主機都是多播組中的一部分。子網(wǎng)中指定的路由器(就是用來處理子網(wǎng)中所有主機的路由的路由器)先向所有的臨近路由器發(fā)送一個多播包。這些路由器有選擇性的將這個數(shù)據(jù)包向前傳送,直到這個數(shù)據(jù)包傳送到多播組中的每個成員。
擴展分布樹構(gòu)建過程中的選擇性發(fā)送多播包的具體運作是:當一個路由器接收到一個多播包,它先檢查它的單播路由表來查找到多播組發(fā)送源的最短路徑的接口,如果這個接口就是這個多播包到達的接口,那么路由器就將這個多播組信息記錄到它的內(nèi)部路由表(指明該組數(shù)據(jù)包應該發(fā)送的接口),并且將這個多播包向除了接受到該數(shù)據(jù)包的路由器以外的其他臨近路由器繼續(xù)發(fā)送。如果這個多播包的到達接口不是該路由器到發(fā)送源的最短路徑的接口,那么這個包就被丟棄。這種機制被稱為“反向路徑廣播”(Reverse-Path Broadcasting)機制,保證了構(gòu)建的樹中不會出現(xiàn)環(huán),而且從發(fā)送源到所有接受者都是最短路徑。這是這個協(xié)議中的廣播技術(shù)部分。
DVMRP實際應用的路由算法使用了單播路由協(xié)議的某些信息,比上面描述的路由算法能更加具有選擇性的進行路由(這表明DVMRP必須包含它自己的單播路由協(xié)議)。一個DVMRP路由器(暫稱為MR1)的單播路由表中的某些信息使得它可以判定一個臨近的DVMRP路由器(暫稱為MR2)是否能夠?qū)R1確認為返回多播源的最短路徑。這使得只有MR2能夠被構(gòu)建入多播樹中時MR1才傳送多播包到MR2。這種機制能夠很可觀的減少構(gòu)建樹時的廣播消息。
協(xié)議的修剪功能可以將不能到達多播組成員的擴展分布樹的分枝拆除。在主機和其直接相鄰的路由器之間運作的Internet組管理協(xié)議(IGMP)可以用來維持路由器中的組成員關(guān)系數(shù)據(jù)。當一個路由器發(fā)現(xiàn)在它所屬的分枝上沒有主機屬于這個多播組,它就發(fā)送一個修剪數(shù)據(jù)包給它的上行路由器。同時,該路由器必須更新它的路由表中“發(fā)送源、目的組”的狀態(tài)信息,以表明這個分枝已經(jīng)從這個分布擴展樹中被刪除。這個過程這樣重復繼續(xù)下去直到所有的無用分枝都從這個樹中被刪除,這樣就得到了一個最小擴展樹。
DVMRP擴展樹的構(gòu)建如圖1所示。圖中左邊是建立前的網(wǎng)絡(luò)圖,右邊是建立起來的DVMRP擴展樹,建立過程為:
第一步:第一跳時數(shù)據(jù)包到達路由器MR1;
第二步:第二跳時數(shù)據(jù)包到達路由器MR2、MR3、MR4;
第三步:第三跳時路由器MR3和MR4交換數(shù)據(jù)包,都將數(shù)據(jù)包丟棄,因為數(shù)據(jù)包不是在返回發(fā)送源的最短路徑接口上接收到的。(在DVMRP的更有選擇性的發(fā)送進程中不會發(fā)生這種交換);
第四步:第四跳時數(shù)據(jù)包到達路由器MR7,路由器MR7發(fā)現(xiàn)它是一個葉路由器并且在其子網(wǎng)中沒有多播組成員,它就向上行路由器MR6發(fā)送一個修剪信息,路由器MR6再向路由器MR4發(fā)送修剪信息。路由器MR3也發(fā)送一個修剪信息給路由器MR1。
一旦擴展樹建立了,它就被用來從發(fā)送源到多播成員之間傳送多播數(shù)據(jù)包。路徑上的每個路由器通過指向多播組成員的接口傳送數(shù)據(jù)包。由于新成員可以在任意時刻加入,并且這些新成員可能會依附在那些被修剪了的分枝上接收多播消息,因此DVMRP會周期性的重建擴展樹。
對子網(wǎng)中密集分布的多播組來說DVMRP能夠很好的運作,但是對于在范圍比較大的區(qū)域上分散分布的多播組來說,周期性的廣播行為會導致嚴重的性能問題。另一個問題是需要在路由器中存儲大量的多播路由狀態(tài)信息。所有的多播路由器都必須為每個“發(fā)送源、目的組”對維護這些多播路由狀態(tài)信息,包括用來發(fā)送多播數(shù)據(jù)包的被選定端口和修剪狀態(tài)信息等。由于以上的原因,DVMRP不能支持大型網(wǎng)絡(luò)中稀疏分散的多播組。
2、多播開放最短路徑優(yōu)先 (MOSPF)
開放最短路徑優(yōu)先(OSPF)是一個單播路由協(xié)議,將數(shù)據(jù)包在最小開銷路徑上進行路由傳送,這里的開銷是表示鏈路狀態(tài)的一種量度。除了路徑中的跳數(shù)以外,其他能夠影響路徑開銷的網(wǎng)絡(luò)性能參數(shù)還有負載平衡信息(流量較低的鏈路被賦予的開銷值比流量高的鏈路的開銷值低,這樣可以平衡網(wǎng)絡(luò)中的通信量)、應用程序需要的QoS(如果某個應用要求低延遲,那么衛(wèi)星鏈路就會具有較高的開銷值)等。
MOSPF是為單路由域多播使用設(shè)計的,比如一個由某組織控制使用的網(wǎng)絡(luò)(校園網(wǎng)或企業(yè)網(wǎng)等)。MOSPF依賴于OSPF作為單播路由協(xié)議,就象DVMRP也包含它自己的單播協(xié)議一樣。在一個OSPF/MOSPF網(wǎng)絡(luò)中每個路由器都維持一個最新的全網(wǎng)絡(luò)拓撲結(jié)構(gòu)圖。這個“鏈路狀態(tài)”信息被用來構(gòu)建多播分布樹。
每個MOSPF路由器都通過IGMP協(xié)議周期性的收集多播組成員關(guān)系信息。這些信息和這些鏈路狀態(tài)信息被發(fā)送到其路由域中的所有其他路由器。路由器將根據(jù)它們從臨近路由器接收到的這些信息更新他們的內(nèi)部連接狀態(tài)信息。由于每個路由器都清楚整個網(wǎng)絡(luò)的拓撲結(jié)構(gòu),就能夠獨立的計算出一個最小開銷擴展樹,將多播發(fā)送源和多播組成員分別作為樹的根和葉。這個樹就是用來將多播流從發(fā)送源發(fā)送到多播組成員的路徑。所有的路由器都會計算出相同的擴展樹,因為它們周期性的共享鏈路狀態(tài)信息。 MOSPF使用Dijkstra算法計算最短路徑樹,對每一個“發(fā)送源、目的組”對來說這個樹都是分別計算的。為了減少計算量并有效使用計算結(jié)果,路由器只需要在它接收到第一個多播數(shù)據(jù)包時才進行計算擴展樹。一旦這個擴展樹被計算出來,其信息就被存儲下來用于后繼數(shù)據(jù)包的路由,如圖2所示,計算過程為:
(1)MR1計算樹——通過IGMP明確組成員并明確到MR4要通過MR2,到MR8要通過MR5,等等
(2)MR2計算樹——明確到MR4的路徑就是直接連接,到MR8要通過MR5;MR3計算樹——明確到MR9的路徑就是直接連接
(3)MR5計算樹——明確到MR8的路徑就是直接連接
這個過程(也叫做數(shù)據(jù)驅(qū)動過程)是由多播傳送引起的,當每個路由器接收到一個多播數(shù)據(jù)包時都會計算出和上次計算相同的分布樹。
3、獨立多播協(xié)議
獨立多播協(xié)議(PIM)是一種標準的多播路由協(xié)議,并能夠在Internet上提供可擴展的域間多播路由而不依賴于任何單播協(xié)議。PIM有兩種運行模式,一種是密集分布多播組模式,另一個是稀疏分布多播組模式,前者被稱為獨立多播密集模式協(xié)議(PIM-DM),就是下面要介紹的,后者被稱為獨立多播稀疏模式協(xié)議(PIM-SM),在稀疏模式路由協(xié)議中將有介紹。
4、獨立多播密集模式協(xié)議 (PIM-DM)
PIM-DM有點類似于DVMRP,這兩個協(xié)議都使用了反向路徑多播機制來構(gòu)建分布樹。它們之間的主要不同在于PIM完全不依賴于網(wǎng)絡(luò)中的單播路由協(xié)議而DVMRP依賴于某個相關(guān)的單播路由協(xié)議機制,并且PIM-DM比DVMRP簡單。
PIM-DM協(xié)議和所有的密集模式路由協(xié)議一樣也是數(shù)據(jù)驅(qū)動的。但是既然PIM-DM不依賴于任何單播路由協(xié)議,路由器某個接收端口(就是返回到源的最短路徑的端口)接收到的多播數(shù)據(jù)包被發(fā)送到所有下行接口直到不需要的分枝從樹中被修剪掉。DVMRP在樹構(gòu)建階段能夠使用單播協(xié)議提供的拓撲數(shù)據(jù)有選擇性的向下行發(fā)送數(shù)據(jù)包,PIM-DM則更加傾向于簡單性和獨立性,甚至不惜增加數(shù)據(jù)包復制引起的額外開銷。
三、稀疏模式多播路由 協(xié)議
上面介紹的路由協(xié)議都要周期性在網(wǎng)絡(luò)中引發(fā)廣播風暴。當多播組在網(wǎng)絡(luò)中集中分布或者網(wǎng)絡(luò)提供足夠大帶寬的情況下這是一個有效的方法,但是如果在Internet上同時召開數(shù)千個小會議的情況下,周期性廣播引起的網(wǎng)絡(luò)總流量有可能會引起Internet的廣大區(qū)域內(nèi)的流量擁塞。很顯然當多播組成員在廣泛區(qū)域內(nèi)稀疏分布時,就需要另一種方法將多播流量控制在連接到多播組成員的鏈路路徑上,而不會“泄漏”到不相關(guān)的鏈路路徑上,這樣既保證了數(shù)據(jù)傳輸?shù)陌踩,又能夠有效的控制網(wǎng)絡(luò)中的總流量和路由器的負載。
1、基于核心樹的多播協(xié)議 (CBT)
一些多播應用,比如分布互動仿真和分布圖像游戲等,在一個單個多播組中會存在數(shù)個有效的發(fā)送源。和DVMRP和MOSPF為每個“發(fā)送源、目的組”對構(gòu)建最短路徑樹不同的是,CBT協(xié)議只構(gòu)建一個樹給組中所有成員共享,這個樹也就被稱為共享樹。整個多播組的多播通信量都在這個共享樹上進行收發(fā)而不論發(fā)送源有多少或者在什么位置。這種共享樹的使用能夠極大的減少路由器中的多播狀態(tài)信息。
CBT共享樹有一個核心路由器用來構(gòu)建這個樹。如圖3所示。要加入的路由器發(fā)送加入請求給這個核心路由器。核心路由器接收到加入請求后,沿反路徑返回一個確認,這樣就構(gòu)成了樹的一個分枝。加入請求數(shù)據(jù)包在被確認之前不需要一直被傳送到核心路由器。如果加入請求包在到達核心路由器之前先到達樹上的某個路由器,該路由器就接收下這個請求包而不繼續(xù)向前發(fā)送并確認這個請求包。發(fā)送請求的路由器就連接到共享樹上了。 CBT將多播流量集中在最少數(shù)量的鏈路而不是在一個基于發(fā)送源的共享樹上。集中在核心路由器上的流量可能會引起多播路由的某些問題。某些版本的CBT支持多個多播核心的使用,和單個多播核心相比多核心更能達到負載平衡。
2 、獨立多播稀疏模式協(xié)議 (PIM-SM)
和CBT相似,PIM-SM被設(shè)計成將多播限制在需要收發(fā)的路由器上。PIM-SM圍繞一個被稱為集中點(RP:Rendezvous Point)的路由器構(gòu)建多播分布樹。這個集中點扮演著和CBT核心路由器相同的角色,接收者在集中點能查找到新的發(fā)送源。但是PIM-SM比CBT更靈活,CBT的樹通常是多播組共享樹,PIM-SM中的獨立的接收者可以選擇是構(gòu)建組共享樹還是最短路徑樹。
每種分布樹都有一定的優(yōu)點。共享樹比較容易構(gòu)建,只需要在路由器中存儲較少的狀態(tài)信息,因此當多播組具有大量低速率發(fā)送源時共享樹能夠保留網(wǎng)絡(luò)資源。但是,就像前面所說的,共享樹會引起流量集中在核心路由器或者集中點上,如果流量比較大會引起性能的下降。共享樹的另一個缺點是流量并不經(jīng)過從發(fā)送源到目的的最短路徑。如果低延遲是應用的關(guān)鍵要求,那么通信量應該通過最短路徑傳送。PIM-SM結(jié)構(gòu)支持這兩種分布樹。
PIM-SM協(xié)議最初先為多播組構(gòu)建一個組共享樹。這個樹由連接到集中點的發(fā)送者和接收者共同構(gòu)建,就像CBT協(xié)議圍繞著核心路由器構(gòu)建的共享樹一樣。這共享樹建立以后,一個接受者(實際上是最接近這個接收者的路由器)可以選擇通過最短路徑樹改變到發(fā)送源的連接。這個操作的過程是通過向發(fā)送源發(fā)送一個PIM加入請求完成的。一旦從發(fā)送源到接收者的最短路徑建立了,通過RP的外部分枝就被修剪掉了。這個過程如圖4所示。要注意的是在一個多播組中可以為不同的源選擇不同的樹。
PIM協(xié)議定義了一些軟狀態(tài)機制來周期性地更新系統(tǒng)狀態(tài),使之適應網(wǎng)絡(luò)拓撲的改變和組成員的改變。雖然PIM依賴于單播路由表來適應網(wǎng)絡(luò)拓撲的改變,但它不依賴于構(gòu)造這些路由表的特定單播路由協(xié)議。由于本文篇幅限制,PIM的其他性能,比如使用多集中點來消除單集中點錯誤導致的問題等,在本文中不加以描述。
四、 互操作性
使不同的路由協(xié)議之間具有互操作能力是很有必要的。供應商可以提供互操作能力的需求。互操作性的考慮有兩個方面:一是現(xiàn)存的單播路由器和正在出現(xiàn)的具有多播能力的路由器之間的互操作性,二是多種多播路由方式之間的互操作性。
就第一種互操作能力來講,DVMRP現(xiàn)在已經(jīng)被廣泛使用在MBONE的多播路由上,隧道機制也正在被用來將具有多播能力的子網(wǎng)連接到Internet上。另外,MOSPF是在OSPF的基礎(chǔ)上設(shè)計的,因此也可以在OSPF域上擴展多播能力。
PIM的設(shè)計者正致力于第二種互操作能力,這樣既可以在PIM-DM和PIM-SM之間實現(xiàn)互操作性,又可以在PIM和其他多播路由結(jié)構(gòu)之間實現(xiàn)互操作。
在密集模式協(xié)議構(gòu)建分布樹和稀疏模式構(gòu)建分布樹之間具有根本的不相容性。密集模式協(xié)議是數(shù)據(jù)驅(qū)動的,而稀疏模式協(xié)議依賴于外來的加入請求。如果一個密集模式多播組要和一個稀疏模式多播組互通,比如說構(gòu)建一個廣域網(wǎng)上稀疏分布但在部分子網(wǎng)中密集分布的多播組,就需要一種機制可以從密集多播組擴展到稀疏多播組以獲得加入請求。這種由PIM設(shè)計者提出的解決辦法就是設(shè)立邊界路由器向稀疏多播組發(fā)送外來的加入請求。這種解決辦法可以使PIM-SM具有和其他密集模式的協(xié)議(比如DVMRP)互通的能力。
五、IP多播路由中的隧道傳輸機制
在多播中的隧道概念指將多播包再封裝成一個IP數(shù)據(jù)包在不支持多播的互聯(lián)網(wǎng)絡(luò)中路由傳輸。最有名的多播隧道的例子就是MBONE(采用DVMRP協(xié)議)。在隧道的入口處進行數(shù)據(jù)包的封裝,在隧道的出口處則進行拆封。在達到本地全IP多播配置傳輸機制上,隧道機制非常有用。
六、 結(jié)論
IP多播帶入了許多新的應用并減少了網(wǎng)絡(luò)的擁塞和服務器的負擔。本文介紹分析了幾種IP多播路由協(xié)議的概念及其優(yōu)缺點。路由協(xié)議的選擇是配置的關(guān)鍵步驟,需要考慮到應用程序的使用范圍、可升級性、供應商的支持、性能開銷、其他網(wǎng)絡(luò)協(xié)議的支撐、靈活性、互操作性以及路由器開銷等。目前IP多播的應用范圍還不夠大,但它能夠降低占用帶寬,減輕服務器負荷,并能改善傳送數(shù)據(jù)的質(zhì)量,尤其適用于需要大量帶寬的多媒體應用,如音頻、視頻等。這項新技術(shù)已成為當前網(wǎng)絡(luò)界的熱門話題,并將從根本上改變網(wǎng)絡(luò)的體系結(jié)構(gòu)。
摘自《廣播電視網(wǎng)絡(luò)技術(shù)》2002.3