組播(MULTICAST)

組播

MULTICAST一般指本詞條

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

因此組播方式解決了單播情況下數據的重複拷貝及頻寬的重複占用,也解決了廣播方式下頻寬資源的浪費。

基本介紹

  • 中文名:組播
  • 外文名:Multicast
  • 含義:在傳送和接收者實現點對多點連線
  • 優點:提高了數據傳送效率
  • 所屬類別:計算機 網路 通信
  • 別稱:多播
產生背景,傳統方式,單播,廣播,IP組播,體系結構,IP位址,互動式,組播套用,相關協定,IGMP,IGMP Snooping,CGMP,PIM-SM,組播骨幹網,組播套用,點對多點,多點對多點,技術問題,

產生背景

通常,在傳統的網路通訊中,有兩種方式,一種是源主機和目標主機兩台主機之間進行的“一對一”的通訊方式,即單播,第二種是一台源主機與網路中所有其他主機之間進行的通訊,即廣播。那么,如果需要將信息從源主機傳送到網路中的多個目標主機,要么採用廣播方式,這樣網路中所有主機都會收到信息,要么,採用單播方式,由源主機分別向各個不同目標主機傳送信息。可以看出來,在廣播方式下,信息會傳送到不需要該信息的主機從而浪費頻寬資源,甚至引起廣播風暴:而單播方式下,會因為數據包的多次重複而浪費頻寬資源,同時,源主機的負荷會因為多次的數據複製而加大,所以,單播與廣播對於多點傳送問題有缺陷。
組播組播
在此情況下,組播技術就套用而生了。
組播又稱多目標廣播、多播。網路中使用的一種傳輸方式,它允許把 所發訊息傳送給所有可能目的地中的一個經過選擇的子集,即向明確指出的多種地址輸送信息。是一種在一個傳送者和多個接收者之間進行通信的方法。與任播(anycast)和單播(unicast)一起,組播也是一種IPv6的包傳送方式。組播在CDPD技術中的無線數據網路中也可以使用。
1985年9月,Steve與其導師提出了支持IP組播的擴展模型,明確了Internet組管理協 (Internet Group Management Protocol, IGMP) 概念。12月,Steve將此概念提交給了IETF, 而後經過兩次更新該組播模型,越不同網段的轉發沒有定義,此方面的工作已經被獨立為組播路由技術。1989年8月,RFC1112作為IGMPv1的規範被廣泛接受,這是組播發展歷程中的一個重要里程碑。

傳統方式

組播技術是IP網路數據傳輸三種方式之一,在介紹IP組播技術之前,先對IP網路數據傳輸的單播、組播和廣播方式做一個簡單的介紹。

單播

在傳送者和每一接收者之間實現點對點網路連線。如果一台傳送者同時給多個的接收者傳輸相同的數據,也必須相應的複製多份的相同數據包。如果有大量主機希望獲得數據包的同一份拷貝時,將導致傳送者負擔沉重、延遲長、網路擁塞;為保證一定的服務質量需增加硬體頻寬

廣播

廣播指在IP子網廣播數據包,所有在子網內部的主機都將收到這些數據包。廣播意味著網路向子網每一個主機都投遞一份數據包,不論這些主機是否樂於接收該數據包。所以廣播的使用範圍非常小,只在本地子網內有效,通過路由器網路設備控制廣播傳輸。
組播在傳送者和每一接收者之間實現點對多點網路連線。如果一台傳送者同時給多個接收者傳輸相同的數據,也只需複製一份相同的數據包。它提高了數據傳送效率,減少了骨幹網路出現擁塞的可能性。
組播解決了單播和廣播方式效率低的問題。當網路中的某些用戶需求特定信息時,組播源(即組播信息傳送者)僅傳送一次信息,組播路由器藉助組播路由協定為組播數據包建立樹型路由,被傳遞的信息在儘可能遠的分叉路口才開始複製和分發。

IP組播

公共網際網路中的一些團體經常會用到IP組播Mbone就是一個例子),此外IP組播還被用於Internet2私有IP網路中的一些特殊套用。鏈路本地組播是指將IP組播包發往處於同一物理的或虛擬的數據鏈路層的若干主機組。由於這種組播不需要複雜的路由,因此其套用要廣泛得多。在IPv6中,它被用於地址解析,而在零配置網路中,它取代了低效的廣播協定,完成服務發現、名字解析和地址衝突解析的功能。
組播(MULTICAST)
IP組播會議的第一次大規模演示是在1992年3月的第23屆IETF大會上,當時它被用於向全世界的研究人員和感興趣的觀察員們廣播一些會議。之後,IETF的一些會議就被有選擇地繼續在MBONE和一些私有組播網路上多播
組播安全性是一個重要的問題。標準的、實用的通信安全解決方案一般採用的是對稱加密。但是將其套用於IP組播流量可能會使任何一個接收方都擁有冒充傳送方的能力。這顯然是令人無法接受的。IETF的MSEC工作組正在開發用以解決這一問題的安全協定,這些協定大多都是在IPsec協定集的體系框架內開發的。
IPsec不能被用於組播方案,這是因為IPsec安全關聯是被綁定到兩個而非多個主機的。IETF提出了一個新的協定——TESLA,就組播安全性而言,這個協定是靈活且令人信服的。

體系結構

組播協定分為主機-路由器之間的組成員關係協定和路由器-路由器之間的組播路由協定。組成員關係協定包括IGMP(互連網組管理協定)。組播路由協定分為域內組播路由協定及域間組播路由協定。域內組播路由協定包括PIM-SMPIM-DMDVMRP等協定,域間組播路由協定包括MBGPMSDP等協定。同時為了有效抑制組播數據在鏈路層的擴散,引入了IGMP Snooping、CGMP等二層組播協定。對組播的技術歷史作出了巨大的貢獻!
組播組播
IGMP建立並且維護路由器直聯網段的組成員關係信息。域內組播路由協定根據IGMP維護的這些組播組成員關係信息,運用一定的組播路由算法構造組播分發樹進行組播數據包轉發。域間組播路由協定在各自治域間發布具有組播能力的路由信息以及組播源信息,以使組播數據在域間進行轉發。

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地址,組中的成員構成可以發生變化。永久組播組中成員的數量都可以是任意的,甚至可以為零。那些沒有保留下來供永久組播組使用的ip組播地址,可以被臨時組播組利用。
224.0.0.0~224.0.0.255為預留的組播地址(永久組地址),地址224.0.0.0保留不做分配,其它地址供路由協定使用。
224.0.1.0~238.255.255.255為用戶可用的組播地址(臨時組地址),全網範圍內有效。
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,距離矢量組播路由協定路由器
224.0.0.5 ospf(Open Shortest Path First,開放最短路徑優先路由
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,增強網關內部路由線路協定)路由器 224.0.0.11 活動代理
224.0.0.12 dhcp伺服器/中繼代理
224.0.0.13 所有pim (Protocol Independent Multicast,協定無關組播路由器
224.0.0.14 rsvp (Resource Reservation Protocol,資源預留協定封裝
224.0.0.15 所有cbt 路由器
224.0.0.16 指定sbm(Subnetwork Bandwidth Management,子網頻寬管理)
224.0.0.17 所有sbms
224.0.0.18 vrrp(Virtual Router Redundancy Protocol,虛擬路由器冗餘協定
239.255.255.255 SSDP協定使用
組播IP位址和組播MAC地址的對應關係組播IP位址和組播MAC地址的對應關係
組播MAC地址
組播MAC地址的高24bit為0x01005e,第25bit為0,即高25bit為固定值。MAC地址的低23bit為組播IP位址的低23bit。由於 IP組播地址的前4bit 是1110,代表組播標識,而後28bit 中只有23bit 被映射到MAC 地址,這樣IP 地址中就有5bit 信息丟失,導致的結果是出現了32 個IP 組播地址映射到同一MAC 地址上。

互動式

IP組播的最大的用處就是用來做Internet上的音頻和視頻的傳輸,比如向成百上千的使用者傳送音頻和視頻數據流。可是傳統的IP組播的有一個最大的缺點就是這些所有的使用者都是被動的接受者。換句話說,IP組播並沒有讓這些使用者進行互動式主動參與的內置機制。
利用H.323國際標準中對會議成員的管理技術,SAP(Session Announcement Protocol),SDP(Session Description Protocol),RTCP(Real-time Transport Control Protocol)等協定,就可以使傳統的IP組播技術具有互動功能。互動式IP組播技術套用範圍很廣,特別是Internet上多媒體的傳輸業務。比如視頻會議,遠程教育,Internet上的視頻點播(VoD)等。

組播套用

組播方式中,信息的傳送者稱為“組播源”,信息接收者稱為該信息的“組播組”,支持組播信息傳輸的所有路由器稱為“組播路由器”。加入同一組播組的接收者成員可以廣泛分布在網路中的任何地方,即“組播組”沒有地域限制。需要注意的是,組播源不一定屬於組播組,它向組播組傳送數據,自己不一定是接收者。多個組播源可以同時向一個組播組傳送報文
組播數據傳輸過程組播數據傳輸過程
假設只有 Host B、Host D 和Host E 需要信息,採用組播方式時,可以讓這些主機加入同一個組播組(Multicast group),組播源向該組播組只需傳送一份信息,並由網路中各路由器根據該組播組中各成員的分布情況對該信息進行複製和轉發,最後該信息會準確地傳送給Host B、Host D 和Host E。

相關協定

組播協定分為主機與路由器之間的組成員關係協定和路由器與路由器之間的組播路由協定。

IGMP

IGMP協定運行於主機和與主機直接相連的組播路由器之間,主機通過此協定告訴本地路由器希望加入並接受某個特定組播組的信息,同時路由器通過此協定周期性地查詢區域網路內某個已知組的成員是否處於活動狀態(即該網段是否仍有屬於某個組播組的成員),實現所連網路組成員關係的收集與維護。
IGMP有三個版本,IGMPv1由RFC1112定義,目前通用的是IGMPv2,由RFC2236定義。IGMPv3目前仍然是一個草案。IGMPv1中定義了基本的組成員查詢和報告過程,IGMPv2在此基礎上添加了組成員快速離開的機制,IGMPv3中增加的主要功能是成員可以指定接收或指定不接收某些組播源的報文。這裡著重介紹IGMPv2協定的功能。
IGMPv2通過查詢器選舉機制為所連網段選舉唯一的查詢器。查詢器周期性的傳送普遍組查詢訊息進行成員關係查詢;主機傳送報告訊息來應答查詢。當要加入組播組時,主機不必等待查詢訊息,主動傳送報告訊息。當要離開組播組時,主機傳送離開組訊息;收到離開組訊息後,查詢器傳送特定組查詢訊息來確定是否所有組成員都已離開。
通過上述IGMP機制,在組播路由器里建立起一張表,其中包含路由器的各個連線埠以及在連線埠所對應的子網上都有哪些組的成員。當路由器接收到某個組G的數據報文後,只向那些有G的成員的連線埠上轉發數據報文。至於數據報文在路由器之間如何轉發則由路由協定決定,IGMP協定並不負責。

IGMP Snooping

IGMP Snooping的實現機理是:交換機通過偵聽主機發向路由器的IGMP成員報告訊息的方式,形成組成員和交換機接口的對應關係;交換機根據該對應關係將收到組播數據包只轉給具有組成員的接口。
IGMP Proxy與IGMP Snooping實現功能相同但機理相異:IGMP snooping只是通過偵聽IGMP的訊息來獲取有關信息,而IGMP Proxy則攔截了終端用戶的IGMP請求並進行相關處理後,再將它轉發給上層路由器

CGMP

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

PIM-SM

眾多的組播路由協定中,目前套用最多的協定是 PIM-SM稀疏模式協定無關組播。
在PIM-SM域中,運行PIM-SM協定的路由器周期性的傳送Hello訊息,用以發現鄰接的PIM路由器,並且負責在多路訪問網路中進行指定路由器(DR)的選舉。這裡,DR負責為其直連組成員朝著組播分發樹根節點的方向傳送"加入/剪枝"訊息,或是將直連組播源的數據發向組播分發樹。

組播骨幹網

組播的規範是在1989年出版的,但是它的使用受到了限制。Internet上的路由器目前並不是都具有組播的能力。在這樣一種情況下,研究者們為了在現有情況下開發和測試組播協定的套用,建立了組播骨幹網(Multicast Backbone,Mbone)。Mbone支持組播分組的路由選擇而不打擾其它的網際網路業務流
Mbone是一種跨越幾個大陸的,由志願者合作完成的實驗性的網路。它是一個相互連線的子網路由器的集合,這些子網和路由器支持IP組播業務流的傳送。作為網際網路上的虛擬網路,Mbone通過隧道(Tunneling)來旁路網際網路上無組播能力的路由器。
隧道把組播數據包封裝在IP包(即單播數據包)中來通過哪些不支持組播路由的網路。如圖5所示,MR3和MR4是支持IGMP協定的有組播能力的路由器,他們把組播數據包封裝在單播數據包中來傳送,同時它們還從收到的單播數據包中取出組播數據包。R1和R2是沒有組播能力的路由器,它們像傳送其它普通單播數據包那樣來傳送封裝有組播數據包的單播數據包。

組播套用

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

點對多點

點對多點套用是指一個傳送者,多個接收者的套用形式,這是最常見的組播套用形式。典型的套用包括:
媒體廣播:如演講、演示、會議等按日程進行的事件。其傳統媒體分發手段通常採用電視和廣播。這一類套用通常需要一個或多個恆定速率的數據流,當採用多個數據流(如語音和視頻)時,往往它們之間需要同步,並且相互之間有不同的優先權。它們往往要求較高的頻寬、較小的延時抖動,但是對絕對延時的要求不是很高。
媒體推送:如新聞標題、天氣變化、運動比分等一些非商業關鍵性的動態變化的信息。它們要求的頻寬較低、對延時也沒有什麼要求。
信息快取: 如網站信息、執行代碼和其他基於檔案的分散式複製或快取更新。它們對頻寬的要求一般,對延時的要求也一般。
事件通知:如網路時間、組播會話日程、隨機數字、密鑰、配置更新、有效範圍的網路警報或其他有用信息。它們對頻寬的需求有所不同,但是一般都比較低,對延時的要求也一般。
狀態監視:如股票價格、感測設備、安全系統、生產信息或其他實時信息。這類頻寬要求根據採樣周期和精度有所不同,可能會有恆定速率頻寬或突髮帶寬要求,通常對頻寬和延時的要求一般。

多點對多點

多點對多點套用是指多個傳送者和多個接收者的套用形式。通常,每個接收者可以接收多個傳送者傳送的數據,同時,每個傳送者可以把數據傳送給多個接收者。
典型套用包括:
多點會議:通常音/視頻和白板套用構成多點會議套用。在多點會議中,不同的數據流擁有不同的優先權。傳統的多點會議採用專門的多點控制單元來協調和分配它們,採用組播可以直接由任何一個傳送者向所有接收者傳送,多點控制單元用來控制當前發言權。這類套用對頻寬和延時要求都比較高。
資源同步:如日程、目錄、信息等分布資料庫的同步。它們對頻寬和延時的要求一般。
並行處理: 如分散式並行處理。它對頻寬和延時的要求都比較高。
協同處理:如共享文檔的編輯。它對頻寬和延時的要求一般。
遠程學習:這實際上是媒體廣播套用加上對上行數據流(允許學生向老師提問)的支持。它對頻寬和延時的要求一般。
討論組:類似於基於文本的多點會議,還可以提供一些模擬的表達。
分散式互動模擬(DIS):它對頻寬和時延的要求較高。
多人遊戲:多人遊戲是一種帶討論組能力的簡單分散式互動模擬。它對頻寬和時延的要求都比較高。
Jam Session:這是一種音頻編碼共享套用。它對頻寬和時延的要求都比較高。
多點對點
多點對點套用是指多個傳送者,一個接收者的套用形式。通常是雙向請求回響套用,任何一端(多點或點)都有可能發起請求。典型套用包括:
資源查找:如服務定位,它要求的頻寬較低,對時延的要求一般。
數據收集:它是點對多點套用中狀態監視套用的反向過程。它可能由多個感測設備把數據發回給一個數據收集主機。頻寬要求根據採樣周期和精度有所不同,可能會有恆定速率頻寬或突髮帶寬要求,通常這類套用對頻寬和延時的要求一般。
網路竟拍:拍賣者拍賣產品,而多個竟拍者把標價發回給拍賣者。
信息詢問: 詢問者傳送一個詢問,所有被詢問者返回應答。通常這對頻寬的要求較低,對延時不太敏感。
Juke Box:如支持準點播(Near-On-Demand)的音視頻倒放。通常接收者採用“帶外的”協定機制(如HTTP、RTSP、SMTP,也可以採用組播方式)傳送倒放請求給一個調度佇列。它對頻寬的要求較高,對延時的要求一般。

技術問題

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

相關詞條

熱門詞條

聯絡我們