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