专利名称:一种以太网连接故障检测方法和装置的利记博彩app
技术领域:
本发明涉及网络管理领域,特别涉及一种在宿端转发平面中引入首包触发机制的以太网连接故障检测方法和装置。
背景技术:
以太网技术简单易用、价格低廉、且带宽可不断提高,无论是作为一种业务还是作为一种网络结构在企业网、城域网、广域网范围内都已经得到大规模应用。但是传统以太网可维护、可运营能力比较弱,随着以太网推广的范围逐渐扩大,对以太网OAM(Operations、Administration and Maintenance,操作、管理与维护)功能的需求也越来越强烈。
以太网OAM功能可分为两大部分故障管理、性能管理。故障管理是通过定时或手动触发的方式发送检测报文来探测网络的连通性,同时也提供类似于IP中Ping和TraceRoute的手段对以太网的故障进行定位。性能管理主要指对网络传输过程中的丢包、时延、抖动等参数的衡量,也包括对网络中各类流量,如接收发送字节数、错误报文数等进行统计,通常是在用户接入点实施。
802.1ag ETHOAM(Operations,Administration and Maintenance of ethnet,以太网的操作、管理与维护)可以解决端到端的以太网OAM问题,而且还可以解决多个桥节点间的以太网OAM问题,是可以区分VLAN(虚拟局域网)的OAM,主要功能包括故障检测功能,故障确认功能(Ping),故障定位和隔离功能(TraceRoute),故障通知和告警抑制功能。
802.1ag ETHOAM的故障检测功能是通过连续性检测报文(CCM-Continuity CheckMessage)来实现的,其实现原理为维护联盟端点(MEP-Maintenance Association End Point)向其接收端定时发送CCM报文,在维护联盟(MA-Maintenance Association)内部广播,CCM报文发送时间可配置(最小为3.3ms),接收端MEP如果连续3次没有收到CCM报文,即报告故障,然后通过检测到故障的本端发送携带RDI标志位的CCM报文通知对端,如果有保护链路,则可以进行保护倒换,所以MEP需保存MA中所有MEP的信息。
在控制平面和转发平面分离的桥设备上,为了能够达到快速发送CCM报文从而快速地检测到故障,并进行保护倒换的目的,CCM报文发送和检测都由逻辑很简单的硬件完成,往往直接做在转发平面上,而ETHOAM会话的建立、启动等命令须由控制平面的软件或逻辑更加复杂通用的硬件完成。
由于控制平面将配置的结果及使能命令通知给转发平面的检测模块需要一个过程,这个过程的长短往往受许多因素的影响,例如控制平面的繁忙状况、控制平面和转发平面之间的通道拥塞状况。由于这些因素的影响造成了控制平面将ETHOAM参数传达给转发平面的延时具有不可预知性,有时可能很迅速,有时可能很缓慢。尤其ETHOAM源宿两端由于相互间性能差异或者系统当前负荷差异,更加剧了源宿两端ETHOAM参数下达延时的差异性。如果这个差值达到了某个值,将不可避免地导致宿端错误地报告链路故障。例如在手工配置时,当控制平面配置完成后,如果控制平面先下发了接收使能,而后下发了远端的发送使能,如果配置的检测周期比较小,接收使能相对于发送使能的时间差大于3倍检测周期,接收端同样会由于3个周期内没有收到CCM报文而不可避免地导致错误地报告链路故障。
发明内容
为了克服现有技术中控制平面将ETHOAM参数传达给转发平面延时的不可预知性,以及源宿两端在检测开始时间与发送开始时间不同造成链路误报的问题,本发明提出了一种在宿端引入首包触发机制的检测方法,即宿端只有在接收到源端发送的第一个CCM报文后,才开始启动ETHOAM的检测功能。
本发明所述的以太网连接故障检测方法具体包括以下步骤步骤A源端接收ETHOAM相关参数配置后,所述源端进行初始化,并周期性地向宿端发送CCM报文;步骤B宿端接收ETHOAM相关参数配置后,所述宿端进行初始化,并周期性地接收和检测所述源端发送的CCM报文;步骤C所述宿端检测到所述源端发送的第一个CCM报文后,启动ETHOAM的检测功能。
所述步骤A中初始化的内容包括设置CCM报文发送定时器、构造CCM报文、使能CCM报文的定时发送功能;所述步骤B中初始化的内容包括使能CCM报文接收功能、设置CCM报文检测定时器、使能CCM报文检测功能;所述步骤C具体包括在所述宿端设置一个首包标志位,如果所述宿端收到所述源端发送的第一个CCM报文,则将首包标志位置位,所述宿端判断首包标志位为置位后启动ETHOAM的检测功能。
所述步骤C还包括在所述宿端设置首包等待时间,如果所述宿端在首包等待时间超时仍然没有收到所述源端发送的第一个CCM报文,则所述宿端发出故障通知。
所述步骤具体包括在所述宿端设置一个首包等待计时器,如果所述宿端在首包等待计时器超时仍然没有收到所述源端发送的第一个CCM报文,则所述宿端发出故障通知。
所述步骤具体包括在所述宿端设置CCM报文检测定时器的检测超时时间,如果所述宿端在CCM报文检测定时器超时仍然没有收到所述源端发送的第一个CCM报文,则所述宿端发出故障通知,如果所述宿端在CCM报文检测定时器超时时间内收到所述源端发送的第一个CCM报文,则将所述CCM报文检测定时器的超时时间设置为ETHOAM建立时设置好的检测超时间的值,启动ETHOAM的检测功能。
本发明还提供了一种以太网连接故障检测装置,所述装置包括源端和宿端,所述源端包括源端初始化模块,源端报文发送模块,所述宿端包括宿端初始化模块,宿端报文接收模块,宿端报文检测模块和首包触发模块;所述源端初始化模块用于接收ETHOAM相关参数后,对所述源端进行初始化,所述初始化的内容包括设置CCM报文发送定时器、构造CCM报文、使能CCM报文的定时发送功能;所述源端报文发送模块用于所述源端周期性地向所述宿端发送CCM报文;所述宿端初始化模块用于接收ETHOAM相关参数后,对所述宿端进行初始化,所述初始化的内容包括使能CCM报文接收功能、设置CCM报文检测定时器、使能CCM报文检测功能;所述宿端报文接收模块用于所述宿端周期性地接收所述源端发送的CCM报文;所述宿端报文检测模块用于所述宿端周期性地检测CCM报文的接收情况;所述首包触发模块用于当所述宿端收到第一个CCM报文时,启动ETHOAM的检测功能。
所述首包触发模块具体包括首包标志位置位单元,所述首包标志位置位单元用于如果所述宿端收到所述源端发送的第一个CCM报文,则将首包标志位置位,所述宿端判断首包标志位为置位后启动ETHOAM的检测功能。
所述首包触发模块还包括首包等待计时器单元,所述首包等待计时器单元用于如果所述宿端在首包等待计时器超时仍然没有收到所述源端发送的第一个CCM报文,则所述宿端发出故障通知。
所述首包触发模块还包括检测定时器超时单元,所述检测定时器超时单元用于检测CCM报文检测定时器是否超时,如果所述宿端在CCM报文检测定时器超时仍然没有收到所述源端发送的第一个CCM报文,则所述宿端发出故障通知,如果所述宿端在CCM报文检测定时器超时时间内收到所述源端发送的第一个CCM报文,则将所述CCM报文检测定时器的超时时间设置为ETHOAM建立时设置好的检测超时间的值,启动ETHOAM的检测功能。
采用本发明所述方法与现有技术相比的有益效果是1.本发明有效地解决了ETHOAM由于源宿两端在检测开始时间与发送时间不同造成的链路故障的误报;2.本发明还有效地解决了在ETHOAM会话建立好后,由于源端发送链路的故障,造成了宿端永久性等待第一个CCM报文触发的问题。
图1是现有技术的一个维护域示意图;图2是现有技术的一个维护联盟示意图;图3是本发明宿端首包检测状态迁移图;图4是本发明实施例1的流程图;图5是本发明实施例2的流程图;图6是本发明实施例3的流程图;图7是本发明以太网连接故障检测装置的结构图。
具体实施例方式
下面结合附图和具体实施例对本发明作进一步说明,但不作为对本发明的限定。
维护域MD(Maintenance Domain)是802.1ag故障管理功能所涉及到的网络或网络中的某个部分,通过一系列DSAP(Domain Service Access Point)点来界定,MD通过MD名来区分。其中DSAP称为域服务接入点(维护域的边界点,如桥设备的某个端口),它对域的外部提供连通性服务,维护域内部还可能存在ISAP(Intermediate Service Access Point)点,是从一个DSAP到另一个DSAP的中间节点。
参见图1,给出了一个维护域的实例。其中存在5个桥设备(黑色方形框),6个DSAP(a、b、c、d、e、f)覆盖的区域就是维护域(大的方形框),中间存在多个ISAP(空心的小方块)。
维护域中根据需要可以配置出多个服务实例(如针对某一用户的业务可用的DSAP),一个服务实例由多个DSAP组成,通过一个ID来进行标识,一个服务实例具有共有的一些属性(如带宽)。
指定一个服务实例也就建立了那些DSAP之间的无连接的联盟关系,这个关系称作维护联盟MA(Maintenance Association),维护联盟的端点称为MEP(Maintenance Association EndPoint),涉及到的中间节点称为MIP(Maintenance Association Intermediate Point),MEP位于相应的DSAP处,MIP位于相应的ISAP处。MA在整个维护域中通过唯一的MA名来区分,MA名与维护域名一起形成了唯一的标识,这个标识需要在相关消息中携带,以区分其它的服务实例。
参见图2,DSAP点a、c、e、f被配置为用户C1可用的DSAP,从而建立了用户C1相关的一个服务实例和相应的维护联盟MA,另外两个DSAP b和d未使用,不属于这个服务实例和MA。从用户C1角度看到的维护联盟MA,由同属于一个服务实例的四个DSAP节点构成,这个服务实例可以理解为VLAN或者VSI(虚拟交换实例),这样可以看到MD+VLAN=MA。
当创建了MD、MA后,需要创建MEP节点,将MEP节点加入MA时需要创建一个MEP控制块,申请一个MEP的CCM报文本地数据结构并初始化内容,当用户配置CCM报文发送周期和发送使能后,初始化发送状态机开始运行,并以配置周期开始发送CCM报文。
配置了远端MEP节点并且使能了CCM报文接收标志位后,申请相应的控制块并启动故障检测状态机,开始对远端的MEP进行监控与检测。创建的远端状态机与远端MEP节点一一对应。初始化工作完成后各个状态机开始正常运行。
本发明所述的以太网连接故障检测方法在宿端引入首包触发机制,即宿端只有在收到源端发送的第一个CCM报文后,才开始启动ETHOAM的故障检测功能。
实施例1参见图3和图4,在宿端设置首包标志位,其故障检测的具体步骤如下步骤101源端接收ETHOAM相关参数配置后,源端进行初始化,初始化内容包括设置CCM报文发送定时器、构造CCM报文、使能CCM报文的定时发送功能;步骤102宿端接收ETHOAM相关参数配置后,宿端进行初始化,初始化内容包括使能CCM报文接收功能、设置CCM报文检测定时器、设置宿端首包标志位为FALSE、使能CCM报文检测功能;至此,源端和宿端初始化完毕。
步骤103源端周期性地向宿端发送CCM报文;
步骤104宿端周期性地接收和检测源端发送的CCM报文;步骤105宿端检测是否接收到源端发送的第一个CCM报文,如果是执行步骤106,否则执行步骤108;步骤106将宿端首包标志位设置为TRUE;步骤107当首包标志位设置为TRUE时,宿端启动ETHOAM的故障检测功能;步骤108CCM报文检测定时器是否超时,是执行步骤109,否则执行步骤104;步骤109宿端不启动ETHOAM检测功能。
下面以一个具体的例子来说明ETHOAM的故障检测功能的实现过程例如设备A和设备B之间建立了ETHOAM的会话,假设设备A为源端,设备B为宿端,在设备B中设置首包标志位bHasReceivedFirstPacket为FALSE。设备B下发ETHOAM的参数,通知设备B开始检测,因为设备B中的首包标志位bHasReceivedFirstPacket为FALSE,所以尽管设备B定时检测也不会因为没有收到设备A发送的CCM报文而将没有收到包的计数器增加,即便检测时间超时,也不会报告接收链路故障。
如果设备B一旦收到设备A发送的CCM报文,立即将其中的首包标志位bHasReceivedFirstPacket设置为TRUE,从此在后续的ETHOAM检测中,如果设备B没有检测到来自设备A发送的CCM报文,就将没有收到包的计数器增加1,否则将没有收到包的计数器置0。
可见,不管ETHOAM源宿两端下发参数的延时多么的不一致,乃至检测使能先于对端发送使能的情况下,都不会导致ETHOAM错误地报告链路故障。
实施例2参见图3和图5,在宿端设置首包标志位和一个首包等待计时器,其故障检测的具体步骤如下步骤201源端接收ETHOAM相关参数配置后,源端进行初始化,初始化内容包括设置CCM报文发送定时器、构造CCM报文、使能CCM报文的定时发送功能;步骤202宿端接收ETHOAM相关参数配置后,宿端进行初始化,初始化内容包括使能CCM报文接收功能、设置CCM报文检测定时器、设置宿端首包标志位为FALSE,设置首包等待计时器,使能CCM报文检测功能;至此,源端和宿端初始化完毕。
步骤203源端周期性地向宿端发送CCM报文;步骤204宿端周期性地接收和检测源端发送的CCM报文;步骤205宿端检测是否接收到源端发送的第一个CCM报文,如果是执行步骤206,否则执行步骤208;步骤206将宿端首包标志位设置为TRUE,停掉首包等待计时器;步骤207当首包标志位设置为TRUE时,宿端启动ETHOAM的故障检测功能;步骤208CCM报文检测定时器是否超时,是执行步骤209,否则执行步骤204;步骤209检测设置的首包等待计时器是否超过设定值,如果是执行步骤210,否则执行步骤204;步骤210宿端向源端报告转发引擎或接收链路出现故障。
实施例3参见图3和图6,在宿端设置首包标志位和和设置宿端CCM报文检测定时器的检测超时时间为一个足够大的值,其故障检测的具体步骤如下步骤301源端接收ETHOAM相关参数配置后,源端进行初始化,初始化内容包括设置CCM报文发送定时器、构造CCM报文、使能CCM报文的定时发送功能;步骤302宿端接收ETHOAM相关参数配置后,宿端进行初始化,初始化内容包括使能CCM报文接收功能、设置CCM报文检测定时器、设置检测定时器的检测超时时间,设置宿端首包标志位为FALSE,使能CCM报文检测功能;至此,源端和宿端初始化完毕。
步骤303源端周期性地向宿端发送CCM报文;步骤304宿端周期性地接收和检测源端发送的CCM报文;步骤305宿端检测是否接收到源端发送的第一个CCM报文,如果是执行步骤306,否则执行步骤308;步骤306将宿端首包标志位设置为TRUE,将CCM报文检测定时器的超时时间设置为ETHOAM建立时配置好的值;步骤307当首包标志位设置为TRUE时,宿端启动ETHOAM的故障检测功能;步骤308CCM报文检测定时器是否超时,是执行步骤309,否则执行步骤304;步骤309宿端向源端报告转发引擎或接收链路出现故障。
实施例2和实施例3可以有效的解决以下情况如果在刚建立好ETHOAM会话后,源端发送链路就出现故障,那么宿端可能永久性等待首包触发。
根据本发明我们可以把建立了ETHOAM会话使能后的宿端定义为ready状态,如图3所示,如果所述宿端在指定时间内没有收到所述源端发送的第一个CCM报文,那么所述宿端仍然保持ready状态;如果所述宿端在指定时间内收到了所述源端发送的第一个CCM报文,那么所述宿端状态由ready变为up,并且启动ETHOAM的检测功能,在连续的3个周期内所述宿端没有收到所述源端发送的CCM报文或收到带有RDI标志位的CCM报文,则所述宿端状态由up变为down,说明所述源端的转发引擎或链路出现了故障,当所述宿端收到不带RDI标志位的CCM报文时,所述宿端状态由down重新变为up,说明所述源端的转发引擎或接收链路已经恢复正常;如果所述宿端在检测定时器超时仍然没有收到所述源端发送的第一个CCM报文,那么所述宿端状态由ready变为down,说明所述源端的转发引擎或链路出现了故障。
参见图7,本发明还提供了一种以太网连接故障检测装置,装置包括源端和宿端,源端包括源端初始化模块,源端报文发送模块,宿端包括宿端初始化模块,宿端报文接收模块,宿端报文检测模块和首包触发模块;源端初始化模块用于接收ETHOAM相关参数后,对源端进行初始化,初始化的内容包括设置CCM报文发送定时器、构造CCM报文、使能CCM报文的定时发送功能;源端报文发送模块用于源端周期性地向宿端发送CCM报文;宿端初始化模块用于接收ETHOAM相关参数后,对宿端进行初始化,初始化的内容包括使能CCM报文接收功能、设置CCM报文检测定时器、使能CCM报文检测功能;宿端报文接收模块用于宿端周期性地接收源端发送的CCM报文;宿端报文检测模块用于宿端周期性地检测CCM报文的接收情况;首包触发模块用于当宿端收到第一个CCM报文时,启动ETHOAM的检测功能。
首包触发模块具体包括首包标志位置位单元,首包标志位置位单元用于如果宿端收到源端发送的第一个CCM报文,则将首包标志位置位,宿端判断首包标志位为置位后启动ETHOAM的检测功能。
首包触发模块还包括首包等待计时器单元,首包等待计时器单元用于如果宿端在首包等待计时器超时仍然没有收到源端发送的第一个CCM报文,则宿端发出故障通知。
首包触发模块还包括检测定时器超时单元,检测定时器超时单元用于检测CCM报文检测定时器是否超时,如果宿端在CCM报文检测定时器超时仍然没有收到源端发送的第一个CCM报文,则宿端发出故障通知,如果宿端在CCM报文检测定时器超时时间内收到源端发送的第一个CCM报文,则将CCM报文检测定时器的超时时间设置为ETHOAM建立时设置好的检测超时间的值,启动ETHOAM的检测功能。
以上所述的实施例只是本发明较优选的具体实施方式
的一种,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。
权利要求
1.一种以太网连接故障检测方法,其特征在于,所述方法包括以下步骤步骤A源端接收ETHOAM相关参数配置后,所述源端进行初始化,并周期性地向宿端发送CCM报文;步骤B宿端接收ETHOAM相关参数配置后,所述宿端进行初始化,并周期性地接收和检测所述源端发送的CCM报文;步骤C所述宿端检测到所述源端发送的第一个CCM报文后,启动ETHOAM的检测功能。
2.如权利要求1所述的以太网连接故障检测方法,其特征在于,所述步骤A中初始化的内容包括设置CCM报文发送定时器、构造CCM报文、使能CCM报文的定时发送功能。
3.如权利要求1所述的以太网连接故障检测方法,其特征在于,所述步骤B中初始化的内容包括使能CCM报文接收功能、设置CCM报文检测定时器、使能CCM报文检测功能。
4.如权利要求1所述的以太网连接故障检测方法,其特征在于,所述步骤C具体包括在所述宿端设置一个首包标志位,如果所述宿端收到所述源端发送的第一个CCM报文,则将首包标志位置位,所述宿端判断首包标志位为置位后启动ETHOAM的检测功能。
5.如权利要求1或4所述的以太网连接故障检测方法,其特征在于,所述步骤C还包括在所述宿端设置首包等待时间,如果所述宿端在首包等待时间超时仍然没有收到所述源端发送的第一个CCM报文,则所述宿端发出故障通知。
6.如权利要求5所述的以太网连接故障检测方法,其特征在于,所述步骤具体包括在所述宿端设置一个首包等待计时器,如果所述宿端在首包等待计时器超时仍然没有收到所述源端发送的第一个CCM报文,则所述宿端发出故障通知。
7.如权利要求5所述的一种以太网连接故障检测方法,其特征在于,所述步骤具体包括在所述宿端设置CCM报文检测定时器的检测超时时间,如果所述宿端在CCM报文检测定时器超时仍然没有收到所述源端发送的第一个CCM报文,则所述宿端发出故障通知,如果所述宿端在CCM报文检测定时器超时时间内收到所述源端发送的第一个CCM报文,则将所述CCM报文检测定时器的超时时间设置为ETHOAM建立时设置好的检测超时间的值,启动ETHOAM的检测功能。
8.一种以太网连接故障检测装置,其特征在于,所述装置包括源端和宿端,所述源端包括源端初始化模块,源端报文发送模块,所述宿端包括宿端初始化模块,宿端报文接收模块,宿端报文检测模块和首包触发模块;所述源端初始化模块用于接收ETHOAM相关参数后,对所述源端进行初始化,所述初始化的内容包括设置CCM报文发送定时器、构造CCM报文、使能CCM报文的定时发送功能;所述源端报文发送模块用于所述源端周期性地向所述宿端发送CCM报文;所述宿端初始化模块用于接收ETHOAM相关参数后,对所述宿端进行初始化,所述初始化的内容包括使能CCM报文接收功能、设置CCM报文检测定时器、使能CCM报文检测功能;所述宿端报文接收模块用于所述宿端周期性地接收所述源端发送的CCM报文;所述宿端报文检测模块用于所述宿端周期性地检测CCM报文的接收情况;所述首包触发模块用于当所述宿端收到第一个CCM报文时,启动ETHOAM的检测功能。
9.如权利要求8所述的以太网连接故障检测装置,其特征在于,所述首包触发模块具体包括首包标志位置位单元,所述首包标志位置位单元用于如果所述宿端收到所述源端发送的第一个CCM报文,则将首包标志位置位,所述宿端判断首包标志位为置位后启动ETHOAM的检测功能。
10.如权利要求8或9所述的以太网连接故障检测装置,其特征在于,所述首包触发模块还包括首包等待计时器单元,所述首包等待计时器单元用于如果所述宿端在首包等待计时器超时仍然没有收到所述源端发送的第一个CCM报文,则所述宿端发出故障通知。
11.如权利要求8或9所述的一种以太网连接故障检测装置,其特征在于,所述首包触发模块还包括检测定时器超时单元,所述检测定时器超时单元用于检测CCM报文检测定时器是否超时,如果所述宿端在CCM报文检测定时器超时仍然没有收到所述源端发送的第一个CCM报文,则所述宿端发出故障通知,如果所述宿端在CCM报文检测定时器超时时间内收到所述源端发送的第一个CCM报文,则将所述CCM报文检测定时器的超时时间设置为ETHOAM建立时设置好的检测超时间的值,启动ETHOAM的检测功能。
全文摘要
本发明公开了一种以太网连接故障检测方法,属于网络管理领域。为了克服现有技术中ETHOAM由于源宿两端在检测开始时间和发送开始时间不同步造成的链路故障的误报,以及控制平面将ETHOAM参数传达给转发平面的延时的不可预知性等缺点,本发明提出了在宿端转发平面中引入首包触发机制的检测方法,即宿端只有在接收到源端发送的第一个CCM报文之后,才开始启动ETHOAM检测,采用这种方法解决了源宿两端在检测开始阶段不同步造成的链路误报。本发明还提供了一种以太网连接故障检测装置,装置包括源端和宿端,源端向宿端周期性地发送CCM报文,用于检测源端和宿端之间的链路状态。
文档编号H04L12/26GK1905483SQ200610104338
公开日2007年1月31日 申请日期2006年8月8日 优先权日2006年8月8日
发明者赵金凤 申请人:华为技术有限公司