1. 程式人生 > >音視訊即時通訊開發中使用P2P技術的好處

音視訊即時通訊開發中使用P2P技術的好處

在伺服器的配置檔案“AnyChatCoreServer.ini”中網路配置部分,“RoutingPolicy”欄位表示了P2P資料路由傳輸策略的配置資訊,可取值分別表示:

1 伺服器轉發模式, 所有資料傳輸均由伺服器轉發(禁止P2P);

2 P2P直傳模式,NAT穿透成功的使用者之間互傳,穿透失敗的使用者由伺服器轉發,該策略適用於區域網使用;(預設)

3 P2P路由模式,P2P網格傳輸,由伺服器以房間為單位,根據當前房間各使用者NAT穿透情況、網路頻寬等情況,動態生成一份網格路由表,流媒體資料按路由表傳輸,該策略適用於網際網路使用。(目前還處於測試階段)

一、伺服器轉發模式

該模式下所有資料均由伺服器轉發,客戶端之間不進行P2P網路連線和資料傳輸,適用於區域網頻寬充足、要求低延遲的應用場景,該模式下對伺服器的頻寬要求較高,但延遲較小。

伺服器轉發模式示例圖

二、P2P直傳模式

該模式下,客戶端之間會互相嘗試P2P連線,如果P2P連線成功,則資料走P2P通道傳輸,如果P2P連線失敗,則資料走伺服器轉發,該模式相對於“伺服器轉發模式”,將節約一部分伺服器端的網路頻寬,而且延遲也相對較低,適合於網際網路上同一個房間線上人數不多(少於10使用者)的應用場景,因為如果線上人數過多,將會造成使用者端的網路擁塞。舉一個極限情況下的例子:如果一個房間10個使用者,而且使用者之間P2P全部是可以連通的,則其中一人的資料需要複製9份,分別傳給其它9個使用者,這種情況下對伺服器幾乎無網路頻寬壓力,而使用者端的網路頻寬佔用卻很高。

P2P直傳模式示例圖

三、P2P路由模式

P2P路由模式是一種適用於大規模即時通訊應用(如同一個房間上百人的視訊聊天室、網路視訊線上互動直播等)的資料傳輸模式,目前在網路電視、線上直播等非實時性領域應用較多,其基本原理是資料從A使用者傳遞出來,傳到B使用者,然後B使用者再傳給C使用者,而不需要A使用者直接傳給C使用者。使用該模式將極大的優化網路頻寬壓力,讓資料走P2P傳輸,較少的佔用伺服器頻寬的同時,又不會阻塞使用者端的網路通道,但其副作用便是延遲的成倍增加。目前網路電視直播便是採用P2P路由模式,但是在播放前均會緩衝30s-60s的資料,然後才開始播放,目前國內很少有產品能實現即時通訊領域應用P2P路由模式,AnyChat便首開先河,在國內率先推出及時通訊領域的P2P路由模式應用,將延遲控制在1-3s,該項技術的成功應用,將使得AnyChat的核心競爭力更加增強。

P2P路由模式示例圖

AnyChat針對可不經過伺服器中轉的音視訊應用,採用了P2P通訊技術,該技術的核心在於防火牆的穿越。使用P2P通訊技術,可以大大的減輕系統伺服器的負荷,併成幾何倍數的擴大系統的容量,且並不會因為線上使用者數太多而導致伺服器的網路阻塞。
      支援UPNP協議,自動搜尋網路中的UPNP裝置,主動開啟埠對映,提高P2P通訊效率。
      AnyChat採用佰銳科技擁有自主智慧財產權的“MultiPath”P2P網路路由演算法,將伺服器上的使用者組成一個P2P互通的網路,流媒體資料在使用者之間傳遞,減少對伺服器的網路頻寬佔用,實現了一個高效能P2P網路核心。
      傳統的P2P網路應用(如P2P線上影院)所採用的演算法需要長時間(如30秒,或更長)的緩衝,不適合即時通訊領域所要求的低延遲的目標,“MultiPath”P2P網路路由演算法便是針對即時通訊領域專門設計的P2P網路演算法,它保留了P2P網路原有的網路頻寬優勢,同時又極大的降低了中間的緩衝時間。

在P2P路由模式下,有兩項重要的配置引數“RoutingTTL”和“RoutingMTN”,客戶可根據應用進行調節,這兩項配置引數的詳細說明如下:

RoutingTTL:流媒體資料經過網格傳輸時的最大生存期,每經過一箇中間使用者轉發,生成期減一,為0將不再繼續轉發,該配置項當RoutingPolicy=3時有效,設定較大時,會較大的減輕伺服器頻寬壓力,但會帶來末端使用者接收資料延遲時間增加的後果。

RoutingMTN:流媒體資料經過網格傳輸時,中間節點最大包轉發路數(通俗的講,就是任意節點最多可服務的後續節點個數,如當設定為4時,表示任意使用者可向其它4個使用者轉發資料),該配置項當RoutingPolicy=3時有效,設定較大時,會較大的減輕伺服器頻寬壓力,但會佔用使用者較多的出口頻寬(因為需要向其它使用者轉發資料),當用戶本身網路狀況較差時,會影響後續使用者的接收效果。