<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

剖析?穩健、可靠全真即時通信網的架構與應用

LiveVideoStack ? 來源:LiveVideoStack ? 作者:劉然 ? 2021-05-27 14:09 ? 次閱讀

支撐全真互聯網的基礎網絡包括實時音視頻通信網絡、即時通信網絡和流媒體分發網絡。隨著社會的進步,人們對低延時即時通信的需求越來越高。本次LiveVideoStackCon 2021上海站大會邀請到了負責騰訊云千億級底層通信網絡的劉然,他為我們分享了穩健、可靠的全真即時通信網的架構與應用實踐。

大家下午好,我是來自騰訊云通信的后臺研發劉然。剛剛提到全真互聯網及“三合一”基礎網絡RT-ONE,它具體包括了實時音視頻通信網絡、即時通信網絡和流媒體分發網絡。前面薛笛已經為大家介紹了實時音視頻通信網絡,接下來我給大家分享即時通信網絡的一些技術點和應用場景實踐。 今天分享將從4個方面展開,包括即時通信網的介紹、核心技術點、融合場景的解決方案以及典型的應用場景。

01

即時通信網簡介

即時通信網絡可以用來做什么呢?包括信令消息、雙人或者多人音視頻通話的邀請請求、上下麥的連麥請求、教育白板里的白板軌跡、直播場景下的紅包,點贊,送禮等。除此之外,我們還有社交的場景——單聊、群聊、直播大房間,以及圖文、語音、視頻、自定義消息,在終端方面支持全平臺多功能覆蓋,支持微信、QQ、支付寶、百度、頭條等類似的小程序。從數據上看,騰訊云即時通信IM的月活已經超過QQ的月活,海外也有數千萬的用戶分布在200多個國家和地區。

上圖是騰訊云即時通信的基本架構。SDK層可分為網絡連接層、邏輯層、數據層和監控,在此之上是API接口層,再往上是給開發者提供的TUIKIT,這是一種非常方便的aPaaS的能力。除了SDK,后臺模塊也有很多,除了最上層的接入層,還有業務邏輯層、數據存儲層,以及一些和運營系統相關的邏輯。做IM要考慮到很多點,包括高可靠、高性能、高可用、可擴展和安全性等等,另外還有日常的開發運營維護等成本。

如何快速搭建一套IM系統呢?

現在只需要集成騰訊云SDK就可以輕松實現,騰訊云提供了全平臺、多終端SDK,它和騰訊云后臺打通以后,就可以和業務后臺進行交互。在疫情中發揮重要的明星產品騰訊會議之所以能夠抓住機會,是各方面因素的共同結果,這其中非常重要的一點是騰訊會議的底層運用了我們的全套通信能力,包括實時音視頻、IM、PSTN、TPNS等能力。

基于這些基礎能力的支撐,騰訊會議可以把更多的精力放在核心能力打造上,這也是我們做PaaS服務的初心——基于多年的積累把基礎的能力產品化再將其商業化,并開放給開發者,這樣除了可以降本增效,還可以加速業務創新。這個能力除了騰訊會議,騰訊公司內部有幾十款產品都在使用,并且國內外的開發者和客戶多達數十萬家。

02

核心技術點分享

前面簡單介紹了IM,接下來我將針對其中設計的核心技術點做詳細講解。我們今天的主題是全真互聯網,所以不論是IM、音視頻流媒體還是實時音視頻都離不開網絡。

2.1 IM全球加速網絡

現在跨國之間的通信有兩種,一種是衛星通信,另一種是海底光纜通信。因為衛星通信成本高、帶寬低,所以目前的應用還不是十分廣泛。因此,大部分的通信方式都是依靠海底光纜。 我國海底光纜現狀有三點:首先,國際網絡環境復雜,容易抖動丟包。其次,整個中國出口的帶寬很小。

《CNNIC第47次中國互聯網報告》提到整個中國出口帶寬大概是11.5T,雖然每年的增長速度很快,但是相比去年全球400T的規模還是非常小的。全球人口總計70多億,互聯網人口只有40多億,中國可能只占據10多億。對比可以發現中國人均的帶寬非常低,經常出現擁塞問題。最后國際訪問經常繞行,直連時延高。在這樣的背景之下,IM會有登錄慢、斷網和消息延時的現象。

上圖是騰訊云實測的從廣州到雅加達的路由數據,這個數據是繞行的,大概在260ms。正常情況下,通過騰訊云自己的網絡,例如從廣州到香港或者到新加坡的直連、再到雅加達,大概只有50+ ms,差距很明顯。一個好消息是前不久騰訊云在雅加達正式開區了,那里有騰訊自建的數據中心,能將我們的能力更多的覆蓋到東南亞地區。

2.2 IM全球網絡加速能力

當前騰訊云全球加速能力已經覆蓋六大洲的主要國家,包括120個接入點、2100+節點,提供了全球的服務。10或20年前,中國企業更多的是設備廠商出海,例如華為、聯想和TCL這樣的企業。移動互聯網的到來促使了更多的工具類企業出海,獵豹移動就是比較成功的案例,之后包括電商、社交、游戲、短視頻相關的出海在不斷增加。雖然現在國際形勢比較緊張,但是全球化對于中國來說是非常好的機會,希望大家能把握好這個機會,把業務向全球拓展。

2.3 系統架構與加速原理

如果想打造高速的網絡,不僅需要了解如何選擇一個最近的點,還需要知道如何在路由之間快速地交換以到達自己的源站。有三個核心點——如何選擇最優接入、如何選擇最快的路由以及如何提升傳輸速率。

2.3.1 精準IP調度

接入點方面,騰訊云有自己的公網評測平臺,對各種加速點的數據進行實時計算,然后生成一個調度平臺。當用戶接入時,根據調度平臺為用戶選擇一個最優的接入點。同時,因為這個平臺是實時的,所以在用戶使用中也會進行實時的干預。當發現有最優的路徑后,平臺會將調度信息推送給用戶側,用戶下次使用時會選擇最優的路徑。

cc79ffcc-be5f-11eb-9e57-12bb97331649.png

上圖右側是我們實時干預以后的效果展示。在馬尼拉的網絡出現故障以后,郵件告警即使生成,平臺把馬尼拉的路徑即時屏蔽掉,自動選擇其他的路徑進行調度,做到對用戶側無感,同時也極大了提升了接入質量和運營效率。

2.3.2 通信協議優化

找到最優接入點后,我們在路由之間做了一些協議改造。用戶一開始是以TCP或者UDP的方式傳輸,接著在路由之間是以QUIC加速的方式進行路由的中轉。QUIC的0RTT、連接復用和擁塞控制算法等能力都是非常優秀的。在數據安全方面,客戶在做業務時大多都有自己的數據包加密,騰訊云的路由之間也有數據加密,同時會有預建連等技術,這里就不詳細介紹了。

2.3.3 最優路由選址

cce03efe-be5f-11eb-9e57-12bb97331649.png

那么如何選擇路線呢?比如上圖從迪拜到圣保羅可能有兩條路徑:一條是公網路徑,另一條是全球加速路徑。如果走公網,雖然看起來距離會短一些,但數據時延為459ms;而通過騰訊云中轉,經過倫敦再到迪拜,整個過程只需要304ms。我們將每個加速點都作為一個節點,加速點與加速點之間有一個邊連接,根據時延和丟包率計算出一個等比的邊,再根據邊的長度選擇一個最優的路徑。

同時,如果回來時存在另一條最優的路徑,那么會選擇這條最優路徑,而不是之前的,這樣就可以保證回程、去程的雙面加速,最后補充下,我們是在公網和專線之間選擇一個最優的網絡,并不是說一定會走專線。

2.3.4 多路無狀態傳輸

路徑選好后,我們需要考慮如何提升傳輸速率,做法是將大包智能拆分成小包,小包通過多路并行傳輸,最后到達源站,這種方式可以提升效率,在一些場景下還會有小包合并為大包。兩邊會有狀態,但是在鏈路中間是無狀態的,如果節點之間有抖動可以做到秒級踢出。此外,路徑之間還有預建連和連接復用的技術。

cdb5067a-be5f-11eb-9e57-12bb97331649.png

上圖展現的是實際效果,一些區域的效果是非常明顯的——通過騰訊云加速,時延可以從200多ms降低到30多ms。通過測試,全球鏈路時延不超過300ms,實際驗證可以把平均時延降低24%,同時請求成功率提升17%。

2.4 可靠的消息系統

對于IM來說,完成選路以后,無論是信令消息還是其他普通消息,保證可靠性都是至關重要的,接下來和大家分享騰訊云消息系統的機制。大家從網上可能了解到QQ和微信的一些做法,微信是使用寫擴散的方式,但不管是寫擴散還是讀擴散,都是在一定業務場景之下來考慮的。

cdc3f19e-be5f-11eb-9e57-12bb97331649.png

騰訊云選擇的是讀擴散的模式。從上圖可以看到,對于收件人來說,以收件人為維度來儲存消息;對于群來說,是以群為維度儲存消息。消息的狀態一共有三種——已確認、未確認和待下發。收消息采用推拉結合的方式,當一個消息出現,會把消息內容和通知發給接收端,接收端再上傳把消息拉回來。這里面會有sequence或者騰訊云自己的cookie控制時序的問題。

對于群聊,目前是通過讀擴散的模型。如果群比較小,寫擴散確實比較方便,但當群的數量越來越大,比如微信群的數量上限是500人,可以使用寫擴散,而微信的視頻號和直播要使用寫擴散的模式是行不通的,很多都已經改成了讀擴散的模式。騰訊云不僅可以支持500人的群,2000人乃至萬人的大群都能支持。

cdd9539a-be5f-11eb-9e57-12bb97331649.png

上圖是我們自研消息存儲引擎,分為索引層和數據層,這是基本的拉消息的機制。目前騰訊云自己的能力已經可以支持多拷貝的存儲,索引全部存在內存里,數據會分為冷、熱數據。熱數據會存在SSD盤里,冷數據會繼續下沉到云硬盤。此外,騰訊云還支持數據加密,同時我們在拉取數據方面也會更加靈活,支持指定SEQ拉取、指定時間區段拉取。

2.5 億級別狀態系統

對于IM來說,狀態系統也是非常重要的一點。舉個例子來理解狀態系統,比如上下線——最開始的PC端QQ是否在線的狀態。當需要消息PUSH的時候,首先要查在線還是不在線,在線狀態才能走自己的PUSH通道,如果不在線就要通過廠商的離線PUSH通道。

對于狀態系統,采用分SHARD的模式,通過uin,做一致性哈希,分成一個個SHARD。SHARD支持水平擴展,對于每一個SHARD,也可支持垂直擴展,比如現在有三臺機器,隨著不斷增長的業務量,可以擴展成4臺或者5臺,擴容是非常高效的。除了在單地域,騰訊云可以多AZ或跨Region同步狀態實施。

例如為了提升系統穩定性,可以在上海和廣州各部署一臺,消息真正擴散的時候,并不是去遠程查詢(常規的做法是狀態存在Redis里,通過RPC的方式進行查詢)。騰訊云會分成多個SHARD,每一塊只負責某一個區段的帳號,當把信息請求過來時,只需要本地查詢就能將消息下發下去,非常高效。

在做微信視頻號的時候,有提到如果把一億個人拉到一個群里會怎樣?這一定需要讀擴散的模式,寫擴散是完全不行的,這也是騰訊云即時通信IM的一個特色——無人數上限的直播群,很多客戶都會用到。這是一個基本的交互邏輯,看起來只是比較簡單的系統收發,里面其實存在多級擴散。

當收到消息后,經過邏輯層的擴散,將其存儲到一個類似數據存儲層的結構里——這個數據存儲層可以儲存2分鐘或者5分鐘的一段時間內全部的消息,當用戶來拉取的時候,會按照就近的方式拉取。我們這里對消息采取一寫多讀的方式,具體的消息是一個環形的BUFFER,會記錄消息的偏移量,直播大群的群號、群ID、群消息的范圍也在里面。

另外,網絡通信會有抖動和丟包,所以我們做了一個兜底的策略,將消息保存在高保障可靠存儲系統,當發現消息的SEQ出現斷層,可以補拉,從而保證消息的高可靠。

ceeba454-be5f-11eb-9e57-12bb97331649.png

上圖是實際的補拉機制。補拉除了分鐘粒度維護索引之外,消息也會分優先級。一個百萬人或者千萬人直播群的消息量是非常大的,消息里面可以設置優先級,比如把紅包設置為高優先級消息,點贊、送禮、彈幕設置為低優先級消息,這樣可以保證紅包不會因為消息過多而丟失。騰訊云對此有一個淘汰機制,高優先級消息會全量保存,這樣當客戶來拉消息是可以跳過非關鍵的彈幕數據,直接把高優先級數據合并后發給用戶端,保證用戶體驗。

03

融合場景的解決方案

前面介紹了騰訊云的三個核心能力。對于IM來說,很多情況下不是單獨使用的,而是和其他一些能力結合使用。

cf68ef2c-be5f-11eb-9e57-12bb97331649.png

上圖是騰訊云底層能力。通信層我們有IM、移動推送、實時音視頻、直播、點播、CDN的能力,面向教育、電商、金融、政企等各個行業的客戶提供服務。服務主要分為三類:一是企業內部員工辦公、二是企業和客戶之間、三是用戶和用戶之間。此外,騰訊云還有PSTN、一鍵登錄、云呼叫中心和短信等其他通信能力。從行業來看目前騰訊云已經是全國最大的綜合通信服務商。

3.1 直播解決方案

cfc30228-be5f-11eb-9e57-12bb97331649.png

上圖是IM和其他業務場景的一些結合,包括TRTC、直播、點播等,這是用于低延時互動直播的,也支持各個端進行多人音視頻通話、低延時直播和PK連麥等類似的場景。

3.2 在線課堂解決方案

cff59b2a-be5f-11eb-9e57-12bb97331649.png

上圖是和教育白板相關的在線互動課堂解決方案。其中用到了騰訊云實時音視頻、IM、CDN和白板的能力。1對1小班課或者1對多大班課,乃至10萬人的直播課都可以結合騰訊云的通信PaaS以及白板能力,很快的開發出在線課堂的產品。

04

典型應用場景

最后我將和大家簡單介紹一些使用IM的典型場景。

4.1 企業內部場景

騰訊會議底層已經深度使用騰訊云通信的能力,包括主持人管理、消息和文件分享等等。在疫情期間,平安保險內訓也是通過直播的方式把騰訊云的IM集成進去。釘釘、企業微信提供的是標準化的SaaS產品,但是很多客戶因為業務場景原因會有更多的訴求和定制化的需求,為滿足這些訴求,需要把騰訊云的IM、TRTC集成進去,基于業務場景靈活開發產品,例如企業內通信的場景。

4.2 企業與用戶場景

企業和用戶之間最常見的場景是客服。之前的客服模式是每個公司有專門的客服團隊,通過客服團隊來服務公司所有的產品,隨著互聯網紅利的消息,業務增長有拉新轉向存量客戶運營。

未來客服會是非常重要的一環,同時場景將更加分散,不再局限于某一個部門,每個產品都可能組建自己的小客服團隊,要搭建這樣一個呼叫中心和客服系統是很復雜的。騰訊云的云呼叫中心可以很方便的為客戶打造一個客服系統。

在金融方面,不論是虛擬營業廳、證券還是保險都和直播互動結合得越來越緊密,因此會存在私密付費群,存在互動和推送的場景。

此外除了前面提到的騰訊云在線教育方案,醫療也是一個很好的方向,醫療問診、實時的音視頻溝通、病例上傳分享都是很不錯的使用場景。

4.3 用戶與用戶場景

用戶與用戶之間的場景會更多,像線上社交直播、電商直播帶貨等等。電商直播會更多需要無人數上限的直播間,會有優惠券、抽獎、送禮、貨物上下架、加購物車的訴求。陌生人社交場景會有附近的人、陌生人通信、精準匹配、個性裝扮等等訴求。

另外在游戲互動方面也有很多應用場景。其實無論是直播、電商、陌生人社交還是游戲,都存在一個趨勢:以前只是提供一個產品給客戶使用就可以了,但是未來更多的產品會做社區,以此來維護和客戶的關系,通過騰訊云的IM和TRTC可以很方便的把社區的通信能力搭建起來。

以上是我今天的全部內容,感謝大家聆聽。

編輯:jq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • PC
    PC
    +關注

    關注

    9

    文章

    1980

    瀏覽量

    153058
  • UDP
    UDP
    +關注

    關注

    0

    文章

    311

    瀏覽量

    33694
  • RPC
    RPC
    +關注

    關注

    0

    文章

    102

    瀏覽量

    11449
  • CDN
    CDN
    +關注

    關注

    0

    文章

    290

    瀏覽量

    28568

原文標題:?穩健、可靠全真即時通信網的架構與應用

文章出處:【微信號:livevideostack,微信公眾號:LiveVideoStack】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    工業通信網關是什么

    工業通信網關是一種專門用于工業環境的通信設備,它通常作為一個橋梁,連接不同協議或網絡結構的系統,以實現數據的交換和共享。工業通信網關可以將現場設備的數據轉換成適合上層管理系統接收的格式,或者相反
    的頭像 發表于 06-14 15:20 ?111次閱讀
    工業<b class='flag-5'>通信網</b>關是什么

    數據通信網關是什么?數據通信網關的功能作用

    數據通信網關是一種關鍵的網絡設備,它在不同的通信網絡或者不同協議的網絡之間充當橋梁,實現數據包的轉發、協議轉換以及網絡互連。其主要功能和作用包括: 1、網絡互連:數據通信網關能夠連接兩個或多個
    的頭像 發表于 05-29 14:43 ?192次閱讀

    RS485工業通信網關的原理是什么?

    一、引言 隨著工業自動化技術的飛速發展,工業通信網關作為連接各種設備和系統的關鍵節點,發揮著越來越重要的作用。RS485工業通信網關作為其中的佼佼者,以其高可靠性、長距離傳輸能力和抗干擾能力強的特點
    的頭像 發表于 05-27 17:32 ?147次閱讀

    訊維通信技術在跨區域企業通信網絡整合中的應用案例

    訊維通信技術在跨區域企業通信網絡整合中展現出卓越的應用效果。以下是具體的應用案例: 某大型跨國企業,因業務擴展需要,需要在全球范圍內整合其通信網絡。該企業面臨著地域分散、網絡結構復雜、通信
    的頭像 發表于 04-19 16:30 ?221次閱讀

    PLC通信網關的介紹

    在工業自動化日益發展的今天,PLC已成為工業控制領域的核心設備。工業自動化與信息化深度融合,PLC的應用日益廣泛。PLC通信網關,作為工業物聯網的重要組成部分,扮演著連接PLC與云平臺的橋梁角色
    的頭像 發表于 03-14 17:03 ?455次閱讀
    PLC<b class='flag-5'>通信網</b>關的介紹

    淺析3G通信網絡技術在通信中的應用

    展望世界,面對未來,在這網絡技術高速更新的時代,3G 通信網絡的發展是通信技術充滿了無限的可能性,當前國內3G 網絡的發展還剛剛處于初始的起步階段,而伴隨著通信網絡和互聯網技術不斷高速發展
    發表于 11-13 15:19 ?253次閱讀

    基于CORTEX-M3的多機通信網絡的設計與實現

    電子發燒友網站提供《基于CORTEX-M3的多機通信網絡的設計與實現.pdf》資料免費下載
    發表于 11-08 09:47 ?0次下載
    基于CORTEX-M3的多機<b class='flag-5'>通信網</b>絡的設計與實現

    中國移動聯合華為等發布《下一代泛在實時通信網絡需求、能力與架構理念白皮書》

    近日,在2023中國移動合作伙伴大會期間,中國移動和華為等產業伙伴聯合發布了《下一代泛在實時通信網絡需求、能力與架構理念白皮書》,定義了實時通信網絡未來演進的目標。中國移動研究院網絡與IT技術研究
    的頭像 發表于 11-04 18:05 ?1402次閱讀
    中國移動聯合華為等發布《下一代泛在實時<b class='flag-5'>通信網</b>絡需求、能力與<b class='flag-5'>架構</b>理念白皮書》

    基于XMPP協議的Android即時通信系統設計

    電子發燒友網站提供《基于XMPP協議的Android即時通信系統設計.pdf》資料免費下載
    發表于 10-27 10:40 ?0次下載
    基于XMPP協議的Android<b class='flag-5'>即時通信</b>系統設計

    基于NAT穿透P2P即時通訊系統的設計與實現

    電子發燒友網站提供《基于NAT穿透P2P即時通訊系統的設計與實現.pdf》資料免費下載
    發表于 10-27 09:44 ?0次下載
    基于NAT穿透P2P<b class='flag-5'>即時通</b>訊系統的設計與實現

    電力通信網中光通信的連接方式與光通信網的整體結構拓撲圖

    電子發燒友網站提供《電力通信網中光通信的連接方式與光通信網的整體結構拓撲圖.pdf》資料免費下載
    發表于 10-24 09:07 ?0次下載
    電力<b class='flag-5'>通信網</b>中光<b class='flag-5'>通信</b>的連接方式與光<b class='flag-5'>通信網</b>的整體結構拓撲圖

    小白科普-通信網中核心、城域、接入網

    通信網絡的一個整體結構,大致包括:骨干、核心、城域、接入網,其中接入網又分為無線接入和有線接入,以及承載。 聽起來很復雜,我們再分解
    發表于 08-03 17:25

    如何實現安全可靠通信?

    超強臺風“杜蘇芮”在我國東南沿海地區造成了巨大的影響,華北和黃淮等地也正在遭受強降雨影響,而在救援搶險工作中緊急通信網絡的穩定性至關重要,如何為救援人員提供可靠通信呢?虹科帶您了解
    的頭像 發表于 08-02 08:05 ?555次閱讀
    如何實現安全<b class='flag-5'>可靠</b>的<b class='flag-5'>通信</b>?

    166.即時通訊:12.1 即時通信說明介紹 #硬聲創作季

    服務器代碼
    充八萬
    發布于 :2023年07月12日 19:49:05

    即時通訊系統為什么選擇 GaussDB(for?Redis)?

    每當網絡上爆出熱點新聞,混跡于各個社交媒體的小伙伴們全都開啟了討論模式。一條消息的產生是如何在群聊中傳遞的呢?讓我們一起來探索即時通訊系統(IM)的原理。 IM 系統架構的原理 當你在群聊“相親相愛
    的頭像 發表于 06-27 23:07 ?434次閱讀
    <b class='flag-5'>即時通</b>訊系統為什么選擇 GaussDB(for?Redis)?
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>