分布式視頻會(huì)議系統(tǒng)的關(guān)鍵技術(shù)及實(shí)現(xiàn)
2005/11/23
引言
在目前已成為計(jì)算機(jī)領(lǐng)域熱點(diǎn)的群組協(xié)作計(jì)算工具中,視頻會(huì)議系統(tǒng)是其中的一個(gè)重要組成部分。電路交換網(wǎng)絡(luò)中的視頻會(huì)議系統(tǒng)已有較成熟的模型,如ITU的H.320標(biāo)準(zhǔn)等,但分組交換網(wǎng)(包括Ethernet、Internet等)的使用正日益普及,新的解決方案必須著重考慮如何利用這種網(wǎng)絡(luò)來(lái)實(shí)現(xiàn)視訊系統(tǒng)。
本文提出的方案并不針對(duì)某種具體網(wǎng)絡(luò),而是根據(jù)Internet上多點(diǎn)視頻會(huì)議系統(tǒng)的需要設(shè)計(jì)的。它充分利用了分組交換網(wǎng)多播功能和高帶寬特點(diǎn),是基于RTP協(xié)議的分布式多點(diǎn)會(huì)議系統(tǒng),端主機(jī)是支持IP多播的Solaris
2.x系統(tǒng),具有以下特點(diǎn):
- 每個(gè)節(jié)點(diǎn)的數(shù)據(jù)通過(guò)多播到達(dá)其他節(jié)點(diǎn)。
- 音頻和視頻的合成由端主機(jī)完成。
- 不使用參考時(shí)鐘實(shí)現(xiàn)發(fā)送/接收編解碼器的良好同步,對(duì)分組抖動(dòng)和丟失有較好控制。
- 動(dòng)態(tài)流控機(jī)制允許視頻壓縮器根據(jù)網(wǎng)絡(luò)狀態(tài)調(diào)整發(fā)送率。
- 采用一種適合IP網(wǎng)絡(luò)并能穿越防火墻的目錄服務(wù)體系。
分布式視頻會(huì)議系統(tǒng)的關(guān)鍵技術(shù)
會(huì)議系統(tǒng)的控制和數(shù)據(jù)傳送
這是集中式方案中MCU的主要功能,在分布式系統(tǒng)中,MCU
的功能可由網(wǎng)絡(luò)和/或端節(jié)點(diǎn)來(lái)實(shí)現(xiàn)。在我們的方案中,數(shù)據(jù)傳送主要利用了分布式網(wǎng)絡(luò)的多播功能,不少控制功能都由端主機(jī)和網(wǎng)絡(luò)共同實(shí)現(xiàn)。
帶寬的有效使用和服務(wù)質(zhì)量保證
分組交換網(wǎng)的復(fù)用機(jī)制可有效利用帶寬,但也可能導(dǎo)致報(bào)文抖
動(dòng)甚至丟失。Internet大部分還未實(shí)現(xiàn)服務(wù)質(zhì)量(QoS)保證,傳統(tǒng)應(yīng)用中通常由較高層TCP/IP協(xié)議來(lái)保證可靠傳輸。TCP用重傳機(jī)制實(shí)現(xiàn)可靠傳輸,其內(nèi)部流控機(jī)制根據(jù)確認(rèn)包動(dòng)態(tài)調(diào)整發(fā)送率。對(duì)于實(shí)時(shí)會(huì)議,重傳導(dǎo)致的延遲是無(wú)法忍受的,因此傳輸層協(xié)議使用不具有可靠傳輸和內(nèi)部流控制的UDP,而端到端同步和流控的任務(wù)則轉(zhuǎn)嫁到視頻會(huì)議系統(tǒng)上。
目錄服務(wù)功能
Internet不像電路交換網(wǎng),它沒(méi)有統(tǒng)一的尋址機(jī)制,另外還存在
防火墻和地址不公開(kāi)的問(wèn)題,因此目錄服務(wù)是分布式會(huì)議系統(tǒng)中要解決的重點(diǎn)問(wèn)題。
分布式多點(diǎn)視頻會(huì)議系統(tǒng)的具體實(shí)現(xiàn)方案
整體結(jié)構(gòu)
該系統(tǒng)的主要硬件如下:
- 音頻/視頻捕捉/回放卡。聲音、圖像和數(shù)據(jù)作為不同的流進(jìn)行傳送,接收者可選擇從某個(gè)源只接收聲音,這對(duì)于沒(méi)有圖像處理功能的端節(jié)點(diǎn)特別有用,用靜默檢測(cè)避免不發(fā)言時(shí)發(fā)送音頻流。
- Codec和DSP(數(shù)字信號(hào)處理器)卡。DSP根據(jù)端用戶的選擇合成視頻和音頻源,它還具有屏蔽時(shí)鐘不同步、聲音/圖像不同步和分組丟失等功能?ㄉ线有一個(gè)Ethernet網(wǎng)卡,會(huì)議系統(tǒng)可直接連到LAN上,無(wú)需CPU的參與。音頻/視頻捕捉/回放卡和Codec/DSP卡之間有直接接口,可繞過(guò)系統(tǒng)總線,節(jié)省CPU時(shí)間。
傳輸層協(xié)議的選擇
由于UDP不提供端到端可靠傳輸,出現(xiàn)了基于UDP、專為實(shí)時(shí)
通信提供傳輸層服務(wù)的RTP協(xié)議。盡管RTP本身不實(shí)現(xiàn)服務(wù)質(zhì)量保證,但它提供的多路復(fù)用、順序號(hào)、時(shí)標(biāo)、監(jiān)控及對(duì)IP多播的靈活接口對(duì)我們?cè)O(shè)計(jì)的多播、同步、會(huì)話數(shù)據(jù)加密、動(dòng)態(tài)流控、目錄服務(wù)、安全穿越防火墻等方法非常重要。RTP是一個(gè)開(kāi)放協(xié)議,為上層應(yīng)用提供了充分的靈活性。但RTP的組成部分之一RTCP(實(shí)時(shí)傳輸控制協(xié)議)提供的松散管理和監(jiān)控功能還不能滿足我們所需的控制和管理功能(如動(dòng)態(tài)獲取和分發(fā)多播地址、分發(fā)會(huì)話密鑰等),所以我們采用H.323的集中管理模型。
網(wǎng)絡(luò)的多播
多播在現(xiàn)有網(wǎng)絡(luò)中實(shí)現(xiàn)的并不多,在這種情形下,我們認(rèn)為實(shí)
現(xiàn)多播的途徑可有以下幾中:
- 使用實(shí)現(xiàn)了DVMRP的交換式以太網(wǎng)Hub,通過(guò)Hub之間的Tunnel功能在Internet上構(gòu)造多播網(wǎng)絡(luò)。
- 在Internet上以傳統(tǒng)方式進(jìn)行分組的復(fù)制和轉(zhuǎn)發(fā),端系統(tǒng)通過(guò)為每個(gè)目的節(jié)點(diǎn)復(fù)制和轉(zhuǎn)發(fā)分組的方式來(lái)模擬多播。
- 當(dāng)數(shù)據(jù)從實(shí)現(xiàn)多播的局域網(wǎng)向未實(shí)現(xiàn)的局域網(wǎng)發(fā)送時(shí),使用RTP的Translator模擬多播功能。我們使用的是第三種,為了實(shí)現(xiàn)更方便的地址分配和安全保密功能,還需具有動(dòng)態(tài)、分布式和安全特性的目錄服務(wù)的配合。
壓縮數(shù)據(jù)流的合成
在分布式系統(tǒng)中,網(wǎng)絡(luò)的多播功能使每個(gè)端節(jié)點(diǎn)可同時(shí)接收多個(gè)源的圖像和聲音,而合成由端系統(tǒng)實(shí)現(xiàn)。為了降低開(kāi)銷(xiāo),我們的合成是對(duì)壓縮視頻流進(jìn)行的。壓縮視頻流的合成算法也是當(dāng)前的研究熱點(diǎn),我們的算法利用了以下事實(shí);幾乎所有的標(biāo)準(zhǔn)視頻壓縮數(shù)據(jù)都包含一系列獨(dú)立的由預(yù)定義分隔符分隔的編碼組,通過(guò)檢查分隔符可將壓縮數(shù)據(jù)流分成像素區(qū)域。將各段壓縮數(shù)據(jù)與像素區(qū)域?qū)?yīng)起來(lái)后,就可根據(jù)用戶設(shè)置來(lái)重新組裝這些數(shù)據(jù)。
會(huì)話的保密
接收方發(fā)起的多播使得發(fā)送方無(wú)法控制接收數(shù)據(jù)的用戶,局域網(wǎng)的廣播性質(zhì)使得局域網(wǎng)上任何主機(jī)都有可能監(jiān)聽(tīng)會(huì)話,因此有必要對(duì)會(huì)話數(shù)據(jù)加密?梢杂脮(huì)話初始協(xié)議分發(fā)會(huì)話密鑰,也可用RTP會(huì)話配置文件保存會(huì)話密鑰(這種方法安全性低)。為了防止已知明文攻擊,每個(gè)消息中應(yīng)加入一次性且不可預(yù)測(cè)的信息。RTP報(bào)頭的時(shí)標(biāo)字段為我們提供了這個(gè)機(jī)制,而加密RTCP報(bào)文之前應(yīng)在要加密的報(bào)文前添加一個(gè)隨機(jī)數(shù)。
時(shí)鐘同步和聲音/視頻同步
點(diǎn)到點(diǎn)連接中接收方根據(jù)數(shù)據(jù)到達(dá)速率實(shí)現(xiàn)與服務(wù)方的同步。
分布式多點(diǎn)會(huì)議中有多個(gè)發(fā)送/接收對(duì)需同步,這種方案就不適合了。我們?cè)O(shè)計(jì)了一種簡(jiǎn)單有效的方法解決時(shí)鐘不同步和同一源的聲音/圖像不同步問(wèn)題。該方法使用了RTP提供的時(shí)標(biāo),可簡(jiǎn)單概括為:靜音抑制音頻數(shù)據(jù)包的發(fā)送。聲音在接收端以接收方的音頻時(shí)鐘回放,音頻時(shí)鐘的不同步在靜默期間被抵消。音頻/視頻的同步是在每個(gè)音頻突發(fā)的開(kāi)始時(shí)刻,通過(guò)丟棄一些延遲的視頻幀或者重用一些視頻幀實(shí)現(xiàn)的。此機(jī)制不需回放時(shí)鐘與捕捉時(shí)鐘的同步,它能達(dá)到預(yù)期性能是基于以下事實(shí):
- 突發(fā)平均持續(xù)時(shí)間相對(duì)靜默持續(xù)時(shí)間較短;
- 捕捉端和回放端時(shí)鐘的不同步較小。這兩點(diǎn)使音頻/視頻的同步在較短的突發(fā)持續(xù)期間內(nèi)不可能漂移很多。我們對(duì)不同源數(shù)據(jù)流之間的順序關(guān)系沒(méi)有采取任何控制。隨著RMP(可靠多點(diǎn)發(fā)送協(xié)議)等協(xié)議在群組通信中的使用,我們將對(duì)這種順序進(jìn)行控制。
IP網(wǎng)目錄服務(wù)
目錄服務(wù)在集中和分布式會(huì)議中都很重要。電路交換網(wǎng)中節(jié)點(diǎn)
由固定號(hào)碼標(biāo)識(shí),分組交換網(wǎng)中節(jié)點(diǎn)由IP地址來(lái)標(biāo)識(shí)。異質(zhì)網(wǎng)絡(luò)中,ATM節(jié)點(diǎn)由E.164標(biāo)識(shí),POTS和ISDN節(jié)點(diǎn)由電話號(hào)碼標(biāo)識(shí),Internet
節(jié)點(diǎn)由IP地址標(biāo)識(shí),如果目錄服務(wù)能將會(huì)議參加者的名字轉(zhuǎn)換成其物理地址,將帶來(lái)很大方便。在移動(dòng)通信中,會(huì)議參加者可能從不同地方接入Internet,使用動(dòng)態(tài)地址,目錄服務(wù)更顯得必要。如果防火墻內(nèi)的用戶不想暴露自己的IP地址,目錄服務(wù)的功能將更復(fù)雜。
Internet域名服務(wù)系統(tǒng)(DNS)是一種分布式目錄服務(wù)解決方案,但普通的DNS系統(tǒng)不支持動(dòng)態(tài)分配的IP地址。動(dòng)態(tài)IP地址查詢方案要求有一個(gè)實(shí)時(shí)登記機(jī)制獲取用戶登錄時(shí)動(dòng)態(tài)分配的IP地址。目前已有的實(shí)時(shí)登記協(xié)議有SDP、LDAP、安全動(dòng)態(tài)更新的DNS等(分布式)。Internet數(shù)據(jù)庫(kù)提供商也為各種應(yīng)用提供了專用實(shí)時(shí)登記協(xié)議(集中式)。集中式方案易實(shí)現(xiàn),但擴(kuò)展性差,且要求所會(huì)議成員向同一服務(wù)提供商登記也不大可能。分布方式基于有DNS系統(tǒng),實(shí)踐證明它運(yùn)行穩(wěn)定、擴(kuò)展性良好。安全動(dòng)態(tài)更新的DNS就是一個(gè)理想選擇。
目前人們提出的目錄服務(wù)都未考慮穿越防火墻的問(wèn)題。穿越防火墻最常用的方法是使用代理服務(wù)器。通用代理服務(wù)器也能進(jìn)行IP地址轉(zhuǎn)換,且有一整套強(qiáng)大的安全功能,但它們的通用性也帶來(lái)了以下問(wèn)題:
- 同時(shí)有許多應(yīng)用使用可能造成延遲,無(wú)法保證實(shí)時(shí)性;
- 為黑客提供了可突破的漏洞;
- 無(wú)法提供不同子網(wǎng)間域名查詢服務(wù);
- 在IP地址轉(zhuǎn)換級(jí)連的情況下會(huì)產(chǎn)生無(wú)法預(yù)料的情況。我們使用的專用代理能克服以上缺點(diǎn),可在RTP的Mixer或Translator上實(shí)現(xiàn)
。
假設(shè)A和B分別位于兩個(gè)不同的防火墻之內(nèi),我們可在A和B所在子網(wǎng)的防火墻上各設(shè)一個(gè)代理PA和PB,在它們共同連接的Internet有一個(gè)公共目錄服務(wù)提供商。假設(shè)A是呼叫方,B是被呼叫方。下面是穿越防火墻通信的過(guò)程:
- 用戶A登錄到網(wǎng)上時(shí)向PA登記。PA為A建立一個(gè)內(nèi)部記錄,登記A的IP地址和E-mail地址。然后,PA向外部目錄服務(wù)提供商登記A的用戶名(E-mail地址)和自己的IP地址。用戶B登錄時(shí),B和PB進(jìn)行同樣的操作。
- 當(dāng)A要與B通信時(shí),A向PA發(fā)一個(gè)呼叫請(qǐng)求,給出呼叫目標(biāo)B的E-mail地址。
- PA向外部目錄服務(wù)提供商發(fā)出解析名字B的請(qǐng)求。外部目錄服務(wù)將返回步驟1中為B登記的地址(即PB的IP)。根據(jù)B的域名或目錄服務(wù)提供的一些特殊信息,PA可以知道B處于某個(gè)防火墻內(nèi)。
- PA向PB發(fā)出一個(gè)連接請(qǐng)求,給出呼叫方和被呼方的名字A和B。這樣PA和PB就可為A和B建立一個(gè)虛連接,后面的通信可以通過(guò)A-PA-PB-B這條鏈路進(jìn)行。
結(jié)束語(yǔ)
Internet 的發(fā)展促使了新的分布式多點(diǎn)視頻會(huì)議解決方案的出現(xiàn),分布式解決方案與電路交換網(wǎng)絡(luò)中的集中式方案有很大區(qū)別。作為群組計(jì)算的一個(gè)重要應(yīng)用,分布式多點(diǎn)視頻會(huì)議系統(tǒng)會(huì)得到新的群組通信技術(shù)的進(jìn)一步支持,如:更理想的多播路由算法和協(xié)議;能適應(yīng)復(fù)雜網(wǎng)絡(luò)環(huán)境的資源預(yù)留和信息過(guò)濾技術(shù);可靠有序的通信保障;針對(duì)會(huì)議系統(tǒng)應(yīng)用的支持。然而,如何最有效地使用這些支持來(lái)適應(yīng)視頻會(huì)議中復(fù)雜、多樣的需求將繼續(xù)是我們的研究主題。
中寬網(wǎng)
相關(guān)鏈接: