TCP/IP是目前应用广泛的Internet通信协议,各种通信媒介都被用来传输IP数据,由于卫星通信具有覆盖而广、组网灵活、建网快和不受地理环境限制等优点,因此Internet与卫星的联姻成为必然。随着Internet的迅猛发展和多媒体通信技术的进步,网络业务不仅支持文字、语音等慕本业务,静态图像、动态图像、音频、视频复合等多媒体业务的需求也逐渐增多。IP技术是宽带网络的骨干技术,基于IP的开发具有普遍性。而且通过协议的增强,IP网络适合作为广泛的多媒体通信介质。
1 系统构成
整个传输系统由远程现场(外地实验场地等)和视频演示中心组成,远程现场的图像通过宽带卫星IP网络传回视频演示中心进行显示,可供监控及观看。其中卫星IP网络可提供单向的2 Mbit/s高速信道,双向9.6 khit/s低速信道。
2 视频压缩算法的选择
由摄像头或其他视频采集设备采到的视频原始信息带宽很大,一般的传输信道很难满足要求,必须对视频信息进行压缩编码。对视频数据进行压缩算法有很多,有的着重速度,有的着重压缩比。常用的视频压缩标准有H.263,M-JPEG,MPEG-1,MPEG-4等。MPEG-4是MPEG(活动图像组)在1999年制定的一个国际标准,名称为“甚低速率视听编码”,是针对低速率(小于640 kbit/s)下的视频、音频编码和交互播放开发的算法和工具,其显著特点是基于内容的编码,更加注重多媒体系统的交互性、操作性和灵活性。与其他压缩标准相比,MPEG-4具有节约存储空间、占用网络传输带宽少、错误恢复能力强、图像质量高等优点。本方案选择的视频压缩算法就为MPEG-4标准。
3 视频传输协议
为了保证数字视频网络传输的实时性和图像的质量,传输层协议的选择是整个设计和实现的关键。Internet在IP层上使用两种传输协议:一种是TCP(传输控制协议),它是面向连接的网络协议;另一种是UDP(用户数据报协议),它是无连接的网络协议。
TCP/IP初是为提供非实时数据业务而设计的。IP负责主机之间的数据传输,不进行检错和纠错。因此,经常发生数据丢失或失序现象。为保证数据的可靠传输,人们将TCP用于IP数据的传输,以提高接收端的检错和纠错能力。当检测到数据包丢失或错误时,就会要求发送端重新发送,这样就不可避免地引起了传输延时和耗用网络的带宽。鉴于TCP本身的重传机制、拥塞控制机制、报头长且不提供时间戳及启动速度慢等特点,用传统的TCP/IP实现实时传输视频数据是不适合的。为了实现音视频数据的实时传输,需要寻求其他途径。
整个系统的通信功能建立在IP协议上。网络层使用IP,为了实现通信,在网络层之上分为连接控制和媒体数据传输两大部分。为了使通信过程的建立更加可靠,连接控制部分使用TCP提供可靠的分组递交,而媒体传输部分则使用UDP协议。
媒体数据传输部分使用UDP的理由是:TCP不适合网络多媒体的实时传输;使用UDP不必与对方建立连接,因此在多点通信时不必管理过多的连接。
但是,由于UDP没有差错控制,属于不可靠的分组递交,这就意味着可能会丢包,由于双方没有建立连接,所以发放无法知道对方的接收情况。可能由于发送过快,导致网络堵塞,因而大量的数据包被延误或丢失,或者对方根本就没有收到任何数据包。为了避免这种情况,对方能够向发送方发送一个反馈信息以其接收情况,必要时发送方要调整其数据处理方法或发送速率。例如,当发送方认为数据发送得太快,它可以调整图像压缩器的参数,以较大的量化误差来降低图像数据的速度。RTP(实时传输协议)和RTCP(实时传输控制协议)是IETF(Internet Engineer-ing Task Force)为实现上述目的而定义的两个协议。所有的实时媒体数据都使用RTP协议进行传输,RTCP协议提供接收方向发送方反馈信息的功能,它们都是基于UDP的。
RTP/RTCP是一种应用型的传输层协议,并不提供任何传输可靠性的保证和流量的拥塞控制机制。它是由IETF为音视频的实时传输而设计的传输协议。RTP位于UDP之上,在功能上独立于下面的传输层(UDP)和网络层,但不能单独作为一个层次存在,通常是利用低层的UDP对实时音视频数据进行多播或单播,从而实现多点或单点音视频数据的传输。一般是在UDP数据包之前建立一个RTP包头,其中包含一些保证数据实时连续性的信息(如序列号、时间戳等);提供时间信息和流同步。RTP本身不提供流量控制和拥塞控制功能。它靠一个专门的RTCP来实现。RTCP周期性地统计数据包传输时的丢失情况等信息,服务器根据这些反馈信息来制定流量控制的策略。改变传输码率甚至负载类型,大大提高了实时数据的传输性能。
UDP是一种无连接的数据报投递服务,虽然没有TCP那么可靠,并且无法保证实时音视频传输业务的QoS(服务质量),需要RTCP实时监控数据传输和Qos,但是,由于UDP的传输延时低于TCP服务质量,能与音频和视频流很好地匹配。因此,在实际应用中,RTP/RTCP/UDP用于音视频媒体,而TCP用于数据和控制信令的传输。
4 卫星IP网络的构成
利用TCP/IP协议,通过卫星网与IP网的结合实现数据传输,已成为卫星通信中的一个重要研究领域。但由于卫星网络固有的一些特性,如长延时、高误码率、网络不对称性,都影响了TCP在高速数据传输中的性能。为提高卫星TCP的性能,人们提出了许多有效的解决方案,这些方案针对长延时、高误码率、网络不对称性带来的不同影响,通过修改流量控制窗口以及改进拥塞控制算法,实现了卫星TCP的高效传输。
卫星IP传输比较典型的一种解决方案是协议网关。协议网关的工作原理是采用TCP欺骗技术与TCP分段技术,分割端到端的TCP连接,用适合卫星环境的一种协议取代卫星链路上的TCP。
网关1和网关2把端到端的TCP连接分为3段独立的连接,而TCP源端认为它仍与TCP目的端直接连接,然而实际上是由网关完成了协议转换。在图3中,TCP Reno指扩展TCP,它包括慢启动、拥塞避免、快速重发、快速恢复、支持大窗口及延迟的ACK(确认)。在网关中,数据从TCP Reno转换成DLP(数据链路协议)或是从DLP转换成TCP Reno。这种结构的主要优点是通过分割端到端的连接,可在卫星链路上采用适合于卫星条件的协议,而在地面段继续使用TCP。这样,在对终用户保持完全透明的同时,提供了更好的性能。客户机或服务器不需做任何修改,所有的应用也无需改变而继续有效。TCP避免拥塞控制机制在地面连接中仍然有效,以保护Internet的稳定性。因此,目前新推出的卫星Internet系统几乎都是基于协议网关技术的。切断TCP连接带来的不利足TCP层端到端的语法被破坏,网关处需设置大容量的缓存以保存未被接收方确认的数据,而且由于对每个TCP连接都要进行控制,因此,网关需要强大的处理能力。
系统中通信双方采用非透明传输方式,网关将TCP连接分段。站A和站B之间要通信的网络终端之间不直接建立TCP连接,而是与本地的卫星网关建立TCP连接,发送端(站A的网络终端)先将数据发到本地的卫星网关,本地卫星网关在以特定的协议将数据传递到站B的卫星网关,此卫星网关再将数据通过TCP发送给接收终端。通信过程包括以下几个阶段:建立TCP连接、接收TCP数据、数据的缓存、数据的拆分、可靠UDP传输、数据的组装、发送TCP数据、发送重传请求和重传数据。
传输过程中,卫星链路中信息的传递通过可靠UDP实现,它是在标准UDP基础上,通过网关的协议转换模块为其增加应答控制、重传算法和流量控制等功能,在保证网络数据高效传输的同时保证数据正确性的。可靠UDP在应用层实现,所以不用修改操作系统的协议内核,因此协议代码容易编写,移植性强;应答控制、重传算法和流量控制等功能可以根据需要,灵活定制。
5 视频传输的软件实现
Winsock(Windows Sockets)是微软WOSA(窗口系统结构)的一部分,基于UNIX系统上BSD(BerkeleySoftware Distribution)版本的套接字,并且为Windows系统进行了专门的扩展,是目前Windows环境下应用广泛、开放式、支持多种协议的网络编程接口。
初,WINSOCK1.1版是专门为Internet设计的,现在的WINSOCK 2.x版已经不再局限于Internet和TCP/IP,它通过提供扩展的SPI编程接口,把自己的应用范围扩大到现存的和正在出现的各种网络和协议,其中包括PSTN(公共电话交换网)、ISDN(综合业务数字网)、无线网、所有的局域网协议以及ATM(异步传输模式)等,并且允许应用程序对所建立连接的可靠性、冗余度和带宽进行控制。Windows Sockets规范、定义并记录了如何使用WINSOCK API与Internet协议族(IPS,包含IP、ICMP、TCP和UDP等4种不同的协议)连接。尤其要指出的是,所有Windows Sockets实现都支持流式套接字(stream Socket)和数据报套接字(Datagram Socket)。
流式套接字是面向连接的,采用的是TCP,提供了双向、有序、无重复并且无报文边界的数据流服务,在这种方式下,两个相互通信的应用程序之间首先需要建立一种虚拟的连接。流式套接字的特点是:通信可靠,对资料有校验和重发机制,通常用于数据文件的传输,如ftp、telnet等,适合于大量资料的传输。
数据报套接字是面向无连接的,采用的是UDP,建立在IP之上,提供无连接的数据报传输,支持双向的数据流,但并不保证数据的可靠、有序和无重复。也就是说,在一个从数据报套接字接收信息的进程中有可能发现信息重复了,或者与发出时的数据顺序有所不同。数据报套接字的另一个重要特点是它保留了记录边界,对于这一特点,数据报套接字采用了与现在许多包交换网络(例如以太网等)非常类似的模型。数据报文方式由于取消了校验、重发机制,能够达到较高的通信速率,可以用做一些对数据可靠性要求不高而对数据实时性要求较高的网络数据通信,如实时语音和视频传送、消息广播等。
本方案中的视频数据接收播放模块需建立控制通道和数据通道两个通信通道。控制通道用来在服务端和客户端之间建立会话,包括发送一些数据请求和确认控制等信息。控制信道采用可靠性较高的TCP,可用流式套接字来实现。数据通道用来传输视频图像数据,选用UDP,可用数据报套接字来实现。选用Win-dows线程技术实现接收端播放视频信息。视频流的解码和播放通过调用DirectShow SDK实现。
6 结束语
本方案利用卫星IP网络实现了外地到演示中心的远程视频传输,实验结果显示,视频传输流畅,图像清晰,满足了实际需要。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。