基于I-ARD演算机制的SCTP网络自适应负载均衡机制的研究
2015-12-23詹可强
詹可强
(福建信息职业技术学院计算机工程系,福建福州350001)
面对网络环境与技术应用的日趋复杂,使用TCP或UDP协议传输的效率问题与安全性问题愈发凸显.IETF 在2000 年10 月制订的Stream Control Transmission Protocol(SCTP)传输协定,改善传输效率与安全性的缺陷,并新增了多宿主(Multi-homing)和多流(Multi-streaming)机制.
TCP 本身机制并未支持多路传输机制,故实施负载均衡机制会遇到许多困难,同时在负载均衡的解决方法中,也常遇到失序的问题,造成不必要的重传与数据包丢失的误判,反而导致更多资源浪费与多余的数据包等待时间.
SCTP协议提供了多宿主和多流机制,允许端点间使用多条路径做数据传输用,但传统的SCTP协议仅选择同一关联中的一条路径作为数据传输的主要路径,只有当重传数据或路径故障时才切换到备用路径,而不支持多路径同时传输,在拥有多路径的网络环境中,并不能有效地提升网络使用率[1].随着多宿主的大量出现和SCTP的广泛应用,同时实时多媒体业务对带宽的需求越来越大,研究如何利用SCTP的多流机制实现多路径传输和负载均衡就具有很大的现实意义.
1 研究概况
负载均衡是一种策略机制,它能通过多条链路或多台服务器共同承担一些繁重的I/O任务或计算,进而能以较低成本消除网络瓶颈,提高网络的灵活性和可靠性.负载均衡技术不仅可以维持网络系统中负载的均衡分配.还能维护网络系统的高效运行,因而是保证网络系统高性能的重要技术[2].目前实现负载均衡的策略主要是在OSI 模型中的传输层实现,最常用的负载均衡算法有RR(Round Robin)算法和WRR(Weighted Round Robin)算法等.
RR 算法是把客户请求依次分派给各个成员服务器,其方式可以简单理解为随机选择的方式.这种算法把各个服务器都看作是完全相同的.并不考虑每个服务器的连接数和响应时间的不同.相当于在服务器群中随机选择提供业务的服务器[3].但由于这种算法是随机选择服务器的,因而在某些情况下对于服务器负载均衡的处理不够理想.
WRR 算法是在RR 算法的基础上,根据服务器群中各个服务器的运算速度及可建立连接数等方面的不同能力,给服务器群中的各个服务器加上相对应的权重,通过依据高权重优先的方式进行处理,来提高算法的负载均衡能力的改进型算法.但这种算法以分组为单位进行服务,存在分组变长时带来的不公平性[4].
ARD(Arrival Rate Dependent)算法是依据数据包到达率和服务率之间的依存关系来计算权重和服务时间,动态的分配数据包[5].这种算法较好地实现网络的负载均衡,但存在当到达率过小时无法实现负载均衡的情形.
综合以上考虑,本文基于ARD 算法,提出新的改进型负载均衡演算机制I-ARD(Improved Arrival Rate Dependent).
2 ARD算法及其改进
2.1 ARD算法思想
ARD算法是以数据包的到达率和路径的服务率的情况来动态地分配数据包,其根据到达率λ与服务率μ的相依关系,来推导路径权重ϕ的过程,从而根据权重来选择数据包传输路径[5].负载均衡的架构主要是由路由器作为多条对外路径的数据包分配者.当路由器接收到由区域网络送来的数据包时,会计算并挑选一条对外路径并转发出去;对外权重ϕi的分配是通过到达率λ与服务率μ推导得知;而权重是用来将λ依照比例分配到每条对外的路径上.因此,根据ARD 算法的数学公式可以得到以下结果:
由公式可以推导出权重ϕi,所以可再由后端所得回来的服务率求得各路径应分配的权重.
2.2 ARD算法的缺陷及改进
针对上述方法所计算出来的各个路径的权重ϕi,存在当服务率分别为20 与30 时,且到达率每秒小于24与12时,数学运算式会产生负值,见表1.
表1 权重与到达率、服务率关系Tab.1 The relationship between weights and arrival rates as well as services rates
ARD算法能较好的实现数据包在不同路径上的动态分配,从而实现网络的负载均衡.但其考量若单位时间内到达率过小时,数据包只会被分配到服务率大的线路,如果网络上的数据包发生阻塞时将会造成大量数据包都在同一线路等待,而权重值为0或负值的线路无论如何也不会收到任何数据包.
因此,我们修正ARD 数学运算式产生负值的部分,也就是当到达率小于24 且服务率为20 时,以及到达率小于12且服务率为30时的情况.由于此情况造成权重为负值,且ARD预设值是以0表示,如此将导致对外连接完全接收不到任何数据包.针对此问题,将权重为负值的部分改为1,同时针对闲置的对外连接分配数据包,并依据服务率高低按优先权处理.而转换成权重部分,如表1权重值部分的括号所示,同时由服务率最高线路以借一的方式补给服务率低的权重以符合运算式中权重相加必须等于100的规则.
针对ARD 所做的修改,主要是基于当到达率呈现泊松分布时,抵达的几率时间将呈现指数分配状态.因此,按照原本ARD 方法,当网络发阻塞的时候,会因为权重配给方式,导致数据包同时涌入同一条对外线路,造成数据包大量等待现象;其修改后的算法正是针对这些状态修正,修正方法主要依据服务率进而动态分配调整权重,由于线路服务率越大,表示服务完一个数据包的时间越短,也代表目的端接收来自源端传送数据包的时间越短,故此处所修正的方法为:将闲置的对外线路加以判断,若有闲置的对外线路时,某个权重优先权较大的对外连接,其服务数据包的时间比正在闲置的对外连接服务时间还长时,便把目前需要分配的数据包分配给此闲置的对外连接,并将其权重减1 以符合ARD 的权重分配;另外,为避免服务率最好的线路权重等于0而导致闲置,因此,所有的权重值在减1 前先进行判断,假设权重已经为1时便不再减1,以确保线路会持续的服务,直到当所有的线路权重都被减至1时,此时才将所有连接的权重设为原先预设权重.本文将此算法称之为I-ARD(Improved Arrival Rate Dependent)演算法,其演算方法如下:
3 系统仿真
本文利用NS2 仿真软件来模拟现实网络状况,比较下I-ARD 算法和RR、WRR 算法,在SCTP 网络环境下模拟各路径服务率为每秒50 个数据包的相同环境下,单条路径与三条路径的效能分析.通过仿真我们可以看到在单路径情况下,网络的吞吐率大约在每秒8 个数据包上下;在相同三路径同时传输情况下,网络的吞吐率大约是一条路径情况下的三倍,每秒大约25个数据包上下.故由结果可知,将原本SCTP所支持的多宿主机制,由单路径修改成多路径传输,可得到不错的传输效能.
虽然可以很轻易的将SCTP 由原来的单路径修改成多路径传输,并针对每条路径给予其独立的路径序列号PSN 来达到各自的拥塞控制,但无可避免地会影响TSN 接收时乱序的问题,尤其是路径的服务率不相同时和使用较大的接收窗口时,发生的情况更加严重.本文针对路径的服务率在每秒50、30、20 和I-ARD 2 min 动态调整权重的情况下,模拟不同接收窗口大小时,对TSN 接收时乱序所产生的变异做一分析.变异分析的算法,是以接收端接收到的数据包序号,减去应接收到的数据包去平方并求和,再除以总共接收的数据包数后,再开根.通过演算,可以得到不同权重和接收窗口大小下对接收数据包序号的变异情形,见表2.
表2 不同权重和接收窗口大小下对接收数据包序号的变异情形Tab.2 Different weights and receive window size variation situation under the received data packet number
从表2 的实验结果可知,采用动态调整权重比的I-ARD演算法比RR和WRR演算法能更好的降低多路径传输情况下接收数据包乱序的问题.
4 结束语
SCTP协议是新兴的传输层协议,它具有许多优秀的、值得开发的新特性.随着网络软硬件的不断发展进步,SCTP未来也会逐步取代TCP成为更加稳定和优秀的传输协议.SCTP协议的多宿主和多流机制对在当今负载日益增加的网络环境下如何充分利用带宽资源实现多路径传输和负载均衡具有很重要的现实意义.本文分析比较了OSI传输层中常用的RR、WRR和ARD负载均衡算法,并基于ARD算法,通过修改算法权重的方式提出新的I-ARD 算法.通过仿真分析,验证当使用I-ARD算法比起RR、WRR算法都能更有效的改善负载均衡的传输性能,降低接收数据包乱序的问题.但改进后的协议算法同时也增加了协议的计算开销,使得协议的吞吐量较低,因此,下一步的研究将进一步提高协议的吞吐量.
[1]鄢欢,高德云,宋飞.基于SCTP 多路径并行传输的性能评估[J].计算机技术与发展,2010,20(11):29-32.
[2]李双庆,古平,程代杰.Web 系统负载均衡策略分析与研究[J].计算机工程与应用,2002,38(19):40-43.
[3]Shreedhar M,Varghese G.Efficient fair queuing using deficit round robin[J].IEEE/ICM Trans Networking,1996,4:375-385.
[4]LI M Y,Song B.Design and Implementation of a New Queue Scheduling Algorithm in Diffserv Networks[C].The 2nd IEEE International Conference on Advanced Computer Control.Shenyang:IEEE Press,2010:117-122.
[5]Chang L H,Wang D J,Lai K C.Network Gateway Design and Implementation Using Dynamic Load Balancing[J].Journal of Internet Technology,2004,5(1):19-25.