網(wǎng)絡(luò)多播技術(shù)
IP多播(也稱多址廣播或組播)技術(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í)游戲等方面。有些應(yīng)用會(huì)有這樣的要求:一些分布在各處的進(jìn)程需要以組的方式協(xié)同工作,組中的進(jìn)程通常要給其他所有的成員發(fā)送消息。即有這樣的一種方法能夠給一些明確定義的組發(fā)送消息,這些組的成員數(shù)量雖然很多,但是與整個(gè)網(wǎng)絡(luò)規(guī)模相比卻很小。給這樣一個(gè)組發(fā)送消息稱為多點(diǎn)點(diǎn)播送,簡(jiǎn)稱多播。1.IP多播地址和多播組IP多播通信必須依賴于IP多播地址,在IPv4中它是一個(gè)D類IP地址,范圍從224.0.0.0到239.255.255.255,并被劃分為局部鏈接多播地址、預(yù)留多播地址和管理權(quán)限多播地址三類。
其中,局部鏈接多播地址范圍在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)部使用,類似于私有IP地址,不能用于Internet,可限制多播范圍。使用同一個(gè)IP多播地址接收多播數(shù)據(jù)包的所有主機(jī)構(gòu)成了一個(gè)主機(jī)組,也稱為多播組。一個(gè)多播組的成員是隨時(shí)變動(dòng)的,一臺(tái)主機(jī)可以隨時(shí)加入或離開(kāi)多播組,多播組成員的數(shù)目和所在的地理位置也不受限制,一臺(tái)主機(jī)也可以屬于幾個(gè)多播組。此外,不屬于某一個(gè)多播組的主機(jī)也可以向該多播組發(fā)送數(shù)據(jù)包。2.IP多播技術(shù)的硬件支持要實(shí)現(xiàn)IP多播通信,要求介于多播源和接收者之間的路由器、集線器、交換機(jī)以及主機(jī)均需支持IP多播。目前,IP多播技術(shù)已得到硬件、軟件廠商的廣泛支持。(1)主機(jī)支持IP多播通信的平臺(tái)包括Windows CE 2.1、Windows 95、Windows 98、Windows NT 4和Windows 2000等,運(yùn)行這些操作系統(tǒng)的主機(jī)都可以進(jìn)行IP多播通信。此外,新生產(chǎn)的網(wǎng)卡也幾乎都提供了對(duì)IP多播的支持。
(2)集線器和交換機(jī)目前大多數(shù)集線器、交換機(jī)只是簡(jiǎn)單地把多播數(shù)據(jù)當(dāng)成廣播來(lái)發(fā)送接收,但一些中、高檔交換機(jī)提供了對(duì)IP多播的支持。例如,在3COM SuperStack 3 Swith 3300交換機(jī)上可啟用802.1p或IGMP多播過(guò)濾功能,只為已偵測(cè)到IGMP數(shù)據(jù)包的端口轉(zhuǎn)發(fā)多播數(shù)據(jù)包。
(3)路由器多播通信要求多播源節(jié)點(diǎn)和目的節(jié)點(diǎn)之間的所有路由器必須提供對(duì)Internet組管理協(xié)議(IGMP)、多播路由協(xié)議(如PIM、DVMRP等)的支持。當(dāng)一臺(tái)主機(jī)欲加入某個(gè)多播組時(shí),會(huì)發(fā)出“主機(jī)成員報(bào)告”的IGMP消息通知多播路由器。當(dāng)多播路由器接收到發(fā)給那個(gè)多播組的數(shù)據(jù)時(shí),便會(huì)將其轉(zhuǎn)發(fā)給所有的多播主機(jī)。多播路由器還會(huì)周期性地發(fā)出“主機(jī)成員查詢”的IGMP消息,向子網(wǎng)查詢多播主機(jī),若發(fā)現(xiàn)某個(gè)多播組已沒(méi)有任何成員,則停止轉(zhuǎn)發(fā)該多播組的數(shù)據(jù)。此外,當(dāng)支持IGMP v2的主機(jī)(如Windows 98/2000計(jì)算機(jī))退出某個(gè)多播組時(shí),還會(huì)向路由器發(fā)送一條“離開(kāi)組”的IGMP消息,以通知路由器停止轉(zhuǎn)發(fā)該多播組的數(shù)據(jù)。但只有當(dāng)子網(wǎng)上所有主機(jī)都退出某個(gè)多播組時(shí),路由器才會(huì)停止向該子網(wǎng)轉(zhuǎn)發(fā)該多播組的數(shù)據(jù)。使用多播路由協(xié)議,路由器可建立起從多播源節(jié)點(diǎn)到所有目的節(jié)點(diǎn)的多播路由表,從而實(shí)現(xiàn)在子網(wǎng)間轉(zhuǎn)發(fā)多播數(shù)據(jù)包。例如,PIM(協(xié)議獨(dú)立多播)就是一種多播路由協(xié)議,它有兩種類型:稀疏模式(sparse-mode)和密集模式(dense-mode)。以Cisco 2621路由器為例,啟用IP多播轉(zhuǎn)發(fā)功能的基本設(shè)置如下:c2621(config)# ip multicast-routing 啟動(dòng)IP多播,使路由器成為一個(gè)多播路由器c2621(config)# int f0/0 配置快速以太網(wǎng)端口0c2621(config-if)# ip pim dense-mode(或sparse-mode)啟動(dòng)PIM,同時(shí)激活I(lǐng)GMP協(xié)議c2621(config-if)# int f0/1 配置快速以太網(wǎng)端口1c2621(config-if)# ip pim dense-mode(或sparse-mode)