CN106850438A - 一种实时获取sdn交换机流表空间占有率的方法 - Google Patents
一种实时获取sdn交换机流表空间占有率的方法 Download PDFInfo
- Publication number
- CN106850438A CN106850438A CN201611229366.1A CN201611229366A CN106850438A CN 106850438 A CN106850438 A CN 106850438A CN 201611229366 A CN201611229366 A CN 201611229366A CN 106850438 A CN106850438 A CN 106850438A
- Authority
- CN
- China
- Prior art keywords
- flow table
- counter
- interchanger
- controller
- table space
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 36
- 239000012530 fluid Substances 0.000 claims abstract description 6
- 238000004891 communication Methods 0.000 claims abstract description 4
- 230000008569 process Effects 0.000 claims description 6
- 238000010586 diagram Methods 0.000 claims description 3
- 230000000977 initiatory effect Effects 0.000 claims description 2
- 238000012544 monitoring process Methods 0.000 abstract 1
- 230000008859 change Effects 0.000 description 3
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 241000208340 Araliaceae Species 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
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/02—Topology update or discovery
- H04L45/021—Ensuring consistency of routing table updates, e.g. by using epoch numbers
-
- 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通信协议的特点,使交换机统计的结果能准确实时发送给控制器。控制器接收并保存交换机计数器的统计结果,实现了控制器能准确实时的知道其管理的交换机流表空间的使用情况。本发明方法不仅可直接从控制器上面读取,同时还支持控制器下发命令来获取。该方法能减轻控制器的负担,并且具有准确实时的特性。在实际应用中,该方法可供监控交换机状态的应用使用,也可用于其它方面的应用,特别是在需要频繁获取交换机流表空间占有率或是流表空间已存在的流表项总数的应用中,该方法的优势更加突出。
Description
技术领域
本发明涉及软件定义网络(SDN)技术领域,尤其涉及一种能准确实时获取SDN交换机流表空间占有率的方法。
背景技术
随着时代的进步,在信息化浪潮的推动下,传统网络已不能满足人们的日益需求。为更好更快更灵活的部署网络以及提升用户体验,就需要对传统网络做一些改进,于是提出了软件定义网络SDN(Software-Defined Network)。SDN是一种新型的网络架构,它在传统网络架构的基础上面做了这些创新:1、数据平面与控制平面解耦合;2、集中化的网络控制;3、灵活的可编程开发接口。
SDN网络架构包括:SDN交换机,南向协议,SDN控制器,北向接口,上层应用等。传统网络的控制功能全部集中到远程的SDN控制器上面,而SDN交换机只负责转发,SDN网络中的转发是基于流的,控制器会下发流表项给交换机,交换机根据这些流表项来匹配转发数据流,所以控制器与交换机之间要建立安全通道来相互通信,于是就有了OpenFlow协议(南向协议)。OpenFlow协议负责建立连接,并提供相应的消息机制来控制和管理交换机。
在SDN中,每当有新的数据流进入交换机,交换机会向控制器发送Packet_In消息来询问控制器,该数据流该如何处理。控制器经过计算后,会生成一条流表项,并将流表项封装入Flow_Mod消息中并下发给交换机。交换机里面的流表项都有自己的生存时间,当流表项被删除后,交换机就会向控制器发送Flow_Removed消息来通知控制器该流表项已被删除。
由于数据包需要匹配的域越来越多,为了加速匹配,我们就采用TCAM,虽然匹配速度提上去了,可是由于TCAM的高成本与高功耗,导致交换机的流表空间有限,所以要动态删除部分流表项来缓解有限的流表空间资源,当网络突然出现了很多新数据流时,流表空间很有可能会溢出,并阻塞数据包,有可能造成交换机无法正常工作。此时我们需要实时的获取流表空间占有率来调整流表项删除策略,使流表项总数在一个安全的范围内波动,防止因流表溢出导致交换机出错。
发明内容
为了解决上述目的,本发明提出了一种能准确实时获取SDN交换机流表空间占有率的方法。
为实现上述目的,本发明的技术方案为:
一种实时获取SDN交换机流表空间占有率的方法,包括以下步骤:
步骤1:交换机初始化,此时交换机的两个参数也会被初始化:固定不变的流表项空间总容量C(SDN交换机的容量在出厂时就已经固定了),统计流表空间中存储的流表项总数的计数器counter;
步骤2:控制器与交换机建立连接,控制器中生成两个参数并初始化:控制器中记录交换机流表空间总容量的参数V和记录交换机中流表空间存储的流表项总数的参数C_counter;
步骤3:控制器等待交换机发送Packet_In请求,并更新控制器中的C_counter;
步骤4:交换机等待控制器下发流表项,并立即更新交换机中的counter;
步骤5:在等待的同时可能会有流表项的删除,此时更新counter,并更新控制器中的C_counter;
步骤6:计算流表空间占有率(C_counter/V或counter/V);
在上述的准确实时获取SDN交换机流表空间占有率方法中,所述步骤1中的交换机初始化如下:
每个刚接入SDN架构的交换机都会有一个自己的初始化,这个初始化过程会把统计流表空间中存储的流表项总数的参数counter置为零,容量置为C,此时交换机里面没有流表项。
步骤2中控制器与交换机建立连接并初始化参数如下:
当有交换机接入SDN架构时,控制器会发现有交换机接入,并与交换机建立OpenFlow安全通道用于两者通信。控制器会向交换机下发询问交换机特性的OFPT_FEATURES_REQUEST消息,交换机收到消息后会把包括容量C与流表项统计值counter等参数封装成一个OFPT_FEATURES_REPLY类型的消息反馈给控制器。控制器解析这些数据并保存,把交换机反馈的参数C值和counter值分别赋给控制器的参数V和参数C_counter,这样就完成了控制器中记录交换机总容量V和交换机流表项总数C_counter的初始化。
步骤3中的更新控制器的C_counter参数如下:
当有新的数据流进入交换机的时候,由于交换机的流表中没有匹配的流表项,交换机会向控制器发送一个携带counter值的Packet_In消息去询问控制器该如何处理这个数据包,控制器解析此消息后把counter的值赋给C_counter,此时控制器根据当前的拓扑图计算转发路径并向交换机发送Flow_Mod消息(消息中携带了如何处理Packet_In请求的流表项),发送成功后C_counter的值加1。步骤4中的更新交换机的counter参数如下:
当交换机接收到控制器发来的Flow_Mod消息后,交换机解析消息后发现是要往流表空间增加一条流表项时,交换机会把下发的流表项存入流表中,同时counter的值加1。
步骤5中的更新C_counter和counter参数如下:
流表项都会被设置存活时间,满足条件时交换机会自动删除这条流表项,同时counter的值减1。在流表项被删除的同时,交换机向控制器发送一个携带counter值的Flow_Removed消息,控制器解析消息并把counter的值赋给C_counter。
步骤6中的计算流表空间占有率如下:
计算C_counter/V或counter/V的值都可以获得流表空间占有率,在交换机工作过程中,随着步骤3,4和5的循环交替执行,该数值是随时间变化的。
与现有技术相比,本发明的有益技术效果体现在:
1、本发明通过交换机控制一个计数器来统计流表空间已存在的流表项总数,对底层进行了具体的实现,方法简便。目前的应用和研究中都是通过控制器下发一个命令来获取流表空间已存在的流表项总数,且都没有提及它在底层是如何实现的;
2、本发明结合OpenFlow协议的特点来准确实时的获取流表空间的占有率,
现有技术使用的方法是通过控制器下发命令来获取,经过多次向交换机发送请求再求平均值,这种方法的缺陷是:每次询问的时间间隔难以预测;多次获取求平均值也会存在一定的误差。本发明提出的实现方法不仅可以直接从控制器上面读取,还可以通过控制器下发命令来读取。当直接从控制器上面读取时,可得到更加准确实时的流表项总数,从而获得准确实时的占有率;
3、本发明不需要控制器下发命令来查询,也不用考虑查询时间间隔。当流表项总数发生变化时,交换机与控制器建立连接进行信息交互。该方法结合这个特点,会立即更新相关的参数,从而得到准确实时的值。在现有技术所使用的方法中,频繁下发命令查询不仅会增加控制器的负担,还将过多占用OpenFlow安全通道的资源。
附图说明
图1是本发明基本流程图。
具体实施方式
本发明实施主要是采用推送的方式,通过控制一个计数器来统计交换机流表空间已存储的流表项总数,分析流表项增加和减少的原因以及OpenFlow协议的特点,对统计量做一个实时的更新后推送给控制器。
参照图1,本发明是一种能准确实时获取SDN交换机流表空间占有率的方法。步骤包括:
步骤1:交换机初始化。每个刚接入SDN架构的交换机都会有一个自己的初始化,这个初始化过程会把流表项总数的参数counter置为零,容量置为C(SDN交换机的容量在出厂时就已经固定),这里的counter是该方法定义的一个参数,该参数由交换机控制一个计数器来建立,此时交换机里面没有一条流表项。
步骤2:控制器与交换机连接建立。交换机接入SDN架构后,控制器根据SDN的发现协议查询到有交换机接入,并与交换机建立OpenFlow安全通道进行通信。控制器会向交换机下发询问交换机特性的OFPT_FEATURES_REQUEST消息,交换机收到消息后会把容量C与流表项统计值counter等参数封装成一个OFPT_FEATURES_REPLY类型的消息发回给控制器,控制器解析这些数据并保存。控制器把交换机的参数C值和counter值分别赋给控制器的参数V和C_counter,这样就完成了控制器中记录交换机总容量C和交换机流表项C_counter的初始化。这中间需要修改Openflow协议的消息格式,把需要携带的参数信息上发给控制器。
步骤3:更新控制器中的C_counter参数。每当有新的数据流进入交换机的时候,由于交换机的流表中没有匹配的流表项,交换机会向控制器发送一个携带counter值的Packet_In消息去询问控制器该如何处理这个数据包。控制器解析消息后把counter值赋给C_counter,此时控制器根据当前的拓扑图计算转发路径并向交换机发送Flow_Mod消息,消息中携带了如何处理Packet_In请求的数据流,消息发送成功后C_counter的值加1,此时就更新了C_counter。这中间需要修改Openflow协议的消息格式,把需要携带的参数信息上发给控制器。
步骤4:更新交换机的counter参数。当交换机接收到控制器发来的Flow_Mod消息后,解析发现是要往流表空间增加一条流表项时,交换机会把下发的流表项存入流表中,同时counter的值加1。
步骤5:更新C_counter和counter参数。流表项都会被设置一定的存活时间,满足条件时交换机会自动删除这条流表项,这时counter的值减1。在流表项被删除的同时,交换机会向控制器发送一个携带counter值的Flow_Removed消息。控制器解析此消息并把counter的值赋给C_counter。这中间需要修改Openflow协议的消息格式,把需要携带的参数信息上发给控制器。
步骤6:计算流表空间占有率。计算C_counter/V或counter/V的值都可以获得流表空间占有率,在交换机工作过程中,随着步骤3,4和5的循环交替执行,该数值是随时间变化的,每次流表项总数有变化时C_counter和counter的值都会随之变化,故该方法得到的值是准确实时的。
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
Claims (7)
1.一种实时获取SDN交换机流表空间占有率的方法,其特征在于,包括如下步骤:
步骤1:交换机初始化,此时交换机中的两个参数同时被初始化,其中两个参数分别为固定不变的流表项空间总容量C和统计流表空间中存储的流表项总数的计数器counter;
步骤2:控制器与交换机建立连接,控制器中生成两个参数并初始化,其中控制器中生成两个参数分别为控制器中记录交换机流表空间总容量的参数V和记录交换机中流表空间存储的流表项总数的参数C_counter;
步骤3:控制器等待交换机发送Packet_In请求,并更新控制器中的C_counter;
步骤4:交换机等待控制器下发流表项,并立即更新交换机中的counter;
步骤5:在等待的同时当有流表项需要删除,则更新counter,并更新控制器中的C_counter;
步骤6:基于更新后的counter或C_counter计算流表空间占有率,具体为C_counter/V或counter/V。
2.根据权利要求1所述的实时获取SDN交换机流表空间占有率的方法,其特征在于,所述步骤1中的交换机初始化的具体过程为:各个新接入SDN架构的交换机均会进行初始化,该初始化过程将统计流表空间中存储的流表项总数的参数counter置为零,容量置为C,此时交换机里面没有流表项。
3.根据权利要求2所述的实时获取SDN交换机流表空间占有率的方法,其特征在于,所述步骤2中控制器与交换机建立连接并初始化参数的过程如下:
当有交换机接入SDN架构时,控制器发现有交换机接入,并与交换机建立OpenFlow安全通道用于两者通信;控制器向交换机下发询问交换机特性的OFPT_FEATURES_REQUEST消息,交换机收到消息后把包括容量C与流表项统计值counter参数封装成一个OFPT_FEATURES_REPLY类型的消息反馈给控制器;控制器解析这些数据并保存,把交换机反馈的参数C值和counter值分别赋给控制器的参数V和参数C_counter,即完成控制器中记录交换机总容量V和交换机流表项总数C_counter的初始化。
4.根据权利要求3所述的实时获取SDN交换机流表空间占有率的方法,其特征在于,所述步骤3中的更新控制器的C_counter参数方式如下:
当有新的数据流进入交换机的时候,由于交换机的流表中没有匹配的流表项,交换机向控制器发送一个携带counter值的Packet_In消息,用于询问控制器如何处理该数据包,控制器解析此消息后把counter的值赋给C_counter,此时控制器根据当前的拓扑图计算转发路径并向交换机发送Flow_Mod消息,该Flow_Mod消息中携带有处理Packet_In请求的流表项的方式,发送成功后C_counter的值加1。
5.根据权利要求4所述的实时获取SDN交换机流表空间占有率的方法,其特征在于,所述步骤4中的更新交换机的counter参数方式如下:
当交换机接收到控制器发来的Flow_Mod消息后,交换机解析消息后,确定是需要往流表空间增加一条流表项时,交换机会把下发的流表项存入流表中,同时counter的值加1。
6.根据权利要求5所述的实时获取SDN交换机流表空间占有率的方法,其特征在于,所述步骤5中的更新C_counter和counter参数方式如下:
流表项被设置存活时间,满足条件时交换机自动删除这条流表项,同时counter的值减1;在流表项被删除的同时,交换机向控制器发送一个携带counter值的Flow_Removed消息,控制器解析消息并把counter的值赋给C_counter。
7.根据权利要求6所述的实时获取SDN交换机流表空间占有率的方法,其特征在于,所述步骤6中的计算流表空间占有率方式如下:
计算C_counter/V或counter/V的值都能够获得流表空间占有率,在交换机工作过程中,随着步骤3,4和5的循环交替执行,该数值是随时间变化的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611229366.1A CN106850438A (zh) | 2016-12-27 | 2016-12-27 | 一种实时获取sdn交换机流表空间占有率的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611229366.1A CN106850438A (zh) | 2016-12-27 | 2016-12-27 | 一种实时获取sdn交换机流表空间占有率的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106850438A true CN106850438A (zh) | 2017-06-13 |
Family
ID=59113366
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611229366.1A Pending CN106850438A (zh) | 2016-12-27 | 2016-12-27 | 一种实时获取sdn交换机流表空间占有率的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106850438A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109120525A (zh) * | 2017-06-26 | 2019-01-01 | 中国电信股份有限公司 | 用于sdn的路径确定方法、装置、sdn控制器及网络 |
CN112104576A (zh) * | 2020-08-14 | 2020-12-18 | 中国科学院声学研究所 | 一种sdn交换机的常驻流表存储与校准方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102868578A (zh) * | 2012-10-11 | 2013-01-09 | 盛科网络(苏州)有限公司 | Openflow交换机表项容量的测试方法及测试系统 |
CN104052685A (zh) * | 2013-03-14 | 2014-09-17 | 日立(中国)研究开发有限公司 | 流表更新方法和流表更新装置 |
CN104243240A (zh) * | 2014-09-23 | 2014-12-24 | 电子科技大学 | 一种基于OpenFlow的SDN流量测量方法 |
WO2015180040A1 (zh) * | 2014-05-27 | 2015-12-03 | 华为技术有限公司 | 流表管理方法及相关设备和系统 |
CN105187437A (zh) * | 2015-09-24 | 2015-12-23 | 广东顺德中山大学卡内基梅隆大学国际联合研究院 | 一种sdn网络拒绝服务攻击的集中式检测系统 |
-
2016
- 2016-12-27 CN CN201611229366.1A patent/CN106850438A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102868578A (zh) * | 2012-10-11 | 2013-01-09 | 盛科网络(苏州)有限公司 | Openflow交换机表项容量的测试方法及测试系统 |
CN104052685A (zh) * | 2013-03-14 | 2014-09-17 | 日立(中国)研究开发有限公司 | 流表更新方法和流表更新装置 |
WO2015180040A1 (zh) * | 2014-05-27 | 2015-12-03 | 华为技术有限公司 | 流表管理方法及相关设备和系统 |
CN104243240A (zh) * | 2014-09-23 | 2014-12-24 | 电子科技大学 | 一种基于OpenFlow的SDN流量测量方法 |
CN105187437A (zh) * | 2015-09-24 | 2015-12-23 | 广东顺德中山大学卡内基梅隆大学国际联合研究院 | 一种sdn网络拒绝服务攻击的集中式检测系统 |
Non-Patent Citations (1)
Title |
---|
SDNLAB君: "OpenFlow协议通信流程解读", 《HTTPS://WWW.SDNLAB.COM/SDN-GUIDE/14812.HTML》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109120525A (zh) * | 2017-06-26 | 2019-01-01 | 中国电信股份有限公司 | 用于sdn的路径确定方法、装置、sdn控制器及网络 |
CN112104576A (zh) * | 2020-08-14 | 2020-12-18 | 中国科学院声学研究所 | 一种sdn交换机的常驻流表存储与校准方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104618194B (zh) | 软件定义网络报文监控方法和sdn控制器、交换设备 | |
CN105897611B (zh) | 一种基于sdn采用dpi技术实现业务识别和流量调度的系统和方法 | |
CN109391500A (zh) | 一种配置管理方法、装置及设备 | |
CN107390650A (zh) | 一种基于物联网的数据采集系统及基于该系统的数据压缩方法 | |
CN109756430A (zh) | 一种规则的处理方法及装置 | |
CN103795596A (zh) | 可编程控制的sdn网络测量系统和测量方法 | |
EP3697063B1 (en) | Communication control device, communication control method, and communication system | |
KR20140106235A (ko) | 오픈플로우 스위치 및 그 패킷 처리 방법 | |
CN109164776B (zh) | 一种面向工业设备的分布式数据采集方法 | |
CN108023895B (zh) | 海量数据定向分类传输方法及系统 | |
CN110851252A (zh) | 一种基于tsn架构的规约转换设备和规约转换方法 | |
CN108881380A (zh) | 基于云服务的数据传输系统和方法 | |
CN104160735B (zh) | 发报文处理方法、转发器、报文处理设备、报文处理系统 | |
CN110011892A (zh) | 一种虚拟专用网络的通信方法及相关装置 | |
CN103595712B (zh) | 一种Web认证方法、装置及系统 | |
CN106850438A (zh) | 一种实时获取sdn交换机流表空间占有率的方法 | |
CN109361595A (zh) | 一种物联网网关及方法 | |
CN105281941B (zh) | 一种数据传输方法、第一cse、中间cse和第二cse | |
CN102438017A (zh) | 基于路由功能的Modbus和BACnet Ethernet协议转化装置及转化方法 | |
Kuchuk et al. | Traffic Modeling for the Industrial Internet of NanoThings | |
CN104683260B (zh) | 一种流量控制方法及系统 | |
CN105812278A (zh) | 软件定义网络中服务质量控制方法及装置 | |
CN108616569B (zh) | 一种面向分布式计算应用的光多播请求调度方法 | |
JP2015109493A5 (zh) | ||
WO2022247462A1 (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170613 |
|
RJ01 | Rejection of invention patent application after publication |