當(dāng)代社會(huì)已經(jīng)進(jìn)入信息時(shí)代,網(wǎng)絡(luò)技術(shù)在飛速發(fā)展。由于視頻會(huì)議、推送技術(shù)、大規(guī)模協(xié)作計(jì)算、為用戶群進(jìn)行軟件升級(jí)、用于培訓(xùn)和企業(yè)報(bào)告的共享白板式的多媒體應(yīng)用、網(wǎng)絡(luò)代理、鏡像和高速緩存站點(diǎn)等等應(yīng)用,都依賴(lài)于從一個(gè)主機(jī)向多個(gè)主機(jī)或者從多個(gè)主機(jī)向多個(gè)主機(jī)發(fā)送同一信息的能力,而在Internet上分發(fā)的數(shù)目可能達(dá)數(shù)十萬(wàn)臺(tái),這些都需要更高的帶寬,并且大大超出了單播的能力。一種能最大限度地利用現(xiàn)有帶寬的有力武器是IP組播技術(shù),這項(xiàng)技術(shù)已獲得了包括AT&T、HP、IBM、Intel、Microsoft、Cisco和3Com等業(yè)界有影響的眾多廠商的支持。
一、單播與廣播 傳統(tǒng)的點(diǎn)對(duì)點(diǎn)單播通信,在發(fā)送方和每一接收方需要單獨(dú)的數(shù)據(jù)通道。在這種通信方式下,源IP主機(jī)向指定的目標(biāo)IP主機(jī)發(fā)送信息包。IP信息包中的目標(biāo)地址就是IP網(wǎng)絡(luò)中惟一的主機(jī)地址。從一臺(tái)主機(jī)送出的每個(gè)數(shù)據(jù)包只能傳送給一個(gè)目標(biāo)主機(jī),通過(guò)路由器或交換機(jī)將這些IP信息包從源主機(jī)發(fā)送到目標(biāo)主機(jī)。在源主機(jī)和目標(biāo)主機(jī)之間的路徑上的每一個(gè)路由器都維護(hù)由單播路由協(xié)議生成的單播路由信息庫(kù),并根據(jù)數(shù)據(jù)包中的IP目標(biāo)地址在單播路由信息庫(kù)中查找單播包轉(zhuǎn)發(fā)路徑。這種傳送方式稱(chēng)為單播。
在單播方式下,如果有另外的多個(gè)用戶希望同時(shí)獲得這個(gè)數(shù)據(jù)包的拷貝是不可能的。發(fā)送信息的主機(jī)必須向每個(gè)希望接收此數(shù)據(jù)包的用戶發(fā)送一份單獨(dú)的數(shù)據(jù)包拷貝。這種巨大的冗余會(huì)帶來(lái)很大的代價(jià),首先,會(huì)給發(fā)送數(shù)據(jù)的源主機(jī)帶來(lái)沉重的負(fù)擔(dān),因?yàn)樗仨殞?duì)每個(gè)要求都做出響應(yīng),這使得負(fù)擔(dān)過(guò)于沉重主機(jī)的響應(yīng)會(huì)大大延長(zhǎng)。其次對(duì)路由器和交換機(jī)的性能也提出了更高的要求,管理人員被迫購(gòu)買(mǎi)本來(lái)不必要的硬件和帶寬來(lái)保證一定的服務(wù)質(zhì)量。
在IP通信另一個(gè)領(lǐng)域是IP廣播,在這里,源主機(jī)向一個(gè)網(wǎng)段中的所有IP主機(jī)發(fā)送IP信息包。IP廣播包的目標(biāo)地址的主機(jī)部分被設(shè)置成全“1”,網(wǎng)絡(luò)部分設(shè)置成當(dāng)前子網(wǎng)地址。在一些例子中,主機(jī)部分設(shè)置為全“0”,但是這種形式的IP廣播地址通常不再使用。
IP網(wǎng)絡(luò)的主機(jī)(包括路由器)都能識(shí)別以IP廣播地址作為目標(biāo)地址的信息包,一個(gè)子網(wǎng)中的所有IP主機(jī)都接收地址為本子網(wǎng)的廣播地址的信息包。除非特別配置,路由器一般不會(huì)轉(zhuǎn)發(fā)IP廣播信息包,這樣,IP廣播通信通常被限制在本地的子網(wǎng)內(nèi)。而如果路由器轉(zhuǎn)送這些廣播,那么,路由回環(huán)將很可能引起一場(chǎng)嚴(yán)重的廣播風(fēng)暴。而且廣播的主要的缺點(diǎn)就是每個(gè)廣播都要發(fā)送數(shù)據(jù)至所有機(jī)器,消耗了所有機(jī)器上的資源,即使數(shù)據(jù)要被網(wǎng)絡(luò)中大多數(shù)機(jī)器所丟棄。
二、組播化解矛盾 解決上述這些IP單播和IP廣播問(wèn)題的辦法是構(gòu)建一種具有組播能力的網(wǎng)絡(luò),允許路由器一次將數(shù)據(jù)包復(fù)制到多個(gè)通道上。采用組播方式,單臺(tái)服務(wù)器能夠?qū)资f(wàn)臺(tái)主機(jī)機(jī)同時(shí)發(fā)送連續(xù)數(shù)據(jù)流而無(wú)延時(shí)。組播發(fā)送方只要發(fā)送一個(gè)信息包而不是很多個(gè),所有目的地同時(shí)收到同一信息包,更及時(shí),更同步,可以把信息發(fā)送到任意不知名目的地,能減少網(wǎng)絡(luò)上傳輸?shù)男畔目偭?。網(wǎng)絡(luò)成本變得相當(dāng)?shù)土蛇_(dá)到從未有過(guò)的傳送能力。
IP組播通信介于IP單播和IP廣播通信之間,并且能使主機(jī)發(fā)送IP信息包到IP網(wǎng)絡(luò)中任何一組特定的主機(jī)上。這些主機(jī)都具有一種特定的IP地址,稱(chēng)之為IP組播組地址。支持組播的路由器會(huì)轉(zhuǎn)發(fā)IP組播信息包至所有具有該組播地址的主機(jī)的接口上。
單播傳送發(fā)送數(shù)據(jù)的多個(gè)拷貝,每個(gè)拷貝發(fā)送到一個(gè)接收者,主機(jī)輪流發(fā)送數(shù)據(jù)的拷貝,網(wǎng)絡(luò)分別將它們轉(zhuǎn)發(fā)至每個(gè)接收者,主機(jī)一次只能發(fā)送至一個(gè)接收者。而組播傳送則只把發(fā)送數(shù)據(jù)的一個(gè)拷貝發(fā)送到多個(gè)接收者,主機(jī)發(fā)送數(shù)據(jù)的一個(gè)拷貝,可同時(shí)發(fā)送到多個(gè)接收者。網(wǎng)絡(luò)在每個(gè)接收者的最后一個(gè)路由器或主機(jī)復(fù)制它,在一個(gè)給定的網(wǎng)絡(luò)上每一個(gè)包只傳送一次。
三、IP組播技術(shù)簡(jiǎn)介 組播首先要解決發(fā)送給誰(shuí)的問(wèn)題。按不同應(yīng)用項(xiàng)目(如體育、文藝、娛樂(lè)或?qū)W習(xí)等)進(jìn)行分組,組成員要向組播路由器通過(guò)IGMP協(xié)議進(jìn)行注冊(cè)登記,用戶主機(jī)發(fā)出請(qǐng)示,提出具體組播地址。IP組播的地址采用D類(lèi)IP地址確定組播的組。在Internet的“小數(shù)點(diǎn)”表示法中,組播地址范圍是從224.0.0.0到234.255.255.255。為發(fā)送一份IP組播數(shù)據(jù)包,發(fā)送者要確定一個(gè)合適的組播地址,這個(gè)地址代表一個(gè)組。然后,組播數(shù)據(jù)通過(guò)普通的IP發(fā)送操作發(fā)送出去。
其次要解決的問(wèn)題是如何接收組播信息,有時(shí)在同一網(wǎng)段中有多個(gè)組播組的成員。對(duì)于信息的發(fā)送方來(lái)說(shuō)相當(dāng)簡(jiǎn)單,但接收方卻十分復(fù)雜。為了能夠正確地接收感興趣的組播信息數(shù)據(jù)包,主機(jī)上的應(yīng)用首先要申請(qǐng)?zhí)囟ńM播組的成員。這種申請(qǐng)通過(guò)Internet組管理協(xié)議(Internet Group Management Protocol,IGMP)傳送到本網(wǎng)段上的路由器完成,如有必要,相關(guān)的信息還可能要傳送到發(fā)送方的路由器,這取決于使用的組播路由協(xié)議。這一步完成,接收主機(jī)的網(wǎng)絡(luò)接口卡開(kāi)始偵聽(tīng)與新組播組地址相關(guān)的數(shù)據(jù)鏈路層組播地址。路由器把由發(fā)送方送來(lái)的組播數(shù)據(jù)包一跳一跳地發(fā)送到有接收者的網(wǎng)段上的路由器,局域網(wǎng)路由器根據(jù)組播信息包中的組地址轉(zhuǎn)換出與它相關(guān)的數(shù)據(jù)鏈路層地址,并用這個(gè)地址建立數(shù)據(jù)鏈路層的報(bào)文。接收方的網(wǎng)絡(luò)接口卡和網(wǎng)絡(luò)驅(qū)動(dòng)程序偵聽(tīng)這個(gè)地址,收到該組播包后,將IP層的組播數(shù)據(jù)包取出,傳向上層TCP/IP協(xié)議堆棧,從而使數(shù)據(jù)適合用戶的應(yīng)用。
第三個(gè)問(wèn)題是用戶主機(jī)在注銷(xiāo)對(duì)某個(gè)組的興趣時(shí)如何通知組播路由器。如果接收方使用的是IGMPv2,會(huì)主動(dòng)地通知路由器離開(kāi)。但如果是IGMPv1主機(jī),注銷(xiāo)就不會(huì)通知路由器,這時(shí)服務(wù)器要在一定時(shí)間后向本網(wǎng)段發(fā)出查詢(xún),接收主機(jī)的應(yīng)答,若無(wú)用戶應(yīng)答,路由器就認(rèn)為不再有接收者,不會(huì)再向該網(wǎng)段上轉(zhuǎn)發(fā)組播信息。
第四個(gè)問(wèn)題是組播信息的轉(zhuǎn)發(fā),要根據(jù)所使用的組播路由協(xié)議建立組播轉(zhuǎn)發(fā)樹(shù)。根據(jù)該轉(zhuǎn)發(fā)樹(shù)進(jìn)行組播信息的轉(zhuǎn)發(fā),當(dāng)某個(gè)處于轉(zhuǎn)發(fā)樹(shù)中的路由器收到一個(gè)組播信息后,對(duì)要轉(zhuǎn)發(fā)的組播包進(jìn)行拷貝和轉(zhuǎn)發(fā)。如果路由器為最后一跳,組播包就以廣播的方式傳送到該網(wǎng)段中各主機(jī)接收者。
對(duì)于IP組播的研究早在80年代就已經(jīng)開(kāi)始有許多組播路由協(xié)議已經(jīng)投入使用。像PIM(Protocol Independent Muiticast)、MBGP(Muticast Border Gateway Protocol)以及DVMRP(Distance Vector Multicast Routing Protocol)等協(xié)議的應(yīng)用都比較廣泛,但是目前還沒(méi)有一種可靠的組播協(xié)議已經(jīng)具備了處理大范圍的組分發(fā)、發(fā)送者要求的反饋或各種類(lèi)型使用路由器應(yīng)用的能力。
四、IP組播的特點(diǎn) 與單播應(yīng)用相比,使用IP組播技術(shù)分發(fā)信息常常能從本質(zhì)上減少整個(gè)網(wǎng)絡(luò)帶寬的需求,一個(gè)典型的例子就是音頻與視頻網(wǎng)。這些例子常常用來(lái)說(shuō)明IP組播的優(yōu)點(diǎn),體現(xiàn)在以下幾個(gè)方面。
1.帶寬
對(duì)于音頻與視頻網(wǎng)來(lái)說(shuō),大量的用戶經(jīng)常要在大致相同的時(shí)間里訪問(wèn)相同的信息,如果使用IP單播,網(wǎng)絡(luò)帶寬的消耗就會(huì)呈線性增長(zhǎng)。由于典型的MPEG-2視頻信息流需要大約1Mbps~5Mbps的帶寬用于流暢且逼真的影像,顯然用IP組播來(lái)發(fā)送節(jié)目是一種明智的選擇。因?yàn)橹貜?fù)數(shù)據(jù)流被單一傳送所代替,從而使得網(wǎng)絡(luò)帶寬得到了更有效地使用。
2.服務(wù)器負(fù)載
如果音頻與視頻網(wǎng)的網(wǎng)絡(luò)運(yùn)營(yíng)商繼續(xù)使用單播傳送機(jī)制,隨著用戶的增長(zhǎng),它將需要不斷增加它的實(shí)時(shí)音頻服務(wù)器的能力和數(shù)量以滿足連接用戶的增長(zhǎng)。當(dāng)服務(wù)器負(fù)載增加到一定程度,服務(wù)器就不能再發(fā)出信息流。如果運(yùn)營(yíng)商使用IP組播來(lái)發(fā)布它們的節(jié)目,那么就不需要購(gòu)買(mǎi)越來(lái)越多高性能的服務(wù)器以滿足客戶數(shù)目的增長(zhǎng)。很明顯IP組播提供的主要優(yōu)勢(shì)在于通過(guò)大大減少需要轉(zhuǎn)發(fā)和處理的數(shù)據(jù)量,從而降低了所需服務(wù)器性能。
3.分布式應(yīng)用
在IP單播的情況下,隨著需求與應(yīng)用的增長(zhǎng),多點(diǎn)應(yīng)用不太可能,因?yàn)閱尾ネㄐ胖械目蛻魯?shù)量不能無(wú)限增長(zhǎng)。而組播幾乎不受客戶數(shù)量增長(zhǎng)的限制。
盡管在網(wǎng)絡(luò)里使用IP組播會(huì)帶來(lái)許多好處,但是像任何技術(shù)一樣,這項(xiàng)技術(shù)也有其局限性和不盡如人意的地方,包括不可靠的信息包傳送和組播信息包的復(fù)制。
五、組播在企業(yè)中的應(yīng)用 通常人們想到IP組播就會(huì)想到視頻會(huì)議和視頻點(diǎn)播。盡管第一個(gè)使用的IP組播網(wǎng)絡(luò)常常是視頻網(wǎng)絡(luò),但視頻只是許多IP組播應(yīng)用之一。IP組播在其他領(lǐng)域應(yīng)用的也很廣泛。
1.多媒體應(yīng)用
一些出色的IP組播多媒體應(yīng)用程序已經(jīng)被開(kāi)發(fā)出來(lái),允許通過(guò)IP組播實(shí)現(xiàn)多對(duì)多的音頻或音頻/視頻會(huì)議。除音頻與視頻之外,還有一種基于Unix的白板工具,它允許用戶共享公共的電子白板。
2.?dāng)?shù)據(jù)分發(fā)
數(shù)據(jù)分發(fā)是IP組播應(yīng)用的另一個(gè)領(lǐng)域。通過(guò)使用IP組播,公司可以采用“推”的模式進(jìn)行文件和數(shù)據(jù)庫(kù)更新。 這項(xiàng)技術(shù)允許公司每天夜里向他們的遠(yuǎn)程辦公室發(fā)布新的信息,比如價(jià)格和產(chǎn)品信息。企業(yè)可使用軟件通過(guò)衛(wèi)星鏈路向所屬分公司分發(fā)軟件升級(jí)和數(shù)據(jù)更新消息。一次性向所有的分公司傳送一種數(shù)據(jù),而不是依次向每個(gè)分公司重發(fā),節(jié)省了時(shí)間和通信費(fèi)用。
3.實(shí)時(shí)數(shù)據(jù)組播
實(shí)時(shí)數(shù)據(jù)傳送是使IP組播深受歡迎的又一應(yīng)用領(lǐng)域。一個(gè)好的例子是將股票信息發(fā)送到交易大廳的工作站。
通過(guò)指定不同的財(cái)務(wù)分類(lèi)(債券、運(yùn)輸、藥品等等)給不同的組播組,交易員能使用他們的工作站來(lái)接收他們感興趣的實(shí)時(shí)金融數(shù)據(jù)。
IP組播目前在該領(lǐng)域已獲得了一定范圍的商業(yè)應(yīng)用。例如企業(yè)可在其企業(yè)網(wǎng)上使用組播向各個(gè)部門(mén)分發(fā)市場(chǎng)數(shù)據(jù)。這樣做的優(yōu)點(diǎn)是:如果使用單播系統(tǒng)出現(xiàn)故障時(shí),數(shù)據(jù)被備份下來(lái),而后當(dāng)故障排除時(shí),網(wǎng)絡(luò)上的所有數(shù)據(jù)存儲(chǔ)器開(kāi)始重發(fā)它們備份的數(shù)據(jù)。這可能再度堵塞網(wǎng)絡(luò),從而可能使故障情況再次發(fā)生,造成網(wǎng)絡(luò)停止運(yùn)行一段時(shí)間,然后又再次備份數(shù)據(jù)。而如果采用組播,這些數(shù)據(jù)風(fēng)暴就少多了,因?yàn)榻M播的第一次重發(fā)操作是很有效的。
4.游戲和仿真
IP組播非常適合于網(wǎng)絡(luò)游戲或者仿真應(yīng)用的使用。雖然很多的游戲和仿真支持聯(lián)線的方式進(jìn)行游戲,事實(shí)上所有這些應(yīng)用使用單播,是點(diǎn)對(duì)點(diǎn)的連接。IP組播可用于有大量參與者的游戲和仿真。參與的計(jì)算機(jī)只需進(jìn)入IP組播組就開(kāi)始發(fā)送和接受游戲及仿真數(shù)據(jù)。
由于更多IP網(wǎng)絡(luò)將變成組播網(wǎng)絡(luò),人們期望更多的游戲和仿真應(yīng)用開(kāi)發(fā)者把IP組播用于范圍更大的仿真。不久的將來(lái),成千上萬(wàn)的玩家通過(guò)Internet在游戲里同時(shí)戰(zhàn)斗將不再是不可思議的事。
六、組播設(shè)備
要在網(wǎng)絡(luò)上實(shí)現(xiàn)組播應(yīng)用必須要有相應(yīng)組播設(shè)備的支持。按照組播協(xié)議的分類(lèi)在三層的組播協(xié)議主要有DVMRP、PIM和IGMP等,而在二層的組播協(xié)議主要用CGMP(Cisco Group Management Protocol)和IGMP監(jiān)聽(tīng)。三層組播協(xié)議主要用于組播信息的轉(zhuǎn)發(fā),二層組播協(xié)議主要用于抑制局域網(wǎng)上多余的組播信息,在路由器以及多層交換機(jī)上一般實(shí)現(xiàn)三層的組播協(xié)議,而在不具備多層交換的交換機(jī)上一般只能實(shí)現(xiàn)二層組播協(xié)議。
當(dāng)前已經(jīng)有大量通信設(shè)備制造商的設(shè)備支持組播路由協(xié)議,如Cisco系統(tǒng)公司的所有交換設(shè)備、3Com公司的交換機(jī)、Enterasys公司的交換式路由器、神州數(shù)碼網(wǎng)絡(luò)的路由交換機(jī)、華為公司的quidway系列路由交換機(jī)、中興公司ZXR10核心路由器、邁普通信的路由交換機(jī)和網(wǎng)捷網(wǎng)絡(luò)的第三層交換機(jī)等。如果需要在網(wǎng)絡(luò)上實(shí)現(xiàn)組播功能,可以選用上述廠家的產(chǎn)品。
例如,Cisco系統(tǒng)公司的Catalyst 2948G-L3第三層交換機(jī)的所有端口支持線速I(mǎi)P組播。隨著組播應(yīng)用(例如Microsoft NetShow和NetMeeting)被更加廣泛的實(shí)施,端到端組播支持變得越來(lái)越重要,其中組播路由協(xié)議是統(tǒng)一的端到端組播解決方案的有機(jī)組成部分。Catalyst 2948G-L3支持PIM疏松和密集模式以及與DVMRP傳統(tǒng)應(yīng)用程序間的互操作性。Catalyst 2948G-L3提供對(duì)IGMPv1/2支持,為集成IP組播和Catalyst核心交換機(jī),提供CGMP服務(wù)器功能。這些協(xié)議對(duì)IP組播客戶機(jī)以及有效的處理必不可少,節(jié)約了帶寬和客戶端的CPU資源。
雖然IP組播的概念很早就被提出,但是直到現(xiàn)在它的能力才被充分認(rèn)識(shí)。目前組播技術(shù)應(yīng)用的增長(zhǎng)十分快速,而且這種趨勢(shì)正在加快,但是IP組播仍然是一項(xiàng)新出現(xiàn)的技術(shù),雖然組播具有很大的優(yōu)點(diǎn)和長(zhǎng)處,但是和所有新技術(shù)一樣有其自身的局限性和一些問(wèn)題,因此在組播領(lǐng)域還需要進(jìn)行大量的工作。