IP多播技術及其應用

原文鏈接:https://www.cnblogs.com/iloverain/p/5502165.html

 

轉至:IP多播技術及其應用  http://www.cnblogs.com/iloverain/

隨着全球互聯網(Internet)的迅猛發展,上網人數正以幾何級數快速增長,以因特網技術爲主導的數據通信在通信業務總量中的比列迅速上升,因特網業務已成爲多媒體通信業中發展最爲迅速、競爭最爲激烈的領域。Internet網絡傳輸和處理能力的大幅提高,使得網上應用業務越來越多,特別是視音頻壓縮技術的發展和成熟,使得網上視音頻業務成爲Internet網上最重要的業務之一。

在Internet上實現的視頻點播(VOD)、可視電話、視頻會議等視音頻業務和一般業務相比,有着數據量大、時延敏感性強、持續時間長等特點。因此採用最少時間、最小空間來傳輸和解決視音頻業務所要求的網絡利用率高、傳輸速度快、實時性強的問題,就要採用不同於傳統單播、廣播機制的轉發技術及QoS服務保證機制來實現,而IP多播技術是解決這些問題的關鍵技術。

一、IP多播技術的概念

IP多播(也稱多址廣播或組播)技術,是一種允許一臺或多臺主機(多播源)發送單一數據包到多臺主機(一次的,同時的)的TCP/IP網絡技術。多播作爲一點對多點的通信,是節省網絡帶寬的有效方法之一。在網絡音頻/視頻廣播的應用中,當需要將一個節點的信號傳送到多個節點時,無論是採用重複點對點通信方式,還是採用廣播方式,都會嚴重浪費網絡帶寬,只有多播纔是最好的選擇。多播能使一個或多個多播源只把數據包發送給特定的多播組,而只有加入該多播組的主機才能接收到數據包。目前,IP多播技術被廣泛應用在網絡音頻/視頻廣播、AOD/VOD、網絡視頻會議、多媒體遠程教育、“push”技術(如股票行情等)和虛擬現實遊戲等方面。

二、IP多播技術的基礎知識

1. IP多播地址和多播組

IP多播通信必須依賴於IP多播地址,在IPv4中它是一個D類IP地址,範圍從224.0.0.0到239.255.255.255,並被劃分爲局部鏈接多播地址、預留多播地址和管理權限多播地址三類。其中,局部鏈接多播地址範圍在224.0.0.0~224.0.0.255,這是爲路由協議和其它用途保留的地址,路由器並不轉發屬於此範圍的IP包;預留多播地址爲224.0.1.0~238.255.255.255,可用於全球範圍(如Internet)或網絡協議;管理權限多播地址爲239.0.0.0~239.255.255.255,可供組織內部使用,類似於私有IP地址,不能用於Internet,可限制多播範圍。
使用同一個IP多播地址接收多播數據包的所有主機構成了一個主機組,也稱爲多播組。一個多播組的成員是隨時變動的,一臺主機可以隨時加入或離開多播組,多播組成員的數目和所在的地理位置也不受限制,一臺主機也可以屬於幾個多播組。此外,不屬於某一個多播組的主機也可以向該多播組發送數據包。

2.多播分佈樹

爲了向所有接收主機傳送多播數據,用多播分佈樹來描述IP多播在網絡中傳輸的路徑。多播分佈樹有兩個基本類型:有源樹和共享樹。

有源樹是以多播源作爲有源樹的根,有源樹的分支形成通過網絡到達接收主機的分佈樹,因爲有源樹以最短的路徑貫穿網絡,所以也常稱爲最短路徑樹(SPT)。共享樹以多播網中某些可選擇的多播路由中的一個作爲共享樹的公共根,這個根被稱爲匯合點(RP)。共享樹又可分爲單向共享樹和雙向共享樹。單向共享樹指多播數據流必須經過共享樹從根發送到多播接收機。雙向共享樹指多播數據流可以不經過共享樹。

3.逆向路徑轉發

逆向路徑轉發(RPF)是多播路由協議中多播數據轉發過程的基礎,其工作機制是當多播信息通過有源樹時,多播路由器檢查到達的多播數據包的多播源地址,以確定該多播數據包所經過的接口是否在有源的分支上,如果在,則RPF檢查成功,多播數據包被轉發;如果RPF檢查失敗,則丟棄該多播數據包。

4.Internet多播主幹(MBONE)網絡

Internet多播主幹(MBONE)網絡是由一系列相互連接的子網主機和相互連接支持IP多播的路由器組成。它可以看成是一個架構在Internet物理網絡上層的虛擬網,在該虛擬網中,多播源發出的多播信息流可直接在支持IP多播的路由器組之間傳輸,而在多播路由器組和非多播路由器組之間要通過點對點隧道技術進行傳輸。

三、IP多播路由及其協議

1. IP多播路由的基本類型

多播路由的一種常見的思路就是在多播組成員之間構造一棵擴展分佈樹。在一個特定的“發送源,目的組”對上的IP多播流量都是通過這個擴展樹從發送源傳輸到接受者的,這個擴展樹連接了該多播組中所有主機。不同的IP多播路由協議使用不同的技術來構造這些多播擴展樹,一旦這個樹構造完成,所有的多播流量都將通過它來傳播。 
根據網絡中多播組成員的分佈,總的說來IP多播路由協議可以分爲以下兩種基本類型。第一種假設多播組成員密集地分佈在網絡中,也就是說,網絡大多數的子網都至少包含一個多播組成員,而且網絡帶寬足夠大,這種被稱作“密集模式”(Dense-Mode)的多播路由協議依賴於廣播技術來將數據“推”向網絡中所有的路由器。密集模式路由協議包括距離向量多播路由協議(DVMRP:Distance Vector Multicast Routing Protocol)、多播開放最短路徑優先協議(MOSPF:Multicast Open Shortest Path First)和密集模式獨立多播協議(PIM-DM:Protocol-Independent Multicast-Dense Mode)等。

多播路由的第二種類型則假設多播組成員在網絡中是稀疏分散的,並且網絡不能提供足夠的傳輸帶寬,比如Internet上通過ISDN線路連接分散在許多不同地區的大量用戶。在這種情況下,廣播就會浪費許多不必要的網絡帶寬從而可能導致嚴重的網絡性能問題。於是稀疏模式多播路由協議必須依賴於具有路由選擇能力的技術來建立和維持多播樹。稀疏模式主要有基於核心樹的多播協議(CBT:Core Based Tree)和稀疏模式獨立協議多播(PIM-SM:Protocol-Independent Multicast-Sparse Mode)。

2.密集模式協議

(1)距離向量多播路由協議 (DVMRP)

第一個支持多播功能的路由協議就是距離向量多播路由協議。它已經被廣泛地應用在多播骨幹網MBONE上。
DVMRP爲每個發送源和目的主機組構建不同的分佈樹。每個分佈樹都是一個以多播發送源作爲根,以多播接受目的主機作爲葉的最小擴展分佈樹。這個分佈樹爲發送源和組中每個多播接受者之間提供了一個最短路徑,這個以“跳數”爲單位的最短路徑就是DVMRP的量度。當一個發送源要向多播組中發送消息時,一個擴展分佈樹就根據這個請求而建立,並且使用“廣播和修剪”的技術來維持這個擴展分佈樹。

擴展分佈樹構建過程中的選擇性發送多播包的具體運作是:當一個路由器接收到一個多播包,它先檢查它的單播路由表來查找到多播組發送源的最短路徑的接口,如果這個接口就是這個多播包到達的接口,那麼路由器就將這個多播組信息記錄到它的內部路由表(指明該組數據包應該發送的接口),並且將這個多播包向除了接受到該數據包的路由器以外的其他臨近路由器繼續發送。如果這個多播包的到達接口不是該路由器到發送源的最短路徑的接口,那麼這個包就被丟棄。這種機制被稱爲“反向路徑廣播”(Reverse-Path Broadcasting)機制,保證了構建的樹中不會出現環,而且從發送源到所有接受者都是最短路徑。

對子網中密集分佈的多播組來說DVMRP能夠很好的運作,但是對於在範圍比較大的區域上分散分佈的多播組來說,週期性的廣播行爲會導致嚴重的性能問題。DVMRP不能支持大型網絡中稀疏分散的多播組。

(2)多播開放最短路徑優先 (MOSPF)

開放最短路徑優先(OSPF)是一個單播路由協議,它將數據包在最小開銷路徑上進行路由傳送,這裏的開銷是表示鏈路狀態的一種量度。除了路徑中的跳數以外,其他能夠影響路徑開銷的網絡性能參數還有負載平衡信息、應用程序需要的QoS等。

MOSPF是爲單播路由多播使用設計的。MOSPF依賴於OSPF作爲單播路由協議,就象DVMRP也包含它自己的單播協議一樣。在一個OSPF/MOSPF網絡中每個路由器都維持一個最新的全網絡拓撲結構圖。這個“鏈路狀態”信息被用來構建多播分佈樹。

每個MOSPF路由器都通過IGMP協議週期性的收集多播組成員關係信息。這些信息和這些鏈路狀態信息被髮送到其路由域中的所有其他路由器。路由器將根據它們從臨近路由器接收到的這些信息更新他們的內部連接狀態信息。由於每個路由器都清楚整個網絡的拓撲結構,就能夠獨立的計算出一個最小開銷擴展樹,將多播發送源和多播組成員分別作爲樹的根和葉。這個樹就是用來將多播流從發送源發送到多播組成員的路徑。

(3)獨立多播密集模式協議(PIM-DM)

獨立多播協議(PIM)是一種標準的多播路由協議,並能夠在Internet上提供可擴展的域間多播路由而不依賴於任何單播協議。PIM有兩種運行模式,一種是密集分佈多播組模式,另一個是稀疏分佈多播組模式,前者被稱爲獨立多播密集模式協議(PIM-DM),後者被稱爲獨立多播稀疏模式協議(PIM-SM)。

PIM-DM有點類似於DVMRP,這兩個協議都使用了反向路徑多播機制來構建分佈樹。它們之間的主要不同在於PIM完全不依賴於網絡中的單播路由協議而DVMRP依賴於某個相關的單播路由協議機制,並且PIM-DM比DVMRP簡單。

PIM-DM協議和所有的密集模式路由協議一樣也是數據驅動的。但是既然PIM-DM不依賴於任何單播路由協議,路由器某個接收端口(就是返回到源的最短路徑的端口)接收到的多播數據包被髮送到所有下行接口直到不需要的分枝從樹中被修剪掉。DVMRP在樹構建階段能夠使用單播協議提供的拓撲數據有選擇性的向下行發送數據包,PIM-DM則更加傾向於簡單性和獨立性,甚至不惜增加數據包複製引起的額外開銷。

2.稀疏模式多播路由協議

 

當多播組在網絡中集中分佈或者網絡提供足夠大帶寬的情況下,密集模式多播路由協議是一個有效的方法,當多播組成員在廣泛區域內稀疏分佈時,就需要另一種方法即稀疏模式多播路由協議將多播流量控制在連接到多播組成員的鏈路路徑上,而不會“泄漏”到不相關的鏈路路徑上,這樣既保證了數據傳輸的安全,又能夠有效的控制網絡中的總流量和路由器的負載。

(1)基於核心樹的多播協議 (CBT)

和DVMRP和MOSPF爲每個“發送源、目的組”對構建最短路徑樹不同的是,CBT協議只構建一個樹給組中所有成員共享,這個樹也就被稱爲共享樹。整個多播組的多播通信量都在這個共享樹上進行收發而不論發送源有多少或者在什麼位置。這種共享樹的使用能夠極大的減少路由器中的多播狀態信息。

CBT共享樹有一個核心路由器用來構建這個樹。要加入的路由器發送加入請求給這個核心路由器。核心路由器接收到加入請求後,沿反路徑返回一個確認,這樣就構成了樹的一個分枝。加入請求數據包在被確認之前不需要一直被傳送到核心路由器。如果加入請求包在到達核心路由器之前先到達樹上的某個路由器,該路由器就接收下這個請求包而不繼續向前發送並確認這個請求包。發送請求的路由器就連接到共享樹上了。 CBT將多播流量集中在最少數量的鏈路而不是在一個基於發送源的共享樹上。集中在覈心路由器上的流量可能會引起多播路由的某些問題。某些版本的CBT支持多個多播核心的使用,和單個多播核心相比多核心更能達到負載平衡。

(2)獨立多播稀疏模式協議 (PIM-SM)

和CBT相似,PIM-SM被設計成將多播限制在需要收發的路由器上。PIM-SM圍繞一個被稱爲集中點(RP:Rendezvous Point)的路由器構建多播分佈樹。這個集中點扮演着和CBT核心路由器相同的角色,接收者在集中點能查找到新的發送源。但是PIM-SM比CBT更靈活,CBT的樹通常是多播組共享樹,PIM-SM中的獨立的接收者可以選擇是構建組共享樹還是最短路徑樹。

PIM-SM協議最初先爲多播組構建一個組共享樹。這個樹由連接到集中點的發送者和接收者共同構建,就像CBT協議圍繞着核心路由器構建的共享樹一樣。這共享樹建立以後,一個接受者(實際上是最接近這個接收者的路由器)可以選擇通過最短路徑樹改變到發送源的連接。這個操作的過程是通過向發送源發送一個PIM加入請求完成的。一旦從發送源到接收者的最短路徑建立了,通過RP的外部分枝就被修剪掉了。

四、IP多播路由中的隧道傳輸機制

多播中的隧道概念指將多播包再封裝成一個IP數據包在不支持多播的互聯網絡中路由傳輸。最有名的多播隧道的例子就是MBONE(採用DVMRP協議)。在隧道的入口處進行數據包的封裝,在隧道的出口處則進行拆封。在達到本地全IP多播配置傳輸機制上,隧道機制非常有用。

五、IP多播技術的應用

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

1.點對多點應用

點對多點應用是指一個發送者,多個接收者的應用形式,這是最常見的多播應用形式。典型的應用包括:媒體廣播、媒體推送、信息緩存、事件通知和狀態監視。

媒體廣播:如演講、演示、會議等按日程進行的事件。其傳統媒體分發手段通常採用電視和廣播。這一類應用通常需要一個或多個恆定速率的數據流,當採用多個數據流(如語音和視頻)時,往往它們之間需要同步,並且相互之間有不同的優先級。它們往往要求較高的帶寬、較小的延時抖動,但是對絕對延時的要求不是很高。
媒體推送:如新聞標題、天氣變化、運動比分等一些非商業關鍵性的動態變化的信息。它們要求的帶寬較低、對延時也沒有什麼要求。

信息緩存:如網站信息、執行代碼和其他基於文件的分佈式複製或緩存更新。它們對帶寬的要求一般,對延時的要求也一般。

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

狀態監視:如股票價格、傳感設備、安全系統、生產信息或其他實時信息。這類帶寬要求根據採樣週期和精度有所不同,可能會有恆定速率帶寬或突發帶寬要求,通常對帶寬和延時的要求一般。

2.多點對點的應用

多點對點應用是指多個發送者,一個接收者的應用形式。通常是雙向請求響應應用,任何一端(多點或點)都有可能發起請求。典型應用包括:資源查找、數據收集、網絡競拍、信息詢問和Juke Box。

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

數據收集: 它是點對多點應用中狀態監視應用的反向過程。它可能由多個傳感設備把數據發回給一個數據收集主機。帶寬要求根據採樣週期和精度有所不同,可能會有恆定速率帶寬或突發帶寬要求,通常這類應用對帶寬和延時的要求一般。

網絡競拍:拍賣者拍賣產品,而多個競拍者把標價發回給拍賣者。

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

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

3.多點對多點的應用

多點對多點應用是指多個發送者和多個接收者的應用形式。通常,每個接收者可以接收多個發送者發送的數據,同時,每個發送者可以把數據發送給多個接收者。典型應用包括:多點會議、資源同步、並行處理、協同處理、遠程學習、討論組、分佈式交互模擬(DIS)、多人遊戲和Jam Session等。

多點會議: 通常音/視頻和文本應用構成多點會議應用。在多點會議中,不同的數據流擁有不同的優先級。傳統的多點會議採用專門的多點控制單元來協調和分配它們,採用多播可以直接由任何一個發送者向所有接收者發送,多點控制單元用來控制當前發言權。這類應用對帶寬和延時要求都比較高。

資源同步:如日程、目錄、信息等分佈數據庫的同步。它們對帶寬和延時的要求一般。
並行處理:如分佈式並行處理。它對帶寬和延時的要求都比較高。
協同處理:如共享文檔的編輯。它對帶寬和延時的要求一般。
遠程學習:這實際上是媒體廣播應用加上對上行數據流(允許學生向老師提問)的支持。它對帶寬和延時的要求一般。
討論組:類似於基於文本的多點會議,還可以提供一些模擬的表達。
分佈式交互模擬(DIS):它對帶寬和時延的要求較高。
多人遊戲: 多人遊戲是一種帶討論組能力的簡單分佈式交互模擬。它對帶寬和時延的要求都比較高。
Jam Session:這是一種音頻編碼共享應用。它對帶寬和時延的要求都比較高。

IP多播帶入了許多新的應用並減少了網絡的擁塞和服務器的負擔。目前IP多播的應用範圍還不夠大,但它能夠降低佔用帶寬,減輕服務器負荷,並能改善傳送數據的質量,尤其適用於需要大量帶寬的多媒體應用,如音頻、視頻等。這項新技術已成爲當前網絡界的熱門話題,並將從根本上改變網絡的體系結構。

本文版權歸作者所有,轉載請註明出處http://www.cnblogs.com/iloverain/.未經作者同意必須保留此段聲明,否則保留追究法律責任的權利.

標籤: 計算機網絡、多媒體通信

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章