NS2平台的TCP/IP网络拥塞控制算法仿真

2015-02-27 08:21李秀坤哈尔滨工业大学计算机科学与技术学院黑龙江哈尔滨150001
实验室研究与探索 2015年2期
关键词:控制算法数据包时延

娄 久, 李秀坤(哈尔滨工业大学 计算机科学与技术学院,黑龙江 哈尔滨 150001)



·专题研讨——虚拟仿真实验(18)·

NS2平台的TCP/IP网络拥塞控制算法仿真

娄 久, 李秀坤
(哈尔滨工业大学 计算机科学与技术学院,黑龙江 哈尔滨 150001)

网络拥塞控制是网络服务质量(QoS)机制正常运作的基础,而TCP/IP网络的拥塞控制机制是保证Internet的稳定性和鲁棒性的关键。利用NS2仿真平台,分别在不同网络环境下实现5种经典网路拥塞控制算法:TCP Tahoe、TCP Vegas、TCP Newreno、TCP Reno和TCP Sack,仿真结果表明在无丢包环境和高时延环境下各算法所受影响基本相同,而在低带宽和一般拥塞环境中Vegas算法的性能要优于其它算法,该结果为不同网络环境拥塞控制算法的选择和应用提供有效依据。同时通过软件仿真与实际测试,加深了学生对拥塞控制算法的理解。

网络拥塞控制; 网络仿真; NS2

0 引 言

伴随着计算机网络的快速发展,网络上各方面的应用急剧增加,涵盖通讯社交、电子商务、资源上传下载、云存储与云计算等等[1-2]。在网络上传输的数据量激增,且其增长速度远远超过了网络负载能力的增长[3-4]。因此,网络拥塞问题越来越受到关注[5-6]。到目前为止,拥塞控制的研究已有30余年。TCP拥塞控制主要涉及慢起动(Slow Start)、拥塞避免(Congestion Avoidance)、快速重传(Fast Retransmit)和快速恢复(Fast Recovery)[7]。迄今为止主要5种TCP版本所采用的拥塞控制算法,分别为TCP Tahoe[8]、TCP Reno[9]、TCP Newreno[10]、TCP Sack[11]、TCP Vegas[12]。本文利用面向对象的事件驱动网络仿真软件NS2虚拟了几种不同网络结构环境,从而比较了上述5中经典网络拥塞控制算法的性能。由实验得出的结论可以为不同的网络环境中拥塞控制算法的选择提供一定的依据,同时可以帮助学生加深对网络拥塞控制的理解。

1 相关技术

1.1 TCP拥塞控制算法

端到端的面向连接的传输控制协议(Transmission Control Protocol,TCP)为应用提供可靠的数据传输服务,与IP协议相结合组成了因特网协议的核心[13]。TCP协议中提供流量控制与拥塞控制。目前TCP协议主要包含五个版本:TCP Tahoe、TCP Vegas、TCP Newreno、TCP Reno、TCP Sack。TCP Tahoe是最早的版本,为其它几种算法的出现与发展奠定了基础。Vegas则是通过往返时延的变化来确定拥塞的发生,改变拥塞窗口的值。NewReno对之前的快速恢复算法进行了一定的改进。Reno与Tahoe基本相同,但增加了Tahoe所不具有的快速恢复算法。而Sack通过改进实现了不需要重传一个窗口内所有的数据包,而只需要对丢失的数据包进行重新发送。

1.2 网络仿真平台NS2

面向对象的网络模拟器(Network Simulator-Version 2,NS2),由伯克利大学开发的一种专业、免费的软件仿真平台,主要用于仿真各种IP网络,并且开放源代码供用户自行进行修改调用[14-15]。它拥有丰富的构件库,几乎可以模拟所有需要的网络环境。其开发语言为C++和Otcl语言。对于用户来说,NS2就是一个包含模拟时间调度器、多种组件和模块的Tcl脚本解释器,如图1所示。

图1 从一个用户的角度看NS2

从图1中可以看出,NS2进行模拟的过程是以事件进行驱动的,通过Tclcl将OTcl和最底层C++联系起来,再提供一个可以被调用的接口。用户可以使用Otcl库中的多种模拟网络组件根据自己的需求设计网络结构进行仿真。如今大部分进行网络研究的文章中所给出的实验结果都是通过NS2进行仿真得出的,由于NS2的专业性和权威性,由它得到的结果是受到学术界普遍认可的。

2 实验仿真

2.1 仿真场景

为了全面的验证并分析TCP拥塞控制算法的性能,实验设计四种仿真场景:无丢包环境、高时延环境、低带宽环境和拥塞环境,网络拓扑如图2所示,图中椭圆形代表数据流,矩形代表代理的类型,圆形代表节点。图中发送节点s0为TCP代理节点,可绑定不同类型TCP代理,r0为接收节点,绑定sink代理,n1和n2路由器节点之间为传输瓶颈。队列类型为Droptail。发送窗口最大值为24。链路使用ftp流进行数据传输,仿真时间20 s。

图2 网络拓扑图

2.2 实验测试

2.2.1 无丢包环境

通过前面分析拥塞产生的原因可以得出,当网络传输中各节点与中间路由器间的带宽与时延没有差别时,数据会持续稳定的传输,没有传输瓶颈。为了研究发生拥塞时的条件,首先需要观察没有发生拥塞时的情况。实验参数为s0~n1、n1~n2、n2~r0之间的带宽均为10 Mb/s,时延均为1ms,仿真时间为20s。将所得的数据进行整理可得在简单网络结构无丢包环境下各算法性能如表1所示。

表1 无丢包环境下各算法的性能

通过表1可以发现,5种TCP拥塞控制算法在传输过程中均没出现丢包情况,并且吞吐量也基本与带宽相同,平均时延维持在很低的数值。证明在网络中各节点间的参数相同,不存在瓶颈链路时,数据会没有限制的持续高速通过,不会发生拥塞与丢包。

2.2.2 高时延环境

在网络中各节点间的网络参数完全相同,不存在传输瓶颈时,网络不会出现拥塞和丢包现象,也没有启动相应的流量控制措施。但是当路由器间的时延较大时,会明显的出现流量减少、吞吐量下降、数据包传输的时延增大的现象。因此设置s0与n1、s2与r0之间的带宽为10 Mb/s,时延1 ms,而n1到n2之间带宽10 Mb/s,时延100 ms进行仿真,结果如表2所示。

表2显示了在高时延的网络环境下,各种算法的性能均出现明显的下降。平均吞吐量与发送的数据包数量大幅度下降,平均时延明显上升,但是并没有出现丢包的情况。结果表明在高时延的环境下,网络传输速率会明显下降,这是因为数据包到达路由器的存储队列时,由于n1与n2间时延过大,导致数据包不能及时的到达接收端r0,从而r0也不能及时的发送ACK返回给s0,因此发生吞吐量下降的情况。通过与表1的对比可以发现,Tahoe、Reno、Newreno、Sack算法受时延的影响基本相同,而Vegas算法受时延的影响要比其他几种大。因此在高时延的环境下不建议选择Vegas算法。

表2 高时延环境下各算法的性能

2.2.3 低带宽环境

当网络节点间时延相同时,各链路的带宽的差异也会使网络传输发生明显的变化。为了研究瓶颈链路低带宽环境的情况,设置实验参数为s0到n1、n2到r0间的带宽为10 Mb/s,时延1 ms,而低速链路n1到n2间的带宽为1 Mb/s,时延也为1 ms,进行仿真,观察带宽对拥塞现象的影响。结果如表3所示。

表3 低带宽环境下各算法的性能

由表3分析可得当存在低速瓶颈链路时,网络传输会受到影响,出现吞吐量下降、时延增加、数据包丢失的现象。原因在于当网络中存在低速链路时,会导致高速的数据流流经这条链路时产生拥塞。根据香农信道容量公式可知,任何信道带宽最大值即信道容量。

C=Blb2(1+S/N)

(1)

因此节点接收数据流的速率必须小于或等于信道容量。否则,接收的报文在缓冲区中排队,在缓冲区占满后就会出现丢包,导致网络拥塞。

2.2.4 拥塞环境

为了更方便直观地分析各算法的性能,需要选择一个合适的仿真场景进行实验分析。通过前面的实验,证明了在瓶颈链路低带宽、高时延的情况下会发生拥塞现象。因此一个比较好的仿真环境是设置s0~n1、n2~r0之间带宽为10 Mb/s,时延为1 ms,瓶颈链路n1~n2之间带宽为1 Mb/s,时延为4 ms。在此环境下进行仿真,网络传输会出现明显的丢包与拥塞现象,各算法会启动相应的拥塞控制方法,所得到的结果如表4所示。

表4 拥塞环境下各算法的性能

3 结 语

总结来说,Tahoe算法主要涉及慢起动、拥塞避免与快速重传三部分,当收到三个重复的ACK时会认为发生了丢包重新开始慢起动;Reno算法在Tahoe的基础上增加了新的算法:快速恢复算法,能够解决Tahoe太过剧烈的减少发送窗口的问题;Newreno算法的改进是在收到部分的ACK时并不会立刻结束快速恢复,而是等所有丢失的封包重传后才结束;Sack算法使用了SACK选项,可以明确地知道哪些包丢失了,减少无谓的重传;Vegas算法是基于往返时延RTT的一种拥塞控制算法,采用一种比较保守的方法避免拥塞,能够减少丢包率,但是存在错误估计RTT的可能,从而导致性能下降。

根据实验结果分析得到在各种不同的网络环境下五种算法的性能如下:

(1)在没有发生拥塞的网络环境中,各种算法的性能基本相同,发送端会持续高速的发送数据包,不会产生丢包也没有流量控制机制。

(2)在瓶颈链路高时延环境下,并没有发生丢包,但是传输的速率明显受限,各种算法受影响的程度基本相同。

(3)在瓶颈链路低带宽环境下,网络传输会受到影响,出现吞吐量下降、时延增加、数据包丢失的现象。Vegas算法的平均吞吐量最高,时延低,没有发生丢包,性能最出色。

(4)在一般拥塞环境中,Tahoe、Reno、Newreno、Sack、Vegas五种算法的平均吞吐量依次增加,但是Vegas算法不会出现丢包,并且时延低于其它几种算法,因此建议使用Vegas算法。

[1] 朱志良,邱媛源,李丹程,等.一种We服务复杂网络的构建方法[J].小型微型计算机系统,2012,33(2):199-205.

[2] 蔡小玲,范新丽. 不同队列管理机制对多媒体传输品质的影响[J]. 计算机应用,2009,29(S2) :24-26.

[3] 吉祖勤, 黄津津.基于NS2的队列管理算法DropTail和RED仿真与研究[J]. 实验室研究与探索,2014,33(1):6-28.

[4] 文 宏,樊晓平,张会福,等.无标度网络拥塞控制方法研究[J]. 小型微型计算机系统,2013,34(11): 2482-2486.

[5] 秦 光.计算机网络拥塞的高效控制方法研究[J].计算机仿真,2012,29(9):154-157.

[6] 葛彦强,汪向征,于江德.一种利用自组织映射和径向基函数神经网络的网络拥塞预测方法[J].微电子学与计算机,2012,29(12):176-179.

[7] 徐昌彪,鲜永菊. 计算机网络中的拥塞控制与流量控制[M]. 北京:中国邮电出版社,2007.

[8] Jain R,Ramakrishnan K K,Chiu Dah-Ming. Congestion Avoidance in Computer Networks with a Connectionless Network Layer[R]. Digital Equipment Corporation DEC-TR-506,1988.

[9] 陈新房. 基于RED算法的拥塞控制策略研究[D]. 大连:大连海事大学,2008.

[10] 孙 伟,温 涛,冯自勤,等.基于TCP NewReno 的稳态吞吐量分析模型[J].计算机研究与发展,2010,47(3):398-406.

[11] 钱艳平. 互联网拥塞控制算法若干问题研究[D]. 南京:东南大学,2005.

[12] 范·雅各布森.拥塞避免和控制[C]//美国计算机协会数据通信专业组会议,美国:ACM,1988:512-528.

[13] 孔金生,任平英.TCP 网络拥塞控制研究[J].计算机技术与发展,2014,24(1):43-46.

[14] 王庆凤, 陈 虹,王 萍.基于NS2的网络控制系统仿真平台的设计与实现[J].系统仿真学报,2011,23(2):270-274.

[15] 黄化吉,冯穗力,秦丽姣. NS网络模拟和协议仿真[M]. 北京:人民邮电出版社,2010.

Simulation of TCP Congestion Control Algorithms Based on NS2 Platform

LOUJiu,LIXiu-kun
(School of Computer Science and Technology, Harbin Institute Technology, Harbin 150001, China)

Network congestion control is the basis of network quality of service (QoS) mechanisms for normal operation, and congestion control mechanisms of TCP / IP network is the key guarantee for the stability and robustness of the Internet. In this paper, five classic network congestion control algorithms that include TCP Tahoe, TCP Vegas, TCP Newreno, TCP Reno and TCP Sack are performed on NS2 (Network Simulator-Version 2) simulation platform. Simulation results show that each algorithm is received unanimous influence in the high latency environment and the absence of packet loss environment. But in low-bandwidth environment and general congestion environment the Vegas algorithm is superior to the performance of other algorithms, which can be an effective basis for the selection and application of congestion control algorithms under the different network environment. Meanwhile students' understanding of congestion control algorithm can be deepened by the software simulation and actual test.

network congestion control; network simulation; NS2

2014-07-04

哈尔滨工业大学985工程教学实验室建设项目

娄 久(1977-),男,吉林长春人,高级工程师,主要研究方向:实验室建设与管理、计算机网络及可信计算等。

Tel.:0451-86413341; E-mail:loujiu@hit.edu.cn

TP 393.0

A

1006-7167(2015)02-0081-03

猜你喜欢
控制算法数据包时延
基于Jpcap的网络数据包的监听与分析
基于GCC-nearest时延估计的室内声源定位
基于改进二次相关算法的TDOA时延估计
SmartSniff
基于ARM+FPGA的模块化同步控制算法研究
FRFT在水声信道时延频移联合估计中的应用
基于分段CEEMD降噪的时延估计研究
一种优化的基于ARM Cortex-M3电池组均衡控制算法应用
一种非圆旋转工件支撑装置控制算法
移动IPV6在改进数据包发送路径模型下性能分析