多业务量矩阵下流量工程算法性能研究
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
多业务量矩阵下流量工程算法性能研究
1 前言
近 10 年来,互联网得到了引人注目的发展,随之相关的是网络规模和业务量的急速增长。用户对网络性能的要求也越来越高,尽管网络硬件设施得到了很大的改善,但这对网络运营商仅仅是杯水车薪。如何合理配置业务流量,充分利用有限的网络带宽,避免链路瓶颈,达到全网的性能最好这才是问题的关键。代写硕士论文在职硕士论文
TE(Traffic Engineering)作为解决上述问题的关键技术之一,主要研究的就是网络的性能评估和优化。其中,伴随着OSPF 和IS-IS 等协议的普遍应用,基于最短路径算法的IP-TE问题更是得到深入的研究。通过调整链路权重的设计,使得业务流绕开拥塞的链路达到全网负载均衡的目的。
Bernard Fortz 在文章中提出了传统IP 网络中TE 算法的一些事项,如链路权重的设计,使用传统OSPF/IS-IS 协议的好处等等,该作者在中分析了采用基于OSPF/IS-IS 的TE 算法求最小最大链路利用率是NP-hard 问题,进一步提出了一种启发式的算法用于求解单业务量矩阵下的最小最大链路利用率,证明了该算法性能与MPLS 下性能旗鼓相当,然而作者在该文中采取的是ECMP 的分流机制,并且该算法针对的是单业务量矩阵。
作者针对的是多业务量矩阵下的TE 算法求解,作者仅仅指出了求解该问题是NP 完全问题,并没有给出实际的好算法。通常为了解决TE 算法需要确定业务量矩阵,一文中作者专门研究了在业务量矩阵不确定下,通过预估业务量矩阵的方式来求解,并比较了预估的结果与真实业务量矩阵下的结果,但即使如此,预测的值与真实的值是有差别的。
提出了一种ECMP/MPLS 混合模型并通过分解模型和进化算法,该算法能有效求解流量分配问题,在相对于单一的ECMP/MPLS 模型也不失为一种不错的选择。文章均是为了解决鲁棒路由而提出的方法,而本文中的多业务量矩阵是已知确定的。这是由于通常情况网络业务的不确定性,即使能估计出业务量矩阵也不能保证估计值万无一失,因此采用多个业务量矩阵来表示更为准确,本文中考虑是多个已知的确定业务量矩阵下的TE 算法。
本文研究的重点在于多业务量矩阵下TE 性能的分析。首先提出了一种启发式的算法用于解决多业务量矩阵下的优化问题,我们优化的目标是多业务量矩阵下的best worst caseperformance,具体来说是最小最大链路利用率,使得用该套权重去跑所有的业务量矩阵得到的最差的性能是最好的。通过分析该算法中的不同因子为算法更好的使用提供了很好的参考价值。
本文的下面内容安排如下:第二节对传统的基于OSPF/IS-IS TE 算法进行了简单的描述;第三节详细介绍了本文中算法的设计流程;第四节介绍了实验环境以及相应的实验结果并给出了相应的分析;最后是本文的一个总结以及下一步需要研究和改进的方向。
2 基于传统OSPF/IS-IS 的TE 优化问题目前 IP 网络中,由于OSPF,IS-IS 的最短路算法的路由协议的广泛应用,使得基于IP的TE 算法得到了很广泛的研究。其最大的优点在于能够简单有效的实现流量传输,不需要改动现有的路由协议,可扩展性强,即便在链路失效或者权重改变的情况下,也能通过网络的自收敛选出新的路径来路由。
下面举个简单的例子来说明传统的基于OSPF/IS-IS 的流量工程的解决方案。在图2.1中假设q, r, s,w都有一个单位的流量要传输到t,链路(u,t)
和(w,t) 的容量都是两个单位的流量。左图中每条链路的权重都是1,因此,q, r, s都选择了通过u的路径,结果在链路(u,t)上需要传输3 个单位的流量,那么会超过该链路的容量,而(w,t)链路则没有完全利用。而右图中把链路(r,u)的权重设为3,则r 的流量选择了r →v→w→t 的路径,链
路(u,t)和(w,t)都得到了完全利用,从而达到了TE 所要实现的负载均衡的目的。
然而在实际网络流量工程中,基于IGP 的流量工程主要限制包括:IGP 限制于单一的链路权值;链路权值不能对流量的变化和网络的失效做出反应,但实验证明通过单一权重配置下得到的最优化结果于MPLS 下的最优化结果相差不大。
本文中考虑的是多业务量矩阵下TE 算法的性能,我们的优化目标是针对所有的业务量矩阵获得一套最好的权重方案,使得在该套链路权重下性能
是最好的,即寻找出the bestworst case performance 的固定路由方案。
3 多业务量矩阵下TE 算法3.1 算法设计本算法使用的初始数据是网络拓扑结构和平均业务量大小。这些数据在真实的网络中也是可以获得的。采用Dijkstra 最短路来对业务流进行分流。同时算法中还利用了K 路由来转移过载链路上的业务。
算法的伪代码如下:
(1) 按照txt 文件中的数据生成相应的网络拓扑结构图,使用rand()函数为N 业务量矩阵中的每一个业务量矩阵中的每一对节点对生成平均业务量大小;
(2) 依据生成的业务,输入节点对的平均业务量大小;
(3) 利用Dijkstra 算法计算出全网中最过载链路上最大的业务对,对于N 业务量矩阵,那么对于每一个业务量都有一条最过载的链路,然后选取N 当中最过载的那条链路,找出该链路上占比例最大的业务对,如(s,t)以及最大链路利用率;
(4) 计算节点对(s,t)的k条路由;
(5) 利用启发式算法调整链路权重,K 路由中的K 值固定,可以修改,然后返回(3)重新迭代计算,如果修改权重后计算的最大链路利用率变小更新该值,否则不更新;具体的链路调整权重方法见章节;
(6) 到达迭代次数,返回最小最大链路利用率。
3.2 链路权重的调整方法
具体的链路调整方法如图3.1 所以,我们需要将业务对(s,t)从1 P 路径上转移到k P 路径上。参数st r 表示节点对(s,t)之间的最短路径长度。对于k P 上的每条链路权重改变如下所示:
4 仿真实验
4.1 实验框架实验
框架的整体流程是:利用给定的网络拓扑结构,初始的链路权重和假设的业务量矩阵作为实验的初始数据,在vs2005 平台依据启发式算法求出最小最大链路利用率,然后调整算法中的参数来分析影响算法性能的因子。本实验在c++程序的基础上,针对不同大小网络拓扑,不同类型业务量矩阵,从初期的算法调试,到后来验证算法的有效性进行了多次仿真实验。
4.2 验证算法的网络拓扑
本实验方案中,考虑了三种不同规模的网络拓扑,三种网络拓扑的共同特点是链路带宽均为100 个单位。业务量矩阵的个数N 取10,迭代的次数均取值1000,初始权重全都设置为1,业务量矩阵中节点对的业务量大小是通过随机函数rand()生成的。本文将从不同大小的网络拓扑,通过大量的实验仿真来说明算法中哪些因素会影响网络性能,并为算法的改进提供参考依据。
4.3 实验结果及分析
根据图 4.2 的结果,我们发现k 的取值对网络性能有很大影响,但k 取值较小时算法得到的最大链路利用率与最优解有很大差距。一旦k 取值达到某个门限值时再增加k 的大小对网络性能又没有影响。经过数据分析发现,这个门限值与k 路由所能求得的最大条数是有关系的,数据表明在一半左右。网,参考文献:wzlb-5.html
通过该实验也验证了当平均业务量增大时相应的性能与业务量增大成正比。同时,k 取值对算法的成功也有很大影响。
5 结束
语传统 IP 网络中,基于链路权重控制网络性能的TE 算法作为网络中实现负载均衡的重要机制之一,其算法思想研究的较早,比较成熟,同时具有很多优点,比如不对现有网络协议进行改正,算法灵活,协议开销较小等等。然而,该算法的一大缺点是最优解属于NP 问题,无法在大规模网络中有效求得准确解,并且更没有使用该算法扩展到多业务量矩阵。本文从实际出发,提出的一种新的启发式算法用于多业务量矩阵下的性能优化,