一种面向网络拥塞的AQM算法研究

2019-08-12 02:35吉晓香
现代电子技术 2019年14期
关键词:控制方法

吉晓香

关键词: 网络拥塞; 控制方法; 数据驱动方式; AQM; 控制系统设计; 仿真测试

中图分类号: TN915?34; TP393                 文献标识码: A                    文章编号: 1004?373X(2019)14?0074?04

Research on AQM algorithm dealing with network congestion

JI Xiaoxiang

(Nanjing Normal University Taizhou College, Taizhou 225300, China)

Abstract: The AQM algorithm combining with the control theory usually has the deficiencies of complex calculation and long feedback period. Therefore, a calculation process control method of the AQM separation algorithm is proposed in this paper by adopting the database and data?driven mode, and combining the interface design of the MySQL database and NS2. Taking the RED algorithm as an example, the simulation test for the above control method was carried out with the NS2 software. It is found that the data?driven mode can effectively reduce the time delay and packet loss rate of the RED algorithm, which indicates that the data?driven mode used in this paper is feasible and effective for AQM algorithm implementation, and can provide a new idea for the network congestion algorithm.

Keywords: network congestion; control method; data?driven mode; AQM; control system design; simulation test

随着网络和信息社会的不断发展,人们对网络的依赖性日益提高,网络用户和服务(如物联网、云计算、云存储等)的规模也日益庞大,给网络的速度和性能提出了较大的挑战[1?2]。如何有效配置和优化网络资源,避免网络拥塞的发生成为当前网络研究的重要问题[3]。目前,控制网络拥塞的两大有效机制为主动队列管理AQM算法和TCP协议[4?5]。其中,AQM算法结合控制理论在网络性能的改善方面能够发挥重要的作用;然而,结合控制理论的AQM算法存在计算复杂、反馈周期(在线计算时间)长等缺陷,严重影响了算法的性能,不利于网络拥塞的有效控制[6]。因此,本文针对这一问题,基于数据库和数据驱动方式,结合MySQL数据库与NS2的接口设计,提出一种AQM算法的控制方法。该方法借助离线计算的数据驱动方式,将算法的输入数据和离线计算获得的输出数据存储在数据库的表格中,从而避免了NS2仿真软件中的在线计算过程。在分离算法计算过程的同时,有效提高了算法的运行速度和效率。

1  理论基础

1.1  主动队列管理AQM算法

AQM算法主要运行于路由器等网络设备中,用于实时检测网络的拥塞状况(队列长度)。在队列溢出前丢包,并产生相应的反馈信息,调整发送端的传输速率,使网络具备较高的稳定性和鲁棒性、较快的响应性、较小的延迟、较低的丢弃概率以及较高的链路利用率。目前,已经提出了众多种经典的AQM算法(如REM算法、PI算法、RED算法等),但大多存在算法复杂、在线计算周期长、实时控制网络能力差等缺陷[7?9]。

1.2  数据驱动设计思想

数据驱动的设计思想是基于已有的输入输出I/O数据(受控对象)对控制器进行设计,从而完成被控系统的功能期望(包括优化、决策等)[10]。其中,数据包括了在线和离线数据,系统的在线数据会随系统的控制方法、结构参数或者其他扰动的变化而实时变化,因此利用实时数据和反馈机制可以使数据驱动的控制器具备较强的抗干扰、适应和镇定能力;而系统的离线数据包含了系统较多的历史运行信息,利用离线数据可以提高控制器的穩定性。本文采用闭环控制方式对数据驱动设计思想下的AQM算法进行设计,其运行过程可描述为:首先,对网络系统的拥塞进行实时监控和检测;其次,发送拥塞相关信息给拥塞控制点;最后,控制反馈的拥塞信息并对拥塞进行消除。

1.3  NS2仿真软件

作为一款使用广泛的网络模拟仿真软件,NS2仿真软件实际上是以离散事件为基础驱动的模拟器。该模拟器配备了网络技术的多种模块,能够利用Otcl和C++语言实现各类网络协议(如TCP,FTP等)、路由队列管理机制(PID,RED等)及路由算法(静态和动态路由)、组播SRM和MAC子层等仿真实验,具有扩展性强、速度快、效率高、源代码开源等优势[11]。按照实验模块是否需要添加或修改,可以单独借助Otcl脚本的编写或同时借助C++与Otcl类的创建及Otcl脚本的编写来完成仿真实验。其一般的仿真步骤(已完成实验模块的添加工作)依次为:对网络拓扑进行设计,并完成Otcl实验脚本的编写;添加协议;配置模型参数(根据实验要求)、设置网络对象(产生trace文件,用于全程事件的记录);编写画图等辅助程序;运行脚本以开始实验;画出仿真结果。

2  AQM控制系统的设计

2.1  控制系统结构设计

根据数据驱动设计思想,AQM算法的控制系统可根据图1所示进行设计,具体的运行过程可描述为:

1) 对算法丢包率P进行离线计算,之后将I/O数据(包含控制策略)存储至数据库,并将AQM算法相关参数与上述数据进行绑定;

2) 在算法中编写相关的接口程序以完成接口的设计编译工作,编写连接程序(建立在NS2底层中)以实现与数据库的数据交换;

3) 借助Otcl语言查询并调用数据库中存储的丢包率及其他数据,以执行相应的丢包操作。

2.2  数据库与接口设计

针对本文AQM算法所需控制器只需将I/O数据存放至数据库的特点,文中选用容量较小、操作简单、成本较低的MySQL作为数据库[12]。因此,数据库与软件接口的设计可以借助MySQL数据库的API函数(C语言连接)和NS2仿真软件的TclClass机制来实现,即构建编译接口类Class TclMySQL。具体而言,在进行仿真实验时,NS2软件的各类模块会借助全局变量TclMySQL的实例化来完成与数据库的连接,从而进行数据库中的数据读取操作。接口设计的示意框图如图2所示。

3  AQM控制系统的实现

本文以RED控制器为例,对文中AQM控制系统的实现和仿真结果进行说明。RED算法主要借助参数(wq,maxp,minth,maxth)关系的确定来判断网络拥塞的程度,并计算丢失概率且进行丢包,从而避免或者缓解网络拥塞。RED算法中的平均排队长度avg计算公式为:

[avg←(1-wq)·avg+wq·q] (1)

式中,[wq]∈[0,1]为权重系数,q代表的是瞬时队列长度(采样测量)。

若avg

[Pb=0,                                    avg

式中,maxp代表的是丟包概率(小于1)。

相应的丢弃概率P,则可按照式(3)进行计算:

[P←Pb(1-count·Pb)] (3)

式中,P随count和avg的变化而变化,而count代表的是位于缓冲区中的包个数。

根据上述RED算法的式(2)和式(3)可得到RED控制器所需的输入输出数据,将其存为txt文件以备后续导入数据库。其中,输入数据为avg(设置为20~80包)和count(设置为0~30组),输出数据则为P。相应的部分数据输出程序如下:

void main(){

double minth=20.0; double maxth=80.0;

double maxP=0.02;

double avg; double Pb; double P; double count;

for(avg=74;avg<=80;avg++){

Pb=maxP*((avg-minth)/(maxth-minth));

for(count=0;count<=30;count++)

{

P=Pb/(1=count*Pb);

count<

}}}

数据库方面,将avg和count的数据类型设置为float,将P的数据类型设置为decimal(M,D)。其中,M和D分别代表根据需要留取的整数位及小数位的位数。

4  仿真结果分析

在仿真实验之前,设置如下参数:仿真时间设为50 s;瓶颈链路(R1和R2路由器之间)的容量设为1.8 Mb/s,相应的时延为25 ms,队列管理则选用AQM算法;其他链路的容量则设为2.5 Mb/s,相应的时延设置为15 ms,队列管理选用DropTail;路由器中的队列长度设置为120个封包大小;针对RED算法,选取经典参数wq=0.001 5,maxth=80,minth=20,maxP=0.02。相应的网络拓扑结构如图3所示。

分别选用不同的负载N(30和80)对本文结合数据驱动方式的RED算法(简称为DRED控制方法)与传统的RED算法进行仿真测试及对比。负载较小(N=30)时的平均队列长度、瞬时队列长度和丢包率的变化曲线如图4~图6所示。从图中可以发现,DRED控制方法和RED算法在平均队列长度、瞬时队列长度和丢包率上均具有相似的变化趋势。由此表明,本文数据驱动设计在负载较低时具有较高的有效性和可行性。从图4可以看到,DRED控制方法相比于传统的RED算法具有更优的稳定性,其平均队列抖动更小;从图6可以发现,DRED控制方法相比于RED算法具有更小的丢包率。此外,从仿真实验结果中还发现,DRED控制方法具有更小的延时,为0.180 357 s,小于RED的0.184 246 s。这相对于排队延迟来讲具有较大的意义,能够有效减少丢包率。总体来看,在负载不大时DRED控制方法的性能略优于RED算法,表明结合了数据驱动设计思想和离线数据读取方式下的AQM算法,对于缓解网络拥塞具有较大的潜力。

负载较大(N=80)时的平均队列长度、瞬时队列长度和丢包率的变化曲线如图7~图9所示。从图中可以发现,DRED控制方法和RED算法在平均队列长度、瞬时队列长度和丢包率上同样具有相似的变化趋势。表明本文数据驱动设计在负载较高时,同样具有较高的有效性和可行性。从图9中同样可以看到,DRED控制方法相较于RED算法具有更低的丢包率。此外与低负载时类似,DRED控制方法在较高负载时同样具有更小的时延,为0.220 134 s,小于RED的0.238 479 s,表明DRED控制方法在较大的负载情况下相较于RED算法具有更快的瓶颈链路处理速率,使时延(端到端)大幅降低,从而有效减小了丢包率。总体来看,在负载较大时DRED控制方法的性能优势更为明显,表明结合了数据驱动设计思想和离线数据读取方式下的AQM算法,确实能够有效缓解网络拥塞。

5  结  语

结合控制理论的AQM算法通常存在计算复杂、在线计算时间长等缺陷,因此,基于数据库和数据驱动方式,本文结合MySQL数据库与NS2的接口设计,提出一种AQM算法的实现方法。该方法借助离线计算的数据驱动方式,分离算法的计算过程,从而达到提高算法运行速度和效率的目的。本文以RED算法为例,在该算法中引入数据驱动的设计思想,并在NS2仿真软件中进行实现和测试。结果表明,结合数据驱动方式的RED算法相较于传统的RED算法具有更小的时延与更低的丢包率,说明了本文使用数据驱动方式实现AQM算法,在网络拥塞的缓解方面具有巨大的潜力。

参考文献

[1] 陈金超,谢东亮.无线网络TCP拥塞控制算法研究综述[J].软件,2015,36(1):82?87.

CHEN Jinchao, XIE Dongliang. Survey on TCP optimization in wireless network [J]. Computer engineering & software, 2015, 36(1): 82?87.

[2] 陈鸿俊,范太华,穆炯.基于多目标拆分优化思维的拥塞网络数值调度方法[J].沈阳工业大学学报,2016,38(4):440?444.

CHEN Hongjun, FAN Taihua, MU Jiong. Numerical scheduling method for network congestion based on multi?objective resolution optimization [J]. Journal of Shenyang University of Technology, 2016, 38(4): 440?444.

[3] WELZL M. Network congestion control: managing Internet traffic [M]. New York: John Wiley & Sons, 2005.

[4] QUET P F, OZBAY H. On the design of AQM supporting TCP flows using robust control theory [J]. IEEE transactions on automatic control, 2004, 49(6): 1031?1036.

[5] 罗成,谢维信.传感器网络拥塞避免与控制的模糊AQM算法[J].电子学报,2014,42(4):679?684.

LUO Cheng, XIE Weixin. Fuzzy AQM for congestion avoidance and control in sensor networks [J]. Acta electronica sinica, 2014, 42(4): 679?684.

[6] 刘雪梅.基于模糊控制理论的主动队列管理算法研究[D].南京:南京理工大学,2013.

LIU Xuemei. Research on active queue management algorithms based on fuzzy control theory [D]. Nanjing: Nanjing University of Technology, 2013.

[7] 陈炳卿,牛玉刚.一种基于RBF网络的参数自调整REM算法[J].华东理工大学学报(自然科学版),2010,36(3):428?432.

CHEN Bingqing, NIU Yugang. Parameter self?regulation REM algorithm based on RBF neural network [J]. Journal of East China University of Science and Technology(Natural science edition), 2010, 36(3): 428?432.

[8] 施利利,卢先领.适用于WSNs的拥塞自适应多径路由算法[J].传感器与微系统,2014,33(8):141?144.

SHI Lili, LU Xianling. Congestion adaptive multipath routing algorithm for WSNs [J]. Transducer and microsystem technologies, 2014, 33(8): 141?144.

[9] 范纪松,武欣嵘,刘杰.一种改进RED算法稳定性研究[J].系统仿真学报,2010,22(7):1711?1715.

FAN Jisong, WU Xinrong, LIU Jie. Modified RED stability research [J]. Journal of system simulation, 2010, 22(7): 1711?1715.

[10] 哀微.基于随机逼近的数据驱动控制方法研究[D].广州:华南理工大学,2011.

AI Wei. Research on data?driven control method based on stochastic approximation [D]. Guangzhou: South China University of Technology, 2011.

[11] ISSARIYAKUL T, HOSSAIN E. Introduction to network simulator NS2 [M]. New York: Springer, 2012.

[12] WIDENIUS M, AXMARK D, DUBOIS P. MySQL reference manual [M]. Sebastopol: O′Reilly & Associates, Inc., 2002.

猜你喜欢
控制方法
关于加强国有企业成本控制的思考
浅析水利工程施工中常见问题与控制方法
在节能土建工程监理中控制方法的应用
论述桥梁施工监理中的质量控制
探讨建筑工程质量管理之影响因素及质量控制
园林工程目标成本控制方法研究
民族声乐演唱中的情感表达研究
试论配电检修中危险点的判断及控制方法
地市级供电企业财务内部控制的几点思考
煤矿企业人力资源管理存在的风险因素及控制方法