我們將探討Agora.io實時云如何通過端到端的虛擬網(wǎng)絡體系結構來處理全球“移動端到端”Web實時通信(WebRTC)的挑戰(zhàn)。本文的一個版本最初發(fā)布在《WebRTCWorld》(WebRTC世界)(參見:http://bit.ly/Mobile2Mobile)中;此前,Agora.io剛剛宣布融資0.2億美元并推出首款產品(參考資料1)。
如今,應用程序和用戶的主要特點是全球化和移動化,而且通常具有“移動端到端”的性質。實際上,“移動爆發(fā)點”發(fā)生在2014年,就在這一年,移動智能手機用戶達到近20億人,超過了全球的臺式機用戶數(shù)量(參考資料2)。這些統(tǒng)計數(shù)據(jù)表明,80%的互聯(lián)網(wǎng)用戶擁有智能手機,并且這些移動用戶的在線時間更長,內容消費量也大幅增多。諸如Facebook和Twitter等社交媒體平臺指出,如今移動交互次數(shù)顯著多于臺式機交互次數(shù),而且大多數(shù)新的社交媒體應用程序(例如Instagram、WhatsApp、WeChat、Snapchat等)主要都是移動應用程序。
最近的研究表明,我們使用手機的時間超過了睡眠時間(參考資料3),更不用說看電視或進行其他活動的時間!眾所周知,我們的在線社交、游戲和信息社區(qū)都是全球化的——我們每天都在與散布全球的人們分享信息和溝通交流。
在應用程序中加入實時通信功能,讓參與者可根據(jù)需要在任何地方與對方交談并能看到對方,這種全球化的和移動化的實時通信無疑是一個巨大的挑戰(zhàn)。第一家真正切實簡化互聯(lián)網(wǎng)全球通信的公司是Skype,正因為如此,我們中的許多人仍在使用Skype與遠在其他國家/地區(qū)的親屬進行交談。然而,Skype已成為一個僵化的孤立平臺,由于其API較少,因此無法以靈活、隱形的方式輕易嵌入在其他應用程序中。此外,Skype現(xiàn)已納入Microsoft麾下,已經(jīng)成為Microsoft為擴展MSOffice并取代MSLync而重點開發(fā)的Skype-For-Business中的關鍵一環(huán),似乎不會再回過頭來加入可以輕易嵌入的通信功能。
那么,對于自行構建應用程序來直接納入通信功能的應用程序開發(fā)人員而言,有什么替代方案呢?過去四年來,在Google和Mozilla以及最近Microsoft和其他公司(參考資料4)的推動下,在IETF(參考資料5)和W3C(參考資料6)開展的標準制定計劃的支持下,WebRTC登上了歷史舞臺,成為一種可將通信功能輕松集成到應用程序中的全新開放式標準。
本博文將探討標準的WebRTC方案在為真正的全球化、移動化的應用程序交付可靠、一致的體驗質量(QoE)方面所面臨的挑戰(zhàn),并討論可化解這些挑戰(zhàn)并針對全球化而優(yōu)化的體系結構。
“標準的”對等WebRTC體系結構所面臨的挑戰(zhàn)
WebRTC應用程序的基礎體系結構模式是“三角形”模式,如下所示。

無論應用程序位于移動應用程序之中,還是位于瀏覽器的JavaScript代碼中,都會與集中式的Web應用程序服務器進行通信,這些服務器為每個設備提供在各設備之間協(xié)調通信所需的信息。在每個設備上,API用于根據(jù)需要獲取對麥克風、揚聲器和攝像頭的訪問,并計算設備之間的網(wǎng)絡路徑,此過程可能會因為防火墻、NAT和其他機制而變復雜。建立通信后,語音、視頻和數(shù)據(jù)通信媒體將以對等端到對等端的方式直接在設備之間流動。一切看似完美無缺。
然而,雖然互聯(lián)網(wǎng)對等通信因為簡便、免費且不需要其他基礎架構而堪稱是“理想的”方案,但是用戶能否在整個通信過程中獲得出色的體驗質量,則完全取決于網(wǎng)絡連接的質量以及此質量在整個通信會話期間的穩(wěn)定性。
理想的WebRTC使用情形通常表述如下:兩個端點均為瀏覽器,二者分別基于具有適當性能且配備WiFi或有線網(wǎng)絡連接的筆記本電腦,并通過具有適當一致性的網(wǎng)絡在同一國家/地區(qū)內進行通信。在這種情況下,不會有什么問題。但是,如果這些設備是具有3G、4G或WiFi連接且可能在這些連接之間切換的手機,帶寬在用戶移動過程中經(jīng)常波動,而且這些設備處于完全不同的國家/地區(qū),其中某些國家/地區(qū)的網(wǎng)絡很不通暢,那么通信質量就可能非常糟糕!因此,許多具有跨國家/地區(qū)通信經(jīng)歷的應用程序開發(fā)人員發(fā)現(xiàn),WebRTC的體驗質量是一個真正的挑戰(zhàn)。標準互聯(lián)網(wǎng)不對實時通信提供任何類型的“服務質量”保證,這一點可從私有企業(yè)網(wǎng)絡中看出;因此,只要存在某種連接,就不會對用戶之間傳輸語音和視頻數(shù)據(jù)包的方式進行任何重新路由或更改。即使狀況很糟,也會照舊進行。
就本質而言,WebRTC提供了各種庫和編解碼器,它們包括在某些Web瀏覽器中,或者由不同公司打包為SDK以供移動應用程序使用,但是WebRTC并不為這些端點提供針對QoE優(yōu)化的網(wǎng)絡。網(wǎng)絡質量完全取決于您以及用戶之間變化莫測的諸多移動網(wǎng)絡和互聯(lián)網(wǎng)連接!
全球性的“移動到移動”應用程序
HelloTalk是一款典型的全球性移動應用程序,同時適用于AppleIoS和Android,可為任何國家/地區(qū)的用戶提供一個交互式社交環(huán)境來學習新的語言。我們曾在之前關于HelloTalk的博文中深入探討過HelloTalk,因此本文不再贅述(參考資料7)。案例研究已經(jīng)說明了對于像HelloTalk這樣的公司,為何必須要讓全球性的“移動端到端”通信每次都得提供卓越的體驗質量,并且無論用戶處于哪個國家/地區(qū),無論采用何種網(wǎng)絡連接。
Agora.ioCaaS——針對RTC優(yōu)化的全球網(wǎng)絡
對于“移動端到端”的WebRTC挑戰(zhàn),其解決方案在于提供一個針對RTC優(yōu)化的全球虛擬網(wǎng)絡,盡可能以本地方式連接各個移動設備,然后確保這些用戶之間的全球連接在整個通信會話期間都保持出色的QoE。

此體系結構包含兩個重要部分:
- 即使在移動中的最后一英里,也能通過“高速通道”從移動設備接入網(wǎng)絡。
- 網(wǎng)絡中的各個設備之間建立全球性連接。
移動設備可通過3G、4G或WiFi和寬帶連接至Agora.io網(wǎng)絡,延遲和連接類型可能會在用戶移動中不斷變化。因此,這里的重點是容錯,并基于網(wǎng)絡狀況不斷調優(yōu)音頻/視頻。由于預計會出現(xiàn)“數(shù)據(jù)包丟失”和“抖動”等技術問題,因此體系結構在設計上也必須能夠處理它們。這需要對編解碼器和傳輸協(xié)議進行創(chuàng)新,使之針對移動設備而高度優(yōu)化。對于特定的設備,即使是回聲消除這類功能,也必須高度調優(yōu),確保從一開始就提供最佳語音質量。
為確保從當?shù)剡M行快速訪問,需要提供大量的訪問節(jié)點——Agora.io目前在全球擁有超過65個數(shù)據(jù)中心,而且還在不斷擴張。通信將會直接進入Agora.io網(wǎng)絡,而不是在全球進行隨機的對等傳輸。這使得“虛擬”Agora.io網(wǎng)絡可以自動、持續(xù)地針對QoE進行優(yōu)化。
當通信抵達Agora.io網(wǎng)絡節(jié)點后,如何將此通信路由至目標就成了關鍵問題。為確保在全球保持較低的成本,Agora.io采用全球的互聯(lián)網(wǎng)(因此任何人都不需要為專用線路支付電信層面的成本),但其路由和優(yōu)化并不是完全依賴互聯(lián)網(wǎng)。Agora.io不斷監(jiān)視其所有節(jié)點,知道全球在每一時刻的最佳實時通信網(wǎng)絡路徑。因此,在路由過程中,系統(tǒng)會根據(jù)需要動態(tài)重新路由實時通信,從而繞開瓶頸并確保實現(xiàn)良好的QoE。Agora.io網(wǎng)絡節(jié)點還直接管理低層級冗余選項和重新傳輸決策,對實時語音和視頻通信提供最適當?shù)奶幚恚@一點不同于普通的Web需求或單向流式傳輸需求。
此方式對于處理網(wǎng)絡“不良”(Brown-Out)狀況具有重要意義。在網(wǎng)絡狀況不良時,各互聯(lián)網(wǎng)路徑仍然有效,但狀況很糟,無法滿足實時通信對于低延遲和低數(shù)據(jù)包丟失率的需求。“中斷”(Black-Out)則與此不同,其中各連接均已中斷,互聯(lián)網(wǎng)可自行(緩慢)確定建立新路由的必要性。Agora.io虛擬網(wǎng)絡可快速發(fā)現(xiàn)整個網(wǎng)絡中較好和較差的通信狀況,并實時采取相應的措施。
因此,在整個會話期間,大部分Agora.io通信并非采取對等傳輸(盡管在本地可實現(xiàn)此功能),而是接受動態(tài)管理;Agora.io的全球分布式節(jié)點(超過65個)以虛擬網(wǎng)絡層的形式在標準互聯(lián)網(wǎng)之上運行。
其結果則是一款真正的端到端全球SDK和網(wǎng)絡管理解決方案,可確保為語音和視頻通信提供出色的體驗質量,尤為注意滿足移動設備的嚴苛要求。
結論——優(yōu)化的體驗質量
為支持新一代“移動端到端”的全球性應用程序,以及臺式機/瀏覽器和移動混合情形實現(xiàn)實時通信,開發(fā)人員需要一種針對RTC優(yōu)化的全球網(wǎng)絡。當今的大多數(shù)WebRTC方案只是提供相應的庫,而網(wǎng)絡是否夠好則完全取決于您!而且,這些庫和工具通常針對瀏覽器使用情形而優(yōu)化,不一定適合性能和網(wǎng)絡連接質量均波動劇烈的移動設備。
Agora.io提供了一種富有創(chuàng)新的全球RTC網(wǎng)絡,其Agora。io移動SDK中已內置移動優(yōu)化,因此Agora客戶可直接受益于這些功能。Agora將繼續(xù)納入更多WebRTC標準,以便輕松連接至標準的WebRTC瀏覽器,同時通過SDK保持最佳的“移動到移動”體驗。這使得Agora客戶(例如HelloTalk等)能夠為其全球用戶提供更多選擇,并大幅提升體驗質量。
- 參考資料1:http://cn.agora.io/press-releases/%E5%A3%B0%E7%BD%91agora%E5%AE%A3%E5%B8%83%E8%8E%B7%E5%BE%972000%E4%B8%87%E7%BE%8E%E5%85%83b%E8%BD%AE%E8%9E%8D%E8%B5%84/
- 參考資料2:http://www.smartinsights.com/mobile-marketing/mobile-marketing-analytics/mobile-marketing-statistics/
- 參考資料3:http://www.dailymail.co.uk/health/article-2989952/How-technology-taking-lives-spend-time-phones-laptops-SLEEPING.html
- 參考資料4:http://www.agora.io/webrtc-video-and-quality-of-experience/
- 參考資料5:https://tools.ietf.org/wg/rtcweb/
- 參考資料6:https://www.w3.org/2011/04/webrtc/