RUTP協(xié)議是通過UDP數(shù)據(jù)包來實現(xiàn)數(shù)據(jù)可靠傳輸?shù)膮f(xié)議,其協(xié)議是建立在無連接的UDP協(xié)議基礎(chǔ)上的應用層協(xié)議,主要通過發(fā)送確認包給接受者,然后對數(shù)據(jù)包進行丟包重發(fā),實現(xiàn)數(shù)據(jù)的可靠傳輸。在視頻會議系統(tǒng)的開發(fā)當中,需要處理實時的音、視頻及其他的一些數(shù)據(jù),RUTP協(xié)議怎樣用于我們的視頻會議系統(tǒng)的開發(fā)呢?首先,我們先要了解RUTP協(xié)議的特點,然后我們分析一下在網(wǎng)絡視頻會議系統(tǒng)中的哪些數(shù)據(jù)傳輸可以通過RUTP協(xié)議進行,最后我們列舉一下幾個重要的開源RUTP庫。
1、RUTP協(xié)議特點
RUTP協(xié)議主要是解決TCP協(xié)議和UDP協(xié)議存在的弊端,TCP協(xié)議是面對有連接的傳輸協(xié)議,其傳輸?shù)臄?shù)據(jù)通過三次握手和滑動窗口協(xié)議實現(xiàn)了數(shù)據(jù)的可靠傳輸,但TCP協(xié)議由于需要三次握手,因此其傳輸實時性比較差,很難應用于實時的數(shù)據(jù)傳輸;UDP協(xié)議剛好于TCP協(xié)議相反,UDP協(xié)議是面向無連接的傳輸協(xié)議,數(shù)據(jù)只是在不斷地進行發(fā)送,而沒有對數(shù)據(jù)進行丟包和排序處理,不能進行網(wǎng)絡的QOS保證,因此UDP協(xié)議不能保持數(shù)據(jù)的可靠性。而RUTP協(xié)議能在TCP協(xié)議和UDP協(xié)議中尋求了最好的平衡點,它主要是通過滑動窗口、丟包重發(fā)、擁塞控制等算法,實現(xiàn)數(shù)據(jù)的實時可靠傳輸,因此RUTP既能實現(xiàn)數(shù)據(jù)的實時傳輸,又能保證數(shù)據(jù)的可靠性。由此可見,在我們的視頻會議系統(tǒng)的開發(fā)過程中,使用RUTP協(xié)議進行數(shù)據(jù)傳輸,比我們直接單純用TCP協(xié)議或者UDP協(xié)議要好。
2、在視頻會議系統(tǒng)中的應用
RUTP協(xié)議有那么多好處,我們是不是在視頻會議系統(tǒng)的開發(fā)中,全部的數(shù)據(jù)都要用RUTP協(xié)議進行傳輸呢?答案是否定的,RUTP協(xié)議只是在TCP協(xié)議和UTP協(xié)議中尋求最好的平衡點,但其可靠性和實時性都處于兩者的中間,比如可靠性,RUTP的在正常的網(wǎng)絡條件下,數(shù)據(jù)是可靠的,但如果在極端的網(wǎng)絡條件下,其可靠性不如TCP協(xié)議的三次握手和滑動窗口協(xié)議;而在實時性方面,RUTP協(xié)議須要對數(shù)據(jù)進行帶外數(shù)據(jù)的控制,其實時性比無連接UDP協(xié)議要低許多。因此在視頻會議系統(tǒng)中,數(shù)據(jù)如果符合既要保持實時性和可靠性,才需要使用到RUTP協(xié)議,這些數(shù)據(jù)一般是音頻、視頻及屏幕共享等數(shù)據(jù),而一些如控制信令、文本信息等數(shù)據(jù),其數(shù)據(jù)只要求可靠性而不要求實時性,一般建議使用TCP協(xié)議來進行傳輸。
3、開源的RUTP庫
在開源的項目當中,有幾個非常值得我們關(guān)注的RUTP開源庫,利用這些RUTP庫,可以加快我們的視頻會議系統(tǒng)的開發(fā)進度,從而迅速實現(xiàn)音、視頻的實時可靠的傳輸。在RUTP開源庫中,最著名的是UDT開源庫,UDT傳輸庫主要是用RUTP協(xié)議來實現(xiàn)數(shù)據(jù)的實時可靠傳輸,它的數(shù)據(jù)傳輸效率非常高,在網(wǎng)絡條件較好的情況下能傳輸流量非常大的可靠性實時數(shù)據(jù),但在網(wǎng)絡堵塞非常嚴重的情況下,UDP還會一直傳輸數(shù)據(jù),會導致網(wǎng)絡越來越堵塞、數(shù)據(jù)可靠性不能保證的情況發(fā)送。因此我們需要對網(wǎng)絡進行判斷,如果出現(xiàn)網(wǎng)絡堵塞的情況下,就不再使用UDT庫進行數(shù)據(jù)傳輸,因此在網(wǎng)絡堵塞情況下,還采用它會造成網(wǎng)絡的更堵塞的情況。另外一個RUTP開源庫是Raknet,Raknet開源庫是一個游戲引擎,主要是應用于游戲中的音頻數(shù)據(jù)的實時傳輸,因此Raknet庫也非常適合于視頻會議系統(tǒng)的實時數(shù)據(jù)傳輸。但Raknet庫也存在一些問題,經(jīng)過在不同的網(wǎng)絡條件下的測試,當在網(wǎng)絡條件比較差的情況下,其數(shù)據(jù)傳輸較慢,一些數(shù)據(jù)不能實時地達到接送方,而Raknet庫的版本較多,不同的版本其傳輸效率都不一樣,因此我們需要對這些庫進行實際的測試。綜合這兩個RUTP開源庫,它們在低帶寬的情況下,都存在數(shù)據(jù)越來越堵塞的情況下,因此我們在視頻會議系統(tǒng)中利用這些RUTP庫,需要了解這些庫的優(yōu)點和缺點,在網(wǎng)絡條件較差的情況下,要及時進行數(shù)據(jù)流量控制,保證數(shù)據(jù)的實時可靠的傳輸。