【視頻直播場景下P2P對等網技術①】挑戰與形式化分析

【視頻直播場景下P2P對等網技術①】挑戰與形式化分析

我在熊貓直播親自主持的最後一個項目,就是要試圖通過P2P對等網技術來切實降低互聯網視頻直播的流量成本,對此有一些數據上&經驗的積累和檢驗。很遺憾沒有機會看到最後的結果,但也希望我們的經驗能夠幫助這個行業本身的成長,所以在此分享給大家。接下來的幾篇文章,我將就P2P的設計、驗證與經驗,與大家一一分享。

在這裏插入圖片描述
讓我們來設想一下場景:某賽事總決賽,數百萬人同時在看比賽直播,這時一個新的觀衆剛打開直播,那麼從這幾百萬人中選取哪些來建立P2P連接來拉直播流比較高效穩定呢?

接下來我們來分析一下這裏面的約束條件:

  1. 該對等網絡規模很大,有數百萬個節點;
  2. 直播的業務場景表示每個正常觀看的節點獲取到的信息是相同的(不同於點播,直播視頻流的時間軸是對齊的,至少是我們希望對齊的)(考慮到容錯機制,至少是等價的);
  3. 每個節點的上行帶寬是有限的,也就是說它能分享出去的流的份數是有限的;
  4. 每個節點都有一定概率隨時掉線,爲了增加視頻流的穩定性,拉流應該有一定的冗餘度
  5. 我們需要知道這個新的節點與網絡中另外數百萬個節點建立連接的性能和成本

基於上面的條件,我們做形式化定義如下:

  1. 設圖GG是一個有序三元組, G=(V(G),E(G),ωG)G=(V(G),E(G), \omega_G)
  2. 其中V(G)V(G)是圖G的頂點集 ,內部的元素稱爲圖GG的頂點(Vertex)
  3. E(G)E(G)是與V(G)V(G)不相交的邊集,內部的元素稱爲圖GG的邊(Edge)
  4. vV\forall v \in V, 記do(v)d_o(v)表示以頂點vv爲起點的邊的條數; 記di(v)d_i(v)表示以頂點vv爲終點的邊的條數

基於上面分析,約束條件的形式化描述爲:

  1. vV,di(v)A1di(v)A2\forall v \in V, d_i(v)\geq A_1 且 d_i(v)\leq A_2,即要滿足視頻流正常播放,需要同時有至少A1A_1路流。同時,記ρ=A2A1\rho=\frac{A_2}{A_1}爲系統設計冗餘度
  2. vV,do(v)Bv\forall v \in V, \exists d_o(v)\leq B_v,等價於節點vv最大上行帶寬。
  3. ωG\omega_G是聯通性能函數,(u,v)E,ω(u,v)R+\forall (u,v)\in E, \exists \omega(u,v)\in R^+,稱爲這條邊的聯通性能。

帶入場景,假設節點FF加入目標對等網絡前一刻的網絡有mm個頂點,則此時的核心問題是在mm個頂點中選A2A_2個符合約束條件的且總聯通性能1A2ω(v)\sum_1^{A_2}\omega(v)最大的組合給新加入的節點FF拉流。

在這裏插入圖片描述

順着這個場景分析,我們看看要讓新加入的節點FF獲得最好的收視效果,還需要在解決哪些核心問題。

  1. 對於(u,v)E\forall (u,v) \in E,如何度量其聯通性能,也即ω(u,v)\omega(u,v)是一個挑戰。這需要了解運營商複雜的網絡拓撲才能預測。
  2. 對於G={V,E,Ω}G=\{V,E,\Omega\},令m=Vm=|V|, 則對於新加入的節點FF來說,有CmA2C_m^{A_2}種可能的組合。考慮到mm可能會比較大(幾百萬),所以對於每個新節點的加入,計算量還是比較大的。

基於業務場景,考慮到GG中業已建立的連接不能因爲新節點的加入而重構,可見對於整個GG來說,新節點FF按照最佳策略加入後形成的GG'也是全局最優的,這顯然符合貪心算法的構造過程。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章