论文部分内容阅读
摘要:伴随着近几年人们对网络视频,语音通讯需求的极大增长,国内网络带宽提速的脚步依然很慢。从而使得网路拥塞的现象更加严重。在本文中,作者阐述了当前TCP拥塞控制的典型算法,着重针对 Google WebRTC技术中的拥塞解决方案进行分析和研究,达到了理论与实际相互结合的目的。
关键词:拥塞控制;Google WebRTC;带宽测量
中图分类号:TP393.4
0 引言
随着计算机技术,特别是流媒体技术的迅速发展,流式传输在网络业务中所占的比例迅速攀升,Internet从单一的数据传输网络逐步演化成承载数据、语音、视频等多媒体信息的综合业务传输网络。Internet所提供的服务类型,不再局限于简单的信息浏览、E-Mail. FTP和Telnet等,诸如视频点播、音视频会议、远程教学、实时图文信息发布、交互式虚拟现实等新的应用纷纷涌现出来。这些多媒体应用极大地丰富了Internet的应用场合,给社会各行业,特别是教育、医疗、娱乐和商务等提供了巨大的发展机遇和挑战,提高了工作效率,方便了人们的工作、生活和学习。同时,国内互联网带宽提速一直进展缓慢,从而对互联网进一步发展受到限制。
谷歌公司于2010年通过收购Global IP Solutions 公司获取了WebRTC这项技术。该技术通过浏览器提供简单的Javascript 就可以达到实时通讯的目的,提供音视频的采集、编解码、网络传输和显示等功能,支持跨平台运行: Windows,Linux,Mac 和Android,甚至可以在电视机上运行。这项技术使得我们在没有Skype、Google talk和QQ等即时通讯工具的情况下,通过浏览器和Internet连接,我们就可以直接语音和视频聊天。总之,对现有网络业务模式将产生巨大的改变。
本文通过对WebRTC实时通讯模块关于网络拥塞控制的研究,并与现行TPC拥塞控制算法相结合,从而对WebRTC的拥塞控制算法得到更深层的认识。
1 网络拥塞
1.1 定义
网络拥塞(Network Congestion)是指在分组交换网络中传送分组的书目太多时,由于存储转发节点的资源有限而造成网络传输性能下降的情况。当网络发生拥塞时,一般会出现数据丢失,时延增加,吞吐量下降,严重时甚至会导致“拥塞崩溃”(congestion collapse).通常情况下,当网络中负载过度增加导致网络性能下降时,就会发生网络阻塞。如图1.1所示,
随着网络负载的增加,吞吐量和延时与之成正相关,但是吞吐量的增加速度更大;当过了A点,吞吐量和延时仍为增加趋势,但是吞吐量的增加趋势变缓而延时的增加速度变快。当过了B点后,吞吐量急剧下降并减为0,而延时的增加速度更大。
1.2 拥塞控制典型控制策略
根据网络层次和控制算法实现的位置,将拥塞控制算法大致分为两类:TCP、 IP拥塞控制。基于目前TCP协议占据网络数据通信的主流,此处仅对TCP拥塞控制算法加以阐述。Van Jacobson在文[1]中提出的TCP拥塞控制基本框架,主要是基于窗口的传输层协议会导致系统对网络拥塞的错误反应,并提出一系列算法来解决此问题:rtt估计、重传计数器的指数递归、慢启动、拥塞窗口的动态调整等。后续的改进型典型算法:TCP Tahoe、TCP Reno、TCP New Reno、 TCP Sack。
2 WebRTC关于网络拥塞的解决方案
WebRTC中的拥塞控制算法分为接收端和发送端两种,两种算法相辅相成,接收端将估算的带宽发送给发送端,发送端结合收到的带宽以及丢包率,调整发送的带宽。
1. 接收端拥塞控制(receiver-based congestion control)。根据收到的rtp数据,估出带宽;用卡尔曼滤波,对每一帧的发送时间和接收时间进行分析,从而得出网络带宽利用情况,修正估出的带宽。
2. 發送端拥塞控制(sender-based congestion control)。根据rtcp中的丢包统计来动态的增加或减少带宽,在减少带宽时使用TFRC算法来增加平滑度。
2.1 接收端拥塞控制
接收端算法可被分解成四部分:RTP时间戳到NTP时间的转换、到达时间的滤波、拥塞检测和远程速率控制。
2.1.1 RTP时间戳到NTP时间的转换
因为接收端需要处理发送端的多中RTP数据流,而数据流中都带有各自的时间戳。此时需要根据RTCP发送端报告中的RTP和NTP时间对,将RTP时间戳转换到一个公共的时间基准。
2.1.2 到达时间滤波器
2.1.3 过载检测
2.1.4 速率控制
2.2 发送端拥塞控制
3 结论
本文经过对WebRTC 拥塞控制草案和相应源代码分析,得出WebRTC的控制策略仍然是基于Jacobson提出的TCP拥塞控制算法的进一步深入和优化,并转换为实际应用。较好的满足了WebRTC对流媒体实时通讯的要求。
[参考文献](References)
[1] Jacobson V. Congestion Avoidance and Control. In: Proceeding of SIGCOMM '88,August 1988. 314~329
[2] 吴航星,慕德俊,潘文平,乔梅梅. 网络拥塞算法综述[J]. 计算机科学,2007,02
[3] H. Lundin, S.Holmer, H.Alvestrand, Ed.. A Google Congestion Control Algorithm for Real-Time Communication on the World Wide Web [October 22,2012].
http://tools.ietf.org/html/draft-alvestrand-rtcweb-congestion-03
关键词:拥塞控制;Google WebRTC;带宽测量
中图分类号:TP393.4
0 引言
随着计算机技术,特别是流媒体技术的迅速发展,流式传输在网络业务中所占的比例迅速攀升,Internet从单一的数据传输网络逐步演化成承载数据、语音、视频等多媒体信息的综合业务传输网络。Internet所提供的服务类型,不再局限于简单的信息浏览、E-Mail. FTP和Telnet等,诸如视频点播、音视频会议、远程教学、实时图文信息发布、交互式虚拟现实等新的应用纷纷涌现出来。这些多媒体应用极大地丰富了Internet的应用场合,给社会各行业,特别是教育、医疗、娱乐和商务等提供了巨大的发展机遇和挑战,提高了工作效率,方便了人们的工作、生活和学习。同时,国内互联网带宽提速一直进展缓慢,从而对互联网进一步发展受到限制。
谷歌公司于2010年通过收购Global IP Solutions 公司获取了WebRTC这项技术。该技术通过浏览器提供简单的Javascript 就可以达到实时通讯的目的,提供音视频的采集、编解码、网络传输和显示等功能,支持跨平台运行: Windows,Linux,Mac 和Android,甚至可以在电视机上运行。这项技术使得我们在没有Skype、Google talk和QQ等即时通讯工具的情况下,通过浏览器和Internet连接,我们就可以直接语音和视频聊天。总之,对现有网络业务模式将产生巨大的改变。
本文通过对WebRTC实时通讯模块关于网络拥塞控制的研究,并与现行TPC拥塞控制算法相结合,从而对WebRTC的拥塞控制算法得到更深层的认识。
1 网络拥塞
1.1 定义
网络拥塞(Network Congestion)是指在分组交换网络中传送分组的书目太多时,由于存储转发节点的资源有限而造成网络传输性能下降的情况。当网络发生拥塞时,一般会出现数据丢失,时延增加,吞吐量下降,严重时甚至会导致“拥塞崩溃”(congestion collapse).通常情况下,当网络中负载过度增加导致网络性能下降时,就会发生网络阻塞。如图1.1所示,
随着网络负载的增加,吞吐量和延时与之成正相关,但是吞吐量的增加速度更大;当过了A点,吞吐量和延时仍为增加趋势,但是吞吐量的增加趋势变缓而延时的增加速度变快。当过了B点后,吞吐量急剧下降并减为0,而延时的增加速度更大。
1.2 拥塞控制典型控制策略
根据网络层次和控制算法实现的位置,将拥塞控制算法大致分为两类:TCP、 IP拥塞控制。基于目前TCP协议占据网络数据通信的主流,此处仅对TCP拥塞控制算法加以阐述。Van Jacobson在文[1]中提出的TCP拥塞控制基本框架,主要是基于窗口的传输层协议会导致系统对网络拥塞的错误反应,并提出一系列算法来解决此问题:rtt估计、重传计数器的指数递归、慢启动、拥塞窗口的动态调整等。后续的改进型典型算法:TCP Tahoe、TCP Reno、TCP New Reno、 TCP Sack。
2 WebRTC关于网络拥塞的解决方案
WebRTC中的拥塞控制算法分为接收端和发送端两种,两种算法相辅相成,接收端将估算的带宽发送给发送端,发送端结合收到的带宽以及丢包率,调整发送的带宽。
1. 接收端拥塞控制(receiver-based congestion control)。根据收到的rtp数据,估出带宽;用卡尔曼滤波,对每一帧的发送时间和接收时间进行分析,从而得出网络带宽利用情况,修正估出的带宽。
2. 發送端拥塞控制(sender-based congestion control)。根据rtcp中的丢包统计来动态的增加或减少带宽,在减少带宽时使用TFRC算法来增加平滑度。
2.1 接收端拥塞控制
接收端算法可被分解成四部分:RTP时间戳到NTP时间的转换、到达时间的滤波、拥塞检测和远程速率控制。
2.1.1 RTP时间戳到NTP时间的转换
因为接收端需要处理发送端的多中RTP数据流,而数据流中都带有各自的时间戳。此时需要根据RTCP发送端报告中的RTP和NTP时间对,将RTP时间戳转换到一个公共的时间基准。
2.1.2 到达时间滤波器
2.1.3 过载检测
2.1.4 速率控制
2.2 发送端拥塞控制
3 结论
本文经过对WebRTC 拥塞控制草案和相应源代码分析,得出WebRTC的控制策略仍然是基于Jacobson提出的TCP拥塞控制算法的进一步深入和优化,并转换为实际应用。较好的满足了WebRTC对流媒体实时通讯的要求。
[参考文献](References)
[1] Jacobson V. Congestion Avoidance and Control. In: Proceeding of SIGCOMM '88,August 1988. 314~329
[2] 吴航星,慕德俊,潘文平,乔梅梅. 网络拥塞算法综述[J]. 计算机科学,2007,02
[3] H. Lundin, S.Holmer, H.Alvestrand, Ed.. A Google Congestion Control Algorithm for Real-Time Communication on the World Wide Web [October 22,2012].
http://tools.ietf.org/html/draft-alvestrand-rtcweb-congestion-03