音视频即时通讯开发中使用P2P技术的好处
在服務(wù)器的配置文件“AnyChatCoreServer.ini”中網(wǎng)絡(luò)配置部分,“RoutingPolicy”字段表示了P2P數(shù)據(jù)路由傳輸策略的配置信息,可取值分別表示:
1 服務(wù)器轉(zhuǎn)發(fā)模式,?所有數(shù)據(jù)傳輸均由服務(wù)器轉(zhuǎn)發(fā)(禁止P2P);
2 P2P直傳模式,NAT穿透成功的用戶之間互傳,穿透失敗的用戶由服務(wù)器轉(zhuǎn)發(fā),該策略適用于局域網(wǎng)使用;(默認(rèn))
3 P2P路由模式,P2P網(wǎng)格傳輸,由服務(wù)器以房間為單位,根據(jù)當(dāng)前房間各用戶NAT穿透情況、網(wǎng)絡(luò)帶寬等情況,動態(tài)生成一份網(wǎng)格路由表,流媒體數(shù)據(jù)按路由表傳輸,該策略適用于互聯(lián)網(wǎng)使用。(目前還處于測試階段)
?
一、服務(wù)器轉(zhuǎn)發(fā)模式
該模式下所有數(shù)據(jù)均由服務(wù)器轉(zhuǎn)發(fā),客戶端之間不進(jìn)行P2P網(wǎng)絡(luò)連接和數(shù)據(jù)傳輸,適用于局域網(wǎng)帶寬充足、要求低延遲的應(yīng)用場景,該模式下對服務(wù)器的帶寬要求較高,但延遲較小。
?
二、P2P直傳模式
該模式下,客戶端之間會互相嘗試P2P連接,如果P2P連接成功,則數(shù)據(jù)走P2P通道傳輸,如果P2P連接失敗,則數(shù)據(jù)走服務(wù)器轉(zhuǎn)發(fā),該模式相對于“服務(wù)器轉(zhuǎn)發(fā)模式”,將節(jié)約一部分服務(wù)器端的網(wǎng)絡(luò)帶寬,而且延遲也相對較低,適合于互聯(lián)網(wǎng)上同一個房間在線人數(shù)不多(少于10用戶)的應(yīng)用場景,因?yàn)槿绻诰€人數(shù)過多,將會造成用戶端的網(wǎng)絡(luò)擁塞。舉一個極限情況下的例子:如果一個房間10個用戶,而且用戶之間P2P全部是可以連通的,則其中一人的數(shù)據(jù)需要復(fù)制9份,分別傳給其它9個用戶,這種情況下對服務(wù)器幾乎無網(wǎng)絡(luò)帶寬壓力,而用戶端的網(wǎng)絡(luò)帶寬占用卻很高。
?
三、P2P路由模式
P2P路由模式是一種適用于大規(guī)模即時通訊應(yīng)用(如同一個房間上百人的視頻聊天室、網(wǎng)絡(luò)視頻在線互動直播等)的數(shù)據(jù)傳輸模式,目前在網(wǎng)絡(luò)電視、在線直播等非實(shí)時性領(lǐng)域應(yīng)用較多,其基本原理是數(shù)據(jù)從A用戶傳遞出來,傳到B用戶,然后B用戶再傳給C用戶,而不需要A用戶直接傳給C用戶。使用該模式將極大的優(yōu)化網(wǎng)絡(luò)帶寬壓力,讓數(shù)據(jù)走P2P傳輸,較少的占用服務(wù)器帶寬的同時,又不會阻塞用戶端的網(wǎng)絡(luò)通道,但其副作用便是延遲的成倍增加。目前網(wǎng)絡(luò)電視直播便是采用P2P路由模式,但是在播放前均會緩沖30s-60s的數(shù)據(jù),然后才開始播放,目前國內(nèi)很少有產(chǎn)品能實(shí)現(xiàn)即時通訊領(lǐng)域應(yīng)用P2P路由模式,AnyChat便首開先河,在國內(nèi)率先推出及時通信領(lǐng)域的P2P路由模式應(yīng)用,將延遲控制在1-3s,該項(xiàng)技術(shù)的成功應(yīng)用,將使得AnyChat的核心競爭力更加增強(qiáng)。
?
AnyChat針對可不經(jīng)過服務(wù)器中轉(zhuǎn)的音視頻應(yīng)用,采用了P2P通信技術(shù),該技術(shù)的核心在于防火墻的穿越。使用P2P通信技術(shù),可以大大的減輕系統(tǒng)服務(wù)器的負(fù)荷,并成幾何倍數(shù)的擴(kuò)大系統(tǒng)的容量,且并不會因?yàn)樵诰€用戶數(shù)太多而導(dǎo)致服務(wù)器的網(wǎng)絡(luò)阻塞。
? ? ? 支持UPNP協(xié)議,自動搜索網(wǎng)絡(luò)中的UPNP設(shè)備,主動打開端口映射,提高P2P通信效率。
? ? ? AnyChat采用佰銳科技擁有自主知識產(chǎn)權(quán)的“MultiPath”P2P網(wǎng)絡(luò)路由算法,將服務(wù)器上的用戶組成一個P2P互通的網(wǎng)絡(luò),流媒體數(shù)據(jù)在用戶之間傳遞,減少對服務(wù)器的網(wǎng)絡(luò)帶寬占用,實(shí)現(xiàn)了一個高性能P2P網(wǎng)絡(luò)核心。
? ? ? 傳統(tǒng)的P2P網(wǎng)絡(luò)應(yīng)用(如P2P在線影院)所采用的算法需要長時間(如30秒,或更長)的緩沖,不適合即時通訊領(lǐng)域所要求的低延遲的目標(biāo),“MultiPath”P2P網(wǎng)絡(luò)路由算法便是針對即時通訊領(lǐng)域?qū)iT設(shè)計的P2P網(wǎng)絡(luò)算法,它保留了P2P網(wǎng)絡(luò)原有的網(wǎng)絡(luò)帶寬優(yōu)勢,同時又極大的降低了中間的緩沖時間。
在P2P路由模式下,有兩項(xiàng)重要的配置參數(shù)“RoutingTTL”和“RoutingMTN”,客戶可根據(jù)應(yīng)用進(jìn)行調(diào)節(jié),這兩項(xiàng)配置參數(shù)的詳細(xì)說明如下:
RoutingTTL:流媒體數(shù)據(jù)經(jīng)過網(wǎng)格傳輸時的最大生存期,每經(jīng)過一個中間用戶轉(zhuǎn)發(fā),生成期減一,為0將不再繼續(xù)轉(zhuǎn)發(fā),該配置項(xiàng)當(dāng)RoutingPolicy=3時有效,設(shè)置較大時,會較大的減輕服務(wù)器帶寬壓力,但會帶來末端用戶接收數(shù)據(jù)延遲時間增加的后果。
RoutingMTN:流媒體數(shù)據(jù)經(jīng)過網(wǎng)格傳輸時,中間節(jié)點(diǎn)最大包轉(zhuǎn)發(fā)路數(shù)(通俗的講,就是任意節(jié)點(diǎn)最多可服務(wù)的后續(xù)節(jié)點(diǎn)個數(shù),如當(dāng)設(shè)置為4時,表示任意用戶可向其它4個用戶轉(zhuǎn)發(fā)數(shù)據(jù)),該配置項(xiàng)當(dāng)RoutingPolicy=3時有效,設(shè)置較大時,會較大的減輕服務(wù)器帶寬壓力,但會占用用戶較多的出口帶寬(因?yàn)樾枰蚱渌脩艮D(zhuǎn)發(fā)數(shù)據(jù)),當(dāng)用戶本身網(wǎng)絡(luò)狀況較差時,會影響后續(xù)用戶的接收效果。
總結(jié)
以上是生活随笔為你收集整理的音视频即时通讯开发中使用P2P技术的好处的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 通过ToStringBuilder实现t
- 下一篇: 需求分析报告模板(免费)