编码TCP的理论研究与应用方法
2014-03-05杨亦彬
杨亦彬
摘 要: 为了深入理解编码TCP的原理,在讨论TCP Vegas协议和网络编码的基本形式的基础上,分别从无线网络发送端和接收端的角度深入论述了其与网络编码的融合方法以及网络编码层的结构和控制机理,在最后提出了NS2模拟软件底层代码的修改思路来实现检测网络编码TCP性能的目的。
关键词: TCP协议; 网络编码; 无线通信; NS2
中图分类号: TN911.22?34 文献标识码: A 文章编号: 1004?373X(2014)03?0015?04
Theoretical research and application methods of network coding TCP
YANG Yi?bin
(Beijing Institute of Technology, Beijing 100081, China)
Abstract: To understand the theory of Network Coding TCP in depth, based on the discussion on basic form of TCP Vegas protocol and networking, the fusion method with networking coding, the structure and control mechanism of networking coding layer is expounded from the point of wireless network sender and receiver. A strategy to modify the code in NS2 is proposed, to realize the simulation of TCP/NC performance.
Keywords: TCP protocol; network coding; wireless communication; NS2
0 引 言
现今移动数据的流量正在快速增长,接下来的5年里移动数据流量值会上升超过25倍[1],如此庞大的数据传送量需要更好的通信网络。有研究者提出基于线性网络编码的TCP协议(TCP/NC)的概念,使得TCP协议在无线传输的情况下依然可以保持良好的实际吞吐量。
在美国麻省理工大学的测试中,TCP/NC对无线传输的效率有了大幅度的提升。在校园WiFi(2%丢包率)的环境下,传输速率从1 Mb/s上升到了16 Mb/s;在快速列车(5%丢包率)的环境下,传输速率从0.5 Mb/s上升到了[2]13.5 Mb/s。可见TCP/NC很适合无线环境下的网络数据传输。基于此,TCP/NC对无线网络传输的研究有很大的实际意义。
1 传统TCP简介
由于TCP/NC的基础框架是TCP Vegas,有必要了解TCP Vegas的基本运行机制,以便更深入地理解TCP/NC的控制机理。TCP Vegas与TCP/NC关系最紧密的两个特性是ACK、拥塞控制,下面分别对二者进行简要讨论。在此之前,这里需要先明确一个基本概念——往返时延(RTT)。它所表示的时间段是从一个包发送端送出开始计时,到发送端收到接收端发来的这个包的ACK确认信号为止。
ACK:TCP Vegas的ACK机制与较早版本的TCP Reno有了变化和改进,TCP Reno采用的是triple?ACK,即如果连续出现三次相同序号的ACK,那么网络就被认为已出现拥塞。TCP Vegas的重传机制则不需要等到三个序号相同的重复ACK,它在收到重复ACK时更加关注每一个包RTT,如果RTT超出一定的范围,则不必等到三次相同的ACK再开始重传。实验表明这样可以至少增加19%的执行效果[3]。
拥塞控制:TCP Vegas的拥塞控制同样基于往返时间进行控制。它设定了变量Diff,代表了预期传送速率和实际传送速率的差值;同时TCP Vegas还定义了另外两个变量[α]和[β,]用这些变量实现对于窗口大小的控制。
Diff定义式如下:
[Diff=Expected-Actual=WindowSizeBaseRTT-bytestransmittedmeasuredRTT]
[BaseRTT=minimum of all measured RTT]
当Diff的数值小于α时,系统增大窗口大小;当Diff的数值大于[β]时,系统减小窗口大小。由此可以看出,TCP Vegas通过RTT判断实时网络传输速率的大小,既保证了网络的利用率,又避免了网络拥塞的发生。
在以拥塞为丢包的主要原因的有线链路中,TCP Vegas性能良好,而在无线传输系统中,丢包的原因主要是信号的衰减、互扰以及其他物理现象[4],TCP Vegas的Triple ACKs机制并不再适用(信号衰减所导致的重复ACKs会让TCP Vegas误以为是网络拥塞造成的,从而减小网络窗口,而实际要做的是增大网络窗口来克服信号衰减),因此需要改进TCP Vegas协议。
网络编码被认为适于应用在无线网路中。网络编码允许在节点处混合数据,而且网络编码已经被证明可以有效地提升吞吐量和鲁棒性[5]。把TCP Vegas协议和网络编码组合,可以把网络编码的优势带给TCP Vegas协议,同时也不会要求现有的TCP Vegas协议做很大的改动[6]。
2 TCP Vegas在无线环境下的改进模式:
编码TCP(TCP/NC)
2.1 网络编码简介
可以证明在有加性高斯白噪声的链路加入网络编码,可使传输速率几乎达到上限值[7]。网络编码的重要意义在于它进一步压缩了网络信息流,提升吞吐量[8]。下面以一个典型的例子说明这个概念。