一种在软件定义网络中部署控制器的方法

文档序号:10615840阅读:318来源:国知局
一种在软件定义网络中部署控制器的方法
【专利摘要】一种在软件定义网络中部署控制器的方法,包括下列操作步骤:(1)计算软件定义网络中每个路由器节点的路由器节点密度值ρ;(2)基于所述的路由器节点密度值ρ,对软件定义网络中的所有路由器进行聚类;聚类出的类簇数目作为要部署的控制器的数目;(3)在每个类簇中,遍历每个路由器的位置,根据预先设定的控制器部署规则,确定控制器的最佳部署位置。本发明方法实现了对软件定义网络中数据层网络的区域划分,控制器能够将控制信息较快地传到区域内的路由器节点上,提高了网络可靠性。
【专利说明】
-种在软件定义网络中部署控制器的方法
技术领域
[0001] 本发明设及一种软件定义网络中利用数据层自身结构部署控制层控制器的方法, 属于计算机网络技术领域,特别是属于软件定义网络领域。
【背景技术】
[0002] 软件定义网络是一种新型的网络架构,其核屯、技术化enF low通过将网络设备控 制层和数据层分离开来,从而实现网络流量的灵活控制,为核屯、网络及应用创新提供了良 好的平台。在大规模的路由网络中,控制器往往和路由网络中的路由器相连,将控制命令通 过数据网络传到路由器中,从而降低布置网络的代价,提高网络的可扩展性。在软件定义网 络中,如果控制器部署得好,不仅能够减少控制命令的传播时延,更能够提高网络的可靠 性。
[0003] 然而,对于控制器部署问题来说,究竟需要布置多少个控制器,每个控制器应放置 在什么样的位置是一个NP困难问题。目前,软件定义网络中控制器部署问题的解决方案大 多是基于启发式算法而设计的,然而启发式算法提供的解决方案往往是局部最优解,并不 能提供更加接近于全局最优的解决方案。同时,启发式算法还存在并不能提供最优的控制 器部署数量的问题。因此,在软件定义网络中,如何优化部署控制器成为一个急需解决的技 术问题。

【发明内容】

[0004] 有鉴于此,本发明的目的是发明一种在软件定义网络中部署控制器的方法,优化 解决控制器的部署数量和部署位置的问题。
[0005] 为了达到上述目的,本发明提出了一种在软件定义网络中部署控制器的方法,所 述方法包括下列操作步骤:
[0006] (1)计算软件定义网络中每个路由器节点的路由器节点密度值P,所述的路由器节 点密度值P是指在一定网络距离范围内的该路由器节点的邻居路由器节点的个数,所述的 网络距离包括但不限于网络链路跳数、网络时延、物理距离;
[0007] (2)基于所述的路由器节点密度值P,对软件定义网络中的所有路由器进行聚类; 聚类出的类簇数目作为要部署的控制器的数目;
[000引(3)在每个类簇中,遍历每个路由器的位置,根据预先设定的控制器部署规则,确 定控制器的最佳部署位置;所述的控制器部署规则包括但不限于最短网络时延、网络可靠 度最高。
[0009] 步骤(2)中所述的基于所述的路由器节点密度值P,对软件定义网络中的所有路由 器进行聚类的具体内容是包括如下操作步骤:
[0010] (2101)计算软件定义网络中每个路由器节点的路由器节点中屯、指数值5,所述的 路由器节点中屯、指数值S是指该路由器节点到拥有更高的路由器节点密度值P的路由器节 点的最近网络距离;若某路由器节点的路由器节点密度值P是最高的,则该路由器节点的路 由器节点中屯、指数值S计算为所述的软件定义网络的网络半径;
[0011] (2102)计算路由器节点中屯、指数值S较高的路由器节点的个数,作为推荐的控制 器个数;
[0012] (2103)基于用户反馈的实际要部署的控制器的个数,选择路由器节点中屯、指数值 5最高的前几个路由器节点作为聚类中屯、对所述的软件定义网络中的路由器进行聚类;聚 类的方法是指定每个路由器属于离它最近的拥有更高的路由器节点密度值P的路由器的类 簇。
[0013] 步骤(2)中所述的基于所述的路由器节点密度值P,对软件定义网络中的所有路由 器进行聚类的具体内容是包括如下操作步骤:
[0014] (2201)按照如下公式计算软件定义网络中每个路由器节点的边缘度指数值曰,
[0015]
[0016] 上式中,Si表示编号为i的路由器,Sj表示编号为j的路由器,Oi表示编号为i的路由 器的边缘度指数值,P康示编号为j的路由器的路由器节点密度值,UL(Si)表示与编号为i的 路由器直接相连且路由器节点密度值比其更高的邻居路由器集合;上式中,tdi按照如下公 式进行计算:
[0017]
[0018] 所述的边缘度指数值O的物理含义是指路由器节点可W被分到不同类簇的概率的 赌值;
[0019] (2202)根据所述的边缘度指数值O从低到高的顺序对路由器进行聚类,并控制每 个类簇中负载总和的大小不能超过控制器负载能力的最大值,具体做法是:指定每个路由 器属于离它最近的拥有更高的路由器节点密度值P的路由器的类簇,如果一个类簇内已完 成聚类的路由器的路由负载饱和,则未能被聚类的路由器被分配到相邻的其它的类簇中; 如果相邻类簇的路由负载均已饱和,则该未能被聚类的路由器自己变成新的一个类簇;聚 类的方法是指定每个路由器属于离它最近的拥有更高的路由器节点密度值P的路由器的类 簇。
[0020] 本发明的有益效果在于:由于利用了基于密度的聚类算法,本发明方法实现了对 软件定义网络中数据层网络的区域划分。通过运样的划分,使得每个区域内具有比较稳定 的连接,同时由于区域内的路由器相互之间联系紧密,所W将控制器部署在运样划分的区 域内能够将控制信息较快地传到区域内的路由器节点上,从而整体上大大提高了网络可靠 性。
【附图说明】
[0021] 图1是本发明提出的一种在软件定义网络中部署控制器的方法的流程图。
[0022] 图2是本发明实施例的路由器网络拓扑示意图。
[0023] 图3是本发明实施例的控制器部署方案一中路由器的聚类结果示意图。
[0024] 图4是本发明实施例的控制器部署方案一的示意图。
[0025] 图5是本发明实施例的控制器部署方案二的示意图。
【具体实施方式】
[0026] 为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步 的详细描述。
[0027] 参见图1,介绍本发明提出的一种在软件定义网络中部署控制器的方法,所述方法 包括下列操作步骤:
[0028] (1)计算软件定义网络中每个路由器节点的路由器节点密度值P,所述的路由器节 点密度值P是指在一定网络距离范围内的该路由器节点的邻居路由器节点的个数,所述的 网络距离包括但不限于网络链路跳数、网络时延、物理距离;
[0029] (2)基于所述的路由器节点密度值P,对软件定义网络中的所有路由器进行聚类; 聚类出的类簇数目作为要部署的控制器的数目;
[0030] (3)在每个类簇中,遍历每个路由器的位置,根据控制器预先设定的控制器部署规 贝1J,确定控制器的最佳部署位置;所述的控制器部署规则包括但不限于最短网络时延、网络 可靠度最高。
[0031] 举例如下:参见图2,图2所示的软件定义网络中,一共有34个路由器,每个路由器 有一个编号。在图2所示的网络环境下,我们采用网络链路跳数作为网络距离,我们收集每 个路由器2跳半径内的所有相邻的路由器个数,记为路由器节点密度值P。序号为1的路由器 在图3的网络中2跳半径内可W到达的路由器包括序号为2,3,4,5的路由器,所^密度值为 4。其他路由器依此类推,得到表1:
[0032] 表 1
[0033]
L〇〇34」步驟(2)中所述的基于所述的路由器节点密度值P,对软件定义网络中的所有路由 器进行聚类的具体内容是包括如下操作步骤:
[0035] (2101)计算软件定义网络中每个路由器节点的路由器节点中屯、指数值5,所述的 路由器节点中屯、指数值S是指该路由器节点到拥有更高的路由器节点密度值P的路由器节 点的最近网络距离;若某路由器节点的路由器节点密度值P是最高的,则该路由器节点的路 由器节点中屯、指数值S计算为所述的软件定义网络的网络半径;
[0036] (2102)计算路由器节点中屯、指数值S较高的路由器节点的个数,作为推荐的控制 器个数;
[0037] (2103)基于用户反馈的实际要求部署的控制器的个数,选择路由器节点中屯、指数 值S最高的前几个路由器节点作为聚类中屯、对所述的软件定义网络中的路由器进行聚类; 聚类的方法是指定每个路由器属于离它最近的拥有更高的路由器节点密度值P的路由器的 类簇。
[0038] 在上述例子中,根据图2和表1,计算每个路由器节点的路由器节点中屯、指数值5。 序号为1的路由器密度值为4,其到达密度更高的路由器2的距离是1,所W序号为1的路由器 节点中屯、指数值S为1。序号为16的路由器是该网络中密度最大的路由器,所W将其中屯、指 数值S设置为整个网络的网络半径4。其他路由器依此类推,得到如下表2:
[0039] 亲 2
[0040]
[0041] -
[0042] 在例子中,路由器节点中屯、指数值5比较高的路由器序号包括:5,12,16,23,27。所 W我们可W将它们设置为聚类类簇的中屯、点进行聚类,并推荐控制器数为5个。将每个路由 器聚到离它最近的拥有更高的密度值的路由器的类簇,得到的路由器聚类结果如图3所示。 图3中同一类簇的路由器的编号用相同的几何图形进行了包围,不同类簇之间所用几何图 形不同。
[0043] 如果我们希望网络的整体传播信令的时延最短,则在每个类簇中找到平均时延最 短的位置布置路由器。在例子中,我们假设每条链路的时延相同,均为1。在包含路由器1,2, 3,4,5,6,7,8号路由器的类簇中,可^计算出1号路由器到本类内的其他路由器的平均时延 为i X (1 + 2 + 2 + 2 + 3; + 3 + :?)二苦-.2号路由器的平均时延为J X (1 + 1 + 1 + 1 + 2 + 2 + 2)二昔,3号路由器的平均时延为打+ 1 + 2 + 2 + 2 + 2 + 3)=管,4号路由器的平 均时延为^ X (1 + 2: + .2. + 2 +'3 + 3'牛.3.).='苦,5号路由器的平均时延为-X (.1 + 1 +. 1 + 1 + 2+ 2 +巧=f:,:6号路由器的平均时延为是X (1 + 2+ 2+ 2+:3+:3 +封=^,7号路由器 的平均时延为^ X (1 + 1 + 1 + 2 + 2 + 3 + 3)二^,8号路由器的平均时延为^ X 打+ 1 + 2 + 2 + 2 + 3 +巧=f,所W该类簇中控制器布置的最佳位置是2号或5号路由器 所在的位置。其他类簇的控制器的布置位置依此类推,得到的控制器部署方案如图4所示, 图中旁边打对勾所示路由器所在的位置就是控制器需要部署的位置,也即分别在5、12、16、 23和27号路由器所在的位置部署控制器。
[0044] 步骤(2)中所述的基于所述的路由器节点密度值P,对软件定义网络中的所有路由 器进行聚类的具体内容是包括如下操作步骤:
[0045] (2201)按照如下公式计算软件定义网络中每个路由器节点的边缘度指数值曰,
[0046]
[0047] 上式中,Si表示编号为i的路由器,S康示编号为j的路由器,Oi表示编号为i的路由 器的边缘度指数值,P康示编号为j的路由器的路由器节点密度值,UL(Si)表示与编号为i的 路由器直接相连且路由器节点密度值比其更高的邻居路由器集合;上式中,tdi按照如下公 式进行计算:
[004引
[0049] 所述的边缘度指数值O的物理含义是指路由器节点可W被分到不同类簇的概率的 赌值;
[0050] (2202)根据所述的边缘度指数值O从低到高的顺序对路由器进行聚类,并控制每 个类簇中负载总和的大小不能超过控制器负载能力的最大值,具体做法是:指定每个路由 器属于离它最近的拥有更高的路由器节点密度值P的路由器的类簇,如果一个类簇内已完 成聚类的路由器的路由负载饱和,则未能被聚类的路由器被分配到相邻的其它类簇中;如 果相邻类簇的路由负载均已饱和,则该未能被聚类的路由器自己变成新的一个类簇;聚类 的方法是指定每个路由器属于离它最近的拥有更高的路由器节点密度值P的路由器的类 簇。
[0051] 在上述例子中,根据图2和表1,计算每个路由器节点的边缘度指数值0。序号为1的 路由器只与2号路由器相连,且2号路由器的密度大于1号路由器,所W其边缘度指数值为曰1 = IXlog 1=0,而10号路由器与6和11号路由器相连,且它们的密度都大于10号路由器,所 W其边缘指数夫
,其他路由器依次类推,所有的路由 器的边缘度指数值如表3所示:
[0052] 表 3 「mwl
[0054] 假设每个控制器最大的控制能力是控制6个路由器,则我们需要限定每个类簇的 大小为不能超过6个路由器,按照O值由低到高的顺序将路由器聚集到离它最近的密度更大 的路由器的类中,对于O值相同情况下我们对路由器聚类的优先级相同,所W我们随机对同 一优先级的路由器进行聚类。图2中O值最低的路由器包括1、2、5、8、11、12、14、16、17、18、 19、21、23、25、27、31和34,所^先对运些路由器进行聚类。序号为1的路由器聚到2的类簇 中,然后再将2聚到5的类簇中,由于5是局部密度最大点,所W将5设置为一个类簇的中屯、 点,然后将8号聚到5的类簇中,11聚到12的类簇中,12为局部密度最大点,所W将12设置为 一个类簇中屯、点,14聚到16的类簇中,16为局部密度最大点,所W将16设置为一个类簇的中 屯、点,17聚到16的类簇中,18聚到12的类簇中,19聚到12的类簇中,21聚到23的类簇中,23为 局部密度最大点,所W将23设置为一个类簇的中屯、点,25聚到24的类簇中,27为局部密度最 大点,所W将27设置为一个类簇类簇的中屯、点,31聚到27的类簇中,34聚到28的类簇中。在 剩下的路由器中,33号路由器的O值更低,所W将33聚到34的类簇中。在剩下的路由器中,15 号路由器的O值更低,所W将15聚到16的类簇中。在剩下的路由器中,29号路由器的O值更 低,所W将29聚到28的类簇中。在剩下的路由器中3、4、7和26的O值更低,所W将3号路由器 聚到2所在的类簇中,4号路由器聚到2所在的类簇中,由于7号路由器只能被聚到5号路由器 所在的类簇中,而5号路由器所在的类簇已经有6个路由器,所W将7号路由器单独设置为新 的一类,然后再将26号路由器聚集到27号路由器所在的类簇中。在剩下的路由器中,9、20、 22、24、28、30、32的〇值更低,所^将9号路由器聚集到11所在的类簇中,20号路由器聚集到 21所在的类簇中,22号路由器聚集到21号所在的类簇中,24号路由器聚集到23所在的类簇 中,由于28号路由器所在的类簇中目前共有3个路由器,而16号路由器所在的类簇中目前共 有4个路由器,所W它们无法合并为1个类簇,所W将28号路由器设置为新的类簇,然后再将 30号路由器聚集到27所在的类簇中,32号路由器聚集到31所在的类簇中。在剩下的路由器 中,6、10和13的O值更低,在对6号路由器进行操作时,其邻居节点5号路由器所在的类簇已 经包含6个路由器,所W只能将其聚集到14号路由器所在的类簇中。按同样的方式,将13聚 集到14所在的类簇中,10号路由器聚集到11所在的类簇中,得到的路由器聚类的结果如图5 所示。图5中同一类簇的路由器的编号用相同的几何图形进行了包围,不同类簇之间所用几 何图形不同。
[0055] 为了测试本发明方法的性能,我们使用了一个名为Internet TopologyZoo的公开 网络拓扑图作为测试集。该拓扑包含262个不同的拓扑网络结构,每个网络的结构样式,规 模大小都不相同。在该测试集下,我们通过与现有最好的控制器布置的算法POCO的方法相 比较,我们的方案无论是按照单一目标(如平均时延最短或最好的可靠性)选择控制器的布 置还是按照多目标(如平均时延尽量短且可靠性尽量更高)的角度选择控制器的布置都取 得了更好的效果,使得网络的控制信令的平均传播时延降低了20%,网络的安全性平均提 高了 5 %。而且本发明方法使得求解最佳布置的时间大大减少。
【主权项】
1. 一种在软件定义网络中部署控制器的方法,其特征在于:所述方法包括下列操作步 骤: (1) 计算软件定义网络中每个路由器节点的路由器节点密度值P,所述的路由器节点密 度值P是指在一定网络距离范围内的该路由器节点的邻居路由器节点的个数,所述的网络 距离包括但不限于网络链路跳数、网络时延、物理距离; (2) 基于所述的路由器节点密度值P,对软件定义网络中的所有路由器进行聚类;聚类 出的类簇数目作为要部署的控制器的数目; (3) 在每个类簇中,遍历每个路由器的位置,根据预先设定的控制器部署规则,确定控 制器的最佳部署位置;所述的控制器部署规则包括但不限于最短网络时延、网络可靠度最 局。2. 根据权利要求1所述的一种在软件定义网络中部署控制器的方法,其特征在于:步骤 (2)中所述的基于所述的路由器节点密度值P,对软件定义网络中的所有路由器进行聚类的 具体内容是包括如下操作步骤: (2101) 计算软件定义网络中每个路由器节点的路由器节点中屯、指数值δ,所述的路由 器节点中屯、指数值δ是指该路由器节点到拥有更高的路由器节点密度值Ρ的路由器节点的 最近网络距离;若某路由器节点的路由器节点密度值Ρ是最高的,则该路由器节点的路由器 节点中屯、指数值δ计算为所述的软件定义网络的网络半径,所述的网络半径是指网络中任 意两节点间距离的最大值的一半; (2102) 计算路由器节点中屯、指数值δ较高的路由器节点的个数,作为推荐的控制器个 数; (2103) 基于用户反馈的实际要部署的控制器的个数,选择路由器节点中屯、指数值δ最 高的前几个路由器节点作为聚类中屯、,对所述的软件定义网络中的路由器进行聚类;聚类 的方法是指定每个路由器属于离它最近的拥有更高的路由器节点密度值Ρ的路由器的类 簇。3. 根据权利要求1所述的一种在软件定义网络中部署控制器的方法,其特征在于:步骤 (2)中所述的基于所述的路由器节点密度值Ρ,对软件定义网络中的所有路由器进行聚类的 具体内容是包括如下操作步骤: (2201)按照如下公式计算软件定义网络中每个路由器节点的边缘度指数值曰,上式中,Si表示编号为i的路由器,Sj表示编号为j的路由器,〇1表示编号为i的路由器的 边缘度指数值,P康示编号为j的路由器的路由器节点密度值,UL(Si)表示与编号为i的路由 器直接相连且路由器节点密度值比其更高的邻居路由器集合;上式中,tdi按照如下公式进 行计算:所述的边缘度指数值σ的物理含义是指路由器节点可W被分到不同类簇的概率的赌 值; (2202)根据所述的边缘度指数值σ从低到高的顺序对路由器进行聚类,并控制每个类 簇中负载总和的大小不能超过控制器负载能力的最大值,具体做法是:指定每个路由器属 于离它最近的拥有更高的路由器节点密度值Ρ的路由器的类簇,如果一个类簇内已完成聚 类的路由器的路由负载饱和,则未能被聚类的路由器被分配到相邻的其它的类簇中;如果 相邻类簇的路由负载均已饱和,则该未能被聚类的路由器自己变成新的一个类簇;聚类的 方法是指定每个路由器属于离它最近的拥有更高的路由器节点密度值Ρ的路由器的类簇。
【文档编号】H04L12/751GK105978740SQ201610566022
【公开日】2016年9月28日
【申请日】2016年7月18日
【发明人】廖建新, 戚琦, 孙海峰, 徐童, 樊利民
【申请人】北京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1