構建 Theta 協議:第二部分點擊上方“ThetaToken”關注我們

構建 Theta 協議:第二部分

構建 Theta 協議:第二部分

混合網格流媒體技術概覽

作者:Jieyi Long,Theta Labs 首席技術官
構建 Theta 協議:第二部分

___在本篇博客文章中,我將簡單介紹我們正在開發的混合網格流媒體技術。混合網格流媒體技術同時使用對等節點網絡(P2P)和內容分發網絡(CDN)來傳遞視頻,從而結合了兩種技術的優勢,即 P2P 的高度可伸縮性(Scalability)和 CDN 的高度可用性(Availability)。我們的研發進展表明混合網格流媒體技術能夠大幅降低測試環境下 CDN 帶寬的使用量。_


構建 Theta 協議:第二部分

P2P 流媒體的技術優點是能夠近乎實時地快速分發大量音頻和視頻內容。當衆多用戶同時收看同一個視頻流時,P2P 直播就能達到最優效果。同時在線的用戶越多,可利用的帶寬資源就越豐富,對等節點也就能更有效地從彼此身上抓取流媒體,系統的魯棒性也就越強。節點不需要依靠中心化的服務器來提取內容,這點在服務器失靈的時候就顯得尤其重要。中心化的 CDN 模式剛好相反,同時在線的用戶越多,CDN 服務器面臨的可伸縮性壓力(Scalability pressure)就越大。

然而,純粹的 P2P 流媒體網絡存在着可用性(Availability)的問題。對等節點隨時可能下線,所以很難預測某個節點什麼時候會處在可用狀態。此外,節點之間還存在不可控制的差別,比如上傳、下載能力的區別等。相比之下,CDN 服務就顯得更可靠和穩定,因而可以作爲對等節點不可用時的有效“備用方案”。



我們的目標是在不犧牲服務質量(QoS)的前提下,儘可能降低對 CDN 帶寬的要求,這對於網飛(Netflix)、YouTube、Twitch 和 Facebook 等需要負擔鉅額 CDN 帶寬的流媒體平臺而言非常重要。這一要求意味着我們希望對等節點儘可能從彼此身上抓取流媒體數據,從而降低對 CDN 網絡的依賴。要實現這一目標,對等節點必須能夠有效地發現附近的其它節點。如果一個節點能夠發現多個附近的對等節點,那麼它就更有可能從對等節點上較穩定地獲得視頻流片段。相反的,如果找到的對等節點距離比較遙遠(距離以路由跳數計算),該節點就可能無法從它們那兒較穩定地抓取視頻流,從而導致卡頓、頻繁緩衝等不良用戶體驗。



爲了解決這個問題,Theta 設計並實現了一個引導服務器網絡(Tracker server network)和播放器客戶端智能(Player client-side intelligence)相結合的獨特策略。簡單而言,引導服務器會爲播放器客戶端提供高層指引(例如提供候選節點列表)幫助其找到候選的臨近節點。播放器客戶端則實現了一套考慮了多種因素的過濾算法以定位最優臨近節點。

構建 Theta 協議:第二部分

引導服務器網絡(Tracker Server Network)

引導服務器網絡是一個去中心化的網絡,可由使用 Theta 網絡的視頻流媒體網站及 Theta 視頻分發社區維護。他們爲播放器客戶端提供候選節點引導。




 爲了給每一個客戶端提供一個候選對等節點名單,引導服務器在每一個節點加入分發網絡時記錄其位置信息,包括 IP 地址、經緯度,以及一系列其它參數。有了這些信息,服務器就可以在空間數據庫中管理節點。Theta 的空間數據庫經過特殊優化,可以存儲和查詢代表地理空間物體的數據。當新的節點加入網絡時,服務器可以進行空間查詢,迅速、高效地獲得一張附近候選節點的名單。



正如之前提到的,對等節點隨時有可能離開網絡,因而引導服務器必須知道哪些節點處在活躍狀態。要實現這個目的,活躍的對等節點必須和服務器建立 Socket 連接,並連續向服務器發送心跳信號(Heartbeat signal)。如果服務器在一段時間內沒有接收到心跳信號,就可以判定該對等節點已經離開網絡,並對空間數據庫進行相應的更新。



值得注意的是,兩個對等節點的“距離”是以兩者之間的路由跳轉次數來衡量的,並不是指兩者的地理距離。網絡距離和地理距離通常是高度關聯的,卻不能簡單畫上等號。舉例來說,兩臺共處一室的電腦可能連接着不同的互聯網服務提供商(ISP),兩者之間的連接可能存在多次跳轉。因此,除了地理信息外,引導服務器也會用已知 IP 地址之間的關聯度和連接歷史數據來分析和實時選擇臨近候選節點。舉例來說,空間查詢後的候選節點還需要進行第二輪篩選,從而剔除那些與觀衆使用不同 ISP 的節點。

智能播放器客戶端

每一個播放器客戶端都能承擔視頻播放或緩存節點的角色,也可以同時扮演兩者。客戶端連入 Theta 網絡後即可從引導服務器獲得一份候選節點名單。緊接着,該節點又會進行速度測試和可用性測試,使名單進一步縮小,只留下具有最優性能和最可靠連接的節點,從而穩定、持續地傳遞視頻流片段。在進行流媒體播放的同時,客戶端會反覆進行速度測試和可用性測試,以持續優化臨近節點名單。

構建 Theta 協議:第二部分

爲避免服務質量(QoS)下降,本地緩存管理尤其重要。客戶端播放器設有本地緩存,對已下載的流媒體數據進行緩衝。一旦已緩存的流媒體數據的長度低於某個設定的極限,播放器就會訪問附近的節點,看看是否有自己需要的視頻流片段。如果附近的節點都沒有所需的片段,播放器就會從 CDN 網絡獲取數據。爲獲得儘可能好的服務質量,在播放流媒體時,播放器會定時從引導服務器上獲取更新後的候選節點名單。



我們即將發佈的第一版客戶端視頻播放器基於 JavaScript/HTML5 實現,使用 WebRTC 協議在對等節點之間傳遞視頻。基於 JavaScript 的播放器易於集成整合,流媒體網站和平臺只需在它們的網頁裏嵌入播放器,便可讓其數以百萬計的用戶即刻使用 Theta 去中心化網絡觀看視頻,並獲得帶寬公享的代幣鼓勵。這大大降低了 Theta 網格流媒體技術推廣的阻力。



Theta 也計劃支持桌面和移動客戶端。桌面端 APP 有着 web/HTML5 播放器所沒有的優勢,就算終端用戶並沒有在觀看視頻流,桌面客戶端也可以在後臺運行,支持視頻流接力(在用戶許可的前提下)。另外,Theta 還在研究專門爲流媒體接力和轉播而設計的硬件、物聯網設備及相關方案。這些設備有可能提供更好的可用性和帶寬。



我希望這篇文章能讓讀者對 Theta 的混合網格流媒體技術有所瞭解。在接下來的文章中,我們將會繼續深入介紹流媒體與區塊鏈技術的結合,討論如何透明、高效地對視頻中繼緩存節點提供代幣獎勵的問題。請一定要密切關注我們!

THETA 團隊

期待您的反饋

點擊 “閱讀原文” 跳轉英文原文