基于非线性退火的软件定义网络多约束路由方法技术

技术编号:10755649 阅读:169 留言:0更新日期:2014-12-11 12:20
本发明专利技术公开了一种基于非线性退火的软件定义网络多约束路由方法,解决现有技术无法适用于软件定义网络的问题。本发明专利技术具体实现步骤是,首先利用扩散法,向外得到全网虚拟拓扑图;然后利用正向线性标记法、反向线性标记法和花费量测量法对全网虚拟拓扑图进行简化以缩小检索空间;最后运用非线性退火标记法对初始路径进行修正,得到满足约束的路径。本发明专利技术计算获得的路径可满足多约束的QoS需求;检索空间简化,时间复杂度确定,满足工业化设计要求,路由安排更加合理,网络性能得到提高。

【技术实现步骤摘要】
基于非线性退火的软件定义网络多约束路由方法
本专利技术属于通信
,更进一步涉及软件定义网络(SoftwareDefinedNetworkSDN)通信
中的一种基于非线性退火的软件定义网络多约束路由方法。本专利技术可用于在软件定义网络中接受多参数约束的路由查找,为软件定义网络提供保证QoS的路由服务,有效提升网络的复杂路由查找性能。
技术介绍
软件定义网络中,实现了控制组件与转发组件的分离。当网络需要转发数据时,控制组件负责计算路由,并将转发表配置到转发组件中。转发组件简单的按照转发表进行转发,而不参与路由计算。服务质量(QualityofServiceQoS)路由是一种基于网络的可用资源和业务流的QoS要求来选择路径的路由机制,即包含多个QoS参数的动态多约束路由协议。软件定义网络作为一种新兴的网络,为人们提供了多种网络服务,不同的网络服务有不同的参数约束,而单一的传统网络路由协议无法满足不同服务对不同约束参数的需求,且现有的QoS路由机制无法直接应用于软件定义网络,如何在软件定义网络中提供满足多约束的QoS路由成为一个重要的技术问题。北京邮电大学申请的专利“实现多约束QoS路由选择的优化方法及装置”(申请号201110129535.5公开号CN102158417)公开了一种实现多约束路由选择的优化方法。该方法利用建立路由模型,构造惩罚函数,并运用自然选择和变异操作对初始路径进行迭代求解来实现多约束条件下的最优路由选择。该方法存在的不足是,求解的时间复杂度完全依赖于初始路径的选择,运用自然选择和变异操作使得时间复杂度存在不确定性,无法在实际的大型互联网络中部署使用。西安电子科技大学申请的专利“用于支持端到端时延保证的动态资源分配系统及分配方法”(申请号201010013728X授权号CN101729430B)公开了一种用于支持端到端时延保证的动态资源分配方法。该方法主要解决现有区分服务网络QoS保证能力低下及网络资源利用不充分的问题。该系统的资源管理器根据边界路由器发送的业务请求信息中的时延上限要求,结合网络负载信息中的链路负载度和各段链路端口处各PHB的时延估计值,计算端到端传输路径各段链路上的时延分配值,在相关的核心路由器上,根据本地的可用资源状态,通过时延分配值和带宽要求的匹配,动态选择最佳PHB进行资源配置和分组转发。该方法存在的不足是,首先,约束性参数只有一个,为典型的单约束最短路径问题,不适用于参数约束有多个的复杂多约束路径问题;其次,该方法主要为传统网络和分组交换网络提供QoS保证,无法直接移植到软件定义网络中。
技术实现思路
本专利技术的目的在于克服上述现有技术的不足,提出一种基于非线性退火的软件定义网络多约束路由方法。本专利技术依据软件定义网络中控制组件的本地性,充分考虑各个子网之间的连通性和相对独立性,运用扩散法,在获取全网虚拟拓扑图的情况下,基于非线性退火标记法,求解出满足多个约束要求的路径,以满足不同服务对不同约束的要求,更好的利用网络资源,提供更好的网络传输性能。实现本专利技术目的的具体思路是:首先利用扩散法,向外扩散各个子网的虚拟链路信息,使每个控制组件得到全网虚拟拓扑图;然后利用正向线性标记法、反向线性标记法和花费量测量法对全网虚拟拓扑图进行简化以缩小检索空间;最后运用非线性退火标记法对初始路径进行修正,跳出局部最优解,直到找到满足约束的路径。为实现上述目的,本专利技术的步骤包括如下:(1)获取全网虚拟拓扑图:(1a)转发组件将网络中转发组件的变更信息通知控制组件,控制组件得到本地子网内的实际网络拓扑图;(1b)隐藏本地子网内的节点,保留边界节点,采用最短路径查找法,查找两两边界节点之间的最小跳数路径,将所有的最小跳数路径作为虚拟链路;(1c)本地子网的边界节点向本地子网外发送查询分组信息,根据本地子网外返回的应答分组信息,得到相邻子网边界节点信息和该相邻子网边界节点所属的控制组件信息;(1d)本地子网的边界节点向本地子网外发送测量分组信息,相邻子网边界节点返回应答分组信息,本地子网的边界节点根据该应答分组信息得到相邻子网间连接链路的参数信息;(1e)创建链路状态分组表;(1f)使用扩散法,控制组件发布链路状态分组信息,得到全网虚拟拓扑图;(2)确定源边界节点和目的边界节点:(2a)源节点的控制组件向目的节点的控制组件发送信息,指明要到达的目的节点信息;(2b)目的节点的控制组件,采用最短路径查找法,计算从目的节点到本地子网所有边界节点之间的最小跳数路径,选择所有最小跳数路径中跳数最小的边界节点,返回给源节点的控制组件,作为目的边界节点;(2c)源节点的控制组件,采用最短路径查找法,计算从源节点到本地子网所有边界节点之间的最小跳数路径,选择所有最小跳数路径中跳数最小的边界节点,作为源边界节点;(3)线性标记:(3a)采用正向线性标记法,对全网虚拟拓扑图进行正向线性标记;(3b)采用反向线性标记法,对全网虚拟拓扑图进行反向线性标记;(4)处理节点:采用花费量测量法,对全网虚拟拓扑图中的节点进行节点处理;(5)判断全网虚拟拓扑图中所有节点是否都完成节点处理,若是,得到简化的全网虚拟拓扑图,执行步骤(6);否则,执行步骤(4);(6)正向线性标记:采用正向线性标记法,对简化的全网虚拟拓扑图进行正向线性标记;(7)反向非线性退火标记:将目的边界节点作为根节点root,采用非线性退火标记法,对简化的全网虚拟拓扑图进行反向非线性退火标记;(8)判断dk(s)≤ck是否成立,若是,源边界节点的控制组件得到路径;否则,执行步骤(9);其中,K表示约束参数的个数,K的取值为1,2...9,dk(s)表示根节点到源边界节点s之间使用非线性退火标记所求得的连接链路的第k个约束参数的值,ck表示源边界节点s到目的边界节点t之间连接链路需要满足的第k个约束参数的值;(9)按照下式更新温度:其中,t表示更新后简化的全网虚拟拓扑图的模拟温度值,t1表示更新前简化的全网虚拟拓扑图的模拟温度值,grad表示温度下降的梯度值;(10)正向非线性退火标记:将源边界节点作为根节点root,采用非线性退火标记法,对简化的全网虚拟拓扑图进行正向非线性退火标记;(11)判断dk(t)≤ck是否成立,若是,源边界节点的控制组件得到路径;否则,执行步骤(12);其中,K表示约束参数的个数,K的取值范围是1,2...9,dk(t)表示根节点到目的边界节点t之间使用非线性退火标记所求得的连接链路的第k个约束参数的值,ck表示源边界节点s到目的边界节点t之间连接链路需要满足的第k个约束参数的值;(12)按照下式更新温度和迭代次数:I=I1-1其中,t表示更新后简化的全网虚拟拓扑图的模拟温度值,t1表示更新前简化的全网虚拟拓扑图的模拟温度值,grad表示温度下降的梯度值,I表示更新后的迭代次数,I1表示更新前的迭代次数;(13)判断更新后的迭代次数I≤0是否成立,若是,执行步骤(14);否则,执行步骤(8);(14)查找失败,路由结束。本专利技术与现有技术相比具有以下优点:第一、本专利技术采用对本地子网内的实际网络拓扑图,构造虚拟链路,扩散获得全网虚拟拓扑图的方法,克服了现有技术中无法适应软件定义网络特有结构的问题,使得本专利技术具有可移植于本文档来自技高网
...
基于非线性退火的软件定义网络多约束路由方法

【技术保护点】
基于非线性退火的软件定义网络多约束路由方法,其步骤包括如下:(1)获取全网虚拟拓扑图:(1a)转发组件将网络中转发组件的变更信息通知控制组件,控制组件得到本地子网内的实际网络拓扑图;(1b)隐藏本地子网内的节点,保留边界节点,采用最短路径查找法,查找两两边界节点之间的最小跳数路径,将所有的最小跳数路径作为虚拟链路;(1c)本地子网的边界节点向本地子网外发送查询分组信息,根据本地子网外返回的应答分组信息,得到相邻子网边界节点信息和该相邻子网边界节点所属的控制组件信息;(1d)本地子网的边界节点向本地子网外发送测量分组信息,相邻子网边界节点返回应答分组信息,本地子网的边界节点根据该应答分组信息得到相邻子网间连接链路的参数信息;(1e)创建链路状态分组表;(1f)使用扩散法,控制组件发布链路状态分组信息,得到全网虚拟拓扑图;(2)确定源边界节点和目的边界节点:(2a)源节点的控制组件向目的节点的控制组件发送信息,指明要到达的目的节点信息;(2b)目的节点的控制组件,采用最短路径查找法,计算从目的节点到本地子网所有边界节点之间的最小跳数路径,选择所有最小跳数路径中跳数最小的边界节点,返回给源节点的控制组件,作为目的边界节点;(2c)源节点的控制组件,采用最短路径查找法,计算从源节点到本地子网所有边界节点之间的最小跳数路径,选择所有最小跳数路径中跳数最小的边界节点,作为源边界节点;(3)线性标记:(3a)采用正向线性标记法,对全网虚拟拓扑图进行正向线性标记;(3b)采用反向线性标记法,对全网虚拟拓扑图进行反向线性标记;(4)处理节点:采用花费量测量法,对全网虚拟拓扑图中的节点进行处理;(5)判断全网虚拟拓扑图中所有节点是否都完成节点处理,若是,得到简化的全网虚拟拓扑图,执行步骤(6);否则,执行步骤(4);(6)正向线性标记:采用正向线性标记法,对简化的全网虚拟拓扑图进行正向线性标记;(7)反向非线性退火标记:将目的边界节点作为根节点root,采用非线性退火标记法,对简化的全网虚拟拓扑图进行反向非线性退火标记;(8)判断dk(s)≤ck是否成立,若是,源边界节点的控制组件得到路径;否则,执行步骤(9);其中,k表示约束参数的个数,k的取值为1,2...K,K表示约束参数个数的最大值,dk(s)表示根节点到源边界节点s之间使用非线性退火标记所求得的连接链路的第k个约束参数的值,ck表示源边界节点s到目的边界节点t之间连接链路需要满足的第k个约束参数的值;(9)按照下式更新温度:t=t1grad]]>其中,t表示更新后简化的全网虚拟拓扑图的模拟温度值,t1表示更新前简化的全网虚拟拓扑图的模拟温度值,grad表示温度下降的梯度值;(10)正向非线性退火标记:将源边界节点作为根节点root,采用非线性退火标记法,对简化的全网虚拟拓扑图进行正向非线性退火标记;(11)判断dk(t)≤ck是否成立,若是,源边界节点的控制组件得到路径;否则,执行步骤(12);其中,k表示约束参数的个数,k的取值范围是1,2...K,K表示约束参数个数的最大值,dk(t)表示根节点到目的边界节点t之间使用非线性退火标记所求得的连接链路的第k个约束参数的值,ck表示源边界节点s到目的边界节点t之间连接链路需要满足的第k个约束参数的值;(12)按照下式更新温度和迭代次数:t=t1grad]]>I=I1‑1其中,t表示更新后简化的全网虚拟拓扑图的模拟温度值,t1表示更新前简化的全网虚拟拓扑图的模拟温度值,grad表示温度下降的梯度值,I表示更新后的迭代次数,I1表示更新前的迭代次数;(13)判断更新后的迭代次数I≤0是否成立,若是,执行步骤(14);否则,执行步骤(8);(14)查找失败,路由结束。...

【技术特征摘要】
1.基于非线性退火的软件定义网络多约束路由方法,其步骤包括如下:(1)获取全网虚拟拓扑图:(1a)转发组件将网络中转发组件的变更信息通知控制组件,控制组件得到本地子网内的实际网络拓扑图;(1b)隐藏本地子网内的节点,保留边界节点,采用最短路径查找法,查找两两边界节点之间的最小跳数路径,将所有的最小跳数路径作为虚拟链路;(1c)本地子网的边界节点向本地子网外发送查询分组信息,根据本地子网外返回的应答分组信息,得到相邻子网边界节点信息和该相邻子网边界节点所属的控制组件信息;(1d)本地子网的边界节点向本地子网外发送测量分组信息,相邻子网边界节点返回应答分组信息,本地子网的边界节点根据该应答分组信息得到相邻子网间连接链路的参数信息;(1e)创建链路状态分组表;所述的链路状态分组表包括发送方标识、序列号、年龄和一个邻居列表;邻居列表中包括边界节点、边界节点之间的链路参数、相邻子网控制组件、相邻子网边界节点及相连链路的参数;(1f)使用扩散法,控制组件发布链路状态分组信息,得到全网虚拟拓扑图;(2)确定源边界节点和目的边界节点:(2a)源节点的控制组件向目的节点的控制组件发送信息,指明要到达的目的节点信息;(2b)目的节点的控制组件,采用最短路径查找法,计算从目的节点到本地子网所有边界节点之间的最小跳数路径,选择所有最小跳数路径中跳数最小的边界节点,返回给源节点的控制组件,作为目的边界节点;(2c)源节点的控制组件,采用最短路径查找法,计算从源节点到本地子网所有边界节点之间的最小跳数路径,选择所有最小跳数路径中跳数最小的边界节点,作为源边界节点;(3)线性标记:(3a)采用正向线性标记法,对全网虚拟拓扑图进行正向线性标记;所述的正向线性标记法按下列步骤进行:第一步,将源边界节点s作为根节点root加入永久节点集,并将永久节点集中的根节点root设为工作节点,将与根节点root相邻的节点加入邻节点集NB;第二步,按照下式,计算邻节点集NB中的所有节点的暂时性标记:gk(u)=wk(root,u)πg(u)=root其中,g(u)表示邻节点集NB中的节点u的正向线性标记值,Σ表示求和操作,wk(root,u)表示从根节点root到邻节点集NB中的节点u之间的连接链路的第k个约束参数的值,K表示约束参数的个数,K的取值范围是1,2…9,ck表示路径要满足的第k个约束参数的值,gk(u)表示使用正向线性标记所求得的从根节点root到邻节点集NB中的节点u之间的连接链路的第k个约束参数的值,πg(u)表示使用正向线性标记所求得的从根节点root到节点u之间的连接链路中节点u的前驱结点;按照下式,计算全网虚拟拓扑图中除根节点root和邻节点集NB外的所有节点的暂时性标记:g(u)=∞其中,g(u)表示对节点u进行的正向线性标记值,∞表示无穷大;第三步,检查邻节点集NB中的所有暂时性标记节点,将其中标记g(u)最小的节点u加入永久节点集,并设为新工作节点;第四步,对与新工作节点u相邻的所有不属于永久节点集的节点,判断不等式是否成立,若是,则执行下一步;否则,按下式计算与新工作节点u相邻的所有不属于永久节点集的节点的暂时性标记:gk(v)=gk(u)+wk(u,v)πg(v)=u其中,g(v)表示对节点v进行的正向线性标记值,Σ表示求和操作,gk(u)表示从根节点root到节点u之间使用正向线性标记所求得的连接链路的第k个约束参数的值,K表示约束参数的个数,K的取值范围是1,2…9,wk(u,v)表示从节点u到节点v之间的连接链路的第k个约束参数的值,ck表示路径要满足的第k个约束参数的值,gk(v)表示从根节点root到节点v之间使用正向线性标记所求得的连接链路的第k个约束参数的值,πg(v)表示从根节点root到节点u之间使用正向线性标记所求得的连接链路中节点v的前驱结点;第五步,将新邻节点集NB变更为邻节点集NB,减去其中标记为永久节点的节点u,加上与新工作节点u相邻的所有不属于永久节点集的节点后得到的新集合;第六步,判断新邻节点集NB是否为空,当为空时,结束正向线性标记;否则,返回执行第三步;(3b)采用反向线性标记法,对全网虚拟拓扑图进行反向线性标记;所述的反向线性标记法按下列步骤进行:第一步,将目的边界节点t作为根节点root加入永久节点集,并将永久节点集中的根节点root设为工作节点,将与根节点root相邻的节点加入邻节点集NB;第二步,按照下式,计算邻节点集NB中的所有节点的暂时性标记:rk(u)=wk(root,u)πr(u)=root其中,r(u)表示对节点u进行的反向线性标记值,Σ表示求和操作,wk(root,u)表示从根节点root到节点u之间的连接链路的第k个约束参数的值,ck表示路径要满足的第k个约束参数的值,K表示约束参数的个数,K的取值范围是1,2…9,rk(u)表示从根节点root到节点u之间使用反向线性标记所求得的连接链路的第k个约束参数的值,πr(u)表示从根节点root到节点u之间使用反向线性标记所求得的连接链路中节点u的前驱结点;按照下式,计算全网虚拟拓扑图中除根节点root和邻节点集NB外的所有节点的暂时性标记:r(u)=∞其中,r(u)表示对节点u进行的反向线性标记值,∞表示无穷大;第三步,检查邻节点集NB中的所有暂时性标记节点u,将其中标记r(u)最小的节点u加入永久节点集,并设为新工作节点;第四步,对与新工作节点u相邻的所有不属于永久节点集的节点,判断不等式是否成立,若是,则执行第五步,否则,按下式计算与新工作节点u相邻的所有不属于永久节点集的节点的暂时性标记后再执行第五步:rk(v)=rk(u)+wk(u,v)πr(v)=u其中,r(v)表示对节点v进行的反向线性标记值,Σ表示求和操作,rk(u)表示从根节点root到节点u之间使用反向线性标记所求得的连接链路的第k个约束参数的值,K表示约束参数的个数,K的取值范围是1,2…9,wk(u,v)表示从节点u到节点v之间的连接链路的第k个约束参数的值,ck表示路径要满足的第k个约束参数的值,rk(v)表示从根节点root到节点v之间使用反向线性标记所求得的连接链路的第k个约束参数的值,πr(v)表示从根节点root到节点u之间使用反向线性标记所求得的连接链路中节点v的前驱结点;第五步,将新邻节点集NB变更为邻节点集NB,减去其中标记为永久节点的u,加上与新工作节点u相邻的所有不属于永久节点集的节点后得到的新集合;第六步,判断新邻节点集NB是否为空,当为空时,结束反向线性标记;否则,返回执行第三步;(4)处理节点:采用花费量测量法,对全网虚拟拓扑图中的节点进行处理;所述的花费量测量法按下列步骤进行:第一步,按照下式,计算节点的花费量:cost(u)=r(u)+g(u)其中,cost(u)表示节点u的花费量,r(u)表示节点u的反向线性标记值,g(u)表示节点u的正向线性标记值;第二步,判断cost(u)>K是否成立,若是,删除节点u和与该节点有关的链路;否则,保留节点u;(5)判断全网虚拟拓扑图中所有节点是否都完成节点处理,若是,得到简化的全网虚拟拓扑图,执行步骤(6);否则,执行步骤(4);(6)正向线性标记:采用正向线性标记法,对简化的全网虚拟拓扑图进行正向线性标记;所述的正向线性标记法按下列步骤进行:第一步,将源边界节点s作为根节点root加入永久节点集,并将永久节点集中的根节点root设为工作节点,将与根节点root相邻的节点加入邻节点集NB;第二步,按照下式,计算邻节点集NB中的所有节点的暂时性标记:gk(u)=wk(root,u)πg(u)=root其中,g(u)表示邻节点集NB中的节点u的正向线性标记值,Σ表示求和操作,wk(root,u)表示从根节点root到邻节点集NB中的节点u之间的连接链路的第k个约束参数的值,K表示约束参数的个数,K的取值范围是1,2…9,ck表示路径要满足的第k个约束参数的值,gk(u)表示使用正向线性标记所求得的从根节点root到邻节点集NB中的节点u之间的连接链路的第k个约束参数的值,πg(u)表示使用正向线性标记所求得的从根节点root到节点u之间的连接链路中节点u的前驱结点;按照下式,计算全网虚拟拓扑图中除根节点root和邻节点集NB外的所有节点的暂时性标记:g(u)=∞其中,g(u)表示对节点u进行的正向线性标记值,∞表示无穷大;第三步,检查邻节点集NB中的所有暂时性标记节点,将其中标记g(u)最小的节点u加入永久节点集,并设为新工作节点;第四步,对与新工作节点u相邻的所有不属于永久节点集的节点,判断不等式是否成立,若是,则执行第五步;否则,按下式计算与新工作节点u相邻的所有不属于永久节点集的节点的暂时性标记后再执行第5步:gk(v)=gk(u)+wk(u,v)πg(v)=u其中,g(v)表示对节点v进行的正向线性标记值,Σ表示求和操作,gk(u)表示从根节点root到节点u之间使用正向线性标记所求得的连接链路的第k个约束参数的值,K表示约束参数的个数,K的取值范围是1,2…9,wk(u,v)表示从节点u到节点v之间的连接链路的第k个约束参数的值,ck表示路径要满足的第k个约束参数的值,gk(v)表示从根节点root到节点v之间使用正向线性标记所求得的连接链路的第k个约束参数的值,πg(v)表示从根节点root到节点u之间使用正向线性标记所求得的连接链路中节点v的前驱结点;第五步,将新邻节点集NB变更为邻节点集NB,减去其中标记为永久节点的节点u,加上与新工作节点u相邻的所有不属于永久节点集的节点后得到的新集合;第六步,判断新邻节点集NB是否为空,当为空时,结束正向线性标记;否则,返回执行第三步;(7)反向非线性退火标记:将目的边界节点作为根节点root,采用非线性退火标记法,对简化的全网虚拟拓扑图进行反向非线性退火标记;所述的非线性退火标记法是指按照下列步骤进行:第一步,将根节点root加入永久节点集,并将永久节点集中的根节点root设为工作节点,将与根节点root相邻的节点加入邻节点集NB;第二步,按照下式,计算邻节点集NB中的所有节点的暂时性标记:dk(u)=wk(root,u)πd(u)=root其中,d(u)表示对节点u进行的退火标记值,max表示求最大值操作,wk(root,u)表示从根节点root到节点u之间的连接链路的第k个约束参数的...

【专利技术属性】
技术研发人员:宋志坤盛立杰杨建华
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:陕西;61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1