新TCP拥塞窗口调整策略*
2017-06-15茹新宇
茹新宇,刘 渊,陈 伟
(1.江苏联合职业技术学院 无锡交通分院,江苏 无锡 214151;2.江南大学 数字媒体学院,江苏 无锡 214122)
新TCP拥塞窗口调整策略*
茹新宇1,刘 渊2,陈 伟2
(1.江苏联合职业技术学院 无锡交通分院,江苏 无锡 214151;2.江南大学 数字媒体学院,江苏 无锡 214122)
互联网的稳定性和鲁棒性离不开拥塞控制,然而目前TCP传输中广泛使用的AIMD算法因窗口波动剧烈,致使丢包明显、系统吞吐量及带宽利用率偏低。为此提出了一种新的TCP拥塞窗口调整策略A-Cwnd。该策略依据RTT采样值构建正态分布函数式,动态更新下一拥塞窗口值,能较好地适应网络实时变化特点,具有不错的响应性。从数学角度对新策略的合理性与可行性进行了分析证明。NS3仿真结果表明新策略可有效稳定窗口波动、增大发送速率、降低丢包率,同时对系统吞吐量及带宽利用率的提高也有一定贡献。
拥塞窗口;策略;算法;机制;慢启动门限阈值;NS3仿真
0 引言
1986年10月,因发生拥塞,LBL到UC Berkeley的吞吐量从32 kb/s 断崖式下跌至40 b/s[1],自此人们对拥塞控制展开了大量研究,先后提出了多种策略及算法,其中以TCP Tahoe和New Reno两者影响较大。伴随着“互联网+”的到来,网络结构类型差异化、表现形式深入化,传统的拥塞控制已略显不足,原机制采用AIMD(Additive Increase Multiple Decrease)算法,易导致带宽利用率低、流量波动大等[2]。而且根据接收端反馈信息判断拥塞程度后采取相应策略的方式具有一定的时间延迟,将导致源端不能及时准确地判断拥塞状况,加剧了网络的不稳定性。
由文献[3]可知,无论有线还是无线网络,往返延迟RTT(Round Trip Time)的变化能客观反映当前网络负载状况,其变化适合作为拥塞反馈信息。为提升网络性能,本文提出一种新的TCP拥塞窗口调整策略,它基于RTT的正态分布统计模型[4],依据其采样值的变化特点判断负载趋势,运用正态分布概率函数,在拥塞避免(Congestion Avoidance)阶段动态调整拥塞窗口值,改进了TCP拥塞控制的效果。
1 拥塞控制的基本概念
1.1 开环和闭环
由控制论观点,拥塞控制可分为开环和闭环两类。开环通过良好的设计规避问题出现,确保拥塞不发生,而闭环则建立在反馈环路上。闭环按反馈方式可分为显式反馈和隐式反馈。显式反馈由拥塞点将拥塞信号反馈给源端。而隐式反馈中,源端通过局部观测推断是否存在拥塞。对于互联网这类复杂系统,闭环控制较合适。TCP拥塞控制采用基于窗口的端到端闭环控制,它通过反馈确认信号ACK来控制分组的发送。具体过程可分为拥塞检测、信号反馈和窗口调整三个阶段,其原理如图1所示[5]。本文结合显式反馈和隐式反馈之优点,使用闭环控制实现拥塞窗口的动态调整。
图1 TCP拥塞闭环控制原理图
1.2 拥塞控制的四个阶段
(1)慢启动:cwnd (2)拥塞避免:cwnd≥ssthresh,每RTT cwnd=cwnd+1; 2.1 基本思路 据文献[4],在不同负载下,RTT采样可被近似修正为正态分布。据此设想用当前窗口的RTT样本值作为网络拥塞状态的反馈信号,预估即将发生的拥塞,从而达到主动调整拥塞窗口的目的。 新策略的基本思路为:当系统进入拥塞避免阶段后,由样本值构建正态分布密度函数φ(x),同时计算出μ±3σ作为后续运算上下限。积分求得正态分布函数F(x)值后代入新算法,即可预估下一拥塞窗口值。依次重复上述步骤,即可实现发送窗口的动态更新。 图2 新TCP拥塞窗口调整策略的算法流程图 慢启动及快速重传与恢复阶段后继续执行上述新算法。超时重传虽是小概率事件,但此时RTT较大,判断为拥塞严重,立即执行原超时重传程序,直至再次进入拥塞避免阶段后仍执行上述新算法。 2.2 算法流程 新TCP拥塞窗口调整策略的具体算法流程如图2所示。 3.1 具体实现 设RTT=x,x∈(0,+∞)。进入拥塞避免阶段后,以新算法取代原AIMD,具体实现细节如下: 以上式中μ和σ为拥塞状态因子,由RTT来调节,用以反映当前网络拥塞状况。 3.2 性能分析 3.2.1 算法分析 综上所述,x越小意味着此刻网络越顺畅,资源越空闲,为增加系统吞吐量、提高带宽的有效利用率,可适当地加大拥塞窗口值,提高数据发送速率。反之,x越大则意味着网络越迟滞,此刻发生拥塞的概率剧增,为保持系统稳定运行,有必要尝试减小拥塞窗口值,合理控制数据发送速率。 3.2.2 区间分析 当一分布服从正态分布规律时,根据分布函数性质,对总体N(μ,σ2)在区间(-∞,+∞)取值概率查表知: ∴F(μ-σ, μ+σ)=F(μ+σ)-F(μ-σ)=0.841 3-0.158 7=0.682 6 同理可得: F(μ-2σ,μ+2σ)=F(μ+2σ)-F(μ-2σ)=0.954 4 F(μ-3σ,μ+3σ)=F(μ+3σ)-F(μ-3σ)=0.997 4 往返延迟RTT分布区间的频数如图3所示。故在区间[μ-σ,μ+σ]、[μ-2σ,μ+2σ]和[μ-3σ,μ+3σ]内取值的概率分别为68.26%、95.44%和99.74%。RTT采样值落在(-∞,μ-3σ)∪(μ+3σ,+∞)区间内是小概率事件,而它出现在[μ-3σ,μ+3σ]之间概率极大。因此研究样本在[μ-3σ,μ+3σ]内的正态分布情况是合理的,新算法的积分区间选择[μ-3σ,μ+3σ]具有可行性。 图3 RTT分布区间的频数示意图 本文采用NS3.24[6]网络仿真器,在Ubuntu16.04平台下搭建了一高度可调节、可多次使用的实验环境,用以验证新策略的有效性。拓扑结构如图4所示,S1~Sn、D1~Dn分别为发送端和接收端,接入带宽6 Mb/s,延时4 ms,瓶颈链路带宽为1.5 Mb/s,延时60 ms,门限阈值取系统推荐值64 KB。另设节点缓存为50个分组,源端以每分组1 KB大小连续发送10 Mb/s FTP单向数据流,路由R1、R2则采用FIFO队列管理算法。这里从不同时间段的多组拥塞窗口值、丢包率、吞吐量及链路带宽四个方面,采用图表形式分别对新A-Cwnd、原New Reno及TCP Tahoe三种策略进行实验比对,具体讨论如下。 图4 网络仿真拓扑结构 如表1所示,从拥塞避免阶段开始,新策略由返回的RTT样本值建立正态分布统计概型,计算得到正态分布函数值,据此主动预估下一拥塞窗口开启值。故其具有良好的动态响应能力,并极大地减轻了原AIMD算法的窗口抖动“症状”,改善和平滑了突发流量冲击,使数据包可平缓“适度”地进入网络,也间接提升了TCP流整个生命期的拥塞窗口平均值,可同时实现更多的服务类型与更好的服务质量。 表1 不同策略下拥塞窗口值(吞吐量)比较 (包) 图5 不同策略下,丢包数随发送量变化比较 新策略通过提前预估并合理开启发送窗口值,使源端的数据发送速率基本满足系统可用资源,从而有效减少了不必要的丢包,平缓了窗口速率抖动。限制“适度”的流量进入网络,避免了不必要的分组丢失及“盲目”重传。由图5可见,随着源端发送数据包的增加,A-Cwnd的丢包数略少于原New Reno和TCP Tahoe。新策略丢包率更低,比原策略优化明显。可见新策略对丢包率的降低也起了积极作用。 表2显示,采样初期,新策略A-Cwnd吞吐量稳步上升且波动不大,并最终趋于稳定,数据略好于原New Reno策略。而TCP Tahoe则在吞吐量方面劣势明显,且抖动频繁。可见新策略还对系统吞吐量的提高与稳定也有一定贡献。 表2 不同策略下系统吞吐量比较 (包) 不同策略下,带宽大小比较如图6所示。 图6 不同策略下带宽大小比较 从图6可看出,新策略的链路带宽增长明显。这归咎于新算法具有较大的发送窗口,较低的丢包率,使得丢包或超时重传明显减少,链路带宽被充分利用,故新策略有效提升了网络资源利用率。不同时间段不同策略下,链路带宽值的比较见表3。 表3 不同策略下,链路带宽值(吞吐量)比较 (包) 由于新策略A-Cwnd在带宽资源的分配处理上远优于New Reno,也略高于TCP Tahoe,故其可满足更多的服务作业需求,实现共享网络资源的目的。 综上所述,新策略在拥塞窗口平均值、丢包率、系统吞吐量及带宽利用率四个方面对系统性能均有一定程度的改善,图表数据也表明新策略效果明显优于原策略,能较好地实现高效稳定的拥塞避免过程。 本文针对目前TCP协议中广泛使用的AIMD算法的缺陷,提出了一种新的TCP拥塞窗口调整策略A-Cwnd。 新策略依据RTT正态分布特性构建函数关系式,并主动预测下一拥塞窗口值,可实现发送速率的自动更新,具有不错的实时响应性。文中还通过数学方式证明了新策略的可行性与合理性。文末的NS3仿真也验证了新策略可有效增加拥塞窗口平均值、减少丢包率,对系统吞吐量及带宽利用率也有一定贡献。但该策略对于无线传输中的误码及信道衰减丢包适应性较差,系统吞吐量和带宽利用率下降明显。因此后期将增加丢包区分策略,使之具有更好的适应性,以期进一步提高网络性能。 [1] JACOBSON V.Congestion avoidance and control[J].ACM Computer Communication Review,1988,18(4):314-329. [2] CHIU D M,JAIN R.Analysis of the increase and decrease algorithms for congestion avoidance in computer networks[J].Computer Networks and ISDN Systems,1989,17(1):1-14. [3] 赵伟丰.基于RTT的端到端网络拥塞控制研究[D].天津:天津大学,2014. [4] ELTETO T,MOLNAR S.On the distribution of round-trip delays in TCP/IP networks[C].Proceedings of the 24th Annual IEEE Conference on Local Computer Networks,1999:102-105. [5] 李学渊.基于TCP/IP拥塞控制的算法研究[J].舰船电子工程,2005,25(6):88-89. [6] 张登银,张保峰.新型网络模拟器NS-3研究[J].计算机技术与发展,2009,19(11):80-84. [7] MORRIS R.Scalable TCP congestion control[J].Proceedings of IEEE INFOCOM 2000,IEEE Computer Society,1970,3(5):1176-1183. New adjustment strategy of TCP cwnd Ru Xinyu1,Liu Yuan2,Chen Wei2 (1.Wuxi Transportation College,Jiangsu Union Technical Institute,Wuxi 214151,China; 2.School of Digital Media,Jiangnan University,Wuxi 214122,China) The stability and robustness of the Internet depends on congestion control.However,the AIMD algorithm widely used in TCP transmission is subject to severe window fluctuation,resulting in significant packet loss,low system throughput and bandwidth utilization.In this paper,we propose a new TCP congestion window adjustment strategy named A-Cwnd.The strategy constructs a normal distribution function based on the RTT sampling value,dynamically updates the next congestion window value,can adapt to the real-time change characteristics of the network,and has good responsiveness.The article also proves the rationality and feasibility of the new strategy from the mathematical point of view.Finally,NS3 simulation results show that the new strategy can effectively stabilize the window fluctuation,increase the transmission rate,and reduce the packet loss rate,while the system throughput and bandwidth utilization has contributed to the increase. congestion window; strategy; algorithm; mechanism; ssthresh; NS3 simulation 国家自然科学基金(61602213);江苏省自然科学基金(BK20151131) TP393 A 10.19358/j.issn.1674- 7720.2017.10.022 茹新宇,刘渊,陈伟.新TCP拥塞窗口调整策略[J].微型机与应用,2017,36(10):77-80. 2016-11-30) 茹新宇(1977-),通信作者,男,硕士研究生,讲师,主要研究方向:通信安全、拥塞控制及网络安全。E-mail:ruxinyu21@163.com。 刘渊(1967-),男,硕士,博士生导师,教授,CCF会员,主要研究方向:无线通信管理、网络测量及信息安全。 陈伟(1981-),男,博士研究生,主要研究方向:人工智能、群体智能算法。2 新策略的基本思路与算法流程
3 新策略的具体实现与性能分析
4 仿真与验证
5 结论