延時、丟包、抖動,用盡洪荒之力也傳不到,該怎麼辦?

互聯網大概能夠算是最近幾十年人類最重要的發明之一。最先人們用互聯網發送電子郵件,接着普及了網頁瀏覽,後來又流行即時文字聊天,人們工做生活的方式在這寫年裏發生了巨大的變化。但是當人們想更進一步實現實時音視頻通話時,卻發現互聯網有點不給力了。卡頓、掉線、延時過高等等,這些問題始終伴阻礙實時音視頻通話的發展。而這根本上的緣由是,互聯網一開始並非針對實時通訊而設計的。服務器

人們常把互聯網比喻成「信息高速公路」,其實更確切的比喻應該是「信息公路網」。互聯網就像現實中的路網同樣交錯複雜,有像鏈接兩地的高速公路同樣快速的骨幹網,也有像是難走的崎嶇山路同樣糟糕的網絡環境。而在互聯網上傳輸數據就像是從一個地方開車到另外一個地方同樣。網絡

如今咱們就借這個比喻來解釋一下互聯網傳輸的三個很是重要的特色:延時、丟包、抖動。工具


假設咱們如今有一百輛車從北京鳥巢開往上海東方明珠,而且每隔一分鐘出發一輛。設計

  • 延時視頻

「延時」指的是每輛車從鳥巢開到東方明珠花的平均時間。顯然,車隊走高速公路確定要比走各類小公路快不少,並且從鳥巢出發沿着怎樣的路線開上高速公路也有很大影響,萬一堵在了三環可就要多花好幾個小時了。因此這個值和車隊選擇的行駛路線有關。互聯網傳輸也是同樣的道理,須要傳輸數據的兩點之間常常是有不少可選路徑的,而這些路徑的延時每每相差很大。路由

  • 丟包開發

「丟包」指的是有的車沒法在有效時間內沒法達到終點,甚至可能永遠也到不了終點。有的車可能永遠堵在北京的三環上了,有的車可能中途出了車禍。假如咱們的一百輛車裏有五輛車由於各類緣由沒能按時到達上海,咱們此次車隊傳輸的「丟包率」就是5%。是的,互聯網傳輸也同樣,它並非百分百可靠的,總有數據沒法按時傳輸到目的地。io

  • 抖動效率

「抖動」指的是車子到達的順序、間隔和出發時的差別。雖然咱們的一百輛車在北京是等間隔的一分鐘一輛出發的,可是它們到達上海時卻並非按順序一分鐘一輛到達的,甚至可能有晚出發的車比早出發的車先到的狀況。互聯網傳輸也同樣,若是簡單地按照收到的音視頻數據順序直接播放出來,就會出現失真的現象。互聯網

延時、丟包、抖動是互聯網這個信息公路網沒法避免的三個特色。之前電子郵件、網頁瀏覽、文字聊天的場景下,這三個特色並非太大的問題,畢竟人們能夠接受電子郵件晚幾分鐘到達對方的郵箱。但在實時音視頻通訊的場景下,不要說幾分鐘,就算只有幾秒鐘的延遲,音視頻交流的體驗就會大打折扣。

聲網Agora.io是怎麼作的

爲了解決這三個問題對實時音視頻通訊的影響,聲網Agora.io以多種技術手段並用,創建了本身的虛擬通訊網。咱們仍然用前面車隊的比喻,聲網Agora.io的虛擬通訊網就像是一個車隊調度中心,指引車隊沿着速度最快、路況最好的線路通行。

  • 就近接入

當車隊從鳥巢出發的時候,調度中心首先給出一條從鳥巢通往高速公路入口的最優路徑,讓車隊儘快離開擁擠的市區。一樣的,聲網Agora.io虛擬通訊網根據用戶所在地分配最近的接入點,讓音視頻數據包儘快到達快速的骨幹網絡,這就叫作「就近接入」。

  • 動態路由

當咱們的車隊上了高速公路後,理想狀況下只要沿着最短路線向上海行駛就能夠了。但現實狀況是,在最短路線上可能會有路段在維修沒法通行,會有路段車輛太多很是擁堵,會有路段收費站太多通行效率低下等等狀況。調度中心會根據實時的全國路況,給車隊規劃高速公路上的行駛路徑,保證車隊以最快的速度到達上海的高速公路出口。一樣的,骨幹網絡也會有線路暫時不可用,線路擁堵,跨運營商線路質量差等狀況。聲網Agora.io虛擬通訊網會根據全球的主幹網絡情況,爲須要傳輸的音視頻數據包實時規劃傳輸路徑,這就叫作「動態路由」。

當車隊沿着高速公路到達上海後,調度中心再次給出一條從高速公路出口通往東方明珠的最優路徑。也即當數據沿着骨幹網傳輸到對方的地區後,聲網Agora.io虛擬通訊網再次使用「就近接入」的技術讓數據包儘快到達目標設備。

  • 丟包重傳

「延時」的問題解決了,「丟包」怎麼辦呢?假設正好遇到上下班高峯,北京的路況很是糟糕,即便調度中心規劃了最優的離開北京的線路,100輛車裏也只有80輛按時到達了高速公路入口,「丟包率」達到了20%。在這種狀況下調度中心的辦法是,通知鳥巢再補發20輛車出來!即便這20輛車仍然有20%(4輛)沒法離開北京,最終也能有總共96輛車駛上高速公路,最終的丟包率從20%降到了4%。這一技術在聲網Agora.io虛擬通訊網中被稱爲「丟包重傳」。不管是從用戶到接入點,仍是咱們的服務器之間,仍是最終從接入點到用戶,丟失的數據包都有機會經過重傳機制獲得及時的恢復。

由此,聲網Agora.io虛擬通訊網經過「就近接入」、「動態路由」等技術,有效下降了數據傳輸的延時,使得中美之間端到端傳輸的平均延時只有0.15秒;又經過「丟包重傳」的機制對抗網絡丟包,使得中美之間端到端的數據包有效到達率超過了99%。再加上聲網Agora.io引擎內部專門的模塊針對網絡的「抖動」進行處理,互聯網上實時音視頻傳輸的三大難題得以解決。

經過這些硬性的技術手段,加上完備的報警系統、豐富的問題調查工具、詳細的統計報表等軟性的技術工具,聲網Agora.io虛擬通訊網爲互聯網用戶提供了穩健可靠的實時音視頻傳輸解決方案。

本文做者

龔宇華 聲網Agora.io 資深移動開發專家

相關文章
相關標籤/搜索