基于云计算中网络拓扑设计算法RGA的实现Word文档格式.docx
- 文档编号:14202380
- 上传时间:2022-10-20
- 格式:DOCX
- 页数:5
- 大小:20.84KB
基于云计算中网络拓扑设计算法RGA的实现Word文档格式.docx
《基于云计算中网络拓扑设计算法RGA的实现Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于云计算中网络拓扑设计算法RGA的实现Word文档格式.docx(5页珍藏版)》请在冰豆网上搜索。
网络
0引言
云计算是基于互联网的商业计算模型。
它利用高速互联网的传输能力,将数据的处理过程从个人计算机或服务器移到互联网上的服务器集群中。
这些服务器所在的地理位置也不尽相同。
现在将这些大量的服务器有效组织成一个合理的网络拓扑结构,不但能够保证网络的稳定性,而且可以提高网络的性能。
目前云计算网络有如下特点:
①云计算系统由于面向大量的用户和大规模的业务处理,因此网络内部数据流量大,而且还因为业务和资费的不同具有服务等级区分度大的特点;
②云计算系统后端的网络由分布广泛的成千上万台服务器集群组成,复杂度远远大于一般公司的网络,在这样复杂的网络中要消除瓶颈保证数据的畅通传输,并保证整个系统的稳定性,需要设计一个合理高效网络拓扑结构,而现有的网络拓扑设计不能满足如此大规模的要求;
③云计算系统需要具有好的可扩展性,因为如此规模的系统不可能一次就建好,而且随着用户的增加和服务的盈利会使规模持续扩大,但同时还不能因为扩展降低原有网络的效率或者带来瓶颈;
④云计算系统用户将很多重要的数据放到云上,网络要求具有很高稳定性,因为,很多关键的业务也需要依赖云来开展,因此网络的失效或者阻塞都是不可接受的。
因此在保证网络能力的情况下,需要减少网络的复杂度,从而降低路由交换的复杂度,同时节约搭建和维护的成本。
基于以上原因,我们认为需要进一步地考虑云计算的网络拓扑,因此本文对云计算系统后端的网络拓扑结构、设计和提出适合相关算法做了一些相关的研究。
1网络拓扑设计构架
云计算系统后端的网络拓扑结构非常复杂,一个云计算的应用都是面向全球,因此它的服务器集群不会集中在一个地点,而且考虑到维护和管理扩展的方便,可能分为几个子网,一个子网内应该是接近树型的网络拓扑。
因此,对于云后端的网络拓扑设计,我们任务基本的框架组合应该是由众多的树形网络拓扑而成,其基本构造如图1。
对于每个树形网络拓扑,每个交换机下还可能有1到2层交换网络,而且每个交换机也不用遵循完全的树形网络,可以有一些互连。
总之对于每个树形的子网,是可以通过现有的网络拓扑设计方法做好的,因此云计算系统网络拓扑设计的核心交换层就是各个子网之间的互连。
核心交换层的网络拓扑设计,这关系到整个网络的稳定性和效率复杂度。
显然将所有核心交换建立一个抗稳定性的全连通的网络是节点两两互连,这样可以最大限度的避免阻塞;
但是这样不但加重了网络搭建和维护的成本,而且加重了各自的路由和管理复杂度,原因是分布各地的服务器网络要向全国甚至全球提供服务,如果想构造的网络拓扑是最简单、最廉价的,则以交换节点的任意一点为根生成一棵最小生成树,但是这样稳定性很不好。
任意链路或者一个交换节点失效,都会造成整个网络的不连通,从而使平台不能正常提供服务;
而且在数据流量突发较大的时候,也有可能造成网络的瓶颈。
因此,简化后的整个网络拓扑模型如图1所示。
我们为了要研究问题而对该网络拓扑结构进行抽象,将每一个子网看作一个节点,该节点只具有子网流量(子网进出核心交换层网的流量)、地理位置和交换能力等特点。
然后网络主干拓扑的问题就可以抽象为在已知若干个节点的容量、地理位置和可能流量的基础上,考虑这些节点如何互连,从而组成一个网络架设花销又尽量小的和冗余度满足要求的网络拓扑。
2网络拓扑设计算法及实现
2.1一些图论的基本定义
令图G=(V,E)表示网络拓扑结构的节点和一切可能的连接。
G是简单无向图,即G没有重边和环。
令V和E表示其顶点集合和边集,其中顶点个数用n表示,边条数用m表示。
连接顶点u和v的边记为uv。
对于任意一条边e-1=uv,w(e-1)代表在u,v之间建立链路的花销。
令图G的子图G’=(V,E’)表示我们所求解出的网络拓扑,其中EE′E,同理我们令m’表示E中的边数。
对于给定的连通度k,G和G’都满足k连通。
2.2链路花销的定义
对于一条链路e-1∈E,c-1表示链路的带宽,根据参考文献,链路e-1的建立花销可以定义为:
w(e-i)=d(c-i)+f(c-i,l-i)
(1)
其中d(c-i)表示和链路带宽相关的一个常量,f(c-1,l-1)表示建立链路的花销,l-1表示链路的物理长度。
根据上面的定义,整个网络的花销可以定义为:
w=∑[DD(]m[]i=1[DD)]w(e-i)wheree-i∈E′
(2)
2.3容错度的说明
我们定义一个图为k点(边)连通的,当且仅当删除图中的(k-1)个节点(k-1条边)后,余下的图中任意两点仍然可达。
令κ(G)和λ(G)分别代表一个图的点连通度和边连通度,显然一个网络是(k-1)容错的等价于它的拓扑图是k连通的,因此,可以用网络拓扑图的连通度来衡量其容错度。
我们定义一个顶点v的度为连接到该顶点的边的数量,记为deg(v)。
由k连通图的定义可以看到,对于一个k连通图(点连通或者边连通的任意顶点v,有deg(v)≥k,因此一个k连通图的总的边数至少为(kn/2)。
而且文献[40]已经证明了,对于任意一个最小k连通图,其边数不超过k(n-k),所谓最小k连通图,就是指去掉任意一条边后,该图就不再是k连通的了。
一个图的最小的顶点度我们记为δ(G),即δ(G)=min(deg(v-i))对于任意v-i∈V,根据文献[7],我们有
κ(G)≤λ(G)≤δ(G)(3)
即任意k边连通图和k点连通图的最小度一定大于等于k。
在本论文所讨论的三个算法中,第一个主要研究链路失效的抗毁能力的k边连通的情况;
第二个主要研究节点失效的抗毁能力的k点连通的情况;
第三个可以适用于前面两种情况。
2.4公式化后的问题
从上面表述的问题可以表示为:
对于一个给定网络节点地理位置,找到一种满足花销最小且链路带宽规划和容错能力要求的网络拓扑结构,即找出需要建立的链路集合E′E,E代表所有可能建立的链路集合,满足:
w=∑[DD(]m[]i=1[DD)]minsubjecttok(G)≤korλ(G)≤k,wheree-i∈E′(4)
在接下来的3个小节中,论文将要探讨思考的3种想法,并且比较3种算法的优劣。
2.5merge-MST算法
merge-MST算法主要考虑的是点连通的情况。
因为算法的主要思想是取多个最小生成树的并集最为结果,我们这个算法简称为merge-MST。
根据文献[7],图的点连通的定义可以用以下公式来刻画:
k(G)=kk(G′(V-V-{k-1},E-E-{k-1})=1forV-{k-1}∈V(5)
其中V-{k-1}表示图G中任意k-1个顶点组成的集合顶点,E-{k-1}表示所有和V-{k-1}中顶点相连的边。
结合上文最小生成树算法和连通度的定义,从而提出的merge-MST算法思路如下:
对每个节点集合V-{k-1},计算图G(V-V-{k-1},E-E-{k-1})的最小生成树T-i,所有算得的T-i的并集就是我们要求的结果。
由公式(3)、(5)可知,merge-MST算法得到的结果满足连通性要求是很明显的,其运行时间复杂度为O(C+k-n×
T-{MST},其中T-{MST}代表最小生成树的时间复杂度。
当k较大时,merge-MST算法的时间花销是比较大的,幸运的是对于在实际网络拓扑设计中,k一般都比较小,故该算法还是在某种程度上有参考价值的,它另外一个重要的特性就是能够支持并行计算,当使用C+k-n个处理器同时计算时,它的时间复杂度将能降低到o(T-{MST}。
2.6k-FOREST算法
FOREST是图论领域求解k连通无向无权生成子图的一个经典的算法,在它的主要思想的启发下,我们考虑使用k-FOREST算法,算法的大致过程如下:
先在图G中找出一个最小生成树T-i,从G中删除T-i的所有边得到G-T-i,再从G-T-i中找出一个最小生成树T-2,从G-T-1删除T-2得到G-T-1-T-2,重复以上过程k次,T-1+T-2+…+T-k将是我们所要求解的答案。
值得注意的是,该方法只适合用于k边连通情况,算法得到的生成子图G’最多有k(n-1)条边,其时间复杂度为o(k×
T-{MST}),其中T-{MST}是求最小生成树的时间复杂度。
对于两种著名的求最小生成树的算法prim算法和kruskal算法,它们的时间复杂度分别为o(n+2)和o(n×
logn)。
2.7RreversedGreedyAlgorithm(RGA)算法
该算法是本论文提出的网络拓扑设计最重要的算法。
大家知道,求解约束优化问题的一个经典算法是贪心算法,在很多情况下,它能够求得最优解(如最小生成树);
在另外一些问题中,由于其算法简单高速且很适合实际应用像求得一个不错的近似解(如01背包问题),所以我们使用贪心算法的思想考虑对本文提出的问题。
但是,我们的问题普通的贪心算法是不适用的,由于该问题不能建立一个贪心算法的模型。
但在贪心算法的启示下,我们提出了成功求解本文的问题一种反向的贪心算法。
通俗地说,贪心算法是尽量先取最好的,而我们提出尽量先排除最差的反向的贪心算法。
算法大致过程如下:
先将图G所有边e按花销w降序排列,然后按花销最大的边开始,看看去掉该边后图G是否还满足连通性条件,如满足则去掉该边,直到不能再去掉任何边为止,该算法适用于边连通和点连通的情况,而且连通性约束是必然满足的,由于每去掉一条边时都作了验证,保证去掉那条边后连通性条件依然能满足。
算法的时间复杂度为o(mT-c),其中T-c是检验图的连通性的时间。
据我们了解,当前检验k边连通性的时间复杂度为o(n+{5/3}m),检验图k点连通性的最好时间复杂度为o(max{k+3n+{3/2},k+2n+2}。
另外,RGA算法不需要对算法作大的改动而且能支持更多的约束条件(如整个网络的平均传输延迟),即还具有很好的扩展性,只需要在每次验证连通性的步骤中增加新的验证选项即可。
3时间复杂度比较
对于该类网络拓扑设计问题的时间复杂度对比算法效率本身也有很高的参考价值。
首先,通过理论的推导,以下得出4种算法的时间复杂度如表1所示。
对于merge-MST算法,显然C(n,k)远远大于k,因此该算法时间复杂度比较高,然而k一般不太大,因此不会出现指数爆炸的情况。
对于k-FOREST,其中T-{MST}=o(mogm)或者o(n+2),依赖于所采用MST算法,m代表原图G的边数,n代表原图的顶点数,对于完全图来说,m=(n+2-n)/2,o(n+2)耗时较小,应选择prim算法;
对于RGA算法,Tc是检验一个图是否为k连通图的时间复杂度o(n+{5/3}或o(max{k+3n+{3/2},k+2n+2),分别对应边连通和点连通的情况,该时间复杂度是大于k-FOREST的时间复杂度的,但在k>
1时小于merge-MST算法的时间复杂度,在较好的算法结果保证下,并且不随k的增长而快速增长,该时间复杂度是完全可以接受的。
因此,综合考虑生成效果的因素和时间复杂度,我们可以
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 计算 网络 拓扑 设计 算法 RGA 实现