分布式無級(jí)聯(lián)的RTC架構(gòu)
首先,為大家介紹分布式無級(jí)聯(lián)的RTC架構(gòu)。對(duì)于RTC的架構(gòu),在WebRTC中的定義是一個(gè)Peer到Peer的通信。其中并沒有直接給出一個(gè)明確的標(biāo)準(zhǔn)來告訴你如何去做信令服務(wù)、媒體服務(wù)等。那么,一個(gè)最簡(jiǎn)單的分布式媒體服務(wù)是什么樣的呢?
一般的基本模式是,A用戶和B用戶首先通過一個(gè)信令服務(wù),信令服務(wù)為A和B分別分配媒體服務(wù),然后幫助它們之間建立一個(gè)聯(lián)系。對(duì)于這種簡(jiǎn)單分布式但并不支持級(jí)聯(lián)的RTC架構(gòu),它的優(yōu)點(diǎn)是每一個(gè)媒體服務(wù)本身都不需要和其它的媒體服務(wù)建立連接,并且不會(huì)進(jìn)行網(wǎng)絡(luò)優(yōu)化。但是,它最大的問題就是當(dāng)我們給A客戶端分配一個(gè)媒體服務(wù)后,B客戶端也是需要連接同一媒體服務(wù)的。假如我們先給A客戶端就近分配一個(gè)媒體服務(wù),此時(shí)A客戶端和媒體服務(wù)之間連接的質(zhì)量是非常好的,但是如果A客戶端和B客戶端不在同一地區(qū),B客戶端也許距離這個(gè)媒體服務(wù)非常遠(yuǎn),中間的網(wǎng)絡(luò)就可能會(huì)非常不穩(wěn)定,此時(shí)A客戶端和B客戶端通過這個(gè)媒體服務(wù)建立的通信就是存在問題的。因此,這種模式只適用小規(guī)模范圍的通信,如城域或者是公司內(nèi)部的私網(wǎng)。
下面將介紹有級(jí)聯(lián)的RTC架構(gòu)是如何實(shí)現(xiàn)的。
分布式有級(jí)聯(lián)的RTC架構(gòu)
有級(jí)聯(lián)的RTC架構(gòu)則要求A客戶端和B客戶端分別找到不同的媒體服務(wù)來進(jìn)行通信,媒體服務(wù)之間也要做級(jí)聯(lián)的通信,這樣就能解決上述無級(jí)聯(lián)RTC架構(gòu)存在的問題。如上圖所示,我們可以先為左邊的Client找到一個(gè)對(duì)它來講質(zhì)量最好的媒體服務(wù),然后再為右邊的Client找到一個(gè)質(zhì)量最好的媒體服務(wù),兩個(gè)媒體服務(wù)之間還要再通過一些網(wǎng)絡(luò)優(yōu)化的手段來保證它們的通信質(zhì)量。上圖系統(tǒng)中的藍(lán)色部分叫做Signal Server,Client可以通過Signal Server和Media Server進(jìn)行SDP交換。
分布式有級(jí)聯(lián)的RTC架構(gòu)可以實(shí)現(xiàn)鏈路的優(yōu)化,但同時(shí)我們也不難發(fā)現(xiàn),Signal Server和Media Server之間存在的耦合問題。這是因?yàn)樗械腗edia Server都需要在Signal Server中進(jìn)行注冊(cè)登記以進(jìn)行管理,并且Signal Server還要和Media Server之間保持一個(gè)健康狀態(tài)的檢查,比如做一個(gè)TCP的長(zhǎng)連接、做一個(gè)心跳包。此外,Signal Server不僅需要知道Media Server里有哪些用戶正在使用流媒體通信,還需要知道它的用戶狀態(tài)。一方面,對(duì)于緊的耦合,當(dāng)部署一個(gè)新的媒體服務(wù)時(shí),就會(huì)需要很復(fù)雜的工程實(shí)施,因?yàn)樵诤芏嗟胤骄猆pdate配置。另一方面,如果在通話過程中發(fā)現(xiàn)媒體服務(wù)或者信令服務(wù)之間存在一些異常狀態(tài),則會(huì)導(dǎo)致整個(gè)通話斷掉,因?yàn)樗麄儍蓚€(gè)之間的耦合非常緊密。到目前為止,大家能夠在市面上看到的開源解決方案基本上都是按這個(gè)模式去設(shè)計(jì)的。在電信運(yùn)營(yíng)商領(lǐng)域,Signal Server最典型的就是用SIP協(xié)議來實(shí)現(xiàn)的,包括我們之前做飛信也是用的一個(gè)SIP的簡(jiǎn)化協(xié)議SIPC。還有一種方案就是,可以搭一個(gè)XMPP的服務(wù)器,用它來實(shí)現(xiàn)Presence管理,所謂的Presence管理與SIP一樣,就是用一條IM通道來做Signal Server。
在這一部分,我們分析了分布式有級(jí)聯(lián)RTC架構(gòu)的優(yōu)點(diǎn)和缺點(diǎn)。接下來,我們一起來看看融云對(duì)分布式RTC網(wǎng)絡(luò)的思考。
四、融云對(duì)分布式RTC網(wǎng)絡(luò)的思考
如上所述,由于信令服務(wù)器和媒體服務(wù)是有耦合的,我們上線或下線任何一個(gè)媒體服務(wù)器均要在Signal Server里Update相關(guān)狀態(tài)和配置。因此,我們的第一個(gè)訴求就是要設(shè)計(jì)一種將信令服務(wù)和媒體服務(wù)解耦開來的架構(gòu);第二個(gè)訴求就是要使得我們的信令服務(wù)和媒體服務(wù)之間能不管對(duì)方的狀態(tài)如何,讓它們不需要狀態(tài)同步;第三個(gè)訴求就是讓每一個(gè)媒體中心都是獨(dú)立的;第四個(gè)訴求就是要降低新建與維護(hù)媒體中心的成本,因?yàn)橥ㄐ旁品?wù)有數(shù)以千計(jì)或萬計(jì)的機(jī)器和節(jié)點(diǎn)要管理;最后一個(gè)訴求就是要全面復(fù)用融云即時(shí)通訊通道。
上圖是融云的分布式RTC網(wǎng)絡(luò)架構(gòu),我們將Signal Server換成了融云的IM基礎(chǔ)設(shè)施。簡(jiǎn)單來說,IM是用來發(fā)消息的,它實(shí)際上就是把一段數(shù)據(jù)通過一個(gè)長(zhǎng)連接的、永遠(yuǎn)在線的通道從一端推送到另外一端,而且該服務(wù)要保證這條通道永遠(yuǎn)是可用的,同時(shí)發(fā)的每一個(gè)信令、指令都不能丟失,并且要以最快的速度到達(dá)。總的來說,這就是Signal Server的使命。
-
通信
+關(guān)注
關(guān)注
18文章
6077瀏覽量
136479 -
RTC
+關(guān)注
關(guān)注
2文章
544瀏覽量
67079 -
去中心化
+關(guān)注
關(guān)注
0文章
70瀏覽量
8951
原文標(biāo)題:去中心化的 RTC 通信平臺(tái)架構(gòu)設(shè)計(jì)
文章出處:【微信號(hào):livevideostack,微信公眾號(hào):LiveVideoStack】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
經(jīng)驗(yàn)積累
招嵌入式架構(gòu)講師
13年華為工程師分享:持續(xù)積累經(jīng)驗(yàn)才能做好硬件技術(shù)
關(guān)于labview中使用連續(xù)小波變換后接強(qiáng)度圖得到時(shí)間-尺度圖,如何將尺度轉(zhuǎn)換為頻率
分享電源工作中積累的一些實(shí)用經(jīng)驗(yàn)
基于Kalman濾波的多尺度融合估計(jì)新算法
基于多尺度幾何分析的復(fù)雜網(wǎng)絡(luò)壓縮策略
中國(guó)在區(qū)塊鏈技術(shù)的積累方面情況怎樣
歐拉(openEuler)開發(fā)者峰會(huì):SUSE積累操作系統(tǒng)研發(fā)與開源經(jīng)驗(yàn)
![歐拉(openEuler)開發(fā)者峰會(huì):SUSE<b class='flag-5'>積累</b>操作系統(tǒng)研發(fā)與開源<b class='flag-5'>經(jīng)驗(yàn)</b>](https://file.elecfans.com/web2/M00/1C/04/poYBAGGJ7geAGq0bAAfzEAvJI9Y394.png)
通過多尺度說話人分解實(shí)現(xiàn)動(dòng)態(tài)尺度加權(quán)
![通過多<b class='flag-5'>尺度</b>說話人分解實(shí)現(xiàn)動(dòng)態(tài)<b class='flag-5'>尺度</b>加權(quán)](https://file.elecfans.com//web2/M00/6F/2F/poYBAGNE5weAXAPzAAT1u1irANs872.png)
在微米尺度上引導(dǎo)分子運(yùn)動(dòng)
專注電流感測(cè)精密電阻領(lǐng)域,鈞崴電子IPO上市持續(xù)積累技術(shù)經(jīng)驗(yàn)
面向服務(wù)的整車EE架構(gòu)(SOA)設(shè)計(jì)開發(fā)咨詢服務(wù)
![面向服務(wù)的整車EE<b class='flag-5'>架構(gòu)</b>(SOA)設(shè)計(jì)開發(fā)咨詢服務(wù)](https://file1.elecfans.com/web3/M00/02/04/wKgZPGdaht2AUXQcAABJW8BTuX8551.png)
評(píng)論