慢启动算法的改进及其应用
2012-02-05肖文显刘震马孝琴
肖文显,刘震,马孝琴
(河南科技学院,河南新乡453003)
拥塞控制是保证计算机网络稳定性、鲁棒性的关键因素之一.随着网络规模的扩大、网络带宽持续增加和联网形式日益多样化,拥塞控制策略遇到了一些新的需要解决的问题.当到达网络的分组数目大于网络的处理能力时,网络性能会急剧下降,这时就不可避免地发生了拥塞.拥塞导致网络的性能大幅度降低,为了避免出现拥塞,人们在网络中使用拥塞控制方法使其能正常工作[1].
TCP/IP拥塞控制方法主要包括TCP端到端拥塞控制方法和IP层的全网拥塞控制策略.TCP控制控制方法包括慢启动、拥塞避免、快速重传和快速恢复4个基本的算法;相对于TCP控制方法来讲,IP层的全网控制方法比较简单,主要包括先进先出算法(FIFO)、随机早期检测算法(Random Early Detection,RED)、显示拥塞指示算法(ECN)、公平排队算法(Fair Queuing,FQ)和加权公平排队算法(Weighted Fair Queuing,WFQ)[2].拥塞控制的目的是保证网络安全、高效地运行,但由于网络拥塞控制的复杂性,对于采用TCP/IP协议的网络来说,通过TCP的拥塞控制和IP层的拥塞控制联合来实现存在一定困难,TCP的拥塞控制算法运行在端节点中,其算法复杂性对整个网络的效率影响不大,算法可以适当复杂;对于IP层的拥塞控制算法来说,其拥塞控制在核心路由器来实现,算法必须高效;这两种控制策略的相互配合能够保证网络高效、正常运行.
1 算法及其改进
1.1 慢启动算法
在TCP端到端拥塞控制策略中的慢启动算法是TCP发送端用来控制数据发送窗口所必须遵守的方法.算法描述:对于每一个TCP连接,发送端保持两个参量,即拥塞窗口和慢启动阈值,拥塞窗口用于说明发送端在收到确认信息之前能向网络传送的最大数据量,慢启动阈值是发送端用来确定该采用慢启动算法还是拥塞避免算法来控制数据传送.拥塞窗口(CWND)和接收端通知窗口(RWND)的最小值决定了发送端一次能够传送的最大数据量[3].
在RFC2581和RFC2001中对TCP慢启动算法进行了描述,其伪代码描述如下(其中swin为发送方窗口,awin为接受方通知窗口):
重新进入慢启动阶段.
从慢启动描述来看,它所采用的渐进式增加以找到合适的发送带宽的方法,使TCP连接在连接开始时不能充分使用可以使用的网络带宽,对于传输数据量小、突发性强的连接,整个连接可能一直处于小的发送窗口的慢启动状态,从而使网络传输效率降低.如果在连接过程中出现连续丢包,将导致慢启动阈值的值急剧减小,系统长时间处于缓慢增长的小的拥塞窗口控制之下,可能一直不能得到合适的带宽[4].
以上分析表明,在初始拥塞窗口或小的拥塞窗口内有可能发生丢包,需要对拥塞控制算法进行改进来解决小窗口丢包问题.改进的拥塞控制算法不要影响网络的整体性能,对具体的网络环境应用应具有一定的实用价值.
1.2 改进的慢启动算法
在慢启动起始阶段,拥塞控制窗口被设置为初始窗口,发送端发送数据包后,若在设定的RTO超时时间内没有收到ACK确认信息而重发数据包时不改变慢启动的阈值.
改进的算法伪代码:(其中swin为发送方窗口,awin为接受方通知窗口)
按照改进后算法,如果TCP连接在初始拥塞窗口太小或小拥塞窗口内发生丢失数据包,慢启动阈值不会改变,这样能够防止拥塞控制较早进入拥塞避免阶段,对发送数据量较少的连接有一定的保护作用,从而提高系统的传输效率.
综上述在初始拥塞窗口或小的拥塞窗口内有可能发生丢包,改进的拥塞控制算法是有效的,不影响网络的整体性能,对具体的网络环境应用具有实用价值.
2 改进的算法在校园网中的应用
校园网是一种常见的局限于学校范围内应用的局域网,具有连接范围有限、拓扑结构简单、网内传输带宽高等特点.在校园网中,内部节点与教育网或者Internet连接一般是通过租用的公用出口,与校园网内部的高链接带宽来比,校园网的出口带宽通常较小,往往在出口地方形成瓶颈[5].校园网内部通常是通过核心、汇聚、接入三层交换连接起来,如在某高校校园网内部,核心交换机万兆连通汇聚交换机,汇聚交换机千兆接入交换机,接入交换机百兆接入到用户,学校的总出口带宽为100 M上联到地区节点.所有校园网大体相同,都为典型的树形结构,并根据不同的地理位置划分为不同的网段,一般采用VLAN的方式来管理网内的用户,处于同一VLAN内的用户具有相同的桌面连接带宽;校园网的服务有两种:内部服务和对外服务,内部服务通过核心交换机与主干网络相连为内部用户提供服务,为校园网用户提供WEB、FTP、VOD、MAIL以及其它管理系统服务;服务器全部采用HPDL850,为上述服务提供双千兆到核心交换机(DB10808),在学校内部,这个带宽对所有网内用户来讲是比较充足的.
在校园网内部如果使用慢启动算法,小的传输速率会降网络整体的传输效率;使用改进的慢启动算法,我们不改变慢启动阀值,这样所有的TCP连接都可以以平滑的速率增长,就能充分利用网络的内部资源[6].
对于校园网的内部网络服务来说,TCP拥塞控制算法太过于保守.根据校园网的特点和TCP连接特征,更加高效的TCP拥塞控制算法可以通过合理设计而得以实现,并应用到校园网的内部服务中[7].
3 数值仿真
NS包括两个基本的组成部分,一个是扩展了的面向对象的TCL解释器,另一个是NS模拟数据库.在模拟数据库中包含模拟事件时间表、各种模拟的网络实体对象和网络设置的有关模块.
3.1 仿真参数设置
在校园网内部,处在相同VLAN内的终端可以共享网络拥塞信息,所以可以设计一个节点代表整个一个VLAN的连接情况.具体拓扑结构介绍如图1:节点n1为内部服务器的连接节点,节点n2为固定速率流的源节点,用节点n3代替校园网内的多个网段.当节点n3的TCP连接大于一定数目时,可以假定多个网段总的TCP连接带宽接近一个稳定的值,节点n2和n3之间的网络连接类似于固定速率流(CBR),也可以假定这样一个连接代表校园网出口带宽,之所以在节点n2和n3之间的连接使用固定速率流而不采用直接限制带宽的方法,是因为固定速率流与TCP连接竞争带宽时具有一定的弹性,能够较好地模拟网络实际的情况;设计另外两个网络连接节点n4和n5,节点n1和n5之间的连接采用经典的TCP拥塞控制方法进行数据传输,节点n1和n4之间的连接采用改进的TCP(章节称作TCPLAN)拥塞控制算法进行数据传输.网络拥塞发生在R0到R1的链路上.
在仿真实验中,校园网的网络拓扑和连接情况如图1所示,在实际的分析中,将分协议讨论.
图1 网络拓扑和连接Fig.1 Network topologyand connection
3.2 协议仿真对比
通过仿真来查看TCP的cwnd变化情况.在n2到R0的链路上采用udp服务,使用一个稳定的cbr流在其上面传输,对链路节点R0不造成拥塞,在n1到R0的链路上使用FTP流进行传输,控制策略采用慢启动算法.
用TCL语言描述如下:
图2 TCP的cwnd变化Fig.2 TCP cwnd changes
从图2可以看出,TCP的Congestion Window值会呈现周期性的重复变化.TCP开始执行时,先由Slow-start开始,cwnd超过Ssthresh时进入Congestion Avoidance阶段,由于传送到网络上的封包不断地增加,当超出允许能传送到网络上的个数时,路由器开始使用Drop-tail将封包丢掉.当有封包遗失时,TCP会将ssthresh设为发现封包遗失时的Window值的1/2,接着将Window的值设为1.且每次封包遗失都重新由slow-start开始.
3.2.1 TCPLAN的传输效果对于采用新协议进行模拟,仍采用ftp连接来进行仿真,cwnd变化如图3所示.用TCL语言描述如下:
图3 TCPLAN的cwnd变化Fig.3 TCPLANcwnd changes
从图3可以看出,在数据传输量较大的网络环境下,TCPLAN一直都是在很短的时间就能提高自己的发送速率,随着数据量传输的增加,从开始连接2 ms以后的数据看,TCPLAN随连接时间的增加要比TCP更快地探询到可用带宽,在相同条件下TCPLAN的传输速率还是比TCP的传输速率高.
这种拥塞控制方法是种已知网络拓扑结构和连接特点的方法,在校园网内部的服务可以使用,但算法缺少一定的通用性.
3.2.2 异质性环境下TCPLAN的传输效果在实际的网络运行中,势必考虑不同TCP版本共存.下面以TCPLAN和TCP Vegas在异构的情况下运行时进行比较.
仿真试验中,把校园网网络简化如下图4所示:
图4 简化网络拓扑和连接Fig.4 Simply Network topology and connection
其中,假定r0与r1之间的延时为20 ms,其它链路间为1 ms.
TCL语言描述主要代码如下:
图5 TCPLAN与Vegas的cwnd变化Fig.5 TCPLAN and Vegas cwnd changes
从图5可以看出,TCPLAN总是在较高的地方振荡,而Vegas的Window总是维持在较低的位置.由于TCPLAN使用了较具侵略性的拥塞控制策略,传输端会持续将封包送到网络上,而Vegas使用了较保守的方式.相比之下,TCPLAN具有更高的占用带宽的能力.
4 小结
改进的慢启动算法在特定的网络环境中能够提高网络的传输效率,由于仅在发送端对协议进行修改,对接受端没有要求,所以该算法的采用不影响网络的内部服务性能.该算法比较适合于校园网内部的连接,对于有相同连接特点的其它网络也同样适用.
[1] 陈鹤年,严丽丽,李俊青.一种基于模糊策略的拥塞控制算法[J].电子与计算机技术,2009,23(3):45-48.
[2] TranenbaumAS.Computer Network[M].3版.北京:清华大学出版社,2006.
[3] 杨玉林,杨海澜.随机早测RED算法分析及改进[J].重庆电力高等专科学报,2009,15(1):16-19.
[4] 吴国纲.Dos攻击与IP拥塞控制研究[J].电子科技大学学报,2007,14(4):22-27.
[5] 张牧,李君.TCP拥塞控制算法的仿真研究[J].计算机工程与科学,2008(44):21-23.
[6] Low SH.Aduality model ofTCP and queue management algorithms[DB/OL].[2012-02-18].http://netlab.caltech.edu.
[7] 孔素环.TCP拥塞控制中慢启动算法的改进[J].平顶山学院学报,2007,13(3):34-36.