音视频即时通讯开发中使用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路由模式是一種適用于大規模即時通訊應用(如同一個房間上百人的視頻聊天室、網絡視頻在線互動直播等)的數據傳輸模式,目前在網絡電視、在線直播等非實時性領域應用較多,其基本原理是數據從A用戶傳遞出來,傳到B用戶,然后B用戶再傳給C用戶,而不需要A用戶直接傳給C用戶。使用該模式將極大的優化網絡帶寬壓力,讓數據走P2P傳輸,較少的占用服務器帶寬的同時,又不會阻塞用戶端的網絡通道,但其副作用便是延遲的成倍增加。目前網絡電視直播便是采用P2P路由模式,但是在播放前均會緩沖30s-60s的數據,然后才開始播放,目前國內很少有產品能實現即時通訊領域應用P2P路由模式,AnyChat便首開先河,在國內率先推出及時通信領域的P2P路由模式應用,將延遲控制在1-3s,該項技術的成功應用,將使得AnyChat的核心競爭力更加增強。
?
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時有效,設置較大時,會較大的減輕服務器帶寬壓力,但會占用用戶較多的出口帶寬(因為需要向其它用戶轉發數據),當用戶本身網絡狀況較差時,會影響后續用戶的接收效果。
總結
以上是生活随笔為你收集整理的音视频即时通讯开发中使用P2P技术的好处的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 通过ToStringBuilder实现t
- 下一篇: 前端学习(2877):原生js模块化+绘