CN102111445B - 状态机震荡预防的方法和相应的通讯设备 - Google Patents
状态机震荡预防的方法和相应的通讯设备 Download PDFInfo
- Publication number
- CN102111445B CN102111445B CN201110005060.9A CN201110005060A CN102111445B CN 102111445 B CN102111445 B CN 102111445B CN 201110005060 A CN201110005060 A CN 201110005060A CN 102111445 B CN102111445 B CN 102111445B
- Authority
- CN
- China
- Prior art keywords
- lcp
- state machine
- action
- communication apparatus
- request
- 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
Landscapes
- Mobile Radio Communication Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开一种状态机震荡预防的方法和相应的通讯设备,其中,所述方法包括:通讯设备采用点到点协议(PPP)进行通讯时,当判断满足链路控制协议(LCP)状态机震荡条件时,则依次执行该层终止(TLD)动作、发送断链请求(STR)动作和发送配置请求(SCR)动作。本发明在不增加任何成本的情况下,解决了PPP状态机循环震荡的问题,使得PPP状态机的稳定性和健壮性得到极大的提高。
Description
技术领域
本发明涉及数据通讯领域,尤其涉及一种状态机震荡预防的方法和相应的通讯设备。
背景技术
PPP(ThePoint-to-PointProtocol,点到点协议)协议指定了一种在点对点链路上传输多个协议数据报文的方法并包含了三个主要组成部分:封装多个协议数据报的方法;建立、配置和测试数据链路连接的LCP(TheLinkControlProtocol,链路控制协议)以及建立和配置不同网络层协议的NCP(NetworkControlProtocol,网络控制协议)家族。
在设定、维持和终止点对点链路的过程里,PPP链路需要经过几个阶段,如图1所示。当然图1只是一个概图,并没有给出所有的状态转换。
从图1可知,只要PPP链路收到了载波信号,那么PPP链路就进入链路建立阶段,即LCP协商。通讯双方交换LCP数据报文来配置链路。只有该阶段完成之后,才会进行下一阶段的协商。因此LCP阶段是PPP链路后续过程的基础。如果LCP协商不成功,将直接导致PPP链路不可用。
当通讯的某一端(在此称之为第一通讯设备,比如为一路由器)LCP状态Opened(开启状态,表明链路可用)之后,通过循环定时的方式发送保活请求(Echo-Request)来维护链路,第二通讯设备收到保活请求报文时,只有在自身LCP状态也是Opened的情况下,才会进行回应。因此第一通讯设备并不确定能否收到第二通讯设备的保活回复(Echo-Reply)。如果能收到,认为该链路是正常的。反之,第一通讯设备就认为链路可能出现了异常,默认连续发了5次以后,都没有收到回复,就会主动发起LCP的重协商。
但是,在实际的应用过程中,可能会出现LCP状态机震荡的情况。
发明内容
本发明要解决的技术问题提出一种状态机震荡预防的方法和相应的通讯设备,以防止LCP状态机循环震荡。
为了解决上述问题,本发明提供一种状态机震荡预防的方法,包括:
通讯设备采用点到点协议(PPP)进行通讯时,当判断满足链路控制协议(LCP)状态机震荡条件时,则依次执行该层终止(TLD)动作、发送断链请求(STR)动作和发送配置请求(SCR)动作。
优选地,上述方法具有以下特点:
当所述通讯设备LCP保活失败时,则所述通讯设备判断满足LCP状态机震荡条件。
优选地,上述方法具有以下特点:
当所述通讯设备LCP保活失败,依次进入请求-发送(Request-Sent)和确认-接收(Ack-Received)状态后,再次LCP保活失败时,则所述通讯设备判断满足LCP状态机震荡条件。
优选地,上述方法具有以下特点:
所述通讯设备执行TLD动作之后,执行STR动作执行之前,还执行初始化重启计数器(IRC)动作。
为了解决上述问题,本发明提供一种通讯设备,包括判断模块和执行模块;
所述判断模块用于在所述通讯设备采用PPP进行通讯时,当判断满足LCP状态机震荡条件时,通知所述执行模块;
所述执行模块用于根据所述判断模块的通知,获知满足LCP状态机震荡条件时,依次执行TLD动作、STR动作和SCR动作。
优选地,上述通讯设备具有以下特点:
所述判断模块进一步用于当所述通讯设备LCP保活失败时,则判断满足LCP状态机震荡条件。
优选地,上述通讯设备具有以下特点:
所述判断模块进一步用于当所述通讯设备LCP保活失败,依次进入Req-Sent和Ack-Rcvd状态后,再次LCP保活失败时,则判断满足LCP状态机震荡条件。
优选地,上述通讯设备具有以下特点:
所述执行模块进一步用于执行TLD动作之后,执行STR动作执行之前,还执行IRC动作。
本发明在不增加任何成本的情况下,解决了PPP状态机循环震荡的问题,使得PPP状态机的稳定性和健壮性得到极大的提高。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是PPP链路协商阶段划分框图;
图2是PPP链路目前存在的循环震荡问题;
图3是本发明实施例中PPP状态机震荡预防基本流程图;
图4是本发明实施例中PPP状态机震荡预防分解流程图。
具体实施方式
在实际的应用过程中,发现有这样的一种情况:第一通讯设备LCP的状态为Opened,但是此时第二通讯设备LCP的状态却是Ack-Received(确认-接收,表明已经发送了一个配置请求Configure-Request,接收了一个配置确认Configure-Ack。但是还没有发送Configure-Ack,因此期待接收到一个Configure-Request)。在这种情况下,第一通讯设备发送Echo-Request,由于第二通讯设备此时不是Opened状态,因此不会进行回复,5次之后,LCP保活失败,第一通讯设备就重新进行LCP协商,发送Configure-Request,第二通讯设备收到后,回复一个Configure-Ack,状态变成Opened,而此时第一通讯设备的状态变成了Ack-Received。第一通讯设备和第二通讯设备互换角色,重新回到之前的状态,并且将如此往复,LCP将始终无法协商成功。
上述的LCP循环无法协商成功的过程如图2所示。至于通讯的两端为什么一端处于Opened,一端处于Ack-Received的状态,并不是本专利讨论的范围。同时,满足图2所示的情况,做了这样的一个假设:第一通讯设备从Opened的状态到保活失败发生所用的时间要小于第二通讯设备LCP超时的时间。因为保活时间和LCP超时时间都是可以配置的,所以在实际的运行过程中,满足这一条件并不构成任何问题。
本发明就是针对使用PPP技术作为接入或传输时,防止上述LCP状态机无限震荡提出的解决方案。
具体地,可采用:
通讯设备采用PPP进行通讯时,当判断满足LCP状态机震荡条件时,则依次执行TLD(This-Layer-Down,该层终止)动作、STR(Send-Terminate-Request,发送断链请求)动作和SCR(Send-Configure-Request,发送配置请求)动作。
其中,当两端的通讯设备的LCP状态分别处于Opened和Ack-Received,且通讯的一端从Opened的状态到保活失败发生所用的时间要小于对端LCP超时的时间,则满足LCP状态机震荡条件,会发生震荡。但是,由于一端通讯设备并不能完全知晓对端通讯设备的状态,所以在本发明实施例中,通讯设备可采用如下方式判断是否满足LCP状态机震荡条件:
1、当LCP保活失败时,即判断满足LCP状态机震荡条件;
2、当LCP保活失败,依次进入Request-Sent和Ack-Received状态后,再次LCP保活失败时,即判断满足LCP状态机震荡条件。
当然,还可以采用其它方式判断是否满足LCP状态机震荡条件,比如多次LCP保活失败等等,本发明并不仅限于上述两种判断方式。
另外,在执行TLD动作之后,执行STR动作执行之前,还可执行IRC(Initialize-Restart-Count,初始化重启计数器)动作
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
如图3所示,为本发明实施例的PPP状态机震荡预防方法包括如下步骤:
S31,设置PPP状态机震荡预防功能使能;
本实施例中,在功能上将PPP状态机震荡预防功能作为一个可卸载的可靠性检测模块,可以通过配置来决定该功能是否起作用。一旦使能了该功能,当判断满足LCP状态机震荡条件,自动进入PPP状态机震荡预防流程。
S32,执行PPP状态机震荡预防策略;
所述的状态机震荡预防策略是指,进入了PPP状态机震荡预防流程的通讯设备需要依次执行如下流程:
执行TLD动作,该动作具体为:通讯设备的LCP执行实体向NCP执行实体发送网络层不可用事件,证实协议,或者指示NCP支撑的网络层传输不再可用。
进一步地,执行IRC动作,该动作具体为:初始化LCP的计数器,设置的配置请求和断链请求的最大发送次数(通常为默认的数值)。
进一步地,执行STR动作,该动作具体为:发送断链请求(Terminal-Request),使第二通讯设备能够感知第一通讯设备的链路不可用事件。
进一步地,执行SCR动作,该动作具体为:发送配置请求(Configure-Request),重新开始LCP的协商。
S33,PPP状态机恢复平衡;
对应于第二通讯设备,收到断链请求,发送断链回应(Terminal-Reply),同时将自身的LCP状态跃迁到Request-Sent(要求发送配置请求状态)。从而两端的LCP状态机重新回到平衡。所述平衡是指,不再满足LCP状态机震荡条件从而成功了避免了LCP状态机循环震荡的问题。
S34,PPP状态机协商成功
通讯两端的状态机达到平衡,那么PPP状态机协商成功是个必然的过程。
图4是本发明实施例中PPP状态机震荡预防分解流程图,当然图4也只是将状态机的状态和两端需要交互的流程表示了出来,还有一些其它的操作需要文字描述。这样处理显得更加简洁,却并不妨碍理解。
步骤S41,第一通讯设备由于LCP保活失败,执行TLD动作,指示网络层传输不再可用。
进一步地,执行IRC动作,即初始化LCP的计数器,设置配置请求和断链请求的最大发送次数。
进一步地,发送断链请求(Terminal-Request),告知第二通讯设备,使其能够感知第一通讯设备的链路不可用事件。
步骤S42,紧接着,第一通讯设备重新发起LCP协商,发送配置请求,同时其LCP状态跃迁至Request-Sent。
步骤S43,第二通讯设备收到断链请求,进行断链确认,同时其状态机状态跃迁到Request-Sent,这是很关键的一步。
步骤S44,第二通讯设备收到LCP配置请求,进行LCP配置确认,同时其状态跃迁到Ack-Sent。
进一步地,第一通讯设备收到该LCP配置确认,状态跃迁到Ack-Received。
步骤S45,第二通讯设备在Ack-Sent状态同样也会发送配置请求,第一通讯设备收到该请求后,执行步骤S46。
步骤S46,第一通讯设备在Ack-Received状态收到配置请求,执行配置确认,同时自身跃迁到Opened状态。
进一步地,第二通讯设备在Ack-Sent状态收到配置确认,状态机也需要进行跃迁,同样到达Opened状态。
相应地,本发明实施例的通讯设备,包括判断模块和执行模块;
所述判断模块用于在所述通讯设备采用PPP进行通讯时,当判断满足LCP状态机震荡条件时,通知所述执行模块;
所述执行模块用于根据所述判断模块的通知,获知满足LCP状态机震荡条件时,依次执行TLD动作、STR动作和SCR动作。
所述判断模块可进一步用于当所述通讯设备LCP保活失败时,则判断满足LCP状态机震荡条件,或者,当所述通讯设备LCP保活失败,依次进入Req-Sent和Ack-Rcvd状态后,再次LCP保活失败时,则判断满足LCP状态机震荡条件。
所述执行模块可进一步用于执行TLD动作之后,执行STR动作执行之前,还执行IRC动作。
综上所述,本发明在遵循PPP协议的基础上,将一些技术手段结合起来,达到了防止PPP状态机循环震荡的目的。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现,相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.一种状态机震荡预防的方法,包括:
通讯设备采用点到点协议PPP进行通讯时,当判断满足链路控制协议LCP状态机震荡条件时,则依次执行该层终止TLD动作、发送断链请求STR动作和发送配置请求SCR动作;
其中,通讯设备采用如下方式判断是否满足LCP状态机震荡条件:
(1)当LCP保活失败时,即判断满足LCP状态机震荡条件;或
(2)当LCP保活失败,依次进入请求-发送Request-Sent和确认-接收Ack-Received状态后,再次LCP保活失败时,即判断满足LCP状态机震荡条件。
2.如权利要求1所述的方法,其特征在于,
所述通讯设备执行TLD动作之后,执行STR动作执行之前,还执行初始化重启计数器IRC动作。
3.一种通讯设备,其特征在于,包括判断模块和执行模块;
所述判断模块用于在所述通讯设备采用点到点协议PPP进行通讯时,当判断满足链路控制协议LCP状态机震荡条件时,通知所述执行模块;
所述执行模块用于根据所述判断模块的通知,获知满足LCP状态机震荡条件时,依次执行该层终止TLD动作、发送断链请求STR动作和发送配置请求SCR动作;
其中,通讯设备采用如下方式判断是否满足LCP状态机震荡条件:
(1)当LCP保活失败时,即判断满足LCP状态机震荡条件;或
(2)当LCP保活失败,依次进入请求-发送Request-Sent和确认-接收Ack-Received状态后,再次LCP保活失败时,即判断满足LCP状态机震荡条件。
4.如权利要求3所述的通讯设备,其特征在于,
所述执行模块进一步用于执行TLD动作之后,执行STR动作执行之前,还执行初始化重启计数器IRC动作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110005060.9A CN102111445B (zh) | 2011-01-11 | 2011-01-11 | 状态机震荡预防的方法和相应的通讯设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110005060.9A CN102111445B (zh) | 2011-01-11 | 2011-01-11 | 状态机震荡预防的方法和相应的通讯设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102111445A CN102111445A (zh) | 2011-06-29 |
CN102111445B true CN102111445B (zh) | 2016-01-20 |
Family
ID=44175472
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110005060.9A Active CN102111445B (zh) | 2011-01-11 | 2011-01-11 | 状态机震荡预防的方法和相应的通讯设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102111445B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1808998A (zh) * | 2006-01-20 | 2006-07-26 | 北京朗通环球科技有限公司 | 一种检测和维护ppp链路的方法 |
CN101035137A (zh) * | 2006-03-06 | 2007-09-12 | 中兴通讯股份有限公司 | 一种在异制链路层通路动态建立点对点协议通道的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ATE499795T1 (de) * | 2008-03-28 | 2011-03-15 | Cinterion Wireless Modules | Verfahren zum betreiben eines kommunikationsgerätes und kommunikationsgerät hierfür |
-
2011
- 2011-01-11 CN CN201110005060.9A patent/CN102111445B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1808998A (zh) * | 2006-01-20 | 2006-07-26 | 北京朗通环球科技有限公司 | 一种检测和维护ppp链路的方法 |
CN101035137A (zh) * | 2006-03-06 | 2007-09-12 | 中兴通讯股份有限公司 | 一种在异制链路层通路动态建立点对点协议通道的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102111445A (zh) | 2011-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6105155B2 (ja) | Drniにおける同一端内システムの間で情報を交換する方法及びシステム | |
CN102104531B (zh) | 一种报文处理装置、方法及系统 | |
US11128663B2 (en) | Synchronizing link and event detection mechanisms with a secure session associated with the link | |
CN107277058B (zh) | 一种基于bfd协议的接口认证方法及系统 | |
CN104243259A (zh) | 分布式弹性网络互连系统中协作方法和系统 | |
CN111343019A (zh) | 一种重连方法、装置和存储介质 | |
CN112787893A (zh) | 远程诊断方法、装置、电子设备及存储介质 | |
WO2015035851A1 (zh) | 一种传输数据的方法及设备 | |
WO2017000096A1 (zh) | 一种链路恢复方法和网络设备 | |
KR100888569B1 (ko) | 프로토콜의 구성을 구현 및 조정하는 방법 | |
CN102111445B (zh) | 状态机震荡预防的方法和相应的通讯设备 | |
CN102811153A (zh) | Vlan状态的协商方法及边缘设备 | |
WO2012136053A1 (zh) | 一种网络访问无缝切换方法及系统 | |
CN105871524B (zh) | 一种基于tipc协议实现双机热备的方法及系统 | |
EP2432167B1 (en) | Method and apparatus for implementing point to point remote loopback of ethernet | |
CN101394642A (zh) | 一种上报链路异常信息的方法、装置和系统 | |
CN106375353B (zh) | 建链处理方法及装置 | |
CN101237382A (zh) | 一种同步用户数据的方法和系统以及网络设备 | |
WO2014176718A1 (zh) | 一种通道建立方法、基站及通道建立系统 | |
KR100379409B1 (ko) | V5.2 프로토콜에서 재 프로비져닝시 액세스 네트워크와 교환기의 상태 운용방법 | |
US11483102B1 (en) | Review and retry for minimum speed port channel | |
CN102946359B (zh) | 一种流量转发方法和设备 | |
CN101877660A (zh) | 一种多家乡主机的链路状态监测及故障排除方法 | |
CN115549947A (zh) | 密钥分发系统、主备份切换方法及服务器 | |
CN100370874C (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |