在視頻會(huì)議軟件的開(kāi)發(fā)中,我們需要考慮實(shí)時(shí)、大流量的傳輸方式,因此其數(shù)據(jù)傳輸模式值得我們?nèi)パ芯。一般?lái)看視頻會(huì)議的數(shù)據(jù)可以分為三種,一種是語(yǔ)音、文檔共享等實(shí)時(shí)性較強(qiáng)但數(shù)據(jù)量較少的數(shù)據(jù);另外一種是大流量但不需要實(shí)時(shí)的數(shù)據(jù),如文件傳輸?shù)臄?shù)據(jù);最后一種是視頻、遠(yuǎn)程桌面等大流量且實(shí)時(shí)性很強(qiáng)的數(shù)據(jù)。對(duì)于這三種不同的數(shù)據(jù),我們可以采用不同的傳輸方式來(lái)達(dá)到更高的效率。在視頻會(huì)議軟件中,我們主要有三種不同的傳輸模式:
1、 TCP傳輸模式
TCP傳輸模式是通過(guò)TCP協(xié)議來(lái)進(jìn)行數(shù)據(jù)的傳輸,其傳輸方式是可靠的傳輸方式,但TCP建立傳輸過(guò)程需要進(jìn)行三次握手,而且在傳輸過(guò)程中,需要進(jìn)行數(shù)據(jù)的確認(rèn)過(guò)程,因此數(shù)據(jù)的傳輸相對(duì)UDP模式來(lái)說(shuō),傳輸?shù)膶?shí)時(shí)性不強(qiáng),且遇到網(wǎng)絡(luò)堵塞的情況下,TCP模式不能進(jìn)行有效的傳輸控制,通過(guò)不斷的重發(fā)數(shù)據(jù),會(huì)造成網(wǎng)絡(luò)更為堵塞,因此在視頻會(huì)議軟件的開(kāi)發(fā)中,我們不能用TCP的傳輸模式來(lái)傳輸實(shí)時(shí)的數(shù)據(jù),而一些實(shí)時(shí)性不強(qiáng)的數(shù)據(jù),如文件數(shù)據(jù)可以用TCP的模式進(jìn)行傳輸。
2、 UDP+RTP傳輸模式
UDP+RTP傳輸模式是通過(guò)UDP數(shù)據(jù)包進(jìn)行RTP數(shù)據(jù)封裝傳輸,單純的UDP傳輸方式不能直接應(yīng)用于視頻會(huì)議軟件的開(kāi)發(fā),雖然UDP可以實(shí)時(shí)地傳輸數(shù)據(jù),但其UDP傳輸是基于無(wú)連接、非可靠的傳輸方式,其數(shù)據(jù)不能保證及時(shí)、按順序地到達(dá),因此直接用UDP傳輸方式很難進(jìn)行數(shù)據(jù)的丟包控制。通過(guò)UDP+RTP的傳輸模式,不僅可以實(shí)時(shí)的傳輸,還能通過(guò)RTCP實(shí)現(xiàn)對(duì)數(shù)據(jù)的傳輸控制。我們可以舉個(gè)例子,在視頻會(huì)議軟件的音頻傳輸中,我們可以UDP+RTP的模式進(jìn)行傳輸,當(dāng)出現(xiàn)數(shù)據(jù)包的丟失的時(shí)候,該方式能很容易檢測(cè)到丟包的數(shù)據(jù),從而通過(guò)音頻編碼的錯(cuò)誤掩飾來(lái)進(jìn)行數(shù)據(jù)的還原。
3、 利用傳輸庫(kù)模式
雖然UDP+RTP模式能達(dá)到實(shí)時(shí)的傳輸,也能進(jìn)行丟包的檢測(cè)控制,但該模式很難進(jìn)行數(shù)據(jù)的重發(fā),對(duì)于一些需要實(shí)時(shí)且可靠的數(shù)據(jù),也不能采用該方式,我們可以采用一些開(kāi)源的傳輸庫(kù),這些開(kāi)源的傳輸庫(kù)可以把上面的TCP模式、UDP+RTP模式兩者的優(yōu)點(diǎn)結(jié)合起來(lái),它既有實(shí)時(shí)的傳輸性又有可靠的傳輸性,非常適合我們進(jìn)行可靠的實(shí)時(shí)的大流量的數(shù)據(jù)傳輸,這些傳輸庫(kù)包括有比較著名的UDT傳輸庫(kù)(可靠的UDP傳輸方式)、Ranknet傳輸庫(kù)等,這些傳輸庫(kù)是建立在UDP的基礎(chǔ)上的數(shù)據(jù)傳輸,但其實(shí)現(xiàn)了UDP的可靠傳輸。因此直接利用這些開(kāi)源的傳輸庫(kù)進(jìn)行數(shù)據(jù)的傳輸比我們直接利用TCP或者UDP+RTP傳輸模式更為有效。
綜上所述,我們?cè)谝曨l會(huì)議軟件的開(kāi)發(fā)中,對(duì)不同的數(shù)據(jù)可以采用不同的傳輸方式,一些大流量非實(shí)時(shí)的數(shù)據(jù),我們可以采用TCP的傳輸模式;一些實(shí)時(shí)非大流量的數(shù)據(jù),我們可以采用UDP+RTP的傳輸模式;對(duì)于實(shí)時(shí)、大流量且需要保證可靠性的數(shù)據(jù),我們可以利用開(kāi)源的傳輸庫(kù)進(jìn)行數(shù)據(jù)的傳輸,來(lái)保證數(shù)據(jù)的實(shí)時(shí)和可靠性。