隨著全球互聯(lián)網(wǎng)(Internet)的迅猛發(fā)展,上網(wǎng)人數(shù)正以幾何級(jí)數(shù)快速增長(zhǎng),以因特網(wǎng)技術(shù)為主導(dǎo)的數(shù)據(jù)通信在通信業(yè)務(wù)總量中的比列迅速上升,因特網(wǎng)業(yè)務(wù)已成為多媒體通信業(yè)中發(fā)展最為迅速、競(jìng)爭(zhēng)最為激烈的領(lǐng)域。Internet網(wǎng)絡(luò)傳輸和處理能力的大幅提高,使得網(wǎng)上應(yīng)用業(yè)務(wù)越來(lái)越多,特別是視音頻壓縮技術(shù)的發(fā)展和成熟,使得網(wǎng)上視音頻業(yè)務(wù)成為Internet網(wǎng)上最重要的業(yè)務(wù)之一。
在Internet上實(shí)現(xiàn)的視頻點(diǎn)播(VOD)、可視電話、視頻會(huì)議等視音頻業(yè)務(wù)和一般業(yè)務(wù)相比,有著數(shù)據(jù)量大、時(shí)延敏感性強(qiáng)、持續(xù)時(shí)間長(zhǎng)等特點(diǎn)。因此采用最少時(shí)間、最小空間來(lái)傳輸和解決視音頻業(yè)務(wù)所要求的網(wǎng)絡(luò)利用率高、傳輸速度快、實(shí)時(shí)性強(qiáng)的問(wèn)題,就要采用不同于傳統(tǒng)單播、廣播機(jī)制的轉(zhuǎn)發(fā)技術(shù)及QoS服務(wù)保證機(jī)制來(lái)實(shí)現(xiàn),而IP多播技術(shù)是解決這些問(wèn)題的關(guān)鍵技術(shù)。
一、IP多播技術(shù)的概念
IP多播(Mulitcast,也稱(chēng)多址廣播或組播)技術(shù),是一種允許一臺(tái)或多臺(tái)主機(jī)(多播源)發(fā)送單一數(shù)據(jù)包到多臺(tái)主機(jī)(一次的,同時(shí)的)的TCP/IP網(wǎng)絡(luò)技術(shù)。多播作為一點(diǎn)對(duì)多點(diǎn)的通信,是節(jié)省網(wǎng)絡(luò)帶寬的有效方法之一。在網(wǎng)絡(luò)音頻/視頻廣播的應(yīng)用中,當(dāng)需要將一個(gè)節(jié)點(diǎn)的信號(hào)傳送到多個(gè)節(jié)點(diǎn)時(shí),無(wú)論是采用重復(fù)點(diǎn)對(duì)點(diǎn)通信方式,還是采用廣播方式,都會(huì)嚴(yán)重浪費(fèi)網(wǎng)絡(luò)帶寬,只有多播才是最好的選擇。多播能使一個(gè)或多個(gè)多播源只把數(shù)據(jù)包發(fā)送給特定的多播組,而只有加入該多播組的主機(jī)才能接收到數(shù)據(jù)包。目前,IP多播技術(shù)被廣泛應(yīng)用在網(wǎng)絡(luò)音頻/視頻廣播、AOD/VOD、網(wǎng)絡(luò)視頻會(huì)議、多媒體遠(yuǎn)程教育、“push”技術(shù)(如股票行情等)和虛擬現(xiàn)實(shí)游戲等方面。
二、IP多播技術(shù)的基礎(chǔ)知識(shí)
1.IP多播地址和多播組
IP多播通信必須依賴于IP多播地址,在IPv4中它是一個(gè)D類(lèi)IP地址,范圍從224.0.0.0到239.255.255.255,并被劃分為局部鏈接多播地址、預(yù)留多播地址和管理權(quán)限多播地址三類(lèi)。其中,局部鏈接多播地址范圍在224.0.0.0~224.0.0.255,這是為路由協(xié)議和其它用途保留的地址,路由器并不轉(zhuǎn)發(fā)屬于此范圍的IP包;預(yù)留多播地址為224.0.1.0~238.255.255.255,可用于全球范圍(如Internet)或網(wǎng)絡(luò)協(xié)議;管理權(quán)限多播地址為239.0.0.0~239.255.255.255,可供組織內(nèi)部使用,類(lèi)似于私有IP地址,不能用于Internet,可限制多播范圍。
使用同一個(gè)IP多播地址接收多播數(shù)據(jù)包的所有主機(jī)構(gòu)成了一個(gè)主機(jī)組,也稱(chēng)為多播組。一個(gè)多播組的成員是隨時(shí)變動(dòng)的,一臺(tái)主機(jī)可以隨時(shí)加入或離開(kāi)多播組,多播組成員的數(shù)目和所在的地理位置也不受限制,一臺(tái)主機(jī)也可以屬于幾個(gè)多播組。此外,不屬于某一個(gè)多播組的主機(jī)也可以向該多播組發(fā)送數(shù)據(jù)包。
2.多播分布樹(shù)
為了向所有接收主機(jī)傳送多播數(shù)據(jù),用多播分布樹(shù)來(lái)描述IP多播在網(wǎng)絡(luò)中傳輸?shù)穆窂健6嗖シ植紭?shù)有兩個(gè)基本類(lèi)型:有源樹(shù)和共享樹(shù)。
有源樹(shù)是以多播源作為有源樹(shù)的根,有源樹(shù)的分支形成通過(guò)網(wǎng)絡(luò)到達(dá)接收主機(jī)的分布樹(shù),因?yàn)橛性礃?shù)以最短的路徑貫穿網(wǎng)絡(luò),所以也常稱(chēng)為最短路徑樹(shù)(SPT)。
共享樹(shù)以多播網(wǎng)中某些可選擇的多播路由中的一個(gè)作為共享樹(shù)的公共根,這個(gè)根被稱(chēng)為匯合點(diǎn)(RP)。共享樹(shù)又可分為單向共享樹(shù)和雙向共享樹(shù)。單向共享樹(shù)指多播數(shù)據(jù)流必須經(jīng)過(guò)共享樹(shù)從根發(fā)送到多播接收機(jī)。雙向共享樹(shù)指多播數(shù)據(jù)流可以不經(jīng)過(guò)共享樹(shù)。
3.逆向路徑轉(zhuǎn)發(fā)
逆向路徑轉(zhuǎn)發(fā)(RPF)是多播路由協(xié)議中多播數(shù)據(jù)轉(zhuǎn)發(fā)過(guò)程的基礎(chǔ),其工作機(jī)制是當(dāng)多播信息通過(guò)有源樹(shù)時(shí),多播路由器檢查到達(dá)的多播數(shù)據(jù)包的多播源地址,以確定該多播數(shù)據(jù)包所經(jīng)過(guò)的接口是否在有源的分支上,如果在,則RPF檢查成功,多播數(shù)據(jù)包被轉(zhuǎn)發(fā);如果RPF檢查失敗,則丟棄該多播數(shù)據(jù)包。
4.Internet多播主干(MBONE)網(wǎng)絡(luò)
Internet多播主干(MBONE)網(wǎng)絡(luò)是由一系列相互連接的子網(wǎng)主機(jī)和相互連接支持IP多播的路由器組成。它可以看成是一個(gè)架構(gòu)在Internet物理網(wǎng)絡(luò)上層的虛擬網(wǎng),在該虛擬網(wǎng)中,多播源發(fā)出的多播信息流可直接在支持IP多播的路由器組之間傳輸,而在多播路由器組和非多播路由器組之間要通過(guò)點(diǎn)對(duì)點(diǎn)隧道技術(shù)進(jìn)行傳輸。
三、IP多播路由及其協(xié)議
1.IP多播路由的基本類(lèi)型
多播路由的一種常見(jiàn)的思路就是在多播組成員之間構(gòu)造一棵擴(kuò)展分布樹(shù)。在一個(gè)特定的“發(fā)送源,目的組”對(duì)上的IP多播流量都是通過(guò)這個(gè)擴(kuò)展樹(shù)從發(fā)送源傳輸?shù)浇邮苷叩模@個(gè)擴(kuò)展樹(shù)連接了該多播組中所有主機(jī)。不同的IP多播路由協(xié)議使用不同的技術(shù)來(lái)構(gòu)造這些多播擴(kuò)展樹(shù),一旦這個(gè)樹(shù)構(gòu)造完成,所有的多播流量都將通過(guò)它來(lái)傳播。
根據(jù)網(wǎng)絡(luò)中多播組成員的分布,總的說(shuō)來(lái)IP多播路由協(xié)議可以分為以下兩種基本類(lèi)型。第一種假設(shè)多播組成員密集地分布在網(wǎng)絡(luò)中,也就是說(shuō),網(wǎng)絡(luò)大多數(shù)的子網(wǎng)都至少包含一個(gè)多播組成員,而且網(wǎng)絡(luò)帶寬足夠大,這種被稱(chēng)作“密集模式”(Dense-Mode)的多播路由協(xié)議依賴于廣播技術(shù)來(lái)將數(shù)據(jù)“推”向網(wǎng)絡(luò)中所有的路由器。密集模式路由協(xié)議包括距離向量多播路由協(xié)議(DVMRP:Distance Vector Multicast Routing Protocol)、多播開(kāi)放最短路徑優(yōu)先協(xié)議(MOSPF:Multicast Open Shortest Path First)和密集模式獨(dú)立多播協(xié)議(PIM-DM:Protocol-Independent Multicast-Dense Mode)等。
多播路由的第二種類(lèi)型則假設(shè)多播組成員在網(wǎng)絡(luò)中是稀疏分散的,并且網(wǎng)絡(luò)不能提供足夠的傳輸帶寬,比如Internet上通過(guò)ISDN線路連接分散在許多不同地區(qū)的大量用戶。在這種情況下,廣播就會(huì)浪費(fèi)許多不必要的網(wǎng)絡(luò)帶寬從而可能導(dǎo)致嚴(yán)重的網(wǎng)絡(luò)性能問(wèn)題。于是稀疏模式多播路由協(xié)議必須依賴于具有路由選擇能力的技術(shù)來(lái)建立和維持多播樹(shù)。稀疏模式主要有基于核心樹(shù)的多播協(xié)議(CBT:Core Based Tree)和稀疏模式獨(dú)立協(xié)議多播(PIM-SM:Protocol-Independent Multicast-Sparse Mode)。
2.密集模式協(xié)議
(1)距離向量多播路由協(xié)議 (DVMRP)
第一個(gè)支持多播功能的路由協(xié)議就是距離向量多播路由協(xié)議。它已經(jīng)被廣泛地應(yīng)用在多播骨干網(wǎng)MBONE上。
DVMRP為每個(gè)發(fā)送源和目的主機(jī)組構(gòu)建不同的分布樹(shù)。每個(gè)分布樹(shù)都是一個(gè)以多播發(fā)送源作為根,以多播接受目的主機(jī)作為葉的最小擴(kuò)展分布樹(shù)。這個(gè)分布樹(shù)為發(fā)送源和組中每個(gè)多播接受者之間提供了一個(gè)最短路徑,這個(gè)以“跳數(shù)”為單位的最短路徑就是DVMRP的量度。當(dāng)一個(gè)發(fā)送源要向多播組中發(fā)送消息時(shí),一個(gè)擴(kuò)展分布樹(shù)就根據(jù)這個(gè)請(qǐng)求而建立,并且使用“廣播和修剪”的技術(shù)來(lái)維持這個(gè)擴(kuò)展分布樹(shù)。
擴(kuò)展分布樹(shù)構(gòu)建過(guò)程中的選擇性發(fā)送多播包的具體運(yùn)作是:當(dāng)一個(gè)路由器接收到一個(gè)多播包,它先檢查它的單播路由表來(lái)查找到多播組發(fā)送源的最短路徑的接口,如果這個(gè)接口就是這個(gè)多播包到達(dá)的接口,那么路由器就將這個(gè)多播組信息記錄到它的內(nèi)部路由表(指明該組數(shù)據(jù)包應(yīng)該發(fā)送的接口),并且將這個(gè)多播包向除了接受到該數(shù)據(jù)包的路由器以外的其他臨近路由器繼續(xù)發(fā)送。如果這個(gè)多播包的到達(dá)接口不是該路由器到發(fā)送源的最短路徑的接口,那么這個(gè)包就被丟棄。這種機(jī)制被稱(chēng)為“反向路徑廣播”(Reverse-Path Broadcasting)機(jī)制,保證了構(gòu)建的樹(shù)中不會(huì)出現(xiàn)環(huán),而且從發(fā)送源到所有接受者都是最短路徑。。
對(duì)子網(wǎng)中密集分布的多播組來(lái)說(shuō)DVMRP能夠很好的運(yùn)作,但是對(duì)于在范圍比較大的區(qū)域上分散分布的多播組來(lái)說(shuō),周期性的廣播行為會(huì)導(dǎo)致嚴(yán)重的性能問(wèn)題。DVMRP不能支持大型網(wǎng)絡(luò)中稀疏分散的多播組。
(2)多播開(kāi)放最短路徑優(yōu)先 (MOSPF)
開(kāi)放最短路徑優(yōu)先(OSPF)是一個(gè)單播路由協(xié)議,它將數(shù)據(jù)包在最小開(kāi)銷(xiāo)路徑上進(jìn)行路由傳送,這里的開(kāi)銷(xiāo)是表示鏈路狀態(tài)的一種量度。除了路徑中的跳數(shù)以外,其他能夠影響路徑開(kāi)銷(xiāo)的網(wǎng)絡(luò)性能參數(shù)還有負(fù)載平衡信息、應(yīng)用程序需要的QoS等。
MOSPF是為單播路由多播使用設(shè)計(jì)的。MOSPF依賴于OSPF作為單播路由協(xié)議,就象DVMRP也包含它自己的單播協(xié)議一樣。在一個(gè)OSPF/MOSPF網(wǎng)絡(luò)中每個(gè)路由器都維持一個(gè)最新的全網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)圖。這個(gè)“鏈路狀態(tài)”信息被用來(lái)構(gòu)建多播分布樹(shù)。
每個(gè)MOSPF路由器都通過(guò)IGMP協(xié)議周期性的收集多播組成員關(guān)系信息。這些信息和這些鏈路狀態(tài)信息被發(fā)送到其路由域中的所有其他路由器。路由器將根據(jù)它們從臨近路由器接收到的這些信息更新他們的內(nèi)部連接狀態(tài)信息。由于每個(gè)路由器都清楚整個(gè)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),就能夠獨(dú)立的計(jì)算出一個(gè)最小開(kāi)銷(xiāo)擴(kuò)展樹(shù),將多播發(fā)送源和多播組成員分別作為樹(shù)的根和葉。這個(gè)樹(shù)就是用來(lái)將多播流從發(fā)送源發(fā)送到多播組成員的路徑。
(3)獨(dú)立多播密集模式協(xié)議(PIM-DM)
獨(dú)立多播協(xié)議(PIM)是一種標(biāo)準(zhǔn)的多播路由協(xié)議,并能夠在Internet上提供可擴(kuò)展的域間多播路由而不依賴于任何單播協(xié)議。PIM有兩種運(yùn)行模式,一種是密集分布多播組模式,另一個(gè)是稀疏分布多播組模式,前者被稱(chēng)為獨(dú)立多播密集模式協(xié)議(PIM-DM),后者被稱(chēng)為獨(dú)立多播稀疏模式協(xié)議(PIM-SM)。
PIM-DM有點(diǎn)類(lèi)似于DVMRP,這兩個(gè)協(xié)議都使用了反向路徑多播機(jī)制來(lái)構(gòu)建分布樹(shù)。它們之間的主要不同在于PIM完全不依賴于網(wǎng)絡(luò)中的單播路由協(xié)議而DVMRP依賴于某個(gè)相關(guān)的單播路由協(xié)議機(jī)制,并且PIM-DM比DVMRP簡(jiǎn)單。
PIM-DM協(xié)議和所有的密集模式路由協(xié)議一樣也是數(shù)據(jù)驅(qū)動(dòng)的。但是既然PIM-DM不依賴于任何單播路由協(xié)議,路由器某個(gè)接收端口(就是返回到源的最短路徑的端口)接收到的多播數(shù)據(jù)包被發(fā)送到所有下行接口直到不需要的分枝從樹(shù)中被修剪掉。DVMRP在樹(shù)構(gòu)建階段能夠使用單播協(xié)議提供的拓?fù)鋽?shù)據(jù)有選擇性的向下行發(fā)送數(shù)據(jù)包,PIM-DM則更加傾向于簡(jiǎn)單性和獨(dú)立性,甚至不惜增加數(shù)據(jù)包復(fù)制引起的額外開(kāi)銷(xiāo)。
3.稀疏模式多播路由協(xié)議
當(dāng)多播組在網(wǎng)絡(luò)中集中分布或者網(wǎng)絡(luò)提供足夠大帶寬的情況下,密集模式多播路由協(xié)議是一個(gè)有效的方法,當(dāng)多播組成員在廣泛區(qū)域內(nèi)稀疏分布時(shí),就需要另一種方法即稀疏模式多播路由協(xié)議將多播流量控制在連接到多播組成員的鏈路路徑上,而不會(huì)“泄漏”到不相關(guān)的鏈路路徑上,這樣既保證了數(shù)據(jù)傳輸?shù)陌踩帜軌蛴行У目刂凭W(wǎng)絡(luò)中的總流量和路由器的負(fù)載。
(1)基于核心樹(shù)的多播協(xié)議 (CBT)
和DVMRP和MOSPF為每個(gè)“發(fā)送源、目的組”對(duì)構(gòu)建最短路徑樹(shù)不同的是,CBT協(xié)議只構(gòu)建一個(gè)樹(shù)給組中所有成員共享,這個(gè)樹(shù)也就被稱(chēng)為共享樹(shù)。整個(gè)多播組的多播通信量都在這個(gè)共享樹(shù)上進(jìn)行收發(fā)而不論發(fā)送源有多少或者在什么位置。這種共享樹(shù)的使用能夠極大的減少路由器中的多播狀態(tài)信息。
CBT共享樹(shù)有一個(gè)核心路由器用來(lái)構(gòu)建這個(gè)樹(shù)。要加入的路由器發(fā)送加入請(qǐng)求給這個(gè)核心路由器。核心路由器接收到加入請(qǐng)求后,沿反路徑返回一個(gè)確認(rèn),這樣就構(gòu)成了樹(shù)的一個(gè)分枝。加入請(qǐng)求數(shù)據(jù)包在被確認(rèn)之前不需要一直被傳送到核心路由器。如果加入請(qǐng)求包在到達(dá)核心路由器之前先到達(dá)樹(shù)上的某個(gè)路由器,該路由器就接收下這個(gè)請(qǐng)求包而不繼續(xù)向前發(fā)送并確認(rèn)這個(gè)請(qǐng)求包。發(fā)送請(qǐng)求的路由器就連接到共享樹(shù)上了。 CBT將多播流量集中在最少數(shù)量的鏈路而不是在一個(gè)基于發(fā)送源的共享樹(shù)上。集中在核心路由器上的流量可能會(huì)引起多播路由的某些問(wèn)題。某些版本的CBT支持多個(gè)多播核心的使用,和單個(gè)多播核心相比多核心更能達(dá)到負(fù)載平衡。
(2)獨(dú)立多播稀疏模式協(xié)議 (PIM-SM)
和CBT相似,PIM-SM被設(shè)計(jì)成將多播限制在需要收發(fā)的路由器上。PIM-SM圍繞一個(gè)被稱(chēng)為集中點(diǎn)(RP:Rendezvous Point)的路由器構(gòu)建多播分布樹(shù)。這個(gè)集中點(diǎn)扮演著和CBT核心路由器相同的角色,接收者在集中點(diǎn)能查找到新的發(fā)送源。但是PIM-SM比CBT更靈活,CBT的樹(shù)通常是多播組共享樹(shù),PIM-SM中的獨(dú)立的接收者可以選擇是構(gòu)建組共享樹(shù)還是最短路徑樹(shù)。
PIM-SM協(xié)議最初先為多播組構(gòu)建一個(gè)組共享樹(shù)。這個(gè)樹(shù)由連接到集中點(diǎn)的發(fā)送者和接收者共同構(gòu)建,就像CBT協(xié)議圍繞著核心路由器構(gòu)建的共享樹(shù)一樣。這共享樹(shù)建立以后,一個(gè)接受者(實(shí)際上是最接近這個(gè)接收者的路由器)可以選擇通過(guò)最短路徑樹(shù)改變到發(fā)送源的連接。這個(gè)操作的過(guò)程是通過(guò)向發(fā)送源發(fā)送一個(gè)PIM加入請(qǐng)求完成的。一旦從發(fā)送源到接收者的最短路徑建立了,通過(guò)RP的外部分枝就被修剪掉了。
四、IP多播路由中的隧道傳輸機(jī)制
多播中的隧道概念指將多播包再封裝成一個(gè)IP數(shù)據(jù)包在不支持多播的互聯(lián)網(wǎng)絡(luò)中路由傳輸。最有名的多播隧道的例子就是MBONE(采用DVMRP協(xié)議)。在隧道的入口處進(jìn)行數(shù)據(jù)包的封裝,在隧道的出口處則進(jìn)行拆封。在達(dá)到本地全I(xiàn)P多播配置傳輸機(jī)制上,隧道機(jī)制非常有用。