November 10, 2009
《網路新知專題》
淺談MBone:Virtual Network on Top of Internet
作者:周獻彬
前言
MBone(Multicast Backbone)是一種建構在Internet上的特殊網
路型態,它使現有的Internet具有multicast的傳輸能力。利用
MBone技術,Internet上想要同時溝通的主機,可以形成一個群組,
互相傳遞資料。
MBone的可貴之處,在於即使群組中成員增加,multicast的資料
流也不會增加網路使用頻寬;此相對於傳統的Unicast傳輸方式,只
能一對一地傳輸資料,MBone提供了多點(Multicast)而且即時(
Real Time)的傳輸技術,實現了在網際網路(WAN)上進行視訊會
議、遠距教學等等活動的理想。因為MBone是架構在Internet上,其
實並不存在Multicast的專屬網路骨幹,所以MBone在很多文件上也
被稱之為虛擬網路。
第一次正式的MBone試用是1992年三月在美國聖地牙哥(San
Diego)舉辦IETF(Internet Engineering Task Force)會議,當
時透過Internet以multicast技術將會場的聲音傳播到橫跨三大洲的
20個站。遠方的與會者也可以參加討論,有很好的互動效果。有了
這次成功的實驗之後,MBone的規模迅速的發展起來。而隨著MBone
Tools和應用軟體的開發成功,像影像傳輸、電子白板等,MBone技
術被廣泛的應用在許多領域。本院也在1994年11月和美國BARRNet完
成Mbone Tunnel的架設,為北台灣地區學術單位提供MBone轉接服務
,並陸續參與多次的MBone視訊會議。
本文以下將簡單介紹MBone的網路概念、MBone的組成架構及運作
原理,並與讀者共同探討目前MBone所遭遇到的問題。
MBone 網路傳輸概念
1.unicast、broadcast、multicast在討論MBone之前,一定要先
了解unicast、broadcast、multicast三種傳輸方式的差異。以
Ethernet網路架構而言,封包(Packet)在同一個subnet中傳遞時
,以收方地址來判別該由那台主機接收;若在不同的subnet時,就
要透過路由器(Router)根據收方地址,把這個packet送往收方主
機所在的另一個subnet上。這就是Internet上最普遍、一對一方式
傳送的unicast。
另一類傳輸模式為一對多模式,分為broadcast和multicast 二種
。當broadcast時,同一subnet上所有主機都會收到broadcast
packet。但是broadcast packet會被subnet router擋下來,不會傳
送到另一個subnet,否則網路就會被broadcast packet癱瘓了。
multicast是一對一個群組(group)的傳輸模式,不同於
broadcast的是,同一subnet中只有參加multicast group的主機才
會收到封包,其他的主機就不會受到無謂的干擾,而且multicast
packet會透會mrouter(multicast router)的運作將封包送到另一
個subnet的multicast group。另一方面,multicast和broadcast相
同的特性是,不管接收封包的主機有幾台,都只有一個資料流,也
就是說,同一個subnet裏,不管接收主機的數量,所需的頻寬都是
一樣的。
2.IP multicasting:multicast究竟是如何辦到的呢? 在TCP/IP
的環境中,IP address被分為五大類,如圖一。
(圖一)
(有關Class E部份,目前仍有爭議,還在討論中尚未確定)
以第一個位元start bits的不同,可分為Class A、B、C、D、E
五大類。其中Class D的start bits為"1110",範圍從224.0.0.0~
239.255.255.255,這段位址不屬於任何主機,是特別保留給
multicast address。當一部主機要送multicast packet到某一個
group的主機時,他們之間要先選定一個閒置的Class D IP,並避免
和其他群組的multicast packet IP相同。然後這個multicast
packet送出時,網路上參與這個group的主機,除了接收屬於自己IP
的packet之外,也會接收自這個Class D IP的packet。於是達成了
multicast的目的了。
MBone的通訊協訂
MBone最引人注目的地方,就是能夠在Internet上進行動態即時的
視訊會議,而Internet上又有不固定的傳輸延遲和頻寬限制等負面
因素存在,會嚴重影響視訊會議的品質,因此MBone採用了一些不同
的通訊協訂,如下:
1.UDP:MBone在Transport Layer中採用UDP(User Dategram
Protocol)通訊協訂,而不是一般常用的TCP(Transport
Control Protocol)。TCP是一種可信賴、連續導向、有順
序性的通訊協訂,而UDP卻是另一種不可信賴、非連續導向、
無順序性的通信協訂。然由於TCP的可靠性(reliability)
和流量控制(flow control)並不適用於real-time的資
料傳遞;相反的,UDP近乎沒有控制,卻正好適合Real-time
的使用。例如:當網路塞車時,TCP會先等到Time-out後,
因收不到acknowledge再要求重送流失的packet,反而會造
成更長時間的延遲,對real-time的要求顯然無法達到。而
UDP則是不理會packet的流失,仍繼續不斷的送出packet,
雖然收方會少收到一些packet,但只要流失量不是太大,對
於更強調real-time的影像和聲音資料來說,是可以接受的。
另一個重要的原因則是,UDP和IP multicasting的配合可以傳送
到一個群組,而TCP只能作點對點的連接。
2.RTP:除了UDP之外,MBone在Application Layer採用RTP(Real-
Time Protocol)來協助達成real-time的要求。RTP是由
IETF的 Audio-Video Transport Working Group所發展的,
其作法是為每個送出的RTP packet貼上時間(Timeing)和
序號(Sequencing)的標籤,收方主機有一緩衝區(buffer)
存在,當RTP packet接收之後,都先存入緩衝區內,根據
所貼上的時序標籤,將packet重新排列組合,再送給應用
程式。如此packet就能依序的被播放,而不必擔心網路延
遲的問題了。
3.IGMP:IGMP(Internet Group Management Protocol)在
Network Layer是屬於IP通信協訂的一部份,主要是同一
subnet中的mrouter和主機溝通群組訊息的通訊協訂。它
能夠讓mrouter記錄那一個主機屬於那一個multicast group,
這樣mrouter才知道要該將multicast packet傳送到那些
主機。換言之,IGMP就是在使用與管理Class D的multicast
address。
因為網路上的主機可以任意的加入(join)或離開(leave)一個
multicast group。在IGMP中使用JoinGroup與LeaveGroup二種訊息
來記錄group membership的狀態。
利用這兩個訊息,mrouter就能夠記錄一份,在某一multicast
group上有多少主機的table。當網路上的mrouter收到multicast
packets要傳送時,mrouter會判斷那些multicast packets是要送到
那一個multicast group,以及在該multicast group裡有那些hosts
,再將收到的multicast packets送到指定的主機上。
MBone的組成架構
1.Islands:指具有IP multicast功能的網路,例如Ethernet。在
同一個Island裏的主機,就是在同一個subnet,可直接做multicast
的動作而不必經由router。
2.Mrouter:為解決現有Internet Router沒有支援multicast packet
routing的問題,在一個Island中選擇一台主機(若是subnet的router
更好),執行一個"mrouted"(multicast routing daemon)的程式,
負責處理不同subnet間multicast packet的傳送。
mrouted這個程式主要為Mrouter提供三個功能:
(a)決定routing path:Mrouter除了記錄"IGMP table"之外,還
有一張"Routing table",記錄對外有那些tunnel存在,和tunnel
另一端連接的Mrouter IP address。這樣Mrouter就能判斷multicast
packet要往那些tunnel傳送。
(b)複製pakcet:若要送往的tunnel不只一個,Mrouter就必須將
收到的packet複製成需要傳送的數量。
(c)multicast packet轉換:為了讓multicast packet能通過一般
Internet router,multicast packet必須在Mrouter中轉換為
標準的unicast packet,再由tunnel送出。
3.Tunnel:各個Island用來連接的通道,Tunnel兩端是執行"mrouted"
的主機。這是虛擬的點對點連接,因為並不是兩端點直接相連,而
是要看Internet的實際連接情形而定。
tunnel有二個參數:metric、threshold。
(a)metric:用來決定routing path。
(b)threshold:和TTL(Time-To Live)值合用,用來限制multicast
packet的擴散範圍。因為每個packet有其TTL值,每經過一個Mrouter
時會被減1,當packet TTL值小於tunnel的 threshold時,該packet
就會被丟棄,不再傳送了。表一為IETF針對各種不同訊號提出的建議
值。
MBone運作原理
1.一個Island中的一台主機送出一個multicast IP的packet。
2.在這個Island中執行"mrouted"的Mrouter接收這些packet,然
後查看自己的routing table,若是有tunnel存在則往外送,否
則不做處理。
3.要往外送的packet被重新包裝成為unicast packet,其unicast
的IP address就是tunnel另一端"mrouted"的Mrouter IP address。
4.接收端的Mrouter接收到這些packet之後,還原成原來的multicast
packet,若是Island裏的主機要接收這些packet,則往Island裏
傳送。此外這個Mrouter也會查看自己的routing table是否有
tunnel存在,若有則再繼續往外傳送。
5.在不同Island的主機,都能接收到這些IP multicast的packet。
MBone視訊會議應用程式
以下列舉一些常見的MBone Tools:
1.SD(Session Directory):MBone的會議排程軟體。可以新開
立或參與進行中某一會議,而且SD會自動選擇閒置的Class D IP,
以避免造成和其他的會議衝突。
2.VAT(Visual Audio Tool):讓兩人以上的網路使用者,參與
以聲音為主的互動式會議,好像網路電話一般。VAT會顯示所有
與會者的資料,並且以這些資料來強調發言者的身份。
3.NV(Network Video)、VIC(Video Conference):MBone的影像
擷取和傳送軟體,有Voice-activate switching功能,作用的
主視窗會隨聲音而互相切換,要搭配VAT等其他工具軟體使用。
4.WB(White Board):
(a)可以在較低頻寬的網路環境下使用,因為WB每秒產生的資料遠
小於影像或聲音型態的資料。
(b)不像其他的MBone Tool,WB提供可靠性的multicast傳送,所
以它不使用RTP為傳輸協訂,而採用另外發展的WB protocol。
結語
MBone的確是功能強大的網路架構,我們深切期待MBone能蓬勃發
展,在Internet建構更便利的網路環境。不過目前MBone還在實驗階
段,在開始正式服務之前,有些困難仍待解決,包括:
1.頻寬的限制:以一個可以接受的video session,每秒至少要
128K資料量,在TANet現在網路嚴重塞車的情形下,要在TANet
網路骨幹上分出頻寬來進行MBone視訊會議,實在是很困難的事
情。這方面除了等待網路骨幹擴充或另佈專屬線路之外,也沒
有什麼特別有效的方法。
2.Tunnel的問題:MBone的使用管理較為鬆散,使用只要以e-mail
方式向最近的MBone node申請,告知所在的subnet Mrouter
address,待同意加入後,tunnel就建立起來了。但若連接的
tunnel某些線路故障時,雖然packet仍可透過routing而傳送
到目的地,但經過的tunnel已不是最佳化的路徑,為避免影響
品質,只能以人為方式重新reroute,沒有達到自動的要求。
3.Class D IP管理的問題:Class D類的網址在目前並沒有一個特
定的組織和特定的方式來管理,欲建立session的使用者可以任
意選用一個 IP。在目前MBone尚不普及時,可能是很簡單且直
接的方法,但隨著使用者人數逐漸增加,發生IP衝突的機會也
愈來愈高,因此,如何規範multicast address的使用,也是一
個重要的課題。










~~




















