基于模拟退火的动态分布式多播路由方法.pdf

上传人:奻奴 文档编号:698051 上传时间:2018-03-05 格式:PDF 页数:24 大小:1.10MB
返回 下载 相关 举报
摘要
申请专利号:

CN200610086144.9

申请日:

2006.09.04

公开号:

CN1968122A

公开日:

2007.05.23

当前法律状态:

终止

有效性:

无权

法律详情:

未缴年费专利权终止IPC(主分类):H04L 12/18申请日:20060904授权公告日:20081105终止日期:20160904|||授权|||实质审查的生效|||公开

IPC分类号:

H04L12/18(2006.01); H04L12/56(2006.01)

主分类号:

H04L12/18

申请人:

南京理工大学;

发明人:

张琨; 王珩; 张宏; 刘凤玉; 严悍

地址:

210094江苏省南京市孝陵卫200号

优先权:

专利代理机构:

南京理工大学专利中心

代理人:

朱显国

PDF下载: PDF下载
内容摘要

本发明公开了一种基于模拟退火的动态分布式多播路由方法。它是以一种分布式方式构造出满足时延和时延抖动约束的最小代价多播路由树,并支持多播树的动态重组。本发明由初始解构造过程和最优解构造过程组成。其中,初始解构造过程是在不考虑代价前提下,构造一棵满足端到端时延和时延抖动约束的初始多播树;最优解构造过程是通过模拟退火不断迭代降低初始多播树的代价,通过交换路径在可行解范围内构造邻域解解,最终获得满足条件的多播树。采用本发明的方法可支持多播树的动态重组,构造代价很小、网络性能较好的多播树,解决现有方法中搜索区域大、计算时间长等问题,并具有收敛速度快、实时性好的特点。

权利要求书

1、  一种基于模拟退火的动态分布式多播路由方法,其特征在于包括初始解构造过程和最优解构造过程,即

1.
  1所述的初始解构造过程的步骤如下:

1.
  1.1使用分布式k-Bellman-Ford第k条最短路径方法计算从源节点s到每个目的节点m∈M的前k条最短时延路径,作为备选路径集,其中M为目的节点集,又称多播组;

1.
  1.2随机选择一个目的节点,并将备选路径集中源节点s到该目的节点的最短时延路径添加到初始多播树T0中,其中T0的初始状态为一棵空树;

1.
  1.3在备选路径集中选择从源节点s到树外目的节点m满足式max{0,maxd-δ}≤d(p(s,m))≤min{mind+δ,Δ}的第一条备选路径,该m∈M,mT0,并将其添加到T0中,其中d(p(s,m))表示从源节点s到目的节点m的路径时延;maxd和mind分别表示从源节点s到T0中包括的目的节点的路径中路径的最大时延和最小时延,Δ和δ分别为多播会话的时延上限和时延抖动上限;

1.
  1.4重复步骤1.1.3,直到M中的所有目的节点都包括在T0中,至此初始解构造过程结束,该过程构造的初始多播树T0将作为最优解构造过程的初始解;

1.
  2所述的最优解构造过程的步骤如下:

1.
  2.1设置Tbest=Tnow=T0,其中Tbest表示到目前为止代价最小的多播树,即最优解,Tnow表示当前多播树,即当前解;

1.
  2.2设定初始温度t=t0

1.
  2.3若在该温度达到内循环终止准则,则进入步骤1.2.8;否则进入下一步骤1.2.4;

1.
  2.4用邻域解构造过程产生当前解Tnow的邻域解集N(Tnow),并从中随机选择一棵多播树Tnext,计算Δc=cost(Tnext)-cost(Tnow),其中cost(Tnext)和cost(Tnow)分别表示多播树Tnext和当前解Tnow的代价;

1.
  2.5如果Δc≤0或者exp(-Δc/t)>random(0,1),Tnow=Tnext

1.
  2.6如果cost(Tnow)<cost(Tbest),其中cost(Tbest)表示最优解的代价,Tbest=Tnow

1.
  2.7重复步骤1.2.3~步骤1.2.6;

1.
  2.8退温,t=λ·t,其中λ为退温速率;若满足终止规则,终止计算,否则回到步骤1.2.3;至此最优解构造过程结束,该过程的输出就是最终满足时延和时延抖动约束的一棵最小代价多播树。

2、
  根据权利要求1所述的基于模拟退火的动态分布式多播路由方法,其特征是:邻域解构造过程通过交换路径在可行解范围内构造邻域解集,其步骤如下:
步骤1:在当前多播树Tnow中随机选择一个叶子目的节点m;
步骤2:从目的节点m起,删除当前多播树Tnow中通向源节点s的链路,直到遇到另一个目的节点或者源节点,形成一棵子树Tsub
步骤3:计算当前子树Tsub中从源节点s到每个目的节点路径的最大时延maxd和最小时延mind;
步骤4:在备选路径集中,将时延在[max{0,maxd-δ},min{mind+δ,Δ}]之间、且从源节点s到目的节点m的备选路径加入到当前子树Tsub中;如果形成的新树无环,则成为当前多播树Tnow的一个邻域解;
步骤5:重复步骤4,直到所有k条备选路径都检查过。

3、
  根据权利要求1所述的基于模拟退火的动态分布式多播路由方法,其特征在于:在构造满足时延和时延抖动约束的一棵最小代价多播树后,会出现多播成员动态地加入或离开多播会话的情况,这时需要动态重组多播树目的节点,并确保重组后的多播树仍然满足时延和时延抖动约束,所述的动态重组方法如下:
当目的节点成员m∈M请求“离开”多播组,分两种情况:(1)如果目的节点m不是一个叶子节点,这种情况不对多播树做任何改变,只要让该节点停止向自己的用户转发分组数据即可;(2)如果目的节点m是一个叶子节点,那么它向多播树的源节点方向发送leave request消息,一个节点接一个节点,直到该消息到达源节点或另一个目的节点;消息所经过的链路将被删除;
当新节点vM请求“加入”多播组,那么它向源节点发送join request消息,分三种情况:(1)如果v不是树中的节点,则获得从源节点到节点v的前k条最短时延路径,并选择第一条时延在[max{0,maxd-δ},min{mind+δ,Δ}]之间路径加入到当前多播树中;如果无法找到这样的路径,则抛弃节点v的加入请求;(2)如果v是树中的节点,且新的多播组M∪{v}满足时延抖动上限δ,则该多播树本身就是一棵可行树;(3)如果v是树节点,且新的多播组M∪{v}不满足时延抖动上限δ,说明节点v必定是源节点到一个或多个目的节点路径上的中间节点;这种情况下,删除这条包含v和这些目的节点的路径,再将节点v和这些目的节点依次加入到路由树中。

说明书

基于模拟退火的动态分布式多播路由方法
技术领域
本发明属于互联网路具有多个服务质量参数的多播路由技术,特别是一种基于模拟退火的动态分布式多播路由方法。
背景技术
作为多播通信的一个重要组成部分,基于服务质量(Quality-of-Service,QoS)约束的多播路由技术已经成为网络研究领域的重要内容和热点问题。近年来,随着实时多媒体业务的出现,具有QoS约束的Steiner(斯坦利)树问题已成为多播路由问题研究的焦点,该问题已被证明为NP(Nondeterministic Polynomial,非确定多项式)完全问题。
多播路由最初的研究主要集中在无约束的最小代价多播路由问题以及时延约束最小代价多播路由问题。但随着网络应用的发展,一些交换式实时通信应用除了要求源节点到目的节点的时延要受到约束以外,还要求时延抖动受到约束。时延抖动约束是为了保证不同的接收者在接收信息时保持同步,不让某些接收者特别落在后面或特别提前。例如,在远程电信会议中,讲话者被所有与会者同时听到是很重要的,否则,缺少交互式面对面交谈的感觉。
时延及时延抖动约束的多播路由问题目前主要有两方面的研究:一类是不考虑代价优化的问题,称为DVBMT问题(Delay and Delay Variation Bounded Multicast TreeProblem);另一类是考虑代价优化的问题,称为DVBST问题(Delay and Delay VariationBounded Steiner Tree Problem)。
Rouskas在1997年首次提出满足端到端时延及时延抖动约束的多播路由问题,并给出了一种有效的方法DVMA(Delay Variation Multicast Algorithm)。该方法取得了良好的预期效果,即方法返回的多播树时延抖动很小,但计算复杂度很高,为O(klmn4),难以有效地进行多播路由。由于DVMA方法本身结构已经非常烦琐复杂,Rouskas没能进一步提出最小化网络代价的问题并加以解决,因此方法的代价性能不是很好(Rouskas GN,Baldine I. Multicast Routing with End-to-End Delay and Delay Variation Constraints.IEEE Journal on Selected Areas in Communications,1997,15(3):346-356.)。
针对DVMA方法的高复杂度,Sheu等人提出一种快速有效的启发式方法DDVCA(Delay and Delay Variation Constraint Algorithm)。该方法主要思想基于有核树(CBT)中核心路由器的概念和最短代价路径方法,能快速有效地找到满足时延约束和最小时延抖动的多播树,方法的时间复杂度为O(mn2)(Sheu P R,Chen S T. A Fast and EfficientHeuristic Algorithm for the Delay-and Delay Variation-bounded Multicast Tree Problem,Computer Communications,2002,25(8):825-833.)。
Low和Lee等人提出的DDVBM(Distributed Delay and Delay Variation BoundedMulticast Algorithm)方法是第一个解决DVBST问题的分布式方法,其计算复杂度为O(n3)。该方法主要分为两个阶段。第一阶段主要寻找满足时延约束的最小代价多播树,如果该树违反时延抖动限制,则进入第二阶段,即通过调用路径搜索过程来寻找同时满足时延及时延抖动约束的最小代价树。但DDVBM方法忽略了多播组中的目的节点也可以作为中间节点转发分组,因此在计算辅助的Steiner Node Tree时,有可能无法建立连接源节点与所有Steiner节点的多播树,导致方法无法继续执行(Low C P,Lee Y J.Distributed Multicast Routing,with End-to-End Delay and Delay Variation Constrains.Computer Communications,2000,23(9):848-862.)。
王明中等人在研究DVBST问题的过程中,发现当前众多方法所普遍使用的两个最佳链路选择函数并不能完全体现路由的动态过程,而且在某种特定的情况下可能无法实现“多播可达”,即由其生成的结果多播树中可能不包含所有的目的节点。为此,他提出一个关于“多播可达”的限定性条件和一个新的最佳链路选择函数,并在此基础上设计了一个新的启发式方法DDVBMRA(Delay and Delay Variation Bounded Multicast RoutingAlgorithm),方法的时间复杂度为O(mn2)。但该方法在运行中会出现所有的网络节点都已被访问过,而此时Sub(M)仍然不等于目的节点集的情况,从而导致DDVBMRA方法无法获得可行的多播树(王明中,谢剑英,张敬辕.时延及时延抖动限制的最小代价多播路由策略.计算机学报,2002,25(5):534-541.)。
余燕平在其博士论文中提出了另一种启发式方法LCDVMA(Low-cost DelayVariation-constrained Multicast Algorithm),构建满足时延和时延抖动约束的网络代价优化的多播树。该方法主要思想是每次通过最短代价路径或最短时延路径连到树上的任一节点,再通过比较找出最理想的路径并添加到树上,方法复杂度为O(mkn3)。由于该方法增加了可选路径的范围,从而导致多播树的时延抖动增大(余燕平.多播路由算法研究.浙江大学博士论文,2002.)。
郭伟等人把时延及时延抖动约束的多播路由问题提到优化的层次上,证明了DVBST问题是NP完全问题,继而提出一种基于动态罚函数法的启发式遗传方法以求解该问题。该方法使用遗传算法选择Steiner点,并对选定的Steiner点,使用类似最小生成树启发式方法的方法求解Steiner树。由于该方法采用罚函数法将不可行解可行化,从而扩大了搜索区域,增加了计算时间(郭伟,席裕庚.有时延及时延差别约束的最小代价组播路由问题.通信学报,2001,22(6):13-20.)。
现有的这些QoS约束的多播路由方法在应用到实时通信网络中存在以下四个问题:
(1)大多数现有方法都是集中式的,集中式方法需要中心节点(或每个节点)负责计算整个路由树,该节点必须掌握整个网络结构的详细信息。在大规模网络中,会存在容错性差、中心节点的计算负荷过重、以及路由信息不准确等问题。
(2)现有的分布式方法仍然需要每个节点维护整个网络的部分状态信息,或多或少会存在集中式方法的问题。而且,这些分布式方法具有通信代价高、连接建立时间过长、路由树的质量差等缺点。
(3)只有少数方法考虑了多播成员的动态改变问题。由于在许多多播应用中,多播成员会自由地动态加入或离开多播会话。因此,确保多播成员的动态改变而不影响当前连接的正常通信、使多播树的破坏程度最小是非常重要的。
(4)在时延和时延抖动双重约束下寻找一棵最优多播树是相当困难的。在多播路由中,最小化网络代价往往会和时延或时延抖动限制相冲突。因此,对研究人员来说,设计同时满足时延和时延抖动约束的Steiner树方法,特别是分布式方法,就非常困难。
发明内容
本发明的目的在于提供一种基于模拟退火的动态分布式多播路由方法,本方法不仅可以以一种分布式方式构造出满足时延和时延抖动约束的最小代价多播路由树,而且当多播成员的动态变化时,进行多播树的动态重组,并保证多播会话的破坏程度最小。
实现本发明目的的技术解决方案为:一种基于模拟退火的动态分布式多播路由方法,包括初始解构造过程和最优解构造过程,即
1.1所述的初始解构造过程的步骤如下:
1.1.1使用分布式k-Bellman-Ford第k条最短路径方法计算从源节点s到每个目的节点m∈M的前k条最短时延路径,作为备选路径集,其中M为目的节点集,又称多播组;
1.1.2随机选择一个目的节点,并将备选路径集中源节点s到该目的节点的最短时延路径添加到初始多播树T0中,其中T0的初始状态为一棵空树;
1.1.3在备选路径集中选择从源节点s到树外目的节点m满足式max{0,maxd-δ}≤d(p(s,m))≤min{mind+δ,Δ}的第一条备选路径,该m∈M,mT0,并将其添加到T0中,其中d(p(s,m))表示从源节点s到目的节点m的路径时延;maxd和mind分别表示从源节点s到T0中包括的目的节点的路径中路径的最大时延和最小时延,Δ和δ分别为多播会话的时延上限和时延抖动上限;
1.1.4重复步骤1.1.3,直到M中的所有目的节点都包括在T0中,至此初始解构造过程结束,该过程构造的初始多播树T0将作为最优解构造过程的初始解;
1.2所述的最优解构造过程的步骤如下:
1.2.1设置Tbest=Tnow=T0,其中Tbest表示到目前为止代价最小的多播树,即最优解,Tnow表示当前多播树,即当前解;
1.2.2设定初始温度t=t0
1.2.3若在该温度达到内循环终止准则,则进入步骤1.2.8;否则进入下一步骤1.2.4;
1.2.4用邻域解构造过程产生当前解Tnow的邻域解集N(Tnow),并从中随机选择一棵多播树Tnext,计算Δc=cost(Tnext)-cost(Tnow),其中cost(Tnext)和cost(Tnow)分别表示多播树Tnext和当前解Tnow的代价;
1.2.5如果Δc≤0或者exp(-Δc/t)>random(0,1),Tnow=Tnext
1.2.6如果cost(Tnow)<cost(Tbest),其中cost(Tbest)表示最优解的代价,Tbest=Tnow
1.2.7重复步骤1.2.3~步骤1.2.6;
1.2.8退温,t=λ·t,其中λ为退温速率;若满足终止规则,终止计算,否则回到步骤1.2.3;至此最优解构造过程结束,该过程的输出就是最终满足时延和时延抖动约束的一棵最小代价多播树。
本发明基于模拟退火的动态分布式多播路由方法的邻域解构造过程通过交换路径在可行解范围内构造邻域解集,其步骤如下:
步骤1:在当前多播树Tnow中随机选择一个叶子目的节点m;
步骤2:从目的节点m起,删除当前多播树Tnow中通向源节点s的链路,直到遇到另一个目的节点或者源节点,形成一棵子树Tsub
步骤3:计算当前子树Tsub中从源节点s到每个目的节点路径的最大时延maxd和最小时延mind;
步骤4:在备选路径集中,将时延在[max{0,maxd-δ},min{mind+δ,Δ}]之间、且从源节点s到目的节点m的备选路径加入到当前子树Tsub中;如果形成的新树无环,则成为当前多播树Tnow的一个邻域解;
步骤5:重复步骤4,直到所有k条备选路径都检查过。
本发明基于模拟退火的动态分布式多播路由方法在构造满足时延和时延抖动约束的一棵最小代价多播树后,会出现多播成员动态地加入或离开多播会话的情况,这时需要动态重组多播树目的节点,并确保重组后的多播树仍然满足时延和时延抖动约束,所述的动态重组方法如下:
当目的节点成员m∈M请求“离开”多播组,分两种情况:(1)如果目的节点m不是一个叶子节点,这种情况不对多播树做任何改变,只要让该节点停止向自己的用户转发分组数据即可;(2)如果目的节点m是一个叶子节点,那么它向多播树的源节点方向发送leave request消息,一个节点接一个节点,直到该消息到达源节点或另一个目的节点;消息所经过的链路将被删除;
当新节点vM请求“加入”多播组,那么它向源节点发送join request消息,分三种情况:(1)如果v不是树中的节点,则获得从源节点到节点v的前k条最短时延路径,并选择第一条时延在[max{0,maxd-δ},min{mind+δ,Δ}]之间路径加入到当前多播树中;如果无法找到这样的路径,则抛弃节点v的加入请求;(2)如果v是树中的节点,且新的多播组M∪{v}满足时延抖动上限δ,则该多播树本身就是一棵可行树;(3)如果v是树节点,且新的多播组M∪{v}不满足时延抖动上限δ,说明节点v必定是源节点到一个或多个目的节点路径上的中间节点;这种情况下,删除这条包含v和这些目的节点的路径,再将节点v和这些目的节点依次加入到路由树中。
本发明与现有技术相比,其显著优点为:(1)以完全分布式的方式构造满足时延和时延抖动最小代价的多播树;(2)根据目的节点的改变,能动态重组多播树,并确保对多播树的破坏程度最小;(3)通过交换路径进行的邻域解构造过程克服了搜索区域扩大、计算时间增加等现有方法的缺点,并确保最优树满足时延和时延抖动约束;(4)具有收敛速度快、编解码简单以及实时性好的特点;(5)代价小,而且时延、时延抖动和路由成功率的性能也相当好。
附图说明
图1是本发明基于模拟退火的动态分布式多播路由方法的流程图。
图2是本发明基于模拟退火的动态分布式多播路由方法的邻域解构造过程的流程图。
图3是本发明基于模拟退火的动态分布式多播路由方法运用实例的网络拓扑图。
图4是本发明运用实例的初始解构造过程示意图。
图5是本发明运用实例的邻域解构造过程示意图。
图6是本发明的实验模拟结果-网络节点数和多播树代价的关系。
图7是本发明的实验模拟结果-目的节点数和多播树代价的关系。
具体实施方式
下面结合附图对本发明作进一步详细描述。
结合图1,为寻找满足时延和时延抖动约束的最小代价多播路由树,本发明基于模拟退火的动态分布式多播路由方法包括初始解构造过程和最优解构造过程,即:
1.1所述的初始解构造过程是在不考虑代价前提下,构造一棵满足端到端时延和时延抖动约束的多播树,将其作为最优解构造过程的初始可行解,其步骤如下:
1.1.1使用分布式k-Bellman-Ford第k条最短路径方法计算从源节点s到每个目的节点m∈M的前k条最短时延路径,作为备选路径集,其中M为目的节点集,又称多播组;
1.1.2随机选择一个目的节点,并将备选路径集中源节点s到该目的节点的最短时延路径添加到初始多播树T0中,其中T0的初始状态为一棵空树;
1.1.3在备选路径集中选择从源节点s到树外目的节点m满足式max{0,maxd-δ}≤d(p(s,m))≤min{mind+δ,Δ}的第一条备选路径,该m∈M,mT0,并将其添加到T0中,其中d(p(s,m))表示从源节点s到目的节点m的路径时延;maxd和mind分别表示从源节点s到T0中包括的目的节点的路径中路径的最大时延和最小时延,Δ和δ分别为多播会话的时延上限和时延抖动上限;
1.1.4重复步骤1.1.3,直到M中的所有目的节点都包括在T0中,至此初始解构造过程结束,该过程构造的初始多播树T0将作为最优解构造过程的初始解;
1.2所述的最优解构造过程是通过模拟退火不断迭代降低初始多播树的代价,但不违反时延和时延抖动的限制,最终获得最小代价的多播树,其步骤如下:
1.2.1设置Tbest=Tnow=T0,其中Tbest表示到目前为止代价最小的多播树,即最优解,Tnow表示当前多播树,即当前解;
1.2.2设定初始温度t=t0
1.2.3若在该温度达到内循环终止准则,则进入步骤1.2.8;否则进入下一步骤1.2.4;
1.2.4用邻域解构造过程产生当前解Tnow的邻域解集N(Tnow),并从中随机选择一棵多播树Tnext,计算Δc=cost(Tnext)-cost(Tnow),其中cost(Tnext)和cost(Tnow)分别表示多播树Tnext和当前解Tnow的代价;
1.2.5 如果Δc≤0或者exp(-Δc/t)>random(0,1),Tnow=Tnext
1.2.6 如果cost(Tnow)<cost(Tbest),其中cost(Tbest)表示最优解的代价,Tbest=Tnow
1.2.7 重复步骤1.2.3~步骤1.2.6:
1.2.8 退温,t=λ·t,其中λ为退温速率;若满足终止规则,终止计算,否则回到步骤1.2.3;至此最优解构造过程结束,该过程的输出就是最终满足时延和时延抖动约束的一棵最小代价多播树。
上述方法的详细说明如下。
假定以带权简单无向图G=(V,E)表示一个网络。其中,V,E分别是网络节点和链路集合。对于每条链路e∈E,定义两个正实数函数:代价函数cost(e):E→R+和时延函数delay(e):E→R+,其中R+表示正实数集。给定多播会话的源节点s∈V,一组目的节点MV-{s},m表示目的节点集M中的一个目的节点,多播树T(TG)是根为s,并包含目的节点集合M的一棵树。
定义:时延和时延抖动约束最小代价多播树
时延和时延抖动约束最小代价多播树是一棵从源节点s出发,连接所有目的节点M的多播路由树T(VT,ET),且满足:
●时延约束: Δ T = = max ( Σ e ∈ p ( s , m ) d ( e ) ) Δ - - - ( 1 ) ]]>
●时延抖动约束: δ T = max u , v ∈ M { | Σ e ∈ p ( s , u ) d ( e ) - Σ e ∈ p ( s , v ) d ( e ) | } δ ]]>
●代价约束:在满足条件(1)、(2)的所有多播树中, cos t ( T ) = Σ e ∈ T cos t ( e ) ]]>最小。
其中,ΔT,δT,cost(T)分别表示多播树T的时延、时延抖动和代价。
假设每个节点具有到每个目的节点的k条最短时延路径和其路径时延。这些信息存储在每个节点的本地路由表中,用Route表示,并通过运行分布式kBF方法计算时延度量值获得。在Route中,每个节点v∈V含有k×|M|个条目,每个条目对应一个目的节点的第k条最短路径。条目Route[i][m]有两个字段:Route[i][m].n和Route[i][m].d,分别表示v到m的第i条最短时延路径上的下一个邻接节点以及这条路径的时延大小。另外,对于最优解构造过程中的每棵多播树Tnow,假设每个节点存储其前一个邻接节点(沿源节点方向)到每个目的节点的逆向路由信息,用RevRoute来表示此路由信息。每个节点v有|M|个条目,其中,条目RevRoute[m]有一个字段RevRoute[m].p表示Tnow中s到目的节点m路径中v的前一个邻接节点。
控制消息的数据结构用一个三元组<type,kth,dest>表示,其中type表示消息类型、kth表示备选路径集中第k条最短时延路径、dest表示当前选择的目的节点。本发明用到了9种主要消息类型,如表1所示:
                         表1本发明的消息类型

  消息名  消息描述  open  打开多播连接,获得备选路径集  Ini_start  开始构造初始多播树  Ini_add  向初始多播树添加源节点到一个目的节点的一条备选路径  Ini_notify  通知源节点一个目的节点已经被添加到树中  Ini_finish  完成初始多播树的构造  Gn_start  生成当前多播树的邻域解  Gn_add  添加一条备选路径到当前子树  Gn_delete  从当前树中删除到指定目的节点的路径  Gn_finish  完成邻域解的生成

系统中的每个节点执行相同的路由方法,初始为空状态等待连接建立请求。在初始解构造过程中,当节点收到打开多播连接的请求(open消息),该请求带有如下参数:目的节点集M,时延上限Δ和时延抖动上限δ。该节点利用分布式kBF方法计算s到每个目的节点m∈M的前k条最短时延路径。设Pm表示目的节点m的前k条最短时延路径,即Pm={p1(s,m),p2(s,m),...,pk(s,m)},
其中,d(p1(s,m))≤d(p2(s,m))≤...≤d(pk(s,m))。
当源节点s收到ini_start请求后,初始多播树T0被初始化为一棵空树,并随机选择一个目的节点m。设maxd和mind分别表示从源节点s到当前T0中包括的目的节点的路径中路径的最大时延和最小时延,初始值均为d(p1(s,m))(即Route[1][m].d)。ini_add连接消息<ini_add,1,m>被发送到沿路径p1(s,m)的下一个邻接节点v,并且链路(s,v)被加到多播树T0上。
当ini_add消息在传递到指定目的节点m的过程中到达一个中间节点u后,节点u又将ini_add消息<ini_add,kth,m>传递给它的下一个邻接节点u′(u′=Route[kth][m].n),随后链路(u,u′)被加到多播树T0上。
当ini_add消息到达指定的目的节点后,ini_notify消息被送往源节点s,告知一个目的节点已被加入到多播树上。收到ini_notify消息后,选择一个树外的目的节点,例如m′。然后,从备选路径集中选出时延在[max{0,maxd-δ},min{mind+δ,Δ}]之间的第一条备选路径。假设这条备选路径是第i条最短时延路径,那么<ini_add,i,m′>消息被送往沿该路径到m′方向的下一个邻接节点v′。在更新maxd和mind的值后,链路(s,v′)被加到多播树T0上。
上述几个步骤在目的节点之间重复进行,直到M中的所有目的节点都包括在多播树T0中。当ini_add请求消息到达M中的最后一个目的节点,该节点向源节点s发送ini_finish消息。这样,构造满足时延和时延抖动的初始多播树过程完成,方法进入最优解构造过程,并将多播树T0作为模拟退火的初始解。
最优解构造过程调用模拟退火方法不断迭代降低初始多播树的代价,而不违反时延和时延抖动约束,最终获得最小代价的多播路由树。其中,模拟退火参数设置如下:
●多播树的编解码: T = p ( s , m 1 ) p ( s , m 2 ) . . . p ( s , m | M | ) = i = 1 | M | p ( s , m i ) , ]]>
其中mi∈M,1≤i≤|M|,p(s,mi)表示多播树T中源节点s到目的节点mi∈M的路径。
●初始温度:t0=100;
●评价函数:f(x)=cost(x);
●退温策略:ti+1=λ·ti,其中i≥0,λ=0.9,λ称为退温速率;
●状态接受函数: A ij ( t ) = 1 , cos t ( T i ) &GreaterEqual; cos t ( T j ) exp ( - Δc ij / t ) , cos t ( T i ) , < cos t ( T j ) ]]>
其中,Aij(t)表示从当前解Ti的邻域N(Ti)中随机选取解Tj后,接受Tj的概率;t为当前温度;Δcij是状态Ti与Tj的目标差,即Δcij=cost(Ti)-cost(Tj)。
●内循环终止准则:只要最优解连续20次迭代没有改善,则进行退温;
●终止规则:设置最大迭代次数为100。
最优解构造过程的关键问题是邻域解集的产生,本发明通过交换路径在可行解范围内构造邻域解集,即通过交换路径在可行解范围内构造邻域解集,从而克服了现有方法采用罚函数策略中存在的搜索区域扩大、计算时间增加等缺点,并确保最终的最优树满足时延和时延抖动约束。
结合图2,所述的邻域解构造过程的步骤如下:
在构造当前树Tnow的邻域解过程中,一个被选择的叶子目的节点m收到gn_start消息后,会将<gn_delete,/,m>消息沿s到m的路径向源节点s方向逐节点传递,直到该消息被传送到源节点或其它目的节点。消息传递所通过的每条链路都被删除,Tnow删除这些链路后所形成的子树用Tsub表示,其中Tsub被初始化为Tnow。假设Tnow中路径p(s,m)上目的节点m的前一个邻接节点为v,v可通过逆向路由表RevRoute得到(v=RevRoute[m].p)。接着<gn_delete,/,m>消息被送往节点v,并且链路(m,v)从Tsub中删除。
当一个中间节点收到gn_delete消息后,立即将该消息传递到它的下一个邻接节点上。否则,如果源节点或另一个目的节点收到gn_delete消息,意味着删除路径的操作结束。接下来,选择备选路径集中其它到目的节点m的备选路径来代替被删除的路径,形成Tnow的新邻域解。在源节点或另一个目的节点上,首先计算通向Tsub子树中包含的所有目的节点的路径的最大和最小时延(分别用maxd和mind表示),随后向源节点发送gn_add消息<gn_add,1,m>开始进行添加操作。
设T代表Tnow的一棵新的邻域多播树,初始时包含Tsub的所有链路。当一个中间节点v收到gn_add消息,它将该消息传递到下一个节点v′,其中,v′是在通向目的节点m的第k条备选路径上v的邻接节点。随后,链路(v,v′)加入到多播树T中。
当源节点s收到gn_add消息后,指定的目的节点m以及kth的值从消息中提取出来并记录在源节点中。源节点反复选择一条s到m的备选路径,直到该路径的时延在[max{0,maxd-δ},min{mind+δ,Δ}]之间。如果所有k条备选路径都被访问过,则发送gn_finish消息到源节点s,告知邻域解构造结束。否则,向源节点s的下一个邻接节点u发送<gn_add,kth,m>消息,并且将(s,u)链路加入到多播树T中。
当gn_add消息到达指定目的节点,表明成功生成了一棵新的邻域多播树T。如果T无环,则将其插入邻域解集N(Tnow)中作为Tnow的一个邻域解。随后检查kth的值,如果kth值大于k,则向源节点s发送gn_finish消息。否则,kth值加1,并将<gn_add,kth,m>消息送往源节点s以检查下一条备选路径。
添加操作将每条通向指定的叶子目的节点的备选路径添加到子树Tsub上,直到所有k条最短时延路径都被访问过。当gn_finish消息被发送到源节点后,即完成了邻域解的构造。
当通过本发明的初始解构造过程和最优解构造过程完成一棵满足时延和时延抖动约束的最小代价多播树后,会出现多播成员动态地加入或离开多播会话的情况,这时需要动态重组多播树目的节点。目前,在因特网上已经出现了标准的多播组管理协议(Internet Group Management Protocol,IGMP)用于处理多播组动态改变的问题。但由于因特网本身的特性,在多播组成员之间不存在逻辑连接,所以IGMP没有考虑网络代价,从而直接将IGMP应用于多媒体多播会话中是不合适的。同时,为了支持多播组的动态重组,如果按照新的目的节点集来重新构造多播树的话,将会阻断正在进行的多播会话,而这一会话只能在新的多播树建立完毕之后才可以重新开始。因此这种动态重组的方法也是不可取的。为此,本发明提供如下的多播树的动态重组方法:
当目的节点成员m∈M请求“离开”多播组,分两种情况:(1)如果目的节点m不是一个叶子节点,这种情况不对多播树做任何改变,只要让该节点停止向自己的用户转发分组数据即可;(2)如果目的节点m是一个叶子节点,那么它向多播树的源节点方向发送leave request消息,一个节点接一个节点,直到该消息到达源节点或另一个目的节点;消息所经过的链路将被删除;
当新节点vM请求“加入”多播组,那么它向源节点发送join request消息,分三种情况:(1)如果v不是树中的节点,则获得从源节点到节点v的前k条最短时延路径,并选择第一条时延在[max{0,maxd-δ},min{mind+δ,Δ}]之间路径加入到当前多播树中;如果无法找到这样的路径,则抛弃节点v的加入请求;(2)如果v是树中的节点,且新的多播组M∪{v}满足时延抖动上限δ,则该多播树本身就是一棵可行树;(3)如果v是树节点,且新的多播组M∪{v}不满足时延抖动上限δ,说明节点v必定是源节点到一个或多个目的节点路径上的中间节点;这种情况下,删除这条包含v和这些目的节点的路径,再将节点v和这些目的节点依次加入到路由树中。
下面通过一个实施例来说明本发明工作的过程。
网络拓扑结构如图3所示,其中s={F},M={B,D,E,H},图中实心圆圈表示源节点,粗线圆圈表示目的节点,每条链路的括号内标注的是该链路的代价和时延值,给定时延约束Δ和时延抖动约束δ分别为10、3。通过分布式kBF方法得到的备选路径集如表2所示,其中k=5。
                                        表2实例网络的备选路径集  目的  节点             B                D              E             H  kth路径  时延  路径  时延  路径  时延路径  时延  1F,D,C,G,B  5  F,D  2  F,D,E  3F,H  2  2F,H,G,B  6  F,H,E,D  4  F,H,E  3F,D,E,H  4  3F,H,E,D,C,G,B  7  F,A,E,D  5  F,A,E  4F,A,E,H  5  4F,A,E,D,C,G,B  8  F,H,G,C,D  7  F,H,G,C,D,E  8F,D,C,G,H  7  5F,D,C,B  8  F,A,E,H,G,C,D  10  F,D,C,G,H,E  8F,A,E,D,C,G,H  10

图4显示了运用实例的初始解构造过程。首先选择目的节点D,并且F到D的最小时延路径(F,D)被加入到空树上,如图4(a)所示。接着,E成为下一个加入的目的节点。由于maxd和mind都为2,因此选择通向E的第一条时延在[0,5]的备选路径。结果时延为3的路径(F,D,E)加入T0中,如图4(b)所示。随后,通过相同方式加入路径(F,D,C,G,B),目的节点B也包含在T0中,如图4(c)所示。此时,maxd和mind分别更新为5和2。考虑最后一个目的节点H,第一条从F到H且时延分布在[max{0,5-3},min{2+3,10}](i.e.[2,5])的备选路径是{F,H},因此路径{F,H}被加入到T0中,如图4(d)所示。至此,初始解构造过程结束。
对于邻域解的构造过程,假设当前解为图4(d)所示的T0。随机选择目的节点E,且路径{F,D,E}从树T0中删除。注意,由于D是一个目的节点,所以只有链路(D,E)被删除,删除后的子树如图5(a)所示。此时,maxd和mind分别为5和2。从表2可知,除了被删除的路径{F,D,E}外,只有两条路径的时延分布在[2,5]之间,即:(F,H,E)和(F,A,E)。因此,将这两条路径分别加入子树中,就形成了T0的两个邻域解,如图5(b)和(c)所示。图5(d)给出了运用本发明得到的实例网络的最优多播树。初始解T0、T0的两个邻域解以及最优解的编码如表3所示。
                             表3解的编码情况编码 cost(T)  ΔT  δT  初始解T0(F,D,C,G,B)∪(F,D)∪(F,D,E)∪(F,H)45  5  3  T0的邻域解(F,D,C,G,B)∪(F,D)∪(F,H,E)∪(F,H)38  5  3  T0的邻域解(F,D,C,G,B)∪(F,D)∪(F,A,E)∪(F,H)39  5  3  最终解(F,D,C,G,B)∪(F,D)∪(F,A,E)∪(F,A,E,H)315  3

目前,我们已经通过实验模拟验证了本发明具有良好的性能。在评价过程中,采用随机网络拓扑方法产生节点度数为4的拓扑网络图,网络节点随机分布的矩形区域大小设定为4000km×2400km,每条链路的容量为155Mbps。任意两个节点u和v之间是否存在链路概率函数P(u,v)=βexp(-l(u,v)/α·L)确定,其中l(u,v)是u,v之间的欧拉距离,L是任意两节点间的最大距离,较小的α将增大短链路的密度,较大的β将导致较高的链路密度,我们取α=0.15,β=2.2。网络的链路时延定义为链路的传输时延,忽略排队时延和发送时延,传输速度为光速的2/3,链路代价在[10,120]Mbps之间随机分布。每个模拟点的实验次数为200,每次随机产生网络拓扑和源/目的节点,然后统计平均值。
我们选取现有的DVMA、SPT(分布式Bellman-Ford最短路径树方法,Bellman RE,Dynamic programming,Princeton University,Princeton,NJ,1957.)、DDVBM和DDVMBRA方法和本发明所述方法进行比较。首先比较了这几种方法所获得多播树的代价性能,其中,图6是固定目的节点数为5,Δ=35ms,δ=20ms情况下,网络节点数和代价的关系。图7是固定网络节点数为50,Δ=35ms,δ=20ms情况下,目的节点数和代价的关系。图6和图7两幅图表明,和DVMA、SPT、DDVBM、DDVMBRA方法相比,本方法所获得的多播树代价最低,代价性能最好。从图6可以看出,所有方法求得的多播树的代价随着网络节点数的增加而增加。这是由于随着网络规模的增大,源节点到达各个目的节点的路径长度随之增加,从而使得树的代价增加。从图7可以看出,所有方法求得的多播树的代价随着目的节点数的增加而增加。这是因为,随着目的节点数的增加,多播树的规模就会变大,因而占用更多的资源,导致相应的代价增加。
类似上述实验方法,我们还模拟验证了这些多播路由方法所获得多播树的时延、时延抖动、路由成功率、以及收敛性等性能,所有实验表明,本方法在时延、时延抖动以及路由成功率等方面都表现出了良好的性能,并且本方法具有较快的收敛速度,满足实时通信的要求。

基于模拟退火的动态分布式多播路由方法.pdf_第1页
第1页 / 共24页
基于模拟退火的动态分布式多播路由方法.pdf_第2页
第2页 / 共24页
基于模拟退火的动态分布式多播路由方法.pdf_第3页
第3页 / 共24页
点击查看更多>>
资源描述

《基于模拟退火的动态分布式多播路由方法.pdf》由会员分享,可在线阅读,更多相关《基于模拟退火的动态分布式多播路由方法.pdf(24页珍藏版)》请在专利查询网上搜索。

本发明公开了一种基于模拟退火的动态分布式多播路由方法。它是以一种分布式方式构造出满足时延和时延抖动约束的最小代价多播路由树,并支持多播树的动态重组。本发明由初始解构造过程和最优解构造过程组成。其中,初始解构造过程是在不考虑代价前提下,构造一棵满足端到端时延和时延抖动约束的初始多播树;最优解构造过程是通过模拟退火不断迭代降低初始多播树的代价,通过交换路径在可行解范围内构造邻域解解,最终获得满足条件的。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1