定義,概念辨析,unicast,broadcast,multicast,廣域網上的多路廣播,IP多一路廣播協定及套用,IP多路廣播的產生,IP多路廣播的發展,典型套用及模型,
定義
與此相對的有Unicast和Broadcast,前者是指一個
節點發出的信息只被一個節點收到,後者是指一個節點發出的信息被子網內所有節點收到。實際上,在
數據鏈路層和
網路層都有Multicast,通常所說的Multicast大多是針對IP的。這種技術用於多媒體套用、多用戶互動(如聊天室)、軟體分發等,相比與傳統的Unicast可以大大提高效率。在
子網內實現Multicast較為簡單,跨越子網時需要
路由器、
網關等設備的支持。
概念辨析
多路廣播(multicast)是一個網路上的概念。雖然它不那么好解釋明白。但請相信,把它弄明白還是很值得的。
1、unicast:
單播,一個計算機與另一計算機通信。
2、broadcast: 廣播,一個計算機與本地子網內的所有計算機通信。
3、multicast: 一個計算機可以有選擇地與其他計算機進行通信,
廣域網和區域網路都可。
unicast
在傳統的乙太網上,每一個計算機有一個乙太網卡,它用作傳送器。當計算機要傳送數據時,計算機將數據交給
網卡,網卡再將數據傳到網路上。同時,
網卡還接收其他計算機發來的數據,尋找發往本網卡地址的任何東西。當找到發給自己的東西時,就將其進行翻譯並提交給作業系統進行處理。這就是unicasting,或稱
主機對主機的通信。這種通信方式的問題是,如果一個計算機與多個計算機通信,它必須一次一次地進行,每一次只能與一個地址通信。這樣占用很多
頻寬,特別是對於音頻、視頻等要求高頻寬的數據。
broadcast
乙太網還允許使用一個叫做“廣播”的特殊地址進行廣播。當
數據包冠以該地址時,每一個
網卡都接收數據包。翻譯數據並提交作業系統進行處理。這對於將一個
數據包發往所有的機器或幾乎所有的機器來說是成功的。其不好的一面是,通常並不是所有的人都感興趣。
multicast
傳送信息的計算機將數據流發往multicast地址。接收計算機將它們的網卡設定成可以接收multicast的地址。這樣作可以使一個計算機一次將數據發往多個計算機,而且還可以避免干擾對該數據不感興趣的計算機。
廣域網上的多路廣播
在Internet上,不用廣播通信(broadcast)。隨著網路上的主機越來越多,很少有所有人都感興趣的東西。干擾所有計算機的權利也是一種非常危險的東西。在IP位址中,可以進行廣播的能力一半是在
子網或區域網路上。
雖然大規模不太有用,但廣域網上的多路廣播(multicast)還是有用的。那就是:它可以將數據傳送到一組訂戶。數據只傳送一次,而且只到需要他的地址去。我所喜歡的是,如果沒有人訂信息,則數據根本不上Internet,而是留在區域網路上。
IP多路廣播的實現是通過一組特殊的地址實現的叫做D類地址(224.0.0.0-239.255.255.255)。這些IP位址是特殊的因為它們不對應具體的主機,它們對應groups(組)或稱channels(頻道)。其中有些地址有特殊的目的。很象人們熟知的TCP和UDP中的連線埠。其他地址是由用戶定義的。常見的IP位址舉例如下:
所有IP系統:224.0.0.1
所有IP路由:224.0.0.2
網路時間協定:224.0.1.1
SGI的DogFight遊戲:224.0.1.2
Session Directory:224.2.127.254
其中特別有意思的是Session Directory。它是Mbone電視節目預告。該地址用於多路廣播傳送將要或正在發生於Mbone的時間的信息。其信息每過15分鐘重播一次。用戶使用Session Directory工具軟體接收並顯示它播送的信息。
Mbone是multicast backbone(多路廣播骨幹網)的簡稱。它是指一個構建於Internet之上的
虛擬網。該網是由專門化多路廣播路由之間的unicast頻道組成的。多路廣播信息通過該網傳播。該網開始於1988年,作為一個臨時措施,直到Internet核心
路由可以支持多路廣播。
Internet上的多路廣播IP仍然有值得研究的地方。其速度很慢。而且Mbone試圖將核心路由的核心頻寬限制在300 kbps。因此,發布訊息必須安排時間表。視頻信息很不好。即使是在公司區域網路上也還不盡人意,至少需要有一個T1連線。為在Internet上的多路廣播提供路由的協定方面還需要作很多工作。
但是事情正在改進。骨幹網速度正變得越來越快。隨著ASDL、cable modem以及無線接入的採用,進入家庭的速度將有很大的提高。
IP多一路廣播協定及套用
IP多路廣播的產生
在Internet套用中,常常會遇到這樣的需求:網上的許多用戶,由於某種原因(例如網上國際會議)形成一個群體(一個用戶組),群體中的成員為數眾多,且地域分布很廣,可能不屬於同一個物理網路,甚至不屬於同一個自治系統.群體中的成員之間交換數據,希望其中某一個用戶送出的數據,能夠被同“組”的所有其他用戶收到。在這種套用中,傳統的TCP/IP數據傳送方式:單路傳送(mmicast delivery)和廣播傳送( broadcastdelivery)有非常明顯的局限性。
單路傳送採用端到端的數據傳送方式,擁有N個成員的“組”傳送一次數據需要N-1次端到端的傳送,而且即使有多個成員處於同一個物理子網(註:他們接收的是完全相同的數據)也無法減少傳送的次數,而採用廣播傳送方式則會造成有大量主機收到與自己無關的數據,造成主機資源與網路資源的浪費。
解決的辦法就是使網路具備多路廣播的能力,允許路由器有選擇地將屬於某“組”的數據包,一次複製到多個通道上(這些通道連線的網路上,擁有屬於該“組”的成員主機),並且當數據包到達該“組”成員主機所屬的某個網路時,路由器“廣播”該數據包,使得處於該網路上的所有的“組”成員都可以接收到數據包。
IP多路廣播的發展
IP多路廣播的潛力是不容忽視的,隨著多媒體技術的飛速發展,實時視(音)頻點播、網路推送技術、高頻寬分散式資料庫、大規模用戶軟體升級及網上培訓等套用的興起,IP多路廣播進入了一個加速發展的新時期。
不斷發展的套用不斷提出的新的用戶需求。新的套用(例如視頻點播)需要IP多路廣播提供一些新的功能,主要包括:
1)組地址分配
其中包括兩個基本點。一是如何“準確”地給一個套用分配唯一的組地址,以避免潛在的組地址衝突;二是如果組地址是動態分配的,那么如何向地域分散的“接收者”們通告這一地址?
IP多路廣播不具備地址分配機制,也沒有一個明確的建
組(setup)過程.其地址的分配要么依賴於外在的干預(outsideauthority ),要么依賴於應用程式動態的隨機產生。因此“接收者”們為了了解地址情況,至少需要從伺服器到接收者的一個來回的時間:傳送“地址請求”並得到回響。
2)網路間差異的適應能力
在Internet環境中,網路的頻寬、速率各不相同,因此同組的主機可能對同一數據流有不同的QoS要求。解決這個間題有兩種方法:一是用不同的組傳送有不同QOS的數據流,二是對同一數據流中的數據包打上不同的QoS的標記,要求多路廣播網關能選取其中合適的部分.這對於象實時視(音)頻、圖象傳送等套用尤其重要。
3)可靠(Reliable)的IP多路廣播
網路傳箱過程中差錯是不可避免的。IP多路廣播不保證數據包完整地到達所有的組用戶,以及數據包到達的順序對所有的用戶都相同。
有許多套用,包括實時的和非實時的套用,都要求保證從傳送者到接收者的可靠傳輸,如web服務、大規模軟體分發等。多路廣播的差錯檢測和恢復機制與單路傳翰(unicast)相比有著顯著的差別,它與具體的套用要求和網路特性密切相關,包括實時要求、單(多)個傳送者、組成員數量及變化尺度、時延要求、平均頻寬要求、突發(或持續)頻寬使用、網路設備及特性等諸多因素.對可靠IP多路廣播的研究已經產生了許多Internet草案(draft),但還沒有標準出台。
4)流量控制
對於大數據量多路廣播的套用來說,流量控制機制也是必須具備的.流量控制著眼於單位時間間隔內傳輸的數據量的控制,根據數據包丟失的情況動態地調整傳輸速度,避免過多的重傳,以提高網路效率。
根據不同的套用需求,研究人員作了大量的工作,遵循基本的IP多路廣播協定思想,制定一系列的相關標準和協定,以支持多媒體傳送和不同服務質量QoS要求,如Real-timeTransport協定(RTP ) 、Real-time Control協定(RTCP ) 、Re-source Reservation協定(RSVP)等,Reliable IP Multicast Protocol和Group Setup Protocol也在討論之中。
典型套用及模型
如何構築多路廣播網路以及多路廣播套用的模型是多路廣播討論的熱門話題。研究人員提出了各種方案,讓我們看看其中一個模型和一個最典型的套用MBONE。
Reliable Adaptive Multicast Model
RFC1458中提出了一個模型,描述了實現可靠多路廣播服務的三個基本部分:the Multicast Group Authority (MGA)the Reliable Adaptive Multicast Protocol (RAMP)和經過修改的路由算法。
Multicast Group Authority
MGA提供三個功能:組地址空間管理、服務註冊、組成員維護。MGA類似於DNS,是一個樹型的結構,由根root管理整個組地址空間。下一級的MGA節點可向上一級申請可用組地址。在每個本地網工作站(樹葉)上有一個MGA代理,MGA代理髮出的組地址請求將沿著樹幹一級級傳遞,直到某一個擁有空閒組地址的MGA節點(也可能是root)為止。上級節點根據分配算法每次分配多個空閒組地址給下級節點,使得下級節點能擁有一定數量的空閒組地址分配給更下一級節點,提高整個分配算法的效率。當root耗盡了所有的空閒組地址,它將發一個請求,請求歸還所有未被分配的空閒組地址。
同時,MGA還負責維護所有註冊服務的狀態和組成員情況。服務提供者必須註冊服務,客戶端通過MGA了解服務和申請服務,並由MGA負責啟動 PATH的建立和撤消。
Reliable Adaptive Multicast Protocol
RAMP是一個傳輸層協定,用來實現可靠的多路廣播傳輸。RAMP中使用序列號來確定數據包的順序,並使用一個NAK-based的選擇重傳方案。就是說,接收者不對正確的傳輸傳送ACK,代之以對錯誤的傳輸傳送NAK。傳送者統計對每一個數據包的NAK,以選擇重傳方案。當統計數超過某一閾值時,RAMP選擇多路廣播的方式重傳,否則選擇對每一個傳送NAK的接收者進行單路重傳(unicast) 。
同時,這一統計數還被用作流量控制。當NAK統計數持續上升時,將導致傳送者降低傳送的速率;反之,提升速率。
路由支持
路由算法在原來的IP/Multicast基礎上擴充了四個功能:Path Setup, Path Tear-down, Qos-based Routing, QoS-basedPacket Loss。這些擴充可以建立在象RSVP這樣的資源預留協定上。路由狀態表中既要包含組地址項,又要包含每個傳送網路接口上每個組的QoS要求。路由狀態表隨著組內成員的變化(包括QoS要求的變化)而改變。
路由器根據MGA的請求進行路徑的建立和撤消;對某一條路徑上的數據包的轉發是根據包中QoS域值和路由狀態表中QoS設定的比較來決定;當網路擁塞時,路由器根據包中QoS值和優先權決定丟棄數據包的順序先後,優先權較高的包總是較晚被丟棄,而具有最高QoS值的包總是最先被丟棄。