從雙十一的物流大戰(zhàn),看全球通信網(wǎng)絡(luò)的低延遲

雙十一剛剛過(guò)去,你的快遞都收到了嗎?好像曾經(jīng)因流量激增,導(dǎo)致各地中轉(zhuǎn)及收件點(diǎn)爆倉(cāng),快遞遲遲不到,延遲甚至長(zhǎng)達(dá)半個(gè)月的新聞幾乎絕跡。當(dāng)運(yùn)輸速度恒定,中轉(zhuǎn)站點(diǎn)的多寡、分揀能力的強(qiáng)弱、是否丟包重發(fā),決定了你的快遞能否如期到達(dá)。

那么,如果 IM 消息是物,音視頻內(nèi)容是物,那么全球通信網(wǎng)就是負(fù)責(zé)傳輸?shù)奈锪飨到y(tǒng)。在物理距離恒定的前提下,對(duì)于路由跳數(shù)、網(wǎng)絡(luò)帶寬、網(wǎng)絡(luò)質(zhì)量和緩存隊(duì)列的設(shè)計(jì)和優(yōu)化,決定了系統(tǒng)能否做到高質(zhì)量、低延遲的傳輸。

這是融云首席架構(gòu)師李淼在 WICC 廣州“出海分論壇”中分享的話題引子。也因此,李淼關(guān)于《全球低延遲通信網(wǎng)絡(luò)的設(shè)計(jì)與優(yōu)化》的話題分享變得更加具象。

從雙十一的物流大戰(zhàn),看全球通信網(wǎng)絡(luò)的低延遲

RTC 與 IM 全球網(wǎng)絡(luò)的設(shè)計(jì)有所同,有所不同

融云全球通信網(wǎng)絡(luò)分為 RTC 全球網(wǎng)絡(luò)和 IM 全球通信絡(luò)兩個(gè)部分,這是由于 RTC 和 IM 在傳輸中不同的加速特點(diǎn)所決定。

從雙十一的物流大戰(zhàn),看全球通信網(wǎng)絡(luò)的低延遲

(RTC 網(wǎng)絡(luò)與 IM 網(wǎng)絡(luò))

相同點(diǎn)在于:二者可在數(shù)據(jù)中心、節(jié)點(diǎn)等多項(xiàng)物理設(shè)施上進(jìn)行復(fù)用,并且都必須保證高質(zhì)量、低延遲的傳輸,從而為用戶帶來(lái)極佳的場(chǎng)景體驗(yàn)。

不同點(diǎn)在于:RTC 基于 UTP 協(xié)議運(yùn)行,對(duì)于用戶體驗(yàn)而言,允許有一定的丟包率,但對(duì)于延時(shí)要求苛刻;而IM 基于 TCP 協(xié)議進(jìn)行業(yè)務(wù)承載,在要求消息不能丟失的同時(shí),需要消息的集中存儲(chǔ),不僅能為用戶不在線時(shí)存儲(chǔ)離線消息,還要根據(jù)業(yè)務(wù)類型,進(jìn)行歷史消息的存儲(chǔ)。

因此,融云對(duì)于 RTC 的設(shè)計(jì),是完全去中心化的分布式通信網(wǎng)絡(luò)。好處是在后續(xù)進(jìn)行網(wǎng)絡(luò)優(yōu)化時(shí),可以隨意增加媒體節(jié)點(diǎn)部署,而不影響用戶的任何使用體驗(yàn)。

融云 IM 的網(wǎng)絡(luò)設(shè)計(jì)采用的是將數(shù)據(jù)流量導(dǎo)入到數(shù)據(jù)中心的方式,已陸續(xù)在國(guó)內(nèi)、北美和新加坡分別設(shè)立了數(shù)據(jù)中心,目前已迭代至基于 Anycast 的一體化加速網(wǎng)。特點(diǎn)在于多協(xié)議支持、多數(shù)據(jù)中心支持,并且,基于 SmartDNS & Anycast 的加速原理可以更高質(zhì)量地保證在全球范圍內(nèi),節(jié)點(diǎn)分配的準(zhǔn)確度。此外,IM 的許多全球鏈路優(yōu)化工作,都可以在 RTC 上復(fù)用。

了解完以上架構(gòu),重點(diǎn)來(lái)了:融云是如何進(jìn)行延時(shí)優(yōu)化的呢?這需要分別從 RTC 和 IM 兩個(gè)方向進(jìn)行解析。

如何降低 RTC 的網(wǎng)絡(luò)延時(shí)

從雙十一的物流大戰(zhàn),看全球通信網(wǎng)絡(luò)的低延遲

(RTC 通信過(guò)程)

對(duì)于 RTC 而言,能降低延時(shí)最好的辦法,就是提高 RTC 節(jié)點(diǎn)的覆蓋率,目的在于縮短用戶與邊緣節(jié)點(diǎn)的物理距離,也就意味著以更少的跳數(shù)完成連接。

融云對(duì)于節(jié)點(diǎn)的選擇先是要保證大洲級(jí)的全覆蓋,再是對(duì)熱門區(qū)域進(jìn)行重點(diǎn)覆蓋。所選節(jié)點(diǎn)基于一線 IaaS 廠商的公有云服務(wù)搭建,每個(gè)節(jié)點(diǎn)之間都可通過(guò)專線互聯(lián)。不但可以提升鏈路傳輸?shù)姆€(wěn)定性,還可以降低 RTC 節(jié)點(diǎn)的跳數(shù),甚至可以做到 0 跳或者 1 跳。

優(yōu)化的難點(diǎn)在于:如何讓用戶選擇到質(zhì)量最好的節(jié)點(diǎn)。通常最直觀的辦法是通過(guò)智能 DNS 解析,但融云經(jīng)過(guò)驗(yàn)證發(fā)現(xiàn),準(zhǔn)確度率只在 80% 左右。為此,融云在之后增加了 IP Anycast,它跟 DNS 原理完全不同,可直接通過(guò) IP 的方式來(lái)進(jìn)行分配,這個(gè)分配是運(yùn)營(yíng)商級(jí)的。

在鏈路探測(cè)方面,物理距離最近的 IDC 未必就是質(zhì)量最好的節(jié)點(diǎn),即便采用 smart DNS+IP Anycast,準(zhǔn)確度依然無(wú)法達(dá)到 100%。為此,融云增加了客戶端的探測(cè)能力,在用戶連接時(shí)下發(fā) N 個(gè)地址??蛻舳烁鶕?jù)下發(fā)地址進(jìn)行探測(cè),擇優(yōu)選擇鏈路連接。據(jù)日志分析,準(zhǔn)確度達(dá) 99.5% 以上。

同云連接可以通過(guò)鏈路優(yōu)化來(lái)保證,那么跨云又該怎么辦呢?

融云的做法是通過(guò)二級(jí)級(jí)聯(lián),將數(shù)據(jù)中心之間的流量通過(guò)所采購(gòu)的 SD-WAN 進(jìn)行導(dǎo)入導(dǎo)出。這其中,級(jí)聯(lián)優(yōu)化至關(guān)重要。

比如,一個(gè)北美用戶跟一個(gè)國(guó)內(nèi)用戶通信,融云會(huì)先在北美與香港之間進(jìn)行專線互聯(lián),然后香港再與國(guó)內(nèi)的節(jié)點(diǎn)進(jìn)行專線互聯(lián)。這種通過(guò)香港節(jié)點(diǎn)進(jìn)行轉(zhuǎn)發(fā)的方案,能夠在保證質(zhì)量的前提下,達(dá)到低延時(shí)的網(wǎng)絡(luò)優(yōu)化效果。

但難點(diǎn)在于:故障降級(jí)。傳輸過(guò)程中,同云的專線和 SD-WAN 都可能會(huì)出現(xiàn)故障。盡管故障的概率極低,但一旦故障發(fā)生,就必須有所取舍,為了保證用戶能夠正常接聽(tīng)互通,只能選擇將整個(gè)通訊鏈路進(jìn)行降級(jí)。比如當(dāng)專線出問(wèn)題時(shí),會(huì)通過(guò)二級(jí)級(jí)聯(lián)的方式,進(jìn)行節(jié)點(diǎn)的跳轉(zhuǎn),或者直接通過(guò)互聯(lián)網(wǎng)公網(wǎng)的方式進(jìn)行數(shù)據(jù)的轉(zhuǎn)發(fā)。

此外,要降延就要有完善的網(wǎng)絡(luò)延時(shí)監(jiān)控系統(tǒng)。融云在客戶端建設(shè)了各種標(biāo)準(zhǔn)的 QoS 監(jiān)測(cè)系統(tǒng),包括數(shù)據(jù)實(shí)時(shí)上報(bào)和后臺(tái)分析。

如何降低 IM 的網(wǎng)絡(luò)延時(shí)

IM 的網(wǎng)絡(luò)延時(shí)優(yōu)化途徑主要集中于節(jié)點(diǎn)間數(shù)據(jù)轉(zhuǎn)發(fā)和證書(shū)計(jì)算前置兩個(gè)方面。

在節(jié)點(diǎn)數(shù)據(jù)的轉(zhuǎn)發(fā)方面:由于 IM 數(shù)據(jù)基于 TCP 協(xié)議傳輸,但 TCP 的擁塞控制和丟包重傳策略并不友好,因此融云將部分 TCP 協(xié)議替換成 QUIC 協(xié)議,也就是說(shuō),從物理距離最遠(yuǎn)的邊緣節(jié)點(diǎn)到路由節(jié)點(diǎn)數(shù)據(jù)的傳輸,融云都通過(guò) QUIC 進(jìn)行了優(yōu)化。

從雙十一的物流大戰(zhàn),看全球通信網(wǎng)絡(luò)的低延遲

(IM 全球網(wǎng)絡(luò)的歷程)

通過(guò)QUIC 優(yōu)化,首先可以避免在邊緣點(diǎn)跟路由節(jié)點(diǎn)之間,TCP 的三次握手,直接將 TLS RTT 降為 0;其次是當(dāng)網(wǎng)絡(luò)抖動(dòng)時(shí),QUIC 有更友好的丟包重傳策略,可以做到丟哪個(gè)包就補(bǔ)哪個(gè)包,而不會(huì)像 TCP 那樣,一旦丟包,后續(xù)所有的包都要進(jìn)行重傳。內(nèi)測(cè)表明,這一優(yōu)化,使整個(gè)網(wǎng)絡(luò)延時(shí)降低了 15% 左右。

在證書(shū)計(jì)算前置方面:融云采取將 TLS 證書(shū)和 SSL 的證書(shū),在邊緣節(jié)點(diǎn)上直接進(jìn)行交換的方式。這樣一來(lái),首先是減少了用戶數(shù)據(jù)到數(shù)據(jù)中心之間的整體的 RTT,可將 RTT 直接降到 0。其次,IM 多有小包通訊的場(chǎng)景,例如一個(gè)信令包只有 10-20 個(gè)字節(jié),通過(guò)在邊緣點(diǎn)上將數(shù)據(jù)包進(jìn)行解密,明文傳遞到融云的路由節(jié)點(diǎn),再進(jìn)行加密傳到數(shù)據(jù)中心,大大降低了兩個(gè)最遠(yuǎn)物理距端點(diǎn)間的數(shù)據(jù)傳輸量。

需要說(shuō)明的是,用戶完全無(wú)需擔(dān)心數(shù)據(jù)的安全問(wèn)題。因?yàn)槿谠频倪吘壒?jié)點(diǎn)和路由節(jié)點(diǎn)全部由融云控制,均為受信網(wǎng)絡(luò)。但如果是必須要在公網(wǎng)完成數(shù)據(jù)傳輸,融云仍然會(huì)通過(guò)傳統(tǒng) TLS 方式來(lái)進(jìn)行數(shù)據(jù)鏈路加密。

當(dāng)然,融云對(duì) IM 的優(yōu)化策略遠(yuǎn)不止于此,更多表現(xiàn)在客戶端及服務(wù)端日志的收集、zero copy、多路復(fù)用、IP 直連和 QoS 保證等多個(gè)方面。

比如對(duì)日志的收集,融云每發(fā)一個(gè) SDK 版本,都會(huì)增加新的日志埋點(diǎn),用于分析業(yè)務(wù)、分析網(wǎng)絡(luò)等,以此進(jìn)行一些定向或定點(diǎn)區(qū)域的優(yōu)化。

在談及未來(lái)計(jì)劃時(shí),李淼指出,融云將不計(jì)成本,不遺余力地繼續(xù)加大網(wǎng)絡(luò)建設(shè)力度,為開(kāi)發(fā)者提供更加優(yōu)質(zhì)的服務(wù)。就研發(fā)而言,將持續(xù)提升軟件本身的處理能力,不斷豐富數(shù)據(jù)收集的手段,同時(shí)提升數(shù)據(jù)預(yù)估的準(zhǔn)確性。

(免責(zé)聲明:本網(wǎng)站內(nèi)容主要來(lái)自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請(qǐng)進(jìn)一步核實(shí),并對(duì)任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對(duì)有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。
任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁(yè)或鏈接內(nèi)容可能涉嫌侵犯其知識(shí)產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書(shū)面權(quán)利通知或不實(shí)情況說(shuō)明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開(kāi)相關(guān)鏈接。 )