押寶WebRTC:技術(shù)概要和對(duì)網(wǎng)絡(luò)架構(gòu)的沖擊

WebRTC技術(shù)概要

WebRTC是一套標(biāo)準(zhǔn)的而技術(shù),可以使用Web或者移動(dòng)應(yīng)用程序通過(guò)瀏覽器實(shí)現(xiàn)強(qiáng)大的實(shí)時(shí)語(yǔ)音、視頻、數(shù)據(jù)和視頻會(huì)議等服務(wù)(如圖1所示)。

如同一個(gè)基于瀏覽器的多媒體電話,或軟件電話,它不但可以與其他的瀏覽器共同使用,也可與其他通信系統(tǒng)使用,如PSTN和VoIP。以前,如果試圖建立的實(shí)時(shí)解決方案,必須依賴于昂貴的專用硬件和定制軟件,需要投入把巨大的基礎(chǔ)設(shè)施。但由于WebRTC的出現(xiàn),在瀏覽器平臺(tái)定義必要的接口后,就可以提供各種實(shí)時(shí)通信解決方案。這都?xì)w功于速度更快,高速計(jì)算硬件的出現(xiàn)。

在傳統(tǒng)的客戶端-服務(wù)器瀏覽器模型中,用戶瀏覽器從Web服務(wù)器下載內(nèi)容(HTML / JavaScript、CSS),然后執(zhí)行并顯示在瀏覽器中。WebRTC則在瀏覽器中的添加一個(gè)基于標(biāo)準(zhǔn)的實(shí)時(shí)通信功能接口(如圖2所示),這個(gè)功能是一個(gè)應(yīng)用程序,通過(guò)Web服務(wù)器提供實(shí)時(shí)通信服務(wù),它可以用簡(jiǎn)單的JavaScript AP和html5對(duì)下載的內(nèi)容進(jìn)行控制。

WebRTC的商機(jī)

通過(guò)瀏覽器訪問(wèn)互聯(lián)網(wǎng)已經(jīng)成為個(gè)人和商業(yè)生活中的一項(xiàng)基本活動(dòng)。從平板電腦、智能手機(jī)到PC,超過(guò)10億的設(shè)備已經(jīng)支持瀏覽器,據(jù)最新統(tǒng)計(jì),到2016年將有40億臺(tái)設(shè)備支持瀏覽器。這意味著WebRTC客戶端設(shè)備已經(jīng)廣泛應(yīng)用,而且經(jīng)濟(jì)實(shí)惠。這是移動(dòng)運(yùn)營(yíng)商最大的商機(jī),移動(dòng)運(yùn)營(yíng)商可以利用這個(gè)機(jī)會(huì),通過(guò)擴(kuò)展現(xiàn)有的IMS服務(wù)發(fā)展更多新用戶,為老用戶提升現(xiàn)有服務(wù)和創(chuàng)新的服務(wù)。舉個(gè)例子,一個(gè)VoLTE用戶與另一個(gè)非VoLTE用戶,通過(guò)運(yùn)行WebRTC兼容的瀏覽器在PC上建立多媒體通信,對(duì)移動(dòng)運(yùn)營(yíng)商來(lái)說(shuō),這將顯著擴(kuò)大客戶群(如圖3所示)。

WebRTC的好處并不僅限于此,對(duì)于移動(dòng)運(yùn)營(yíng)商來(lái)說(shuō),還包括以下機(jī)會(huì):

1.通過(guò)IMS基礎(chǔ)設(shè)施,使PLMN和PSTN語(yǔ)音用戶成為WebRTC用戶,不斷融合傳統(tǒng)網(wǎng)絡(luò)和網(wǎng)絡(luò)電話;

2.促進(jìn)網(wǎng)絡(luò)功能虛擬化基礎(chǔ)設(shè)施(NFVI),打造自己或第三方的WebRTC增值服務(wù)的垂直領(lǐng)域,如教育和醫(yī)療;

3.增加企業(yè)的服務(wù)產(chǎn)品,如瀏覽器到IP-PBX、統(tǒng)一通信、聯(lián)絡(luò)中心、語(yǔ)音和視頻會(huì)議;

4.拓展基于消費(fèi)者的互通服務(wù),如WebRTC用戶間的短信和彩信服務(wù)。

5.提供自己的WebRTC服務(wù)或與第三方WebRTC互聯(lián)網(wǎng)玩家合作。簡(jiǎn)而言之,WebRTC為移動(dòng)網(wǎng)絡(luò)運(yùn)營(yíng)商提供了諸多機(jī)會(huì),同時(shí)利用他們現(xiàn)有的實(shí)力和專業(yè)資質(zhì)、安全、政策、計(jì)費(fèi)方式、漫游和切換可以創(chuàng)造很多商機(jī)。這項(xiàng)技術(shù)可以幫助企業(yè)的研發(fā)、豐富產(chǎn)品功能和搶占市場(chǎng)

WebRTC的架構(gòu)和協(xié)議棧

為了便于理解,我們來(lái)看一個(gè)最基本的三角形WebRTC架構(gòu)(圖4)。在這個(gè)架構(gòu)中,移動(dòng)電話用“瀏覽器M”表示,筆記本電腦用“瀏覽器L”表示,通過(guò)Web服務(wù)器將它們連接起來(lái)。要建立一個(gè)實(shí)時(shí)媒體通訊,兩臺(tái)設(shè)備需要了解彼此的媒體功能,通過(guò)交換呼叫信令控制協(xié)議實(shí)現(xiàn)。諸如這樣的信令協(xié)議在WebRTC標(biāo)準(zhǔn)中并非事先規(guī)定,而是由開發(fā)者自行制定。在瀏覽器RTC會(huì)話的步驟如下:

1.首先,兩個(gè)瀏覽器都從Web服務(wù)器下載了WebRTC程序(HTML5/JavaScript);

2.其次,兩個(gè)瀏覽器通過(guò)Web服務(wù)器交換控制信令信息(使用嵌入式信令服務(wù)器),建立媒體功能功能互通。

3.最后,兩個(gè)瀏覽器直接建立RTC媒體的音頻、視頻和數(shù)據(jù)通道。

WebRTC使用P2P媒體流,音頻、視頻和數(shù)據(jù)的連接直接通過(guò)瀏覽器實(shí)現(xiàn)。但是,瀏覽器卻隱藏在NAT(網(wǎng)絡(luò)地址翻譯)和防火墻的后面,這增加了建立P2P媒體會(huì)話的難度。這些流程和協(xié)議,如ICE或Trickle ICE,STUN和TURN,在建立P2P媒體流都是必不可少的。

如何使用STUN協(xié)議建立一個(gè)P2P

RTC媒體(如圖5所示),簡(jiǎn)化版的ICE流程如下:

1.兩個(gè)瀏覽器通過(guò)自己的公網(wǎng)IP地址,使用STUN協(xié)議信息和STUN服務(wù)器建立聯(lián)系;

2.兩個(gè)瀏覽器通過(guò)SDP提供/應(yīng)答機(jī)制,使用呼叫控制信令消息交換它們已發(fā)現(xiàn)的公共IP地址(ICE候選);

3.兩個(gè)瀏覽器執(zhí)行連接檢查(ICE沖孔),確保P2P可以連接;

4.建立連接后,RTC媒體會(huì)話和媒體交換就可以實(shí)現(xiàn)了。

5.但是,假如在一個(gè)高度限制的NAT或防火墻,這種直接的路徑將無(wú)法建立,只能到達(dá)TURN服務(wù)器。結(jié)果是媒體通過(guò)TURN服務(wù)器分程傳遞(如圖6所示)。

由互聯(lián)網(wǎng)工程任務(wù)組(IETF)基于標(biāo)準(zhǔn)的可互操作的通信模型和協(xié)議棧詳細(xì)地定義了WebRTC技術(shù)(參見圖7),如下:

如前所述的信令棧,并非由WebRTC實(shí)現(xiàn)規(guī)定,而是由開發(fā)者自行決定。在這個(gè)例子中,我們將使用SIP-over-WebSocket(SIPoWS)作為信令棧。HTTP協(xié)議用于瀏覽器下載HTML5/JavaScript程序內(nèi)容;

NAT棧解決P2P連接問(wèn)題;

媒體棧用于發(fā)送和接收RTC的音頻和視頻。LETF標(biāo)準(zhǔn)規(guī)定G.711和Opus作為音頻/視頻解碼器。視頻解碼器尚未授權(quán),但是H.248和VP8已經(jīng)獲得授權(quán)。媒體棧也用于交換RTC數(shù)據(jù)。本例中,實(shí)時(shí)信息采用消息會(huì)話中繼協(xié)議(MSRP),實(shí)時(shí)會(huì)議采用二層控制協(xié)議(BFCP),實(shí)時(shí)文本服務(wù)采用T.140。

WebRTC對(duì)移動(dòng)運(yùn)營(yíng)商網(wǎng)絡(luò)架構(gòu)的沖擊

如我們所見,WebRTC的三角形架構(gòu),使用WebRTC協(xié)議和棧是實(shí)現(xiàn)瀏覽器到瀏覽器的因特網(wǎng)通訊的最佳選擇。相反,IMS架構(gòu)使用不同的協(xié)議和棧。如果WebRTC用戶要使用IMS,則需要做架構(gòu)性的改變-增加一個(gè)WebRTC網(wǎng)關(guān)支持兩個(gè)架構(gòu)之間的交互(如圖8所示)新的架構(gòu)必須在WebRTC和IMS用戶間搭建統(tǒng)一的認(rèn)證框架,以及策略和計(jì)費(fèi)控制功能(PCC),從而WebRTC用戶可以通過(guò)LTE/EPC的QoS功能訪問(wèn)網(wǎng)絡(luò)。

WebRTC網(wǎng)關(guān)必須支持WebRTC-IMS交互的信令和媒體功能(如圖9所示)。WebRTC網(wǎng)關(guān)必須支持的信令交互功能有:

1.信令協(xié)議翻譯,如SIPoWS對(duì)SIP的翻譯;

2.與IMS SDP擴(kuò)展對(duì)應(yīng)的WebRTC

SDP擴(kuò)展規(guī)范,如RTP復(fù)用/解復(fù)用;

3.與ICE對(duì)象交換的WebRTC

UE;如通過(guò)STUN服務(wù)器返回公網(wǎng)IP地址;

4.根據(jù)協(xié)議好的功能配置媒體功能。

支持媒體互通主要功能的WebRTC網(wǎng)關(guān)必須有以下特征:

1.ICE沖孔和針對(duì)WebRTC UE的消息持續(xù)連接,如STUN連接檢查和持續(xù)連接;

2.媒體轉(zhuǎn)碼和復(fù)用/解復(fù)用功能,如G.711對(duì)應(yīng)的Opus;

3.終止DTLS-SRTP信息及RTP參數(shù)在IMS中的應(yīng)用。網(wǎng)絡(luò)設(shè)備制造商(NEMs)現(xiàn)在要么在現(xiàn)有設(shè)備中加入WebRTC-IMS交互功能,或者生產(chǎn)新的WebRTC網(wǎng)關(guān)?,F(xiàn)有的包含WebRTC-IMS交互功能的產(chǎn)品有會(huì)話邊界控制器(SBC),媒體網(wǎng)關(guān)控制器(MGC)和媒體網(wǎng)關(guān)(MGW)。

WebRTC端到端的流程

截止目前,我們已經(jīng)了解了WebRTC技術(shù)、移動(dòng)運(yùn)營(yíng)商(MNO)的商機(jī)、架構(gòu)和組成WebRTC網(wǎng)關(guān)的部件。當(dāng)我們把這些片段連接起來(lái)就可以對(duì)WebRTC端到端流程有整體的把握,接下來(lái)的例子中,有幾個(gè)關(guān)鍵點(diǎn)需要考慮:

1.WebRTC用戶通過(guò)IMS呼叫VoLTE用戶;

2.WebRTC用戶同時(shí)與Web服務(wù)器和STUN服務(wù)器相連;

3.WebRTC網(wǎng)關(guān)支持WebRTC-IMS交互功能。

注:為簡(jiǎn)潔說(shuō)明這個(gè)案例,不考慮LET/EPC接入網(wǎng)絡(luò)連接、PCC流、NAT在IMS的漫游和統(tǒng)一認(rèn)證流程。

圖10展示端到端流的6大簡(jiǎn)易步驟。它們是:

第一步,WebRTC用戶從Web服務(wù)器下載Web應(yīng)用程序內(nèi)容到他/她自己的瀏覽器;

第二步,WebRTC用戶通過(guò)WebRTC網(wǎng)關(guān)升級(jí)HTTP端口(80或443)到WebSoket。如果沒有WebSockt中轉(zhuǎn),SIP信息將會(huì)被HTTP防火墻阻擋。

第三步,WebRTC用戶和VoLTE用戶都注冊(cè)到了IMS網(wǎng)絡(luò)。

第四步,WebRTC用戶生成對(duì)VoLTE用戶的請(qǐng)求,從STUN服務(wù)器獲取公網(wǎng)IP地址后,通過(guò)SDP提供/應(yīng)答實(shí)現(xiàn)交換并認(rèn)同媒體功能。ICE候選(私網(wǎng)和公網(wǎng)IP地址)同時(shí)也進(jìn)行交換。WebRTC網(wǎng)關(guān)執(zhí)行必要的信令交互功能。

第五步,WebRTC用戶發(fā)起與WebRTC網(wǎng)關(guān)中已交換的每一個(gè)ICE候選的鏈接檢查(ICE沖孔)。當(dāng)連接檢查通過(guò)后,WebRTC用戶和WebRTC網(wǎng)關(guān)間的DTLS-SRTP媒體會(huì)話就建立好了。在IMS網(wǎng)絡(luò)中,在VoLTE用戶和WebRTC網(wǎng)關(guān)會(huì)建立SDES-SRTP或者RTP會(huì)話。當(dāng)WebRTC網(wǎng)關(guān)執(zhí)行必須的媒體互通功能后,WebRTC和VoLTE用戶間的媒體就產(chǎn)生了交換。

第六步,WebRTC用戶斷開與VoLTE用戶的呼叫,或者反之亦然。

結(jié)論

雖然WebRTC為移動(dòng)運(yùn)營(yíng)商(MNO)的現(xiàn)有IMS網(wǎng)絡(luò)投資提供了巨大的機(jī)會(huì),但是運(yùn)營(yíng)商并沒有給予WebRTC足夠的重視,尤其是當(dāng)使用WebRTC去擴(kuò)展IMS服務(wù)到瀏覽器用戶時(shí),因?yàn)檫@需要通過(guò)使用WebRTC網(wǎng)關(guān)或類似的設(shè)備來(lái)改變網(wǎng)絡(luò)架構(gòu),從而使服務(wù)互通。如果在網(wǎng)絡(luò)架構(gòu)時(shí)考慮WebRTC技術(shù)(必須關(guān)注WebRTC對(duì)網(wǎng)絡(luò)架構(gòu)的沖擊和改變),移動(dòng)運(yùn)營(yíng)商(MNO)在市場(chǎng)競(jìng)爭(zhēng)和回收投資方面都有利可圖。為實(shí)現(xiàn)市場(chǎng)對(duì)實(shí)時(shí)服務(wù)需求的不斷增長(zhǎng)和滿足未來(lái)用戶的新需求,初期的辛勞和投資都是值得的。

更多WebRTC優(yōu)秀資源可登陸編風(fēng)網(wǎng)http://befo.io/

微信公眾號(hào):WebRTC中文網(wǎng),微信ID:webrtcorgcn

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容