实时的网络会议数据传输库—UDT
时间:2014-11-03 阅读:242
在视频会议系统的研发当中,我们的音、视频数据必须要有相应的可靠性作为保障,因为视频会议系统是一个实时性非常强的系统,如果其数据在网络不太好的情况下,有可能会出现丢包、数据延迟、数据堵塞等现象,出现这些现象都会影响数据的可靠性,从而导致视频会议系统音、视频质量的下降。那我们怎样现实数据的实时性,但又能保证数据的可靠性呢?我们在前面文章“视频会议传输模块的开发选择”里面已经提到如果选择视频会议的传输库,而在这里我们详细地讲一下UDT库(UDP-based Data Transfer LibraryUDT 高性能的数据传输协议)。
UDT库是一位留美博士在校期间写的开源数据传输库,其协议是建立在UDP协议的基础上,通过数据重发、数据校验、数据还原处理等技术,实现数据的传输,并能保证数据的可靠传输。UDT库和其他的可靠传输库一样,都是在UDP协议上进行数据的封装,实现可靠的传输传输,为什么我们会推荐使用UDT作为视频会议开发的数据传输库呢?
UDT的开发是基于C语言,其跨平台性较好,除了支持windows系统外,还能支持一些移动终端的操作系统,如Android、IOS等,因此如果我们的视频会议系统要在主流的移动终端上进行运行,我们可以选择UDT库来进行数据的传输。而在移动终端平台上使用UDT库也非常容易,我们可以把UDT库加入到我们的代码里面,或者把UDT编译成动态链接库,然后通过接口来调用相应的UDT函数。
UDT的可靠性并不像TCP进行三次握手和重发来实现,如果在网络堵塞较为严重的时候,TCP还是会一直重发数据,这样会导致网络更为堵塞,而UDT除了采用不可靠的UDP数据传输外,还利用控制信道对数据进行监测,如果在网络条件比较好的情况下,UDT数据会进行重新传输数据来保证数据的可靠性,而当网络条件较差的情况下,UDT会采用减少数据的发送量来实现数据传输的稳定性,从而保证数据的可靠实时。
UDT不仅能实现数据的可靠传输,还能进行海量的数据实时传输,一般的TCP协议或者UDP协议,很难在网络上进行大数据的传输,而UDT在传输过程中建立了用于数据实时传输的缓冲区和*的滑动窗口协议,因此UDT能在网络上,传输海量的实时传输数据。
4、支持点对点的连接
所谓的点对点传输,就是数据不通过服务器的转发,直接由发送方发送到接收方的一种传输方式。这种方式解决的内网传输的问题,如在不同的内网中,如果需要相互传输数据必须要通过服务器的中转或者通过NAT转换来实现不同内网的数据传输,而利用UDT可以实现不同内网的数据连接与传输。因此使用UDT传输库,可以用很小代价来实现内网的点对点数据连接与传输,因此UDT的点对点方式也非常适合于在视频会议系统使用。
由此可见,UDT库能为视频会议系统提供跨平台、数据的实时性、海量数据传输、点对点传输的支持,是一个值得我们关注并使用的实时传输库。