CN105553768A - 一种基于自适应超时时间的sdn控制器故障检测方法 - Google Patents
一种基于自适应超时时间的sdn控制器故障检测方法 Download PDFInfo
- Publication number
- CN105553768A CN105553768A CN201510932091.7A CN201510932091A CN105553768A CN 105553768 A CN105553768 A CN 105553768A CN 201510932091 A CN201510932091 A CN 201510932091A CN 105553768 A CN105553768 A CN 105553768A
- Authority
- CN
- China
- Prior art keywords
- controller
- time
- heartbeat
- detection
- message
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
- H04L43/103—Active monitoring, e.g. heartbeat, ping or trace-route with adaptive polling, i.e. dynamically adapting the polling rate
Landscapes
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于自适应超时时间的SDN控制器故障检测方法。目前关于控制器的故障检测方法大都采用固定周期的心跳检测技术,主控制器定期向从控制器发送一心跳消息证明其存活。另一种故障检测技术则是在第一种的基础上改进的,依然是主控制器以固定周期向从控制发送心跳消息,此时从控制器开启一个定时器并主动向主控制器发送一个询问消息并要求主控制器回答,若在定时器时间内主控制有响应则说明主控制正常工作;反之则认为主控器已经失效。此两种方法均采用固定超时时间的心跳技术来检测控制器,均不能快速精确的检测出故障的控制器,为此本发明了一种基于自适应超时时间的SDN控制器故障检测方法,可以有效的提高检测准确率并降低检测时间。
Description
技术领域
本发明属于软件定义网络(SDN)领域,尤其涉及一种基于自适应超时时间的SDN控制器故障检测方法。
背景技术
SDN架构不可忽视的问题是随着各种应用和业务的精确化、复杂化,将要求SDN架构有更强的可扩展性和可靠性。这也是目前SDN集中控制带来的难题,集中控制要求所有的网络服务及功能的实现都必须依靠控制器来集中处理,这就要求控制器要具有很高的性能。首先,随着业务复杂度、精确度不断的提高,指向控制器的请求和事件将大大增加,单个控制器很难完成相应的操作,即使可以完成也不能保证网络性能。再者,网络规模的不断扩展,进一步限制了集中控制的性能。因为无论控制器性能多么优秀,网络规模的增大使得边缘交换机到控制器的距离非常遥远,这种延迟总是无可避免的。最后,如果控制器故障将形成单点故障,导致整个网络瘫痪。因此,有必要建立一个逻辑集中但物理分布的架构,这种架构可以有效的利用分布式架构的可靠性和可扩展性等优点。该架构的具体实现方式为,在网络中放置多个控制器,每个控制器负责一个区域且控制器之间相互通信、备份。这样有效的解决了大规模网络的延迟问题,同时实现网络的可靠控制,避免了单点故障。分布式控制器的使用可以有效地避免网络的单点故障,通过分布式控制器之间的备份可以将故障的控制器切换到正常工作的控制器。因此如何快速准确的发现控制器是否故障成为我们研究中不可忽视的一点,基于此本发明在分析以往的故障发现基础上,提出了一种基于自适应超时时间的SDN控制器故障检测方法。
发明内容
目前关于控制器的故障检测方法大都采用固定周期的心跳检测技术,也就是说主控制器定期向从控制器发送一个心跳消息以证明其存活。另一种故障检测技术则是在第一种的基础上改进的,依然是主控制器以固定周期向从控制发送心跳消息,此时从控制器开启一个定时器并主动向主控制器发送一个询问消息并要求主控制器回答,若在定时器时间内主控制有响应则说明主控制正常工作;反之则认为主控器已经失效。此两种方法均采用固定超时时间的心跳技术来检测控制器,均不能快速精确的检测出故障的控制器,为此本发明了一种基于自适应超时时间的SDN控制器故障检测方法,它可以有效的提高检测准确率并降低检测时间。
本发明解决技术问题的技术方案如下:一种基于自适应超时时间的SDN控制器故障检测方法,包含如下步骤:
1)根据流量负载工程,定义流量负载等级分别为最小级min、正常级normal、平均级average、高级high、最高级veryhigh,并根据这些等级定义相应的超时时间Δt0;
2)将控制器的流量负载等级定义为min,并设置相应的超时时间Δt0;控制器进程p主动向心跳检测进程q发送心跳消息,若在该超时时间Δt0内没有收到任何心跳消息,将该控制器进程p放入怀疑列表,否则控制器为正常状态。
3)将控制器的流量负载等级逐级升高,并判断在该等级所对应的超时时间内心跳检测进程q是否收到来自控制器进程p的心跳消息,若收到说明控制器进程p正常工作跳转到步骤5);若没有收到则循环执行步骤3)。
4)当流量负载等级升到veryhigh时依然没有收到控制器的消息,心跳检测进程q主动向控制器进程p发送一个ping消息,并启动定时器,若在定时器内收到来自控制器进程p的响应,跳转到步骤5);否则,则判定该控制器进程故障,跳转到步骤6)。
5)将控制器进程p从怀疑列表移除,并输出此时该进程的流量负载等级及其超时检测的实际时间;继续执行步骤2)至步骤4)。
6)心跳检测模块立即通知共享数据库并根据先前共享数据库的信息立即由备用控制器接管工作。
进一步地,veryhigh级别所代表的网络流量和负载值可以根据设备生产商的规格说明书得到,其他级别所代表的网络流量和负载值可通过分析计算流量和负载工程得到。超时时间Δt0的最大值由veryhigh级别设定。
进一步地,如果某控制器节点在最长超时时间内依然没有响应,则由心跳检测模块主动向控制器节点发送ping消息并要求回应,同时启动定时器;若在定时器时间内依然没有收到来自控制器的回应,则判定该控制节点失效,启动备用控制器接管相应工作。
本发明的有益效果是:针对目前大多采用固定超时时间的心跳检测不能有效降低检测时间和提高检测准确率的情况。本发明提出了一种基于自适应超时时间的SDN控制器故障检测方法,本方法方法可以有效的提高检测准确率并降低检测时间。
附图说明
图1为本发明方法流程图;
图2为超时时间Δt0和平均错误率的关系;
图3为超时时间和平均检测时间的关系;
图4为自适应算法与经典算法的对比。
具体实施方式
下面结合附图和具体实施例对本发明作进一步详细说明。
如图1所示,本发明提供的一种基于自适应超时时间的SDN控制器故障检测方法,包含如下步骤:
1)根据流量负载工程,定义流量负载等级分别为最小级min、正常级normal、平均级average、高级high、最高级veryhigh,并根据这些等级定义相应的超时时间Δt0;
2)将控制器的流量负载等级定义为min,并设置相应的超时时间Δt0;控制器进程p主动向心跳检测进程q发送心跳消息,若在该超时时间Δt0内没有收到任何心跳消息,将该控制器进程p放入怀疑列表,否则控制器为正常状态。
3)将控制器的流量负载等级逐级升高,并判断在该等级所对应的超时时间内心跳检测进程q是否收到来自控制器进程p的心跳消息,若收到说明控制器进程p正常工作跳转到步骤5);若没有收到则循环执行步骤3)。
4)当流量负载等级升到veryhigh时依然没有收到控制器的消息,心跳检测进程q主动向控制器进程p发送一个ping消息,并启动定时器,若在定时器内收到来自控制器进程p的响应,跳转到步骤5);否则,则判定该控制器进程故障,跳转到步骤6)。
5)将控制器进程p从怀疑列表移除,并输出此时该进程的流量负载等级及其超时检测的实际时间;继续执行步骤2)至步骤4)。
6)心跳检测模块立即通知共享数据库并根据先前共享数据库的信息立即由备用控制器接管工作。
其中,veryhigh级别所代表的网络流量和负载值可以根据设备生产商的规格说明书得到,其他级别所代表的网络流量和负载值可通过分析计算流量和负载工程得到。超时时间Δt0的最大值由veryhigh级别设定。
如果某控制器节点在最长超时时间内依然没有响应,则由心跳检测模块主动向控制器节点发送ping消息并要求回应,同时启动定时器;若在定时器时间内依然没有收到来自控制器的回应,则判定该控制节点失效,启动备用控制器接管相应工作。
实施例
本实施例中采用基于C语言编写的仿真器评估本发明方法的性能。整个实验开发环境是在Windows7主机下使用虚拟机软件和Ubuntu14.0LTS4搭建的,同时利用Eclipse软件与EclipseCDT(C/C++DevelopmentTooling,CDT)插件组建软件系统开发平台,然后编写代码实现方案中的方法。在模拟测试试验中模拟两台计算机来分别代表进程p和q,其中p代表控制器进程,而q代表心跳检测进程。在试验中假设这两台模拟计算机都不会发生故障,消息的传输使用UDP/IP协议实现。
控制器进程p和心跳检测进程q通过Internet互联,它们之间产生的延时可以通过模拟广域网中某台pc到大型网站服务器的延时得到,通过对某大型网站进行长时间的ping测试,得到数万条数据,其中最小响应时间为28ms,最大响应时间为2465ms,平均值120ms,丢包率0.031%。从这些数据本身特点来看,符合容错系统模型中的延时和丢包率。
通过采集得到的数据分布可以看出,延迟时间为2465ms的数据分布相当少,大部分延时都分布在30ms-283ms之间。根据时延数据分布将这个时延区间平均分为5个级别,分别对应流量负载等级min,normal,average,high,veryhigh。即min等级对应时延区间为30ms-80.6ms,normal等级对应时延区间为80.6ms-131.2ms,average等级对应时延区间为131.2ms-181.8ms,high等级对应时延区间为181.8ms-232.4ms,veryhigh等级对应时延区间为232.4ms-283ms。在实际的实验中,通过网络测试仪注入流量,按需调节得到想要的网络时延。初始的其它实验参数为:心跳周期Δi=1000ms,传输延迟Δtr和各流量负载等级下所设置的值相对应,超时时间Δt0≈Δi+Δtr。
从图2和图3可以看出,随着超时时间的增大,平均错误率降低、平均检测时间增大。实验结果和理论分析相符。超时时间较小时,检测模块需要在较短的时间内做出反应,发生错误的概率会较大。在超时时间较大时,检测模块有足够多的时间来做出反应,发生错误的概率大大降低。当超时时间达到一定值时,平均错误率降低到预设标准。
在我们的系统设计中,当怀疑故障发生时会由心跳检测模块主动向控制器发送一个ping的消息,来确定控制器进程是否真的故障。因此,系统实际的检测时间包含了检测超时时间和消息的传输延时两部分,所以超时时间和平均检测时间基本呈线性关系。
图4试验结果表明,本发明方法与经典chen的算法(NFD-E)相比,在平均检测时间一样的情况下平均错误率要明显低于chen的算法;同样在相同的平均错误率下,其平均检测时间也要低于chen的算法。本发明方法的检测时间为1255ms时,其平均错误率也趋于稳定达到最低的0.012%。
Claims (2)
1.一种基于自适应超时时间的SDN控制器故障检测方法,其特征在于,包含如下步骤:
1)根据流量负载工程,定义流量负载等级分别为最小级min、正常级normal、平均级average、高级high、最高级veryhigh,并根据这些等级定义相应的超时时间Δt0;
2)将控制器的流量负载等级定义为min,并设置相应的超时时间Δt0;控制器进程p主动向心跳检测进程q发送心跳消息,若在该超时时间Δt0内没有收到任何心跳消息,将该控制器进程p放入怀疑列表,否则控制器为正常状态;
3)将控制器的流量负载等级逐级升高,并判断在该等级所对应的超时时间内心跳检测进程q是否收到来自控制器进程p的心跳消息,若收到说明控制器进程p正常工作跳转到步骤5);若没有收到则循环执行步骤3);
4)当流量负载等级升到veryhigh时依然没有收到控制器的消息,心跳检测进程q主动向控制器进程p发送一个ping消息,并启动定时器,若在定时器内收到来自控制器进程p的响应,跳转到步骤5);否则,则判定该控制器进程故障,跳转到步骤6);
5)将控制器进程p从怀疑列表移除,并输出此时该进程的流量负载等级及其超时检测的实际时间;继续执行步骤2)至步骤4);
6)心跳检测模块立即通知共享数据库并根据先前共享数据库的信息立即由备用控制器接管工作。
2.根据权利要求1所述的一种基于自适应超时时间的SDN控制器故障检测方法,其特征在于,如果某控制器节点在最长超时时间内依然没有响应,则由心跳检测模块主动向控制器节点发送ping消息并要求回应,同时启动定时器;若在定时器时间内依然没有收到来自控制器的回应,则判定该控制节点失效,启动备用控制器接管相应工作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510932091.7A CN105553768B (zh) | 2015-12-15 | 2015-12-15 | 一种基于自适应超时时间的sdn控制器故障检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510932091.7A CN105553768B (zh) | 2015-12-15 | 2015-12-15 | 一种基于自适应超时时间的sdn控制器故障检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105553768A true CN105553768A (zh) | 2016-05-04 |
CN105553768B CN105553768B (zh) | 2018-11-09 |
Family
ID=55832707
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510932091.7A Active CN105553768B (zh) | 2015-12-15 | 2015-12-15 | 一种基于自适应超时时间的sdn控制器故障检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105553768B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106130813A (zh) * | 2016-06-06 | 2016-11-16 | 国网山东省电力公司滨州供电公司 | 一种基于自适应因子探测的智能化网络设备扫描方法 |
CN109117294A (zh) * | 2018-07-16 | 2019-01-01 | 上交所技术有限责任公司 | 适用于证券交易系统的故障检测方法及装置 |
WO2019006708A1 (zh) * | 2017-07-05 | 2019-01-10 | 全球能源互联网研究院有限公司 | 基于双端口交换机的sdn多域网络备份方法及系统 |
CN111918332A (zh) * | 2020-08-20 | 2020-11-10 | 深圳多拉多通信技术有限公司 | 基于sdn的通信网络的流量控制方法及系统 |
WO2022105611A1 (zh) * | 2021-06-29 | 2022-05-27 | 聚好看科技股份有限公司 | 一种心跳超时检测方法、服务器及电子设备 |
CN117354081A (zh) * | 2023-10-18 | 2024-01-05 | 广东保伦电子股份有限公司 | Modbus超时响应自适应配置方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103888313A (zh) * | 2014-03-11 | 2014-06-25 | 浙江大学 | 一种预测流表项的最优超时时间的方法 |
CN103929333A (zh) * | 2014-05-08 | 2014-07-16 | 陈桂芳 | 一种sdn控制器资源池的实现方法 |
CN104579972A (zh) * | 2014-12-23 | 2015-04-29 | 武汉烽火网络有限责任公司 | 一种软件定义网络中多控制器环境下表项老化的同步方法 |
-
2015
- 2015-12-15 CN CN201510932091.7A patent/CN105553768B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103888313A (zh) * | 2014-03-11 | 2014-06-25 | 浙江大学 | 一种预测流表项的最优超时时间的方法 |
CN103929333A (zh) * | 2014-05-08 | 2014-07-16 | 陈桂芳 | 一种sdn控制器资源池的实现方法 |
CN104579972A (zh) * | 2014-12-23 | 2015-04-29 | 武汉烽火网络有限责任公司 | 一种软件定义网络中多控制器环境下表项老化的同步方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106130813A (zh) * | 2016-06-06 | 2016-11-16 | 国网山东省电力公司滨州供电公司 | 一种基于自适应因子探测的智能化网络设备扫描方法 |
CN106130813B (zh) * | 2016-06-06 | 2019-04-02 | 国网山东省电力公司滨州供电公司 | 一种基于自适应因子探测的智能化网络设备扫描方法 |
WO2019006708A1 (zh) * | 2017-07-05 | 2019-01-10 | 全球能源互联网研究院有限公司 | 基于双端口交换机的sdn多域网络备份方法及系统 |
CN109117294A (zh) * | 2018-07-16 | 2019-01-01 | 上交所技术有限责任公司 | 适用于证券交易系统的故障检测方法及装置 |
CN109117294B (zh) * | 2018-07-16 | 2022-04-19 | 上交所技术有限责任公司 | 适用于证券交易系统的故障检测方法及装置 |
CN111918332A (zh) * | 2020-08-20 | 2020-11-10 | 深圳多拉多通信技术有限公司 | 基于sdn的通信网络的流量控制方法及系统 |
WO2022105611A1 (zh) * | 2021-06-29 | 2022-05-27 | 聚好看科技股份有限公司 | 一种心跳超时检测方法、服务器及电子设备 |
CN117354081A (zh) * | 2023-10-18 | 2024-01-05 | 广东保伦电子股份有限公司 | Modbus超时响应自适应配置方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN105553768B (zh) | 2018-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105553768A (zh) | 一种基于自适应超时时间的sdn控制器故障检测方法 | |
CN102880475B (zh) | 计算机软件系统中基于云计算的实时事件处理系统及方法 | |
CN104320311A (zh) | 一种scada分布式平台下的心跳检测方法 | |
CN103117901B (zh) | 一种分布式心跳检测方法、装置及系统 | |
JP2005209201A (ja) | 高可用性クラスタにおけるノード管理 | |
CN107925619B (zh) | 用于处置网络中的链路丢失的系统和方法 | |
CN102868754A (zh) | 一种实现集群存储高可用性的方法、节点装置和系统 | |
CN109194543A (zh) | 数据采集方法和装置 | |
CN108429629A (zh) | 设备故障恢复方法和装置 | |
CN108306804A (zh) | 一种Ethercat主站控制器及其通信方法和系统 | |
CN110515854A (zh) | 应用程序异常的复现方法、装置和电子设备 | |
WO2015058711A1 (zh) | 故障快速检测方法及装置 | |
CN104811476A (zh) | 一种面向应用服务的高可用部署实现方法 | |
CN106506253A (zh) | 一种基于tcp/ip通信协议的在线客户端数量的统计系统及方法 | |
CN108063787A (zh) | 基于分布式一致性状态机实现双活架构的方法 | |
CN107094091A (zh) | 一种智能变电站站控层网络配置校验方法和系统 | |
JP2012064217A (ja) | データ復元方法及びサーバ装置 | |
CN114113984A (zh) | 基于混沌工程的故障演练方法、装置、终端设备及介质 | |
CN106789278B (zh) | 电力故障修复系统和应用该系统的电力故障修复方法 | |
CN111880932A (zh) | 一种基于多网口的数据存储方法及装置 | |
CN111865659A (zh) | 主备控制器的切换方法和装置、控制器、网络设备 | |
CN107038094A (zh) | 一种数据备份方法及装置 | |
CN105843336B (zh) | 具有多机柜管理模块的机柜及其韧体更新方法 | |
CN109117317A (zh) | 一种集群故障恢复方法和相关装置 | |
CN105550065A (zh) | 一种进行数据库服务器通信管理的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |