CN107872385B - 一种sdn网络路由计算与控制方法 - Google Patents
一种sdn网络路由计算与控制方法 Download PDFInfo
- Publication number
- CN107872385B CN107872385B CN201710940521.9A CN201710940521A CN107872385B CN 107872385 B CN107872385 B CN 107872385B CN 201710940521 A CN201710940521 A CN 201710940521A CN 107872385 B CN107872385 B CN 107872385B
- Authority
- CN
- China
- Prior art keywords
- node
- subnet
- flow
- nodes
- network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/38—Flow based routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/54—Organization of routing tables
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种SDN网络路由计算与控制方法,将网络分割为多个规模较小的子网,在子网内部选举一个流量汇聚节点,子网内普通节点之间的通信通过流量汇聚节点转发,跨子网普通节点之间的通信由本子网的流量汇聚节点转发。与现有技术相比,本发明的积极效果是:通过将一个大网络拆分成多个子网,并且在子网内和子网间应用不同的路由计算与控制方法,同时提出一种基于OpenFlow协议的路由条目聚合手段,有效地降低了计算大规模网络路由时的计算复杂度,提高了网络对高带宽、低时延、低抖动链路的利用率,降低了***的流表项资源需求,增强了SDN技术在大规模组网环境中的性能和适应性。
Description
技术领域
本发明涉及一种OpenFlow控制器***,尤其是涉及一种基于OpenFlow协议的SDN网络路由计算与控制方法。
背景技术
软件定义网络技术是一种打破了传统网络组织应用方式,具有逻辑上集中、控制与转发分离、接口开放和可编程等特点的全新的网络体系架构。OpenFlow协议是目前软件定义网络领域被标准化且广泛认可的南向接口协议之一,OpenFlow交换机将被大量应用在各种软件定义网络***中。
现有技术中,OpenFlow协议以业务流为尺度对网络进行路由控制,具有不同协议头字段的报文将被识别为不同的业务流,参与独立的路径计算,被分配独占的流表项。由于常用的路径计算算法时间复杂度都较高,在对大规模网络进行路由控制时可能导致较大的计算开销;同时,大规模网络在标准OpenFlow协议体制下可能产生海量流表项,超过常规SDN交换机的流表容量,这将对SDN网络的规模、业务模型、应用场景带来一定的限制,影响软件定义网络技术在某些大规模、高密集、重载环境下的应用性能。
发明内容
为了克服现有技术的上述缺点,本发明提供了一种基于OpenFlow协议的SDN网络路由计算与控制方法,能够有效地降低路径计算时的计算复杂度,提高网络对高带宽、低时延、低抖动链路的利用率,减轻业务流对流表项资源的消耗,有效提高大规模组网环境下的SDN控制效能。
本发明解决其技术问题所采用的技术方案是:一种SDN网络路由计算与控制方法,将网络分割为多个规模较小的子网,在子网内部选举一个流量汇聚节点,子网内普通节点之间的通信通过流量汇聚节点转发,跨子网普通节点之间的通信由本子网的流量汇聚节点转发。
与现有技术相比,本发明的积极效果是:通过将一个大网络拆分成多个子网,并且在子网内和子网间应用不同的路由计算与控制方法,同时提出一种基于OpenFlow协议的路由条目聚合手段,有效地降低了计算大规模网络路由时的计算复杂度,提高了网络对高带宽、低时延、低抖动链路的利用率,降低了***的流表项资源需求,增强了SDN技术在大规模组网环境中的性能和适应性。
附图说明
本发明将通过例子并参照附图的方式说明,其中:
图1为网络拓扑与子网划分关系图。
图2为分别以节点1、2、3、4为根形成的子网1的最小生成树。
图3为节点1、3、4与节点2通信时的路径示意图。
图4为分别以节点5、6、7为根形成的子网2的最小生成树。
图5为节点5、7与节点6通信时的路径示意图。
图6为计算子网间路由的流程示意图。
具体实施方式
一种基于OpenFlow协议的SDN网络路由计算与控制方法,将网络分割为多个规模较小的子网,对于子网内部和子网间分别采用不同的路由控制方法。
完成子网划分以后,在子网内部选举一个流量汇聚节点,子网内普通节点之间的通信通过流量汇聚节点转发,跨子网普通节点之间的通信由本子网的流量汇聚节点转发。
一、子网内数据转发的策略为:发送端普通节点依据生成树的路径将数据发送至汇聚节点,汇聚节点依据生成树的路径将数据发送至接收端普通节点。其中,子网内部汇聚节点的选举按照如下步骤进行:
S1,对于子网内的每个节点,计算该节点到达子网内其它所有节点的网络代价和,依据代价从低到高对子网内全部节点排序,按排序先后依次选取子网的流量汇聚节点;
S2,将子网抽象成有向图,交换节点为图的顶点,链路为图的边,链路时延为边的权值,以被计算节点为根,生成最小生成树;依次遍历生成树的每个非根节点,计算该节点到达根节点的代价,累加全部非根节点到达根节点的代价,得到根节点到达其它所有节点的网络代价;
S4,链路的代价C=D/B+J,其中D代表链路的传输时延,单位为毫秒,B代表链路的带宽,单位为Gbps,J代表链路的最大抖动,单位为毫秒;
二、子网间数据转发策略为:普通节点将数据汇集至汇聚节点,各个子网的汇聚节点之间建立跨子网的路由,实现跨子网数据的转发。其中,汇聚节点之间建立跨子网路由的步骤如下所示:
S1,将全网抽象成有向图,每个节点是图的顶点,每条链路是图的边;对于每一条汇聚节点之间的业务流,基于带宽信息对图进行预处理,然后以链路时延为权值,通过最短路径算法计算出每条跨子网业务流的传输路径;
S2,基于带宽信息对图进行预处理:为每条边记录一个剩余带宽,初始化状态下的剩余带宽为边对应的链路的有效带宽,链路上每承载一条业务流,链路的剩余带宽则减去对应业务流的带宽。对于新申请业务流,遍历图中所有的边,确认边的剩余带宽是否大于新申请业务流的带宽,将剩余带宽小于新申请业务流带宽的边置为断开,表示链路不可用;当业务流结束时,为业务路径上每条边加上业务流对应的带宽,表示业务结束,带宽资源被释放归还链路,可供其它业务使用;
S3,跨子网路由基于OpenFlow协议实现子网间流表聚合,降低子网间流量的流表数量需求:定义一个OpenFlow匹配域的标识,表明当前***的流表粒度,即创建流表时哪些匹配域是有效的;当***收到一个由Packet-in消息触发的路由请求时,只将Packet-in消息携带的报文中有效的匹配域提取出来,生成不严格匹配当前流的流表项,实现对子网间流表的聚合,有效降低流表项的使用数量。
以下将结合附图对本发明方法进行详细说明:
如图1所示,网络由7个节点组成,编号为1-7,其中1-4节点划分为子网1,5-7节点划分为子网2;7个节点间共有11条链路,编号为101-111,各条链路的参数如下表所示:
表1各链路参数
链路编号 | 带宽(Gbps) | 时延(ms) | 抖动(ms) |
101 | 1 | 1 | 1 |
102 | 1 | 10 | 1 |
103 | 10 | 1 | 1 |
104 | 1 | 1 | 1 |
105 | 1 | 10 | 2 |
106 | 10 | 10 | 2 |
107 | 1 | 1 | 1 |
108 | 1 | 1 | 1 |
109 | 1 | 10 | 1 |
110 | 10 | 1 | 2 |
111 | 10 | 1 | 2 |
首先计算子网1的汇聚节点,
(1)以节点1为根时,生成树如图2所示。
在图2的生成树中,应用公式C=D/B+J,各条链路的代价分别为:101代价2,103代价1.1,104代价2。
非根节点2:2×(1+0.2×(1-1))=2;
非根节点3:2×(1+0.2×(1-1))+2×(1+0.2×(2-1))=4.4;
非根节点4:1.1×(1+0.2×(1-1))+2×(1+0.2×(2-1))+2×(1+0.2×(3-1))=6.3;
因此根节点1到达子网内其它节点的网络代价和为2+4.4+6.3=12.7。
(2)以节点2为根时,生成树如图2所示。
在图2的生成树中,应用公式C=D/B+J,各条链路的代价分别为:101代价2,103代价1.1,104代价2。
非根节点1:2×(1+0.2×(1-1))=2;
非根节点3:2×(1+0.2×(1-1))=2;
非根节点4:1.1×(1+0.2×(1-1))+2×(1+0.2×(2-1))=3.5;
因此根节点2到达子网内其它节点的网络代价和为2+2+3.5=7.5。
(3)以节点3为根时,生成树如图2所示。
在图2的生成树中,应用公式C=D/B+J,各条链路的代价分别为:101代价2,103代价1.1,104代价2。
非根节点1:2×(1+0.2×(1-1))+2×(1+0.2×(2-1))=4.4;
非根节点2:2×(1+0.2×(1-1))=2;
非根节点4:1.1×(1+0.2×(1-1))=1.1;
因此根节点3到达子网内其它节点的网络代价和为4.4+2+1.1=7.5。
(4)以节点4为根时,生成树如图2所示。
在图2的生成树中,应用公式C=D/B+J,各条链路的代价分别为:101代价2,103代价1.1,104代价2。
非根节点1:2×(1+0.2×(1-1))+2×(1+0.2×(2-1))+1.1×(1+0.2×(3-1))=5.94;
非根节点2:2×(1+0.2×(1-1))+1.1×(1+0.2×(2-1))=3.32;
非根节点3:1.1×(1+0.2×(1-1))=1.1;
因此根节点4到达子网内其它节点的网络代价和为5.94+3.32+1.1=10.36。
由此可以得出,节点3和节点2作为根节点到达网内其它节点的网络代价和最小,随机选取一个节点作为子网1的汇聚节点,本实施例中选取编号较小者,即节点2作为子网1的汇聚节点;节点1、3、4与节点2之间的通信路径由对应生成树决定,如图3所示。
然后计算子网2的汇聚节点。
(1)以节点5为根时,生成树如图4所示。
在图4的生成树中,应用公式C=D/B+J,各条链路的代价分别为:107代价2,108代价2。
非根节点6:2×(1+0.2×(1-1))=2;
非根节点7:2×(1+0.2×(1-1))+2×(1+0.2×(2-1))=4.4;
因此根节点5到达子网内其它节点的网络代价和为2+4.4=6.4。
(2)以节点6为根时,生成树如图4所示。
在图4的生成树中,应用公式C=D/B+J,各条链路的代价分别为:107代价2,108代价2。
非根节点5:2×(1+0.2×(1-1))=2;
非根节点7:2×(1+0.2×(1-1))=2;
因此根节点6到达子网内其它节点的网络代价和为2+2=4。
(3)以节点7为根时,生成树如图4所示。
在图4的生成树中,应用公式C=D/B+J,各条链路的代价分别为:107代价2,108代价2。
非根节点5:2×(1+0.2×(1-1))+2×(1+0.2×(2-1))=4.4;
非根节点6:2×(1+0.2×(1-1))=2;
因此根节点7到达子网内其它节点的网络代价和为4.4+2=6.4。
由此可以得出,节点6拥有最小的网络代价和,为子网2的汇聚节点;节点5、7与节点6之间的通信路径由对应生成树决定,如图5所示。
如图6所示,收到跨子网业务申请后的具体处理方法步骤为:一、以链路时延为权值,将网络抽象为有向图;二、检查图中所有边的剩余带宽是否大于新申请的业务流,如果不大于,则将对应的边置为断开,表示新申请的业务流不路由至该链路上;三使用最短路径算法计算出业务流路由。
同时,为了进一步减小跨子网业务的流表尺寸,本实施例中将OpenFlow匹配域标识定义为只有源IP和目的IP有效。当收到SDN交换机上报的Packet-in报文时,只将Packet-in报文携带的失配报文中的源IP和目的IP信息提取出来,制作成子网间流表项的匹配域,忽略失配报文头部的其它字段,如入端口、MAC地址、协议号等。
Claims (2)
1.一种SDN网络路由计算与控制方法,其特征在于:将网络分割为多个规模较小的子网,在子网内部选举一个流量汇聚节点,子网内普通节点之间的通信通过流量汇聚节点转发,跨子网普通节点之间的通信由本子网的流量汇聚节点转发;同时,对跨子网路由进行流表聚合;其中:
(一)子网内部流量汇聚节点的选举方法为:针对子网内的每个节点,计算该节点到达子网内其它所有节点的网络代价和,依据代价从低到高对子网内全部节点排序,按排序先后依次选取子网的流量汇聚节点;其中,计算某个节点到达子网内其它所有节点的网络代价和的方法为:将子网抽象成有向图,交换节点为图的顶点,链路为图的边,链路时延为边的权值,以被计算节点为根,生成最小生成树;依次遍历生成树的每个非根节点,计算该节点到达根节点的代价,累加全部非根节点到达根节点的代价,得到根节点到达其它所有节点的网络代价;其中,计算某个非根节点到达根节点代价的方法为:在非根节点到达根节点的路径上,从非根节点开始对链路进行编号,第一条为1,第二条为2,依次类推,最后一条为N;非根节点到达根节点的代价为其中Cn代表第n条链路的代价;其中,计算某条链路的代价的方法为:链路的代价C=D/B+J,其中D代表链路的传输时延,单位为毫秒,B代表链路的带宽,单位为Gbps,J代表链路的最大抖动,单位为毫秒;
(二)跨子网普通节点之间的通信由本子网的流量汇聚节点转发的方法为:普通节点将数据汇集至流量汇聚节点,各个子网的流量汇聚节点之间建立跨子网的路由,实现跨子网数据的转发;其中,各个子网的流量汇聚节点之间建立跨子网的路由的方法为:将全网抽象成有向图,每个节点是图的顶点,每条链路是图的边;对于每一条流量汇聚节点之间的业务流,基于带宽信息对图进行预处理,然后以链路时延为权值,通过最短路径算法计算出每条跨子网业务流的传输路径;其中,基于带宽信息对图进行预处理的方法为:为每条边记录一个剩余带宽,初始化状态下的剩余带宽为边对应的链路的有效带宽,链路上每承载一条业务流,链路的剩余带宽则减去对应业务流的带宽;对于新申请业务流,遍历图中所有的边,将剩余带宽小于新申请业务流带宽的边置为断开,表示链路不可用;当业务流结束时,为业务路径上每条边加上业务流对应的带宽,表示业务结束;
(三)跨子网路由基于OpenFlow协议实现子网间流表聚合:定义一个OpenFlow匹配域的标识,表明当前***的流表粒度,明确创建流表时哪些匹配域是有效的;当***收到一个由Packet-in消息触发的路由请求时,只将Packet-in消息携带的报文中有效的匹配域提取出来,生成不完全匹配当前流的流表项,实现对子网间流表的聚合。
2.根据权利要求1所述的一种SDN网络路由计算与控制方法,其特征在于:子网内普通节点之间的通信通过流量汇聚节点转发的方法为:发送端普通节点依据生成树的路径将数据发送至流量汇聚节点,流量汇聚节点依据生成树的路径将数据发送至接收端普通节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710940521.9A CN107872385B (zh) | 2017-10-11 | 2017-10-11 | 一种sdn网络路由计算与控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710940521.9A CN107872385B (zh) | 2017-10-11 | 2017-10-11 | 一种sdn网络路由计算与控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107872385A CN107872385A (zh) | 2018-04-03 |
CN107872385B true CN107872385B (zh) | 2020-10-23 |
Family
ID=61753013
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710940521.9A Active CN107872385B (zh) | 2017-10-11 | 2017-10-11 | 一种sdn网络路由计算与控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107872385B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110581806B (zh) * | 2018-06-11 | 2022-02-25 | 中兴通讯股份有限公司 | 一种自动切分网络的方法、装置、设备及存储介质 |
CN112492255B (zh) * | 2020-11-20 | 2022-07-05 | 杭州叙简科技股份有限公司 | 一种基于5g低延时生成树音视频会议方法 |
CN113098778A (zh) * | 2021-04-04 | 2021-07-09 | 河南工业大学 | 一种软件定义网络中基于生成树折叠路由的流表压缩方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102882699B (zh) * | 2011-07-14 | 2015-07-29 | 华为技术有限公司 | 边缘节点的分配方法和装置及边缘节点控制器 |
CN104144149A (zh) * | 2013-05-10 | 2014-11-12 | 中国电信股份有限公司 | 传感物联网数据的传输处理方法、***和网关 |
CN103957544B (zh) * | 2014-04-22 | 2017-05-10 | 电子科技大学 | 一种提高无线传感器网络抗毁性的方法 |
CN112615818B (zh) * | 2015-03-24 | 2021-12-03 | 华为技术有限公司 | 基于sdn的ddos攻击防护方法、装置及*** |
CN105162704B (zh) * | 2015-09-28 | 2019-01-25 | 杭州数梦工场科技有限公司 | Overlay网络中组播复制的方法及装置 |
KR101729944B1 (ko) * | 2016-01-12 | 2017-04-25 | 쿨클라우드(주) | Sdn 기반의 멀티 테넌트 지원 네트워크 시스템의 ip 주소 제공 방법 |
CN105847146B (zh) * | 2016-03-11 | 2019-04-26 | 南京航空航天大学 | 一种提高层次分布式sdn控制平面路由效率的方法 |
CN105933227B (zh) * | 2016-06-29 | 2019-01-22 | 中国电子科技集团公司第五十四研究所 | 软件定义卫星网络中的路由决策及流表一致性优化的方法 |
CN106888163A (zh) * | 2017-03-31 | 2017-06-23 | 中国科学技术大学苏州研究院 | 软件定义网络中基于网络域划分的路由方法 |
-
2017
- 2017-10-11 CN CN201710940521.9A patent/CN107872385B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN107872385A (zh) | 2018-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11588733B2 (en) | Slice-based routing | |
CN107395532B (zh) | 一种基于sdn的多租户虚拟网络隔离方法 | |
US9397934B2 (en) | Methods for packet forwarding though a communication link of a distributed link aggregation group using mesh tagging | |
EP2842278B1 (en) | Three stage folded clos optimization for 802.1aq | |
CN102884767B (zh) | 第2层多路径网络中链路成本按图分配 | |
CN102957589B (zh) | 业务数据传输的方法、网络节点及*** | |
WO2016095141A1 (zh) | 软件定义网络中数据转发的方法、设备和*** | |
CN102055665B (zh) | 广播上或nbma上的ospf点到多点模式 | |
CN110061915B (zh) | 跨多个架构交换机的虚拟链路聚合的方法和*** | |
CN104335537A (zh) | 用于层2多播多路径传送的***和方法 | |
CN103081418A (zh) | 计算机***和计算机***中的通信方法 | |
CN107872385B (zh) | 一种sdn网络路由计算与控制方法 | |
CN104378297A (zh) | 一种报文转发方法及设备 | |
CN100563215C (zh) | 一种报文路由交换装置及其方法 | |
CN106656793B (zh) | 一种sdn网络与ip网络的数据交互方法 | |
US8446818B2 (en) | Routed split multi-link trunking resiliency for wireless local area network split-plane environments | |
WO2017084448A1 (zh) | 一种网络***及网络运行方法 | |
CN105049351A (zh) | 基于sdn的多链接透明互联算法 | |
CN105493454A (zh) | 双活接入多链接透明互联(trill)边缘 | |
CN111245724A (zh) | 基于虚拟交换机部署的sdn负载均衡路由方法 | |
Nithin et al. | Efficient load balancing for multicast traffic in data center networks using SDN | |
CN113949659A (zh) | 一种流量承载路径智能选路方法及其装置 | |
CN105577559B (zh) | 一种路由的方法、设备及*** | |
CN108173767B (zh) | 一种基于vlan-if接口复用的报文转发方法及装置 | |
CN101252779B (zh) | 策略执行点选择方法及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |