版權歸原作者所有,如有侵權,請聯(lián)系我們

[科普中國]-組播

科學百科
原創(chuàng)
科學百科為用戶提供權威科普內容,打造知識科普陣地
收藏

組播技術的初衷是在IP網(wǎng)絡中,以"盡力而為"的形式發(fā)送信息到某個目標組,這個目標組稱為組播組,這樣在有源主機向多點目標主機發(fā)送信息需求時,源主機只發(fā)送一份數(shù)據(jù),數(shù)據(jù)的目的地址是組播組地址,這樣,凡是屬于該組的成員,都可以接收到一份原主機發(fā)送的數(shù)據(jù)的拷貝,此組播方式下,只有真正信息需要的成員會收到信息,其他主機不會收到。

因此組播方式解決了單播情況下數(shù)據(jù)的重復拷貝及帶寬的重復占用,也解決了廣播方式下帶寬資源的讓費。1

產(chǎn)生背景通常,在傳統(tǒng)的網(wǎng)絡通訊中,有兩種方式,一種是源主機和目標主機兩臺主機之間進行的“一對一”的通訊方式,即單播,第二種是一臺源主機與網(wǎng)絡中所有其他主機之間進行的通訊,即廣播。那么,如果需要將信息從源主機發(fā)送到網(wǎng)絡中的多個目標主機,要么采用廣播方式,這樣網(wǎng)絡中所有主機都會收到信息,要么,采用單播方式,由源主機分別向各個不同目標主機發(fā)送信息。可以看出來,在廣播方式下,信息會發(fā)送到不需要該信息的主機從而浪費帶寬資源,甚至引起廣播風暴:而單播方式下,會因為數(shù)據(jù)包的多次重復而浪費帶寬資源,同時,源主機的負荷會因為多次的數(shù)據(jù)復制而加大,所以,單播與廣播對于多點發(fā)送問題有缺陷。

在此情況下,組播技術就應用而生了。

組播又稱多目標廣播、多播。網(wǎng)絡中使用的一種傳輸方式,它允許把 所發(fā)消息傳送給所有可能目的地中的一個經(jīng)過選擇的子集,即向明確指出的多種地址輸送信息。是一種在一個發(fā)送者和多個接收者之間進行通信的方法。與任播(anycast)和單播(unicast)一起,組播也是一種IPv6的包傳送方式。組播在CDPD技術中的無線數(shù)據(jù)網(wǎng)絡中也可以使用。2

1985年9月,Steve與其導師提出了支持IP組播的擴展模型,明確了Internet組管理協(xié) (Internet Group Management Protocol, IGMP) 概念。12月,Steve將此概念提交給了IETF, 而后經(jīng)過兩次更新該組播模型,越不同網(wǎng)段的轉發(fā)沒有定義,此方面的工作已經(jīng)被獨立為組播路由技術。1989年8月,RFC1112作為IGMPv1的規(guī)范被廣泛接受,這是組播發(fā)展歷程中的一個重要里程碑。3

傳統(tǒng)方式組播技術是IP網(wǎng)絡數(shù)據(jù)傳輸三種方式之一,在介紹IP組播技術之前,先對IP網(wǎng)絡數(shù)據(jù)傳輸?shù)膯尾ァ⒔M播和廣播方式做一個簡單的介紹。

單播在發(fā)送者和每一接收者之間實現(xiàn)點對點網(wǎng)絡連接。如果一臺發(fā)送者同時給多個的接收者傳輸相同的數(shù)據(jù),也必須相應的復制多份的相同數(shù)據(jù)包。如果有大量主機希望獲得數(shù)據(jù)包的同一份拷貝時,將導致發(fā)送者負擔沉重、延遲長、網(wǎng)絡擁塞;為保證一定的服務質量需增加硬件和帶寬。

廣播廣播指在IP子網(wǎng)內廣播數(shù)據(jù)包,所有在子網(wǎng)內部的主機都將收到這些數(shù)據(jù)包。廣播意味著網(wǎng)絡向子網(wǎng)每一個主機都投遞一份數(shù)據(jù)包,不論這些主機是否樂于接收該數(shù)據(jù)包。所以廣播的使用范圍非常小,只在本地子網(wǎng)內有效,通過路由器和網(wǎng)絡設備控制廣播傳輸。

組播在發(fā)送者和每一接收者之間實現(xiàn)點對多點網(wǎng)絡連接。如果一臺發(fā)送者同時給多個接收者傳輸相同的數(shù)據(jù),也只需復制一份相同的數(shù)據(jù)包。它提高了數(shù)據(jù)傳送效率,減少了骨干網(wǎng)絡出現(xiàn)擁塞的可能性。

組播解決了單播和廣播方式效率低的問題。當網(wǎng)絡中的某些用戶需求特定信息時,組播源(即組播信息發(fā)送者)僅發(fā)送一次信息,組播路由器借助組播路由協(xié)議為組播數(shù)據(jù)包建立樹型路由,被傳遞的信息在盡可能遠的分叉路口才開始復制和分發(fā)。

IP組播公共互聯(lián)網(wǎng)中的一些團體經(jīng)常會用到IP組播(Mbone就是一個例子),此外IP組播還被用于Internet2等私有IP網(wǎng)絡中的一些特殊應用。鏈路本地組播是指將IP組播包發(fā)往處于同一物理的或虛擬的數(shù)據(jù)鏈路層的若干主機組。由于這種組播不需要復雜的路由,因此其應用要廣泛得多。在IPv6中,它被用于地址解析,而在零配置網(wǎng)絡中,它取代了低效的廣播協(xié)議,完成服務發(fā)現(xiàn)、名字解析和地址沖突解析的功能。

IP組播會議的第一次大規(guī)模演示是在1992年3月的第23屆IETF大會上,當時它被用于向全世界的研究人員和感興趣的觀察員們廣播一些會議。之后,IETF的一些會議就被有選擇地繼續(xù)在MBONE和一些私有組播網(wǎng)絡上多播。

組播安全性是一個重要的問題。標準的、實用的通信安全解決方案一般采用的是對稱加密。但是將其應用于IP組播流量可能會使任何一個接收方都擁有冒充發(fā)送方的能力。這顯然是令人無法接受的。IETF的MSEC工作組正在開發(fā)用以解決這一問題的安全協(xié)議,這些協(xié)議大多都是在IPsec協(xié)議集的體系框架內開發(fā)的。

IPsec不能被用于組播方案,這是因為IPsec安全關聯(lián)是被綁定到兩個而非多個主機的。IETF提出了一個新的協(xié)議——TESLA,就組播安全性而言,這個協(xié)議是靈活且令人信服的。

體系結構組播協(xié)議分為主機-路由器之間的組成員關系協(xié)議和路由器-路由器之間的組播路由協(xié)議。組成員關系協(xié)議包括IGMP(互連網(wǎng)組管理協(xié)議)。組播路由協(xié)議分為域內組播路由協(xié)議及域間組播路由協(xié)議。域內組播路由協(xié)議包括PIM-SM、PIM-DM、DVMRP等協(xié)議,域間組播路由協(xié)議包括MBGP、MSDP等協(xié)議。同時為了有效抑制組播數(shù)據(jù)在鏈路層的擴散,引入了IGMP Snooping、CGMP等二層組播協(xié)議。對組播的技術歷史作出了巨大的貢獻!

IGMP建立并且維護路由器直聯(lián)網(wǎng)段的組成員關系信息。域內組播路由協(xié)議根據(jù)IGMP維護的這些組播組成員關系信息,運用一定的組播路由算法構造組播分發(fā)樹進行組播數(shù)據(jù)包轉發(fā)。域間組播路由協(xié)議在各自治域間發(fā)布具有組播能力的路由信息以及組播源信息,以使組播數(shù)據(jù)在域間進行轉發(fā)。

IP地址組播IP地址用于標識一個IP組播組。IANA(internet assigned number authority)把D類地址空間分配給IP組播,其范圍是從224.0.0.0到239.255.255.255。如下圖所示(二進制表示),IP組播地址前四位均為1110八位組⑴ 八位組⑵ 八位組⑶ 八位組⑷1110

XXXX XXXXXXXX XXXXXXXX XXXXXXXX組播組可以是永久的也可以是臨時的。組播組地址中,有一部分由官方分配的,稱為永久組播組。永久組播組保持不變的是它的ip地址,組中的成員構成可以發(fā)生變化。永久組播組中成員的數(shù)量都可以是任意的,甚至可以為零。那些沒有保留下來供永久組播組使用的ip組播地址,可以被臨時組播組利用。

224.0.0.0~224.0.0.255為預留的組播地址(永久組地址),地址224.0.0.0保留不做分配,其它地址供路由協(xié)議使用。

224.0.1.0~238.255.255.255為用戶可用的組播地址(臨時組地址),全網(wǎng)范圍內有效。

239.0.0.0~239.255.255.255為本地管理組播地址,僅在特定的本地范圍內有效。常用的預留組播地址列表如下:

224.0.0.0 基準地址(保留)

224.0.0.1 所有主機的地址

224.0.0.2 所有組播路由器的地址

224.0.0.3 不分配

224.0.0.4dvmrp(Distance Vector Multicast Routing Protocol,距離矢量組播路由協(xié)議)路由器

224.0.0.5 ospf(Open Shortest Path First,開放最短路徑優(yōu)先)路由器

224.0.0.6 ospf dr(Designated Router,指定路由器)

224.0.0.7 st (Shared Tree,共享樹)路由器

224.0.0.8 st主機

224.0.0.9 rip-2路由器

224.0.0.10 Eigrp(Enhanced Interior Gateway Routing Protocol,增強網(wǎng)關內部路由線路協(xié)議)路由器 224.0.0.11 活動代理

224.0.0.12 dhcp服務器/中繼代理

224.0.0.13 所有pim (Protocol Independent Multicast,協(xié)議無關組播)路由器

224.0.0.14 rsvp (Resource Reservation Protocol,資源預留協(xié)議)封裝

224.0.0.15 所有cbt 路由器

224.0.0.16 指定sbm(Subnetwork Bandwidth Management,子網(wǎng)帶寬管理)

224.0.0.17 所有sbms

224.0.0.18 vrrp(Virtual Router Redundancy Protocol,虛擬路由器冗余協(xié)議)

239.255.255.255 SSDP協(xié)議使用

組播MAC地址

組播MAC地址的高24bit為0x01005e,第25bit為0,即高25bit為固定值。MAC地址的低23bit為組播IP地址的低23bit。由于 IP組播地址的前4bit 是1110,代表組播標識,而后28bit 中只有23bit 被映射到MAC 地址,這樣IP 地址中就有5bit 信息丟失,導致的結果是出現(xiàn)了32 個IP 組播地址映射到同一MAC 地址上。

交互式IP組播的最大的用處就是用來做Internet上的音頻和視頻的傳輸,比如向成百上千的使用者發(fā)送音頻和視頻數(shù)據(jù)流??墒莻鹘y(tǒng)的IP組播的有一個最大的缺點就是這些所有的使用者都是被動的接受者。換句話說,IP組播并沒有讓這些使用者進行交互式主動參與的內置機制。

利用H.323國際標準中對會議成員的管理技術,SAP(Session Announcement Protocol),SDP(Session Description Protocol),RTCP(Real-time Transport Control Protocol)等協(xié)議,就可以使傳統(tǒng)的IP組播技術具有交互功能。交互式IP組播技術應用范圍很廣,特別是Internet上多媒體的傳輸業(yè)務。比如視頻會議,遠程教育,Internet上的視頻點播(VoD)等。

組播應用在組播方式中,信息的發(fā)送者稱為“組播源”,信息接收者稱為該信息的“組播組”,支持組播信息傳輸?shù)乃新酚善鞣Q為“組播路由器”。加入同一組播組的接收者成員可以廣泛分布在網(wǎng)絡中的任何地方,即“組播組”沒有地域限制。需要注意的是,組播源不一定屬于組播組,它向組播組發(fā)送數(shù)據(jù),自己不一定是接收者。多個組播源可以同時向一個組播組發(fā)送報文。

假設只有 Host B、Host D 和Host E 需要信息,采用組播方式時,可以讓這些主機加入同一個組播組(Multicast group),組播源向該組播組只需發(fā)送一份信息,并由網(wǎng)絡中各路由器根據(jù)該組播組中各成員的分布情況對該信息進行復制和轉發(fā),最后該信息會準確地發(fā)送給Host B、Host D 和Host E。

相關協(xié)議組播協(xié)議分為主機與路由器之間的組成員關系協(xié)議和路由器與路由器之間的組播路由協(xié)議。4

IGMPIGMP協(xié)議運行于主機和與主機直接相連的組播路由器之間,主機通過此協(xié)議告訴本地路由器希望加入并接受某個特定組播組的信息,同時路由器通過此協(xié)議周期性地查詢局域網(wǎng)內某個已知組的成員是否處于活動狀態(tài)(即該網(wǎng)段是否仍有屬于某個組播組的成員),實現(xiàn)所連網(wǎng)絡組成員關系的收集與維護。

IGMP有三個版本,IGMPv1由RFC1112定義,目前通用的是IGMPv2,由RFC2236定義。IGMPv3目前仍然是一個草案。IGMPv1中定義了基本的組成員查詢和報告過程,IGMPv2在此基礎上添加了組成員快速離開的機制,IGMPv3中增加的主要功能是成員可以指定接收或指定不接收某些組播源的報文。這里著重介紹IGMPv2協(xié)議的功能。

IGMPv2通過查詢器選舉機制為所連網(wǎng)段選舉唯一的查詢器。查詢器周期性的發(fā)送普遍組查詢消息進行成員關系查詢;主機發(fā)送報告消息來應答查詢。當要加入組播組時,主機不必等待查詢消息,主動發(fā)送報告消息。當要離開組播組時,主機發(fā)送離開組消息;收到離開組消息后,查詢器發(fā)送特定組查詢消息來確定是否所有組成員都已離開。

通過上述IGMP機制,在組播路由器里建立起一張表,其中包含路由器的各個端口以及在端口所對應的子網(wǎng)上都有哪些組的成員。當路由器接收到某個組G的數(shù)據(jù)報文后,只向那些有G的成員的端口上轉發(fā)數(shù)據(jù)報文。至于數(shù)據(jù)報文在路由器之間如何轉發(fā)則由路由協(xié)議決定,IGMP協(xié)議并不負責。

IGMP SnoopingIGMP Snooping的實現(xiàn)機理是:交換機通過偵聽主機發(fā)向路由器的IGMP成員報告消息的方式,形成組成員和交換機接口的對應關系;交換機根據(jù)該對應關系將收到組播數(shù)據(jù)包只轉給具有組成員的接口。

IGMP Proxy與IGMP Snooping實現(xiàn)功能相同但機理相異:IGMP snooping只是通過偵聽IGMP的消息來獲取有關信息,而IGMP Proxy則攔截了終端用戶的IGMP請求并進行相關處理后,再將它轉發(fā)給上層路由器。

CGMPCGMP(Cisco Group Management Protocol)是Cisco基于客戶機/服務器模型開發(fā)的私有協(xié)議,在CGMP的支持下,組播路由器能夠根據(jù)接收到的IGMP數(shù)據(jù)包通知交換機哪些主機何時加入和脫離組播組,交換機利用由這些信息所構建的轉發(fā)表來確定將組播數(shù)據(jù)包向哪些接口轉發(fā)。GMRP是主機到以太網(wǎng)交換機的標準協(xié)議,它使組播用戶可以在第二層交換機上對組播成員進行注冊。

PIM-SM眾多的組播路由協(xié)議中,目前應用最多的協(xié)議是 PIM-SM稀疏模式協(xié)議無關組播。

在PIM-SM域中,運行PIM-SM協(xié)議的路由器周期性的發(fā)送Hello消息,用以發(fā)現(xiàn)鄰接的PIM路由器,并且負責在多路訪問網(wǎng)絡中進行指定路由器(DR)的選舉。這里,DR負責為其直連組成員朝著組播分發(fā)樹根節(jié)點的方向發(fā)送"加入/剪枝"消息,或是將直連組播源的數(shù)據(jù)發(fā)向組播分發(fā)樹。

組播骨干網(wǎng)組播的規(guī)范是在1989年出版的,但是它的使用受到了限制。Internet上的路由器目前并不是都具有組播的能力。在這樣一種情況下,研究者們?yōu)榱嗽诂F(xiàn)有情況下開發(fā)和測試組播協(xié)議的應用,建立了組播骨干網(wǎng)(Multicast Backbone,Mbone)。Mbone支持組播分組的路由選擇而不打擾其它的因特網(wǎng)業(yè)務流。

Mbone是一種跨越幾個大陸的,由志愿者合作完成的實驗性的網(wǎng)絡。它是一個相互連接的子網(wǎng)和路由器的集合,這些子網(wǎng)和路由器支持IP組播業(yè)務流的傳送。作為因特網(wǎng)上的虛擬網(wǎng)絡,Mbone通過隧道(Tunneling)來旁路因特網(wǎng)上無組播能力的路由器。

隧道把組播數(shù)據(jù)包封裝在IP包(即單播數(shù)據(jù)包)中來通過哪些不支持組播路由的網(wǎng)絡。如圖5所示,MR3和MR4是支持IGMP協(xié)議的有組播能力的路由器,他們把組播數(shù)據(jù)包封裝在單播數(shù)據(jù)包中來發(fā)送,同時它們還從收到的單播數(shù)據(jù)包中取出組播數(shù)據(jù)包。R1和R2是沒有組播能力的路由器,它們像傳送其它普通單播數(shù)據(jù)包那樣來傳送封裝有組播數(shù)據(jù)包的單播數(shù)據(jù)包。

組播應用組播應用大致可以分為三類: 點對多點應用,多點對多點應用和多點對點應用。

點對多點點對多點應用是指一個發(fā)送者,多個接收者的應用形式,這是最常見的組播應用形式。典型的應用包括:

媒體廣播:如演講、演示、會議等按日程進行的事件。其傳統(tǒng)媒體分發(fā)手段通常采用電視和廣播。這一類應用通常需要一個或多個恒定速率的數(shù)據(jù)流,當采用多個數(shù)據(jù)流(如語音和視頻)時,往往它們之間需要同步,并且相互之間有不同的優(yōu)先級。它們往往要求較高的帶寬、較小的延時抖動,但是對絕對延時的要求不是很高。

媒體推送:如新聞標題、天氣變化、運動比分等一些非商業(yè)關鍵性的動態(tài)變化的信息。它們要求的帶寬較低、對延時也沒有什么要求。

信息緩存: 如網(wǎng)站信息、執(zhí)行代碼和其他基于文件的分布式復制或緩存更新。它們對帶寬的要求一般,對延時的要求也一般。

事件通知:如網(wǎng)絡時間、組播會話日程、隨機數(shù)字、密鑰、配置更新、有效范圍的網(wǎng)絡警報或其他有用信息。它們對帶寬的需求有所不同,但是一般都比較低,對延時的要求也一般。

狀態(tài)監(jiān)視:如股票價格、傳感設備、安全系統(tǒng)、生產(chǎn)信息或其他實時信息。這類帶寬要求根據(jù)采樣周期和精度有所不同,可能會有恒定速率帶寬或突發(fā)帶寬要求,通常對帶寬和延時的要求一般。

多點對多點多點對多點應用是指多個發(fā)送者和多個接收者的應用形式。通常,每個接收者可以接收多個發(fā)送者發(fā)送的數(shù)據(jù),同時,每個發(fā)送者可以把數(shù)據(jù)發(fā)送給多個接收者。

典型應用包括:

多點會議:通常音/視頻和白板應用構成多點會議應用。在多點會議中,不同的數(shù)據(jù)流擁有不同的優(yōu)先級。傳統(tǒng)的多點會議采用專門的多點控制單元來協(xié)調和分配它們,采用組播可以直接由任何一個發(fā)送者向所有接收者發(fā)送,多點控制單元用來控制當前發(fā)言權。這類應用對帶寬和延時要求都比較高。

資源同步:如日程、目錄、信息等分布數(shù)據(jù)庫的同步。它們對帶寬和延時的要求一般。

并行處理: 如分布式并行處理。它對帶寬和延時的要求都比較高。

協(xié)同處理:如共享文檔的編輯。它對帶寬和延時的要求一般。

遠程學習:這實際上是媒體廣播應用加上對上行數(shù)據(jù)流(允許學生向老師提問)的支持。它對帶寬和延時的要求一般。

討論組:類似于基于文本的多點會議,還可以提供一些模擬的表達。

分布式交互模擬(DIS):它對帶寬和時延的要求較高。

多人游戲:多人游戲是一種帶討論組能力的簡單分布式交互模擬。它對帶寬和時延的要求都比較高。

Jam Session:這是一種音頻編碼共享應用。它對帶寬和時延的要求都比較高。

多點對點

多點對點應用是指多個發(fā)送者,一個接收者的應用形式。通常是雙向請求響應應用,任何一端(多點或點)都有可能發(fā)起請求。典型應用包括:

資源查找:如服務定位,它要求的帶寬較低,對時延的要求一般。

數(shù)據(jù)收集:它是點對多點應用中狀態(tài)監(jiān)視應用的反向過程。它可能由多個傳感設備把數(shù)據(jù)發(fā)回給一個數(shù)據(jù)收集主機。帶寬要求根據(jù)采樣周期和精度有所不同,可能會有恒定速率帶寬或突發(fā)帶寬要求,通常這類應用對帶寬和延時的要求一般。

網(wǎng)絡竟拍:拍賣者拍賣產(chǎn)品,而多個竟拍者把標價發(fā)回給拍賣者。

信息詢問: 詢問者發(fā)送一個詢問,所有被詢問者返回應答。通常這對帶寬的要求較低,對延時不太敏感。

Juke Box:如支持準點播(Near-On-Demand)的音視頻倒放。通常接收者采用“帶外的”協(xié)議機制(如HTTP、RTSP、SMTP,也可以采用組播方式)發(fā)送倒放請求給一個調度隊列。它對帶寬的要求較高,對延時的要求一般。

技術問題目前組播技術還有許多未解決的問題,例如:組播安全、組播擁塞控制、組播狀態(tài)聚集、組播流量計費、無擁塞控制、數(shù)據(jù)包重復、數(shù)據(jù)包的無序交付等等。

本詞條內容貢獻者為:

馬學彬 - 副教授 - 內蒙古大學