TCP/IP是目前應用最廣泛的Internet通信協(xié)議,各種通信媒介都被用來(lái)傳輸IP數據,由于衛星通信具有覆蓋而廣、組網(wǎng)靈活、建網(wǎng)快和不受地理環(huán)境限制等優(yōu)點(diǎn),因此Internet與衛星的聯(lián)姻成為必然。隨著(zhù)Internet的迅猛發(fā)展和多媒體通信技術(shù)的進(jìn)步,網(wǎng)絡(luò )業(yè)務(wù)不僅支持文字、語(yǔ)音等慕本業(yè)務(wù),靜態(tài)圖像、動(dòng)態(tài)圖像、音頻、視頻復合等多媒體業(yè)務(wù)的需求也逐漸增多。IP技術(shù)是寬帶網(wǎng)絡(luò )的骨干技術(shù),基于IP的開(kāi)發(fā)具有普遍性。而且通過(guò)協(xié)議的增強,IP網(wǎng)絡(luò )適合作為廣泛的多媒體通信介質(zhì)。 1 系統構成 整個(gè)傳輸系統由遠程現場(chǎng)(外地實(shí)驗場(chǎng)地等)和視頻演示中心組成,遠程現場(chǎng)的圖像通過(guò)寬帶衛星IP網(wǎng)絡(luò )傳回視頻演示中心進(jìn)行顯示,可供監控及觀(guān)看。其中衛星IP網(wǎng)絡(luò )可提供單向的2 Mbit/s高速信道,雙向9.6 khit/s低速信道。系統結構如圖1所示。 2 視頻壓縮算法的選擇 由攝像頭或其他視頻采集設備采到的視頻原始信息帶寬很大,一般的傳輸信道很難滿(mǎn)足要求,必須對視頻信息進(jìn)行壓縮編碼。對視頻數據進(jìn)行壓縮算法有很多,有的著(zhù)重速度,有的著(zhù)重壓縮比。常用的視頻壓縮標準有H.263,M-JPEG,MPEG-1,MPEG-4等。MPEG-4是MPEG(活動(dòng)圖像專(zhuān)家組)在1999年制定的一個(gè)國際標準,名稱(chēng)為“甚低速率視聽(tīng)編碼”,是針對低速率(小于640 kbit/s)下的視頻、音頻編碼和交互播放開(kāi)發(fā)的算法和工具,其顯著(zhù)特點(diǎn)是基于內容的編碼,更加注重多媒體系統的交互性、操作性和靈活性。與其他壓縮標準相比,MPEG-4具有節約存儲空間、占用網(wǎng)絡(luò )傳輸帶寬少、錯誤恢復能力強、圖像質(zhì)量高等優(yōu)點(diǎn)。本方案選擇的視頻壓縮算法就為MPEG-4標準。 3 視頻傳輸協(xié)議 為了保證數字視頻網(wǎng)絡(luò )傳輸的實(shí)時(shí)性和圖像的質(zhì)量,傳輸層協(xié)議的選擇是整個(gè)設計和實(shí)現的關(guān)鍵。Internet在IP層上使用兩種傳輸協(xié)議:一種是TCP(傳輸控制協(xié)議),它是面向連接的網(wǎng)絡(luò )協(xié)議;另一種是UDP(用戶(hù)數據報協(xié)議),它是無(wú)連接的網(wǎng)絡(luò )協(xié)議。 TCP/IP最初是為提供非實(shí)時(shí)數據業(yè)務(wù)而設計的。IP負責主機之間的數據傳輸,不進(jìn)行檢錯和糾錯。因此,經(jīng)常發(fā)生數據丟失或失序現象。為保證數據的可靠傳輸,人們將TCP用于IP數據的傳輸,以提高接收端的檢錯和糾錯能力。當檢測到數據包丟失或錯誤時(shí),就會(huì )要求發(fā)送端重新發(fā)送,這樣就不可避免地引起了傳輸延時(shí)和耗用網(wǎng)絡(luò )的帶寬。鑒于TCP本身的重傳機制、擁塞控制機制、報頭長(cháng)且不提供時(shí)間戳及啟動(dòng)速度慢等特點(diǎn),用傳統的TCP/IP實(shí)現實(shí)時(shí)傳輸視頻數據是不適合的。為了實(shí)現音視頻數據的實(shí)時(shí)傳輸,需要尋求其他途徑。 本方案的視頻網(wǎng)絡(luò )傳輸協(xié)議結構如圖2所示。 從圖2可以看出,整個(gè)系統的通信功能建立在IP協(xié)議上。網(wǎng)絡(luò )層使用IP,為了實(shí)現通信,在網(wǎng)絡(luò )層之上分為連接控制和媒體數據傳輸兩大部分。為了使通信過(guò)程的建立更加可靠,連接控制部分使用TCP提供可靠的分組遞交,而媒體傳輸部分則使用UDP協(xié)議。 媒體數據傳輸部分使用UDP的理由是:TCP不適合網(wǎng)絡(luò )多媒體的實(shí)時(shí)傳輸;使用UDP不必與對方建立連接,因此在多點(diǎn)通信時(shí)不必管理過(guò)多的連接。 但是,由于UDP沒(méi)有差錯控制,屬于不可靠的分組遞交,這就意味著(zhù)可能會(huì )丟包,由于雙方?jīng)]有建立連接,所以發(fā)放無(wú)法知道對方的接收情況?赡苡捎诎l(fā)送過(guò)快,導致網(wǎng)絡(luò )堵塞,因而大量的數據包被延誤或丟失,或者對方根本就沒(méi)有收到任何數據包。為了避免這種情況,最好對方能夠向發(fā)送方發(fā)送一個(gè)反饋信息以報告其接收情況,必要時(shí)發(fā)送方要調整其數據處理方法或發(fā)送速率。例如,當發(fā)送方認為數據發(fā)送得太快,它可以調整圖像壓縮器的參數,以較大的量化誤差來(lái)降低圖像數據的速度。RTP(實(shí)時(shí)傳輸協(xié)議)和RTCP(實(shí)時(shí)傳輸控制協(xié)議)是IETF(Internet Engineer-ing Task Force)為實(shí)現上述目的而定義的兩個(gè)協(xié)議。所有的實(shí)時(shí)媒體數據都使用RTP協(xié)議進(jìn)行傳輸,RTCP協(xié)議提供接收方向發(fā)送方反饋信息的功能,它們都是基于UDP的。 RTP/RTCP是一種應用型的傳輸層協(xié)議,并不提供任何傳輸可靠性的保證和流量的擁塞控制機制。它是由IETF為音視頻的實(shí)時(shí)傳輸而設計的傳輸協(xié)議。RTP位于UDP之上,在功能上獨立于下面的傳輸層(UDP)和網(wǎng)絡(luò )層,但不能單獨作為一個(gè)層次存在,通常是利用低層的UDP對實(shí)時(shí)音視頻數據進(jìn)行多播或單播,從而實(shí)現多點(diǎn)或單點(diǎn)音視頻數據的傳輸。一般是在UDP數據包之前建立一個(gè)RTP包頭,其中包含一些保證數據實(shí)時(shí)連續性的信息(如序列號、時(shí)間戳等);提供時(shí)間信息和流同步。RTP本身不提供流量控制和擁塞控制功能。它靠一個(gè)專(zhuān)門(mén)的RTCP來(lái)實(shí)現。RTCP周期性地統計數據包傳輸時(shí)的丟失情況等信息,服務(wù)器根據這些反饋信息來(lái)制定流量控制的策略。改變傳輸碼率甚至負載類(lèi)型,大大提高了實(shí)時(shí)數據的傳輸性能。 UDP是一種無(wú)連接的數據報投遞服務(wù),雖然沒(méi)有TCP那么可靠,并且無(wú)法保證實(shí)時(shí)音視頻傳輸業(yè)務(wù)的QoS(服務(wù)質(zhì)量),需要RTCP實(shí)時(shí)監控數據傳輸和Qos,但是,由于UDP的傳輸延時(shí)低于TCP服務(wù)質(zhì)量,能與音頻和視頻流很好地匹配。因此,在實(shí)際應用中,RTP/RTCP/UDP用于音視頻媒體,而TCP用于數據和控制信令的傳輸。 4 衛星IP網(wǎng)絡(luò )的構成 利用TCP/IP協(xié)議,通過(guò)衛星網(wǎng)與IP網(wǎng)的結合實(shí)現數據傳輸,已成為衛星通信中的一個(gè)重要研究領(lǐng)域。但由于衛星網(wǎng)絡(luò )固有的一些特性,如長(cháng)延時(shí)、高誤碼率、網(wǎng)絡(luò )不對稱(chēng)性,都影響了TCP在高速數據傳輸中的性能。為提高衛星TCP的性能,人們提出了許多有效的解決方案,這些方案針對長(cháng)延時(shí)、高誤碼率、網(wǎng)絡(luò )不對稱(chēng)性帶來(lái)的不同影響,通過(guò)修改流量控制窗口以及改進(jìn)擁塞控制算法,實(shí)現了衛星TCP的高效傳輸。 衛星IP傳輸比較典型的一種解決方案是協(xié)議網(wǎng)關(guān)。協(xié)議網(wǎng)關(guān)的工作原理是采用TCP欺騙技術(shù)與TCP分段技術(shù),分割端到端的TCP連接,用最適合衛星環(huán)境的一種協(xié)議取代衛星鏈路上的TCP。見(jiàn)圖3。 網(wǎng)關(guān)1和網(wǎng)關(guān)2把端到端的TCP連接分為3段獨立的連接,而TCP源端認為它仍與TCP目的端直接連接,然而實(shí)際上是由網(wǎng)關(guān)完成了協(xié)議轉換。在圖3中,TCP Reno指擴展TCP,它包括慢啟動(dòng)、擁塞避免、快速重發(fā)、快速恢復、支持大窗口及延遲的ACK(確認)。在網(wǎng)關(guān)中,數據從TCP Reno轉換成DLP(數據鏈路協(xié)議)或是從DLP轉換成TCP Reno。這種結構的主要優(yōu)點(diǎn)是通過(guò)分割端到端的連接,可在衛星鏈路上采用最適合于衛星條件的協(xié)議,而在地面段繼續使用TCP。這樣,在對最終用戶(hù)保持完全透明的同時(shí),提供了更好的性能?蛻(hù)機或服務(wù)器不需做任何修改,所有的應用也無(wú)需改變而繼續有效。TCP避免擁塞控制機制在地面連接中仍然有效,以保護Internet的穩定性。因此,目前新推出的衛星Internet系統幾乎都是基于協(xié)議網(wǎng)關(guān)技術(shù)的。切斷TCP連接帶來(lái)的不利足TCP層端到端的語(yǔ)法被破壞,網(wǎng)關(guān)處需設置大容量的緩存以保存未被接收方確認的數據,而且由于對每個(gè)TCP連接都要進(jìn)行控制,因此,網(wǎng)關(guān)需要強大的處理能力。 網(wǎng)關(guān)協(xié)議轉換具體協(xié)議框架如圖4所示。 系統中通信雙方采用非透明傳輸方式,網(wǎng)關(guān)將TCP連接分段。站A和站B之間要通信的網(wǎng)絡(luò )終端之間不直接建立TCP連接,而是與本地的衛星網(wǎng)關(guān)建立TCP連接,發(fā)送端(站A的網(wǎng)絡(luò )終端)先將數據發(fā)到本地的衛星網(wǎng)關(guān),本地衛星網(wǎng)關(guān)在以特定的協(xié)議將數據傳遞到站B的衛星網(wǎng)關(guān),此衛星網(wǎng)關(guān)再將數據通過(guò)TCP發(fā)送給接收終端。通信過(guò)程包括以下幾個(gè)階段:建立TCP連接、接收TCP數據、數據的緩存、數據的拆分、可靠UDP傳輸、數據的組裝、發(fā)送TCP數據、發(fā)送重傳請求和重傳數據。 傳輸過(guò)程中,衛星鏈路中信息的傳遞通過(guò)可靠UDP實(shí)現,它是在標準UDP基礎上,通過(guò)網(wǎng)關(guān)的協(xié)議轉換模塊為其增加應答控制、重傳算法和流量控制等功能,在保證網(wǎng)絡(luò )數據高效傳輸的同時(shí)保證數據正確性的?煽縐DP在應用層實(shí)現,所以不用修改操作系統的協(xié)議內核,因此協(xié)議代碼容易編寫(xiě),移植性強;應答控制、重傳算法和流量控制等功能可以根據需要,靈活定制?煽縐DP的基本構成如圖5所示。 5 視頻傳輸的軟件實(shí)現 Winsock(Windows Sockets)是微軟WOSA(窗口系統結構)的一部分,基于UNIX系統上BSD(BerkeleySoftware Distribution)版本的套接字,并且為Windows系統進(jìn)行了專(zhuān)門(mén)的擴展,是目前Windows環(huán)境下應用最廣泛、開(kāi)放式、支持多種協(xié)議的網(wǎng)絡(luò )編程接口。 最初,WINSOCK1.1版是專(zhuān)門(mén)為Internet設計的,現在的WINSOCK 2.x版已經(jīng)不再局限于Internet和TCP/IP,它通過(guò)提供擴展的SPI編程接口,把自己的應用范圍擴大到現存的和正在出現的各種網(wǎng)絡(luò )和協(xié)議,其中包括PSTN(公共電話(huà)交換網(wǎng))、ISDN(綜合業(yè)務(wù)數字網(wǎng))、無(wú)線(xiàn)網(wǎng)、所有的局域網(wǎng)協(xié)議以及ATM(異步傳輸模式)等,并且允許應用程序對所建立連接的可靠性、冗余度和帶寬進(jìn)行控制。Windows Sockets規范、定義并記錄了如何使用WINSOCK API與Internet協(xié)議族(IPS,包含IP、ICMP、TCP和UDP等4種不同的協(xié)議)連接。尤其要指出的是,所有Windows Sockets實(shí)現都支持流式套接字(stream Socket)和數據報套接字(Datagram Socket)。 流式套接字是面向連接的,采用的是TCP,提供了雙向、有序、無(wú)重復并且無(wú)報文邊界的數據流服務(wù),在這種方式下,兩個(gè)相互通信的應用程序之間首先需要建立一種虛擬的連接。流式套接字的特點(diǎn)是:通信可靠,對資料有校驗和重發(fā)機制,通常用于數據文件的傳輸,如ftp、telnet等,適合于大量資料的傳輸。 數據報套接字是面向無(wú)連接的,采用的是UDP,建立在IP之上,提供無(wú)連接的數據報傳輸,支持雙向的數據流,但并不保證數據的可靠、有序和無(wú)重復。也就是說(shuō),在一個(gè)從數據報套接字接收信息的進(jìn)程中有可能發(fā)現信息重復了,或者與發(fā)出時(shí)的數據順序有所不同。數據報套接字的另一個(gè)重要特點(diǎn)是它保留了記錄邊界,對于這一特點(diǎn),數據報套接字采用了與現在許多包交換網(wǎng)絡(luò )(例如以太網(wǎng)等)非常類(lèi)似的模型。數據報文方式由于取消了校驗、重發(fā)機制,能夠達到較高的通信速率,可以用做一些對數據可靠性要求不高而對數據實(shí)時(shí)性要求較高的網(wǎng)絡(luò )數據通信,如實(shí)時(shí)語(yǔ)音和視頻傳送、消息廣播等。 本方案中的視頻數據接收播放模塊需建立控制通道和數據通道兩個(gè)通信通道?刂仆ǖ烙脕(lái)在服務(wù)端和客戶(hù)端之間建立會(huì )話(huà),包括發(fā)送一些數據請求和確認控制等信息?刂菩诺啦捎每煽啃暂^高的TCP,可用流式套接字來(lái)實(shí)現。數據通道用來(lái)傳輸視頻圖像數據,選用UDP,可用數據報套接字來(lái)實(shí)現。選用Win-dows線(xiàn)程技術(shù)實(shí)現接收端播放視頻信息。視頻流的解碼和播放通過(guò)調用DirectShow SDK實(shí)現。 6 結束語(yǔ) 本方案利用衛星IP網(wǎng)絡(luò )實(shí)現了外地到演示中心的遠程視頻傳輸,實(shí)驗結果顯示,視頻傳輸流暢,圖像清晰,滿(mǎn)足了實(shí)際需要。 |