主要是開發(fā)音視頻、數(shù)據(jù)的傳輸?shù)能浖谶@些開發(fā)過程中,最核心的模塊是傳輸模塊,傳輸模塊的性能直接影響到視頻會(huì)議的最終質(zhì)量,因此傳輸模塊的選擇在當(dāng)中尤其重要。傳輸模塊在開發(fā)過程中,由于考慮到QOS的影響,一般都會(huì)使用數(shù)據(jù)重發(fā)的技術(shù),因此傳輸模塊以及成為視頻會(huì)議底層開發(fā)的一個(gè)重點(diǎn),我們開發(fā)的傳輸模塊,可以選擇用TCP、UDP直接進(jìn)行開發(fā)或者利用開源的傳輸庫,因?yàn)橐恍╅_源傳輸庫以及比較成熟,直接拿來用就可以,如果自己開發(fā)傳輸模塊,估計(jì)也是一個(gè)巨大工程。現(xiàn)在我們介紹一下傳輸模塊的開發(fā)選擇。
1. 利用TCP進(jìn)行開發(fā)
使用TCP直接進(jìn)行傳輸模塊的開發(fā),在傳輸過程中數(shù)據(jù)不會(huì)丟包,我們可以采用OICP的完成端口來進(jìn)行通訊,其優(yōu)點(diǎn)是QOS有保證、支持大容量的數(shù)據(jù)并非,缺點(diǎn)是開發(fā)周期長(zhǎng),數(shù)據(jù)建立連接比一般UDP要長(zhǎng)很多,而且資源占用也比一般UDP傳輸?shù)囊蟆?/span>
2. 利用UDP進(jìn)行開發(fā)
UPD是一種數(shù)據(jù)報(bào)傳輸方式,其數(shù)據(jù)在傳輸過程中不能保證數(shù)據(jù)的可靠性,因此用UPD進(jìn)行傳輸模塊的開發(fā)還要加入自己的QOS的丟包處理和自動(dòng)重發(fā)的功能。其優(yōu)點(diǎn)是數(shù)據(jù)傳輸較TCP快,缺點(diǎn)是開發(fā)周期長(zhǎng)。
3. 利用UDT庫進(jìn)行開發(fā)
UDT建于之上,并引入新的擁塞控制和數(shù)據(jù)可靠性控制機(jī)制。UDT是面向連接的雙向的應(yīng)用層協(xié)議。它同時(shí)支持可靠的數(shù)據(jù)流傳輸和部分可靠的數(shù)據(jù)報(bào)傳輸。UDT的特點(diǎn)是不用進(jìn)行開發(fā),直接利用庫的發(fā)送函數(shù)就可以實(shí)現(xiàn)可靠的數(shù)據(jù)傳輸,缺點(diǎn)是模型較簡(jiǎn)單,沒有OICP完成端口支持大容量的數(shù)據(jù)。
4. 利用Ranknet庫進(jìn)行開發(fā)
Raknet也是一個(gè)基于UDP網(wǎng)絡(luò)傳輸協(xié)議的C++網(wǎng)絡(luò)庫,通過庫的函數(shù)實(shí)現(xiàn)高效的網(wǎng)絡(luò)傳輸服務(wù)。其具體應(yīng)用在一些游戲領(lǐng)域,Radnet可以實(shí)現(xiàn)在兩個(gè)程序之間每秒傳輸25,000條信息;其優(yōu)點(diǎn)是不用進(jìn)行開發(fā),直接調(diào)用函數(shù)即可,缺點(diǎn)是大數(shù)據(jù)量在公網(wǎng)傳輸會(huì)由于網(wǎng)絡(luò)堵塞而造成的流量控制失敗的情況。
綜上所述,的傳輸模塊開發(fā),傳輸高是用UDP開發(fā),但開發(fā)周期較長(zhǎng)。用Raknet開發(fā)的傳輸模塊不能適應(yīng)大數(shù)據(jù)的傳輸,UDT在大數(shù)據(jù)量的傳輸有較好的優(yōu)勢(shì),缺點(diǎn)是支持的并發(fā)不是很多。但如果經(jīng)過修改后,UDT也能進(jìn)行大容量的并發(fā),因此綜合考慮用UDT是視頻會(huì)議傳輸模塊的。