呂秋云
一、引言
1.1、 問題的引出
近年來,隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,使得各種單一媒體相繼成為網(wǎng)絡(luò)傳輸中的數(shù)據(jù),進(jìn)而各種媒體的融合使得網(wǎng)絡(luò)多媒體運(yùn)用層出不窮。目前,在Internet上產(chǎn)生了許多新的應(yīng)用,其中不少是高帶寬的多媒體應(yīng)用,譬如網(wǎng)絡(luò)視頻會議 (可視化IP電話會議系統(tǒng))、網(wǎng)絡(luò)音頻/視頻廣播、多媒體遠(yuǎn)程教育、遠(yuǎn)程會診,而傳統(tǒng)網(wǎng)絡(luò)最初是為數(shù)據(jù)傳輸而設(shè)計(jì)的,是典型的點(diǎn)點(diǎn)通信模式,是為保證數(shù)據(jù)可靠傳輸而設(shè)計(jì)的,所用的傳輸協(xié)議多為點(diǎn)到點(diǎn)的協(xié)議。其所具有的特點(diǎn)將增加網(wǎng)絡(luò)發(fā)送負(fù)載,帶來網(wǎng)絡(luò)延時(shí)。這就帶來了帶寬的急劇消耗和網(wǎng)絡(luò)擁擠問題。為了緩解網(wǎng)絡(luò)瓶頸, 人們提出各種方案:增加互連帶寬,改變網(wǎng)絡(luò)流量結(jié)構(gòu),IP組播技術(shù)等等,其中,IP組播技術(shù)有其獨(dú)特的優(yōu)越性——在組播網(wǎng)絡(luò)中,即使用戶數(shù)量成倍增長,主干帶寬不需要隨之增加。
組播技術(shù)可形象的描述如下:
假設(shè)一個(gè)企業(yè)分布于各地的子公司(兩個(gè)以上)之間需要通過Internet進(jìn)行實(shí)時(shí)的交換信息(數(shù)據(jù),聲音,圖像),他們的計(jì)算機(jī)可能不屬于同一物理網(wǎng)絡(luò),甚至不屬于同一自治系統(tǒng),這種通信的特點(diǎn)是“多點(diǎn)”式的。子公司發(fā)出的數(shù)據(jù)希望其他子公司都能收到,而總部發(fā)出的指示全體子公司都應(yīng)收到。這種多點(diǎn)通信方式為組內(nèi)廣播,即組播技術(shù),也稱多播技術(shù),多目網(wǎng)關(guān)技術(shù)。
1.2、TCP/IP傳送方式
組播技術(shù)是TCP/IP傳送方式的一種。在我們討論組播技術(shù)之前先來看看
TCP/IP傳送方式。TCP/IP傳送方式有三種:單播,廣播,組播。
單播(Unicast)傳輸:在發(fā)送者和每一接收者之間需要單獨(dú)的數(shù)據(jù)信道。 如果一臺主機(jī)同時(shí)給很少量的接收者傳輸數(shù)據(jù),一般沒有什么問題。但如果有大量主機(jī)希望獲得數(shù)據(jù)包的同一份拷貝時(shí)卻很難實(shí)現(xiàn)。 這將導(dǎo)致發(fā)送者負(fù)擔(dān)沉重、延遲長、網(wǎng)絡(luò)擁塞;為保證一定的服務(wù)質(zhì)量需增加硬件和帶寬。
組播(Multicast)傳輸:它提高了數(shù)據(jù)傳送效率。減少了主干網(wǎng)出現(xiàn)擁塞的可能性。組播組中的主機(jī)可以是在同一個(gè)物理網(wǎng)絡(luò), 也可以來自不同的物理網(wǎng)絡(luò)(如果有組播路由器的支持)。
廣播(Broadcast)傳輸:是指在IP子網(wǎng)內(nèi)廣播數(shù)據(jù)包,所有在子網(wǎng)內(nèi)部的主機(jī)都將收到這些數(shù)據(jù)包。 廣播意味著網(wǎng)絡(luò)向子網(wǎng)主機(jī)都投遞一份數(shù)據(jù)包,不論這些主機(jī)是否樂于接收該數(shù)據(jù)包。然而廣播的使用范圍非常小, 只在本地子網(wǎng)內(nèi)有效,因?yàn)槁酚善鲿怄i廣播通信。廣播傳輸增加非接收者的開銷。
二、組播技術(shù)
2.1、組播技術(shù)的原理
組播是一種允許一個(gè)或多個(gè)發(fā)送者(組播源)發(fā)送單一的數(shù)據(jù)包到多個(gè)接收者(一次的,同時(shí)的)的網(wǎng)絡(luò)技術(shù)。 組播源把數(shù)據(jù)包發(fā)送到特定組播組,而只有屬于該組播組的地址才能接收到數(shù)據(jù)包。組播可以大大的節(jié)省網(wǎng)絡(luò)帶寬, 因?yàn)闊o論有多少個(gè)目標(biāo)地址,在整個(gè)網(wǎng)絡(luò)的任何一條鏈路上只傳送單一的數(shù)據(jù)包。 它提高了數(shù)據(jù)傳送效率。減少了主干網(wǎng)出現(xiàn)擁塞的可能性。組播組中的主機(jī)可以是在同一個(gè)物理網(wǎng)絡(luò), 也可以來自不同的物理網(wǎng)絡(luò)(如果有組播路由器的支持)。
其網(wǎng)絡(luò)模型如下圖所示:
2.2、實(shí)現(xiàn)組播技術(shù)的前提條件
實(shí)現(xiàn)IP組播傳輸,則組播源和接收者以及兩者之間的下層網(wǎng)絡(luò)都必須支持組播。這包括以下幾方面:
* 主機(jī)的TCP/IP實(shí)現(xiàn)支持發(fā)送和接收IP組播;
* 主機(jī)的網(wǎng)絡(luò)接口支持組播;
* 有一套用于加入、離開、查詢的組管理協(xié)議,即IGMP(v1,v2);
* 有一套IP地址分配策略,并能將第三層IP組播地址映射到第二層MAC地址;
* 支持IP組播的應(yīng)用軟件;
* 所有介于組播源和接收者之間的路由器、集線器、交換機(jī)、TCP/IP棧、防火墻均需支持組播;
2.3、組播地址
在組播通信中,我們需要兩種地址:一個(gè)IP組播地址和一個(gè)Ethernet組播地址。其中,IP組播地址標(biāo)識一個(gè)組播組。 由于所有IP數(shù)據(jù)包都封裝在Ethernet幀中,所以還需要一個(gè)組播Ethernet地址。為使組播正常工作, 主機(jī)應(yīng)能同時(shí)接收單播和組播數(shù)據(jù),這意味著主機(jī)需要多個(gè)IP和Ethernet地址。 IP地址方案專門為組播劃出一個(gè)地址范圍,在IPv4中為D類地址,范圍是224.0.0.0到239.255.255.255, 并將D類地址劃分為局部鏈接組播地址、預(yù)留組播地址、管理權(quán)限組播地址。
局部鏈接地址:224.0.0.0~224.0.0.255,用于局域網(wǎng),路由器不轉(zhuǎn)發(fā)屬于此范圍的IP包;
預(yù)留組播地址:224.0.1.0~238.255.255.255,用于全球范圍或網(wǎng)絡(luò)協(xié)議;
管理權(quán)限地址:239.0.0.0~239.255.255.255,組織內(nèi)部使用,用于限制組播范圍;
D類地址的最后28比特沒有結(jié)構(gòu)化,即沒有網(wǎng)絡(luò)ID和主機(jī)ID之分。響應(yīng)某一個(gè)IP多播地址的主機(jī)構(gòu)成一個(gè)主機(jī)組,主機(jī)組可跨越多個(gè)網(wǎng)絡(luò)。主機(jī)組的成員數(shù)是動態(tài)的,主機(jī)可以通過IGMP協(xié)議加入或離開某個(gè)主機(jī)組。IP多播地址影射到以太網(wǎng)地址的方法見下圖。因?yàn)镮P多播地址的高5位未影射,因此,影射的以太網(wǎng)地址不是唯一的,共有32個(gè)IP多播地址影射到一個(gè)以太網(wǎng)地址。
2.4、組播協(xié)議:
組播協(xié)議主要包括組管理協(xié)議(IGMP)和組播路由協(xié)議(密集模式協(xié)議(如DVMRP,PIM-DM)、稀疏模式協(xié)議(如PIM-SM,CBT) 和鏈路狀態(tài)協(xié)議(MOSPF))
* 組管理協(xié)議IGMP
主機(jī)使用IGMP通知子網(wǎng)組播路由器,希望加入組播組;路由器使用IGMP查詢本地子網(wǎng)中是否有屬于某個(gè)組播組的主機(jī)。
* 加入組播組
當(dāng)某個(gè)主機(jī)加入某一個(gè)組播組時(shí),它通過“成員資格報(bào)告”消息通知它所在的IP子網(wǎng)的組播路由器,同時(shí)將自己的IP模塊做相應(yīng)的準(zhǔn)備, 以便開始接收來自該組播組傳來的數(shù)據(jù)。如果這臺主機(jī)是它所在的IP子網(wǎng)中第一臺加入該組播組的主機(jī), 通過路由信息的交換,組播路由器加入組播分布樹。
* 退出組播組
在IGMP v1中,當(dāng)主機(jī)離開某一個(gè)組播組時(shí),它將自行退出。組播路由器定時(shí)(如120秒) 使用“成員資格查詢” 消息向IP子網(wǎng)中的所有主機(jī)的組地址(224.0.0.1)查詢,如果某一組播組在IP子網(wǎng)中已經(jīng)沒有任何成員, 那么組播路由器在確認(rèn)這一事件后, 將不再在子網(wǎng)中轉(zhuǎn)發(fā)該組播組的數(shù)據(jù)。與此同時(shí),通過路由信息交換, 從特定的組播組分布樹中刪除相應(yīng)的組播路由器。 這種不通知任何人而悄悄離開的方法, 使得組播路由器知道IP子網(wǎng)中已經(jīng)沒有任何成員的事件延時(shí)了一段時(shí)間,所以在IGMP v2.0中,當(dāng)每一個(gè)主機(jī)離開某一個(gè)組播組時(shí), 需要通知子網(wǎng)組播路由器,組播路由器立即向IP子網(wǎng)中的所有組播組詢問,從而減少了系統(tǒng)處理停止組播的延時(shí)。
* 組播路由協(xié)議
要想在一個(gè)實(shí)際網(wǎng)絡(luò)中實(shí)現(xiàn)組播數(shù)據(jù)包的轉(zhuǎn)發(fā),必須在各個(gè)互連設(shè)備上運(yùn)行可互操作的組播路由協(xié)議。 組播路由協(xié)議可分為三類:密集模式協(xié)議(如DVMRP,PIM-DM)、稀疏模式協(xié)議(如PIM-SM,CBT) 和鏈路狀態(tài)協(xié)議(MOSPF),下面分別介紹各個(gè)協(xié)議的工作原理。
* 距離向量組播路由協(xié)議(Distance Vector Multicast Routing Protocol:DVMRP)
DVMRP由單播路由協(xié)議RIP擴(kuò)展而來,兩者都使用距離向量算法得到網(wǎng)絡(luò)的拓?fù)湫畔,不同之處在于RIP根據(jù)路由表前向轉(zhuǎn)發(fā)數(shù)據(jù), 而DVMRP則是基于RPF。為了使新加入的組播成員能及時(shí)收到組播數(shù)據(jù),DVMPR采用定時(shí)發(fā)送數(shù)據(jù)包給所有的LAN的方法, 然而這種方法導(dǎo)致大量路由控制數(shù)據(jù)包的擴(kuò)散,這部分開銷限制了網(wǎng)絡(luò)規(guī)模的擴(kuò)大。另一方面,DVMRP使用跳數(shù)作為計(jì)量尺度, 其上限為32跳,這對網(wǎng)絡(luò)規(guī)模也是一個(gè)限制。目前提出了分層DVMRP,即對組播網(wǎng)絡(luò)劃分區(qū)域, 在區(qū)域內(nèi)的組播可以按照任何協(xié)議進(jìn)行,而對于跨區(qū)域的組播則由邊界路由器在DVMRP協(xié)議下進(jìn)行,這樣可大大減少路由開銷。
* 開放式組播最短路徑優(yōu)先協(xié)議(Multicast Open Shortest Path First:MOSPF)
MOSPF是一種基于鏈路狀態(tài)的路由協(xié)議,是對單播OSPF協(xié)議的擴(kuò)展。同OSPF類似,MOSPF定義了三種級別的路由:
a、 OSPF區(qū)域內(nèi)組播路由:用于了解各網(wǎng)段中的組播成員,構(gòu)造(源網(wǎng)絡(luò)S,組G)對的SPT;
b、 MOSPF區(qū)域間組播路由:用于匯總區(qū)域內(nèi)成員關(guān)系,并在自治系統(tǒng)(AS)主干網(wǎng)(區(qū)域0)上發(fā)布組成員關(guān)系記錄通告,實(shí)現(xiàn)區(qū)域間組播包的轉(zhuǎn)發(fā)。
c、 OSPF AS 間組播路由:用于跨AS的組播包轉(zhuǎn)發(fā)。
* 協(xié)議無關(guān)組播(Protocol Independent Multicast:PIM)
PIM由IDMR(域間組播路由)工作組設(shè)計(jì),顧名思義,PIM不依賴于某一特定單播路由協(xié)議, 它可利用各種單播路由協(xié)議建立的單播路由表完成RPF檢查功能,而不是維護(hù)一個(gè)分離的組播路由表實(shí)現(xiàn)組播轉(zhuǎn)發(fā)。 由于PIM無需收發(fā)組播路由更新,所以與其它組播協(xié)議相比,PIM開銷降低了許多。 PIM的設(shè)計(jì)出發(fā)點(diǎn)是在Internet范圍內(nèi)同時(shí)支持SPT和共享樹,并使兩者之間靈活轉(zhuǎn)換,因而集中了它們的優(yōu)點(diǎn)提高了組播效率。 PIM定義了兩種模式:密集模式(Dense-Mode)和稀疏模式(Sparse-Mode)。
* 有核樹組播路由協(xié)議(Core-Based Trees: CBT)
CBT的基本目標(biāo)是減少網(wǎng)絡(luò)中路由器組播狀態(tài),以提供組播的可擴(kuò)展性。為此,CBT被設(shè)計(jì)成稀疏模式(與PIM-SM相似)。 CBT使用雙向共享樹,雙向共享樹以某個(gè)核心路由器為根,允許組播信息在兩個(gè)方向流動。 這一點(diǎn)與PIM-SM不同(PIM-SM中共享樹是單向的,在RP與組播源之間使用SPT將組播數(shù)據(jù)轉(zhuǎn)發(fā)到RP), 所以CBT不能使用RPF檢查,而使用IP包頭的目標(biāo)組地址作檢查轉(zhuǎn)發(fā)緩存。這就要求對CBT共享樹的維護(hù)就需非常小心, 以確保不會產(chǎn)生組播路由循環(huán)。
三、組播技術(shù)的應(yīng)用系統(tǒng)實(shí)現(xiàn)——可視化Ip電話會議系統(tǒng)
上面討論了組播技術(shù)的各個(gè)技術(shù)細(xì)節(jié),下面我們以多媒體應(yīng)用——可視化Ip電話會議系統(tǒng)為例來探討組播技術(shù)在應(yīng)用系統(tǒng)的實(shí)現(xiàn)。
可視化Ip電話會議系統(tǒng): 是利用計(jì)算機(jī),多媒體通信技術(shù)和設(shè)備,通過傳輸信道在兩地或多個(gè)地點(diǎn)之間開會的一種通信手段。在召開會議時(shí),處于兩地或不同地點(diǎn)的與會代表,既可以聽到對方的聲音,又可以看到對方的形象,同時(shí)還能看到對方會議室的場景,以及在會議中展示的事物、圖片、表格、文件等,縮短了與會代表的距離,使大家好像在同一會議室參加會議一樣。它的廣泛應(yīng)用必然產(chǎn)生巨大的社會效益和經(jīng)濟(jì)效益。
會議的組織,召開,管理由主會場來完成。因此,主會場的視頻,聲音,通知,指示,下達(dá)的文件資料各分會場都應(yīng)該收到。當(dāng)某分會場發(fā)言時(shí),其視頻,聲音同樣要傳送給其他會場。(如下圖所示)上述所有動作的完成依賴組播技術(shù)。通過組播技術(shù)把主會場的各種數(shù)據(jù)發(fā)送到參加會議的分會場中,而且把發(fā)言分會場的視音頻數(shù)據(jù)發(fā)送給其他會場:即主會場和發(fā)言分會場的各種數(shù)據(jù)只要在網(wǎng)上發(fā)送一次,其他會場都將收到此數(shù)據(jù),(這就是有別于點(diǎn)對點(diǎn)通信方式的地方)而與這兩個(gè)會場在同一網(wǎng)段卻不參加會議的非成員不會收到數(shù)據(jù)(只要設(shè)備支持,這也是有別于廣播的地方)。因此,當(dāng)會議成員增加時(shí),不會產(chǎn)生信息傳輸量劇增,帶來無法忍受的網(wǎng)絡(luò)延時(shí)和抖動。
根據(jù)上面對組播技術(shù)的討論我們可以得出要實(shí)現(xiàn)可視化IP電話會議必須解決如下幾個(gè)方面問題:
3.1、組播地址
根據(jù)上面的討論我們知道應(yīng)用系統(tǒng)中可采用組播地址的范圍是:224.0.1.0~238.255.255.255。那么在我們的應(yīng)用系統(tǒng)中應(yīng)如何使用組播地址呢?有兩種方法使用組播地址:靜態(tài)設(shè)置,動態(tài)獲取。
* 靜態(tài)獲。
在會議系統(tǒng)中設(shè)置好組播地址,以后永遠(yuǎn)不變。這種方式雖然比較簡單,在目前會議系統(tǒng)使用不多時(shí)沒有問題,但是如果有兩個(gè)此類會議系統(tǒng)運(yùn)行,或使用相同組播地址的不同系統(tǒng)運(yùn)行(由于沒有統(tǒng)一管理組播地址,開發(fā)商互相不知道),那就會出現(xiàn)無法解決的沖突。因?yàn)楸緫?yīng)屬于兩個(gè)不同的組卻由于使用相同的組播地址而合為一組。這對于將來會議系統(tǒng)的廣泛應(yīng)用是不可行的。
* 動態(tài)獲。
會議系統(tǒng)用到的組播地址是不定的,只在運(yùn)行時(shí)臨時(shí)確定。動態(tài)獲取組播地址的方法大概有三種:通告方式獲取,算法推導(dǎo)方式取得,采用Internet組播地址動態(tài)分配體系結(jié)構(gòu)(RFC2908)。
通告方式獲。寒(dāng)會議系統(tǒng)建立時(shí),先偵聽10-20分鐘左右,以確定當(dāng)前已使用的組播地址,防止沖突。
算法推導(dǎo):根據(jù)本地的特殊條件,通過一定的算法,求出當(dāng)前使用的組播地址。
采用上述三種方式獲取組播地址可有效防止地址沖突問題。雖然比較復(fù)雜,也較耗費(fèi)資源,但是有利于將來的多媒體應(yīng)用的擴(kuò)展。
3.2、網(wǎng)絡(luò)設(shè)置:
由于我們以前的Internet應(yīng)用大多集中于數(shù)據(jù)的交換、共享,因此在目前的通信方式中,主要采用的是單播和廣播,對組播的考慮不是很多。但隨著多媒體應(yīng)用(視頻,音頻)的發(fā)展,要求Internet網(wǎng)絡(luò)必須很好的支持組播,這也是會議系統(tǒng)得以運(yùn)行的前提條件。因此,所有介于組播源和接收者之間的路由器、集線器、交換機(jī)、TCP/IP棧、防火墻均需支持組播。
在路由器上要安裝相應(yīng)的軟件:組管理協(xié)議軟件,組播路由協(xié)議軟件等等。
如果要采用RFC2908--Internet組播地址動態(tài)分配體系結(jié)構(gòu),還應(yīng)配置相應(yīng)的組播地址分配服務(wù)器。
目前絕大多數(shù)集線器、交換機(jī)只是簡單的把組播數(shù)據(jù)當(dāng)成廣播來發(fā)送接收。
假設(shè)某網(wǎng)段某一成員參加會議(采用會議系統(tǒng)),則處于同一網(wǎng)段(由交換機(jī)、集線器連接)的其他非會議成員其實(shí)都可收到多媒體流。這樣,非會議成員的真正可使用帶寬將急劇下降;如果有多個(gè)類似的會議系統(tǒng)(組)同時(shí)存在,那么將導(dǎo)致網(wǎng)絡(luò)擁塞,直至網(wǎng)絡(luò)癱瘓。同時(shí),由于數(shù)據(jù)流被廣播,很可能會被其他非法成員利用,造成安全隱患。因此,在當(dāng)今流行的用交換機(jī)組建園區(qū)網(wǎng),小區(qū)網(wǎng)、專用局網(wǎng)Intranet的網(wǎng)絡(luò)設(shè)計(jì)中,應(yīng)充分考慮到將來多媒體應(yīng)用發(fā)展將會帶來的安全問題和帶寬問題。
3.3、防火墻:
可視化IP電話會議系統(tǒng)運(yùn)行在Internet上,我們必須要考慮防火墻的問題。由于目前病毒泛濫,為了保護(hù)自身的安全,許多機(jī)構(gòu)用一臺防火墻計(jì)算機(jī)作為在公用互聯(lián)網(wǎng)和本機(jī)構(gòu)的專用網(wǎng),即內(nèi)部局網(wǎng)Intranet網(wǎng)之間的安全性網(wǎng)關(guān)。目前的防火墻大多基于單播通訊來設(shè)計(jì)的,而組播與單播的原理是有很大不同的:
單播通訊是由一對參與者會話的形式組成的,因此搞清楚單播通訊的安全性是基于這些參與者(每位被授權(quán)的參與者),此外"單播通訊之間的"信任"必須建立在每一個(gè)參與者的"可信任"之上,也必須建立在數(shù)據(jù)的"可信任"上。
組播的范圍有隨意性,它含蓋了不同集合的參與者,有的可能還不知道這些參與者是否具有資格。(這是它的特點(diǎn),而不是BUG),因此組播的安全性不能依賴其參與者,而應(yīng)該是依賴數(shù)據(jù)。特別是組播通訊是通過對包數(shù)據(jù)授權(quán)而進(jìn)行授權(quán)的,例如使用數(shù)字簽名--這種數(shù)據(jù)是專門加過密的,所以組播間的信任是通過這些數(shù)據(jù)的神圣的信任關(guān)系來建立的。
為了處理組播安全問題,防火墻應(yīng)該做三件事情:
* 支持所選擇的組播安全策略。(這個(gè)策略建立了正在等候的準(zhǔn)備轉(zhuǎn)發(fā)的特殊的組播群),組播策略是由特殊的一組受允許通過防火墻轉(zhuǎn)發(fā)的組播群(和相應(yīng)的UDP口)組成的安全集合。
* 動態(tài)地作出決定何時(shí)需要轉(zhuǎn)發(fā)每一個(gè)侯選組。組播組是動態(tài)變化的,只有確定有必要轉(zhuǎn)發(fā)時(shí)它才會轉(zhuǎn)發(fā)。
* 通過防火墻轉(zhuǎn)發(fā)每一個(gè)侯選組的數(shù)據(jù)。 用來轉(zhuǎn)發(fā)侯選組播包的實(shí)際機(jī)制將有賴于防火墻的實(shí)質(zhì),普通的防火墻設(shè)置使用兩個(gè)站點(diǎn):intranet的部分,外部internet部分。這種情況下,組播包可在兩節(jié)點(diǎn)間使用管道協(xié)議轉(zhuǎn)發(fā)(再到另一側(cè)重新組播)。
四、總結(jié)
本文對組播技術(shù)做了全面的介紹,并對組播技術(shù)在實(shí)際的應(yīng)用系統(tǒng)應(yīng)解決的問題組播地址、網(wǎng)絡(luò)設(shè)置、防火墻進(jìn)行了深入的闡述。
摘自《計(jì)算機(jī)世界》