CN101610272A - 一种避免邻居关系振荡的方法 - Google Patents
一种避免邻居关系振荡的方法 Download PDFInfo
- Publication number
- CN101610272A CN101610272A CNA2009103049983A CN200910304998A CN101610272A CN 101610272 A CN101610272 A CN 101610272A CN A2009103049983 A CNA2009103049983 A CN A2009103049983A CN 200910304998 A CN200910304998 A CN 200910304998A CN 101610272 A CN101610272 A CN 101610272A
- Authority
- CN
- China
- Prior art keywords
- neighbor
- keep
- alive
- tasks
- avoiding
- 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
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/026—Details of "hello" or keep-alive messages
-
- 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/028—Dynamic adaptation of the update intervals, e.g. event-triggered updates
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Communication Control (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明涉及计算机网络通信,特别涉及具有邻居关系的通信协议中避免邻居状态振荡的方法。本发明公开了一种避免邻居关系振荡的方法,避免协议的邻居状态因为得不到及时保活而导致振荡。本发明的技术方案是,一种避免邻居关系振荡的方法,包括以下步骤:a.对协议任务进行分离,分离为邻居保活任务和协议主体任务;b.简化邻居保活任务,使其仅用于完成邻居保活;c.协议主体任务保持基本流程不变,将其中邻居信息、保活报文同步到邻居保活任务中;d.协议运行过程中,邻居保活任务和协议主体任务独立运行。本发明用于计算机通信协议的设计和实现,在综合环境里,协议的邻居可以有效保活,避免了因为CPU繁忙而导致的协议邻居关系振荡。
Description
技术领域
本发明涉及计算机网络通信,特别涉及具有邻居关系的通信协议中避免邻居状态振荡的方法。
背景技术
在计算机通信领域,有大量的协议,具有邻居关系,需要定时保活邻居状态,而且协议本身也具有较复杂的算法。如果不能优先保证邻居状态的建立和维护,可能会导致邻居状态振荡,使协议不能稳定运行。在设计、实现协议时,如何避免协议的邻居状态振荡是协议设计实现时的一个重要内容。
大部分协议的内容都可以概括为两个公共部分:邻居保活任务和协议主体任务(又称为协议运算)。视协议复杂程度,协议运算部分可能有比较复杂的协议状态机维护、协议数据库维护和计算等,协议运算部分是比较消耗CPU资源的。如果一个协议用一个任务(或者进程)来实现这两个方面的内容,那么这里存在一个矛盾就是:邻居保活任务对实时性要求高,在系统中要求任务优先级较高;而协议运算因为存在密集性的计算,消耗CPU较高,为避免对系统的影响,其任务的优先级不能设置得过高。如果协议运算优先级设置得过高,会导致系统中其他较低优先级的任务得不到调度;如果优先级定的较低,则在系统高优先级任务调度时,协议主体任务因为一段时间没有收到或者发送保活报文,导致邻居超时断开,进而触发高密集性的计算,并且需要重新开始建立邻居,导致邻居关系振荡,协议迟迟不能收敛。
在综合环境下,出现协议邻居关系振荡的情况时,对协议流程本身做些优化是必要的。但是这种局部优化在比较恶劣的综合环境下,效果并不理想。比如当系统业务报文相当繁忙时,CPU资源相当紧张时,局部优化就失去效果了。即这种局部优化不是治本的方法。
邻居保活对实时性要求相当高,因此要保活邻居,必须把保活邻居的操作放在一个相对高优先级的任务里处理。而对于协议密集性的计算、状态机、数据库维护等工作,因占CPU资源较高,综合考虑,需要在一个相对低优先级的任务里处理,避免协议运行起来时因占用CPU资源较多,导致系统其他许多任务得不到调度。
发明内容
本发明所要解决的技术问题,就是提供一种避免邻居关系振荡的方法,避免协议的邻居状态因为得不到及时保活而导致振荡。
本发明解决所述技术问题,采用的技术方案是,一种避免邻居关系振荡的方法,包括以下步骤:
a、对协议任务进行分离,分离为邻居保活任务和协议主体任务;
b、简化邻居保活任务,使其仅用于完成邻居保活;
c、协议主体任务保持基本流程不变,将其中邻居信息、保活报文同步到邻居保活任务中;
d、协议运行过程中,邻居保活任务和协议主体任务独立运行;
进一步的,邻居保活任务的优先级别高于协议主体任务的优先级别;
具体的,所述优先级别是指实时性要求优先级别;
具体的,所述邻居保活任务用于接收保活报文保活自己的邻居状态,以及定时发送保活报文保活邻居的邻居状态;
进一步的,所述协议主体任务根据邻居保活任务发送的邻居保活通知,维护其本地邻居状态;
进一步的,邻居保活任务和协议主体任务需要避免共享数据结构;
进一步的,邻居保活任务和协议主体任务之间的通信采用标准通信方法;
具体的,所述标准通信方法包括但不限于内部TCP、管道、通信信号量触发。
本发明的有益效果是,实现任务分离后,在综合环境里,协议的邻居可以有效保活,避免了因为CPU繁忙而导致的协议邻居振荡、网络不通、占用系统资源的问题。
具体实施方式
下面结合具体实施方式,详细描述本发明的技术方案。
本发明对协议任务进行分离,分离为邻居保活任务和协议主体任务。为了便于描述,邻居保活任务称为HELLO任务,协议主体任务称为PROTO任务。本发明具体实施步骤如下:
1.协议实现进行任务分离
协议实现分离为邻居保活任务和协议主体任务。邻居保活任务设置可以满足高实时性要求的较高优先级别,协议主体任务则设置相对较低的优先级别,避免对系统其他任务造成冲击。
2.HELLO任务基本流程
HELLO任务设计得非常简单,主要完成两件事:
一是接收保活报文保活自己的邻居状态。
邻居的创建更新均在PROTO任务里完成,PROTO任务把邻居的映射同步到HELLO任务,即HELLO任务里维护的邻居和PROTO任务里的邻居一一映射。HELLO任务收到保活报文后,根据保活报文的关键字段查找到对应的邻居并把该邻居保活。在过了保活时间之后还没有收到保活报文时,HELLO任务把相应邻居删除,并且通知PROTO任务删除相应的邻居,表明该邻居确实无法保活需要删除。
二是定时发送保活报文保活邻居的邻居状态。
HELLO任务需要定时把保活报文发送到邻居,使邻居及时收到保活报文把邻居保活。保活报文的触发更新由PROTO任务处理,PROTO任务在处理的过程中复制一份保活报文给HELLO任务,并把定时发送的时间间隔通知到HELLO任务。在HELLO任务里定时发送该复制的保活报文。当PROTO任务里需要更新、中止保活报文的发送时,通知到HELLO任务,HELLO任务及时更新保活报文或者中止保活报文的发送。
3.PROTO任务基本流程
PROTO任务,按照RFC(互联网协议草案及标准)等描述来具体设计实现,基本流程可以认为是不受任务分离影响的,包括对邻居的保活处理。PROTO任务里一般情况下同样需要保活邻居,因为需要根据邻居的保活情况更新协议的数据库等操作。为了支持任务分离PROTO任务主要完成两件事:
一是把邻居信息和保活报文同步到HELLO任务。
PROTO任务根据协议数据和状态机,决定创建邻居、删除邻居,需要把邻居的一个映射邻居同步到HELLO任务,让HELLO任务能够根据该映射的邻居关系保活邻居。PROTO任务根据协议流程发送保活报文,把保活报文同步到HELLO任务,由HELLO任务把保活报文发送到邻居。PROTO任务根据协议运行过程需要更新保活报文时,需要把更新的保活报文及时同步到HELLO任务。
二是本地维护邻居状态,但是邻居状态是否保活需要接收HELLO任务的邻居保活通知。
邻居状态作为协议运算的一部分数据库,PROTO任务仍然要维护邻居状态。协议因为外部配置变化、接口状态变化等外界条件需要删除邻居时,可以直接删除邻居并通知到HELLO任务,让HELLO任务也删除相应的邻居。PROTO任务不能因为没有及时收到保活报文而删除邻居,HELLO任务因为没有及时收到保活报文才删除邻居,并且把删除邻居通知到PROTO任务,让PROTO任务删除相应邻居。
4.HELLO任务和PROTO任务之间的通信
这里可以作为两个一般任务之间的通信来考虑,任务之间的通信,基本的有内部TCP、管道、通信信号量触发、共享数据结构等。对HELLO和PROTO之间的通信,有一点是需要特别注意的,就是需要尽量避免共享数据结构,因为一旦共享数据结构,就需要两个任务使用同样的信号量来保护这个数据结构,如果PROTO拿到信号量对共享数据结构进行密集性计算,占用较长时间,务必会导致HELLO任务因为取不到信号量而得不到调度,或者导致PROTO任务优先级翻转到和HELLO任务一样,使得系统其他任务得不到调度。
Claims (8)
1.一种避免邻居关系振荡的方法,包括一下步骤:
a、对协议任务进行分离,分离为邻居保活任务和协议主体任务;
b、简化邻居保活任务,使其仅用于完成邻居保活;
c、协议主体任务保持基本流程不变,将其中邻居信息、保活报文同步到邻居保活任务中;
d、协议运行过程中,邻居保活任务和协议主体任务独立运行。
2.根据权利要求1所述的一种避免邻居关系振荡的方法,其特征在于,邻居保活任务的优先级别高于协议主体任务的优先级别。
3.根据权利要求2所述的一种避免邻居关系振荡的方法,其特征在于,所述优先级别是指实时性要求优先级别。
4.根据权利要求1所述的一种避免邻居关系振荡的方法,其特征在于,所述邻居保活任务用于接收保活报文保活自己的邻居状态,以及定时发送保活报文保活邻居的邻居状态。
5.根据权利要求1所述的一种避免邻居关系振荡的方法,其特征在于,所述协议主体任务根据邻居保活任务发送的邻居保活通知,维护其本地邻居状态。
6.根据权利要求1~5任意一项所述的一种避免邻居关系振荡的方法,其特征在于,邻居保活任务和协议主体任务需要避免共享数据结构。
7.根据权利要求6所述的一种避免邻居关系振荡的方法,其特征在于,邻居保活任务和协议主体任务之间的通信采用标准通信方法。
8.根据权利要求7所述的一种避免邻居关系振荡的方法,其特征在于,所述标准通信方法包括但不限于内部TCP、管道、通信信号量触发。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2009103049983A CN101610272A (zh) | 2009-07-30 | 2009-07-30 | 一种避免邻居关系振荡的方法 |
PCT/CN2010/075590 WO2011012086A1 (zh) | 2009-07-30 | 2010-07-30 | 避免邻居关系振荡的方法和通信设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2009103049983A CN101610272A (zh) | 2009-07-30 | 2009-07-30 | 一种避免邻居关系振荡的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101610272A true CN101610272A (zh) | 2009-12-23 |
Family
ID=41483853
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2009103049983A Pending CN101610272A (zh) | 2009-07-30 | 2009-07-30 | 一种避免邻居关系振荡的方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN101610272A (zh) |
WO (1) | WO2011012086A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011012086A1 (zh) * | 2009-07-30 | 2011-02-03 | 迈普通信技术股份有限公司 | 避免邻居关系振荡的方法和通信设备 |
CN102014054A (zh) * | 2010-11-22 | 2011-04-13 | 中兴通讯股份有限公司 | 保活报文的发送方法和设备 |
CN103560947A (zh) * | 2013-10-25 | 2014-02-05 | 福建星网锐捷网络有限公司 | 一种避免中间系统邻居关系震荡的方法及装置 |
CN105991449A (zh) * | 2015-05-27 | 2016-10-05 | 杭州迪普科技有限公司 | 一种保活优化方法及装置 |
WO2016155246A1 (zh) * | 2015-04-01 | 2016-10-06 | 中兴通讯股份有限公司 | 一种保活报文的处理方法及装置 |
CN112152745A (zh) * | 2019-08-07 | 2020-12-29 | 中兴通讯股份有限公司 | 时间同步方法、时间同步发送端、接收端及系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101222443B (zh) * | 2008-01-30 | 2012-04-25 | 杭州华三通信技术有限公司 | 一种处理报文的方法和网络设备 |
CN101262430A (zh) * | 2008-04-25 | 2008-09-10 | 中兴通讯股份有限公司 | 一种分布式保活的路由设备和方法 |
CN101610272A (zh) * | 2009-07-30 | 2009-12-23 | 迈普通信技术股份有限公司 | 一种避免邻居关系振荡的方法 |
-
2009
- 2009-07-30 CN CNA2009103049983A patent/CN101610272A/zh active Pending
-
2010
- 2010-07-30 WO PCT/CN2010/075590 patent/WO2011012086A1/zh active Application Filing
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011012086A1 (zh) * | 2009-07-30 | 2011-02-03 | 迈普通信技术股份有限公司 | 避免邻居关系振荡的方法和通信设备 |
CN102014054A (zh) * | 2010-11-22 | 2011-04-13 | 中兴通讯股份有限公司 | 保活报文的发送方法和设备 |
CN103560947A (zh) * | 2013-10-25 | 2014-02-05 | 福建星网锐捷网络有限公司 | 一种避免中间系统邻居关系震荡的方法及装置 |
CN103560947B (zh) * | 2013-10-25 | 2016-11-23 | 福建星网锐捷网络有限公司 | 一种避免中间系统邻居关系震荡的方法及装置 |
WO2016155246A1 (zh) * | 2015-04-01 | 2016-10-06 | 中兴通讯股份有限公司 | 一种保活报文的处理方法及装置 |
CN106161355A (zh) * | 2015-04-01 | 2016-11-23 | 中兴通讯股份有限公司 | 一种保活报文的处理方法及装置 |
CN105991449A (zh) * | 2015-05-27 | 2016-10-05 | 杭州迪普科技有限公司 | 一种保活优化方法及装置 |
CN105991449B (zh) * | 2015-05-27 | 2019-09-06 | 杭州迪普科技股份有限公司 | 一种保活优化方法及装置 |
CN112152745A (zh) * | 2019-08-07 | 2020-12-29 | 中兴通讯股份有限公司 | 时间同步方法、时间同步发送端、接收端及系统 |
CN112152745B (zh) * | 2019-08-07 | 2021-09-28 | 中兴通讯股份有限公司 | 时间同步方法、时间同步发送端、接收端及系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2011012086A1 (zh) | 2011-02-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101610272A (zh) | 一种避免邻居关系振荡的方法 | |
EP2876945B1 (en) | Method for processing data, modem and terminal | |
CN102761864A (zh) | 一种数据传输的方法、系统及设备 | |
CN104243496B (zh) | 一种软件定义网跨域安全代理方法和系统 | |
CN102970155A (zh) | 保持活动管理 | |
CN103051468A (zh) | 网络接口设备的操作系统管理 | |
CN103888441A (zh) | 一种应用程序与协议栈之间的信息传输方法及处理装置 | |
CN102664758A (zh) | 一种网络配置绑定与自动恢复的方法 | |
CN107450954A (zh) | 一种基于云桌面的用户云终端升级方法 | |
CN105847420A (zh) | 一种适用于无线现场设备的opc ua休眠代理方法 | |
CN108833569A (zh) | 一种数据同步方法及相关装置 | |
CN102420827B (zh) | 面向智能移动平台的Web服务推送方法 | |
CN102026228B (zh) | 通信网络性能数据的统计方法和设备 | |
CN105208054A (zh) | 云调度管理方法、管理中心及管理系统 | |
CN103533064A (zh) | 不间断网络用户在线状态的服务器程序升级方法 | |
CN104967580A (zh) | 用于实现以太网报文发送的方法及装置 | |
CN104486330A (zh) | 一种基于远程过程调用的双向通信系统 | |
CN101547414B (zh) | 短信计费系统及方法 | |
CN101626310B (zh) | 集群环境中的服务信息传输方法、装置及系统 | |
CN115378989B (zh) | 基于唤醒通道的mqtt主题订阅系统、方法、终端及介质 | |
CN101651701B (zh) | 一种实现服务器管理终端设备的方法、系统及设备 | |
CN101237663B (zh) | 无线通信系统中基站设备的操作维护管理方法和系统 | |
CN107786661B (zh) | 信息同步方法 | |
CN101615998A (zh) | 一种在以太网中实现时钟同步的方法及系统及接入交换机 | |
CN102291326A (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 | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20091223 |