环路检测方法及装置的制作方法

文档序号:7916643阅读:273来源:国知局
专利名称:环路检测方法及装置的制作方法
技术领域
本发明涉及环路检测技术,特别涉及一种环路检测方法、以及一种环路检测装置。
背景技术
基于同轴承载以太网(Ethernet over Coax, EoC)技术实现的以太网同轴电缆网络(Ethernet passive coax network,EPCN)采用点到多点的用户网络拓扑结构,以利用同轴电缆实现数据、语音和视频的全业务接入。EPCN中包括头端和终端,其中头端是指同轴线路终端(Coax Line Terminal, CLT)、终端是指同轴网络单元(Coax Network Unit, CNU),每一 CLT下可连接若干个CNU。 在实际应用中,若干个CLT可以设置在同一台具有CPU和交换芯片的设备中,这样的设备通常称之为头端设备;而每一个CNU通常设置在一台设备中,这样的设备就称之为终端设备。图1为现有头端设备的结构示意图。如图1所示,现有的头端设备中包括CPU、交换芯片、以及至少一个CLT (图1中以多个CLT为例)。交换芯片具有与CPU相连的一个上行以太网口、以及作为头端设备上行端口的其他若干个上行以太网口,交换芯片还具有分别连接每个CLT的若干下行以太网口 ;每个CLT分别具有一个用于与上行侧交互的上行以太网口、并与交换芯片的下行以太网口对接,每个CLT还分别具有用于连接CNU的下行同轴线路(Cable)端口、并作为头端设备下行端口。图加和图2b为现有终端设备的结构示意图。如图加所示的终端设备除了包括一 CNU之外还包括一交换芯片。CNU具有一个用于连接CLT的上行Cable端口、并作为终端设备上行端口,CNU具有一个下行Cable端口、 并作为终端设备下行CATV 口,以及,CNU还具有一个用于与下行侧交互的用户端口(用户端口通常也是以太网口)、并连接交换芯片;交换芯片具有与用户端口对接的一个上行以太网口、以及作为终端设备下行端口的若干下行以太网口。由于如图加所示的终端设备具有多个下行端口,因而该终端设备通常称为多端口终端设备。如图2b所示的终端设备包括一 CNU、但不具有交换芯片。CNU具有一个用于连接 CLT的上行Cable端口、并作为终端设备上行端口,CNU具有一个下行Cable端口、并作为终端设备下行CATV 口,以及,CNU还具有一个用于与下行侧交互的用户端口(用户端口通常也是以太网口)、并作为终端设备下行端口。由于如图2b所示的终端设备只有一个下行端口,因而该终端设备通常称为单端口终端设备。EPCN中的头端设备和终端设备之间通常是通过分支器和分配器实现交互。S卩,每个CLT的下行Cable端口与其所要连接的每个CNU的上行Cable端口之间通过分支器和分配器组成的树型或者星型网络相连。但是,各CNU之间是相互隔离的。对于EPCN网络来说,需要极力避免出现环路。一旦产生环路,对EPCN网络的影响非常大、甚至会导致网络瘫痪。为此,就需要在EPCN网络中进行环路检测。现有技术在 EPCN网络中进行的环路检测通常都是基于生成树协议(Spanning Tree Protocol, STP)来实现的,STP能够通过构造一棵树的方式达到裁剪冗余环路的目的。
图3为现有的一种环路检测方式的原理图。如图3所示的环路检测方式以CLT为检测单位。具体说首先由头端设备中的CPU周期性地向头端设备中各CLT下发STP报文、用以通过各CLT的下行Cable端口向各CLT下连接的CNU转发,并开始检测各CLT是否接收到环回的环路检测报文;头端设备中每一 CLT从其下行Cable端口所发出的STP报文会到达该CLT下连接的各CNU ;终端设备(图3中以多端口终端设备为例)中的CNU的上行Cable端口在接收到 STP报文后,会经过其用户端口传递至交换芯片、并通过交换芯片的各下行以太网口再次转发;如果某个终端设备、即CNU下有环路产生(例如终端设备的两个下行端口之间被用户误连接),则由该终端设备发出的STP报文会返回至该终端设备中的CNU、再由该终端设备中的CNU返回至头端设备中之前曾发出该STP报文的CLT ;当头端设备中任意CLT从其下行Cable端口接收到STP报文后均会通过交换芯片上报至CPU,若CPU检测出任意CLT接收到环回的环路检测报文则确定该CLT下存在环路, 并令交换芯片将与存在环路的CLT相连的下行以太网口阻塞、即相当于将存在环路的CLT 阻塞(图3中以虚线单箭头曲线表示由环路导致的STP报文传输路径、并以图形“ X ”表示阻塞)。上述如图3所示的环路检测方式虽然能够检测到环路、并能够采取相应措施来阻止环路对网络的影响,但是,仅仅是由于某个CNU存在环路而将连接有多个CNU的CLT阻塞,会导致该CLT下连接的其他未存在环路的CNU也被阻塞。图4为现有的另一种环路检测方式的原理图。如图4所示的环路检测方式仅适用于多端口终端设备、并以多端口终端设备的下行端口(交换芯片的下行以太网口)为检测单位,该方式不需要CLT和CNU参与、但要求多端口终端设备内必须具有支持STP能力的 CPU以及具备较强检测能力的交换芯片。具体说首先分别由各终端设备中的CPU周期性地向交换芯片的所有下行以太网口下发 STP报文;如果多端口终端设备的某个下行端口下有环路产生(例如终端设备的某个下行端口由于被用户误连接而产生环路),则由该下行端口所发出的STP报文会返回至该下行端□;因此,如果交换芯片从某个下行端口接收到了之前从该下行端口发出的STP报文,则认为该下行端口有环路产生、并将内置寄存器置为表示对应的下行端口有环路的值;此后,多端口终端设备内的CPU轮询交换芯片的各内置寄存器即可知晓交换芯片的各下行端口是否有环路产生、并控制交换芯片将有环路产生的下行端口阻塞(图4中以虚线单箭头曲线表示由环路导致的STP报文传输路径、并以图形“ X ”表示阻塞)。上述如图4所示的环路检测方式由于是以终端设备的下行端口为检测单位,因而能够避免如图3所示方式存在的问题。但是,如图4所示的该环路检测方式必须在终端设备内设置CPU和具有较强检测能力的交换芯片,这样,相比于如图3所示的环路检测方式又会大大增加终端设备的成本。换言之,如图4所示的该环路检测方式只适用于高成本的具有CPU和检测能力较强的交换芯片的多端口终端设备,而无法适用于低成本的单端口终端设备、以及不具有CPU和/或交换芯片检测能力低的多端口终端设备。然而在实际应用中,终端设备都是设置在用户室内、并需要用户购买的,因而对终端设备的低成本要求是十分普遍的,即,低成本的单端口终端设备、以及不具有CPU和/或交换芯片检测能力低的多端口终端设备更为普及。因此,基于普遍存在的终端设备的低成本要求及现状,如图4所示的环路检测方式并不具备实施的可行性。

发明内容
有鉴于此,本发明提供一种环路检测方法、以及一种环路检测装置。本发明提供的一种环路检测方法,包括a、周期性地向CLT下发环路检测报文、用以向CLT下连接的CNU转发;b、检测CLT是否接收到环回的环路检测报文,若检测出CLT接收到环回的环路检测报文则确定该CLT下存在环路;C、判断存在环路的CLT持续接收到环回的环路检测报文的次数是否已达到预定次数;d、若存在环路的CLT持续接收到环回的环路检测报文的次数未达到预定次数,则向存在环路的CLT下发第一 EOC管理报文、用以读取存在环路的CLT下连接的CNU在用户端口上学习到的MAC地址;e、若从任意CNU读取到的MAC地址为环路检测报文的源MAC地址,则确定该CNU 为环路所在的CNU ;f、在确定出环路所在的CNU后,向存在环路的CLT下发第二 EOC管理报文、用以将环路所在的CNU的用户端口阻塞;g、若存在环路的CLT持续接收到环回的环路检测报文的次数已达到预定次数,则阻塞存在环路的CLT。所述环路检测报文的目的MAC为保留MAC、源MAC为自定义值、报文类型为用于表示环路检测的值。所述环路检测报文进一步具有数据域;所述步骤a向CLT下发的环路检测报文的数据域中携带有该CLT的MAC地址;所述步骤b在CLT所接收到的所述环路检测报文的数据域中携带有该CLT的MAC 地址时,认定该CLT接收到了环回的环路检测报文。所述步骤c中所认定的持续接收为当前接收到回环的环路检测报文与前一次接收到回环的环路检测报文之间的间隔小于预定时间。该方法进一步包括h、若所述步骤d无法从存在环路的CLT下连接的任意CNU读取到MAC地址,则向存在环路的CLT下发第三EOC管理报文、用以检查该CNU所在终端设备中的寄存器标记位;i、若检查到的寄存器标记位为表示有环路的有效值,则确定该CNU为环路所在的 CNU。该方法进一步包括
7
j、若存在环路的CLT持续接收到环回的环路检测报文的次数未达到预定次数,则在所述步骤d向存在环路的CLT下发第一 EOC管理报文之前先向存在环路的CLT下发第四 EOC管理报文、用以读取已被阻塞的CNU的用户端口的状态;k、若从已被阻塞的任意CNU读取的用户端口的状态为转发状态,则向存在环路的 CLT下发第五EOC管理报文、用以已被阻塞但又恢复为转发状态的CNU的用户端口阻塞。该方法进一步包括预先为CNU设置对应的终端环路检测标记,所述终端环路检测标记在对应的CNU 为环路所在的CNU时被置为有效值;以及,预先为CLT设置对应的头端环路检测标记,所述头端环路检测标记在对应的CLT存在环路时被置为有效值。本发明提供的一种环路检测装置,包括报文下发模块,周期性地向CLT下发环路检测报文、用以向CLT下连接的CNU转发;报文检测模块,检测CLT是否接收到环回的环路检测报文,若检测出CLT接收到环回的环路检测报文则确定该CLT下存在环路;次数判决模块,判断存在环路的CLT持续接收到环回的环路检测报文的次数是否已达到预定次数;地址读取模块,若存在环路的CLT持续接收到环回的环路检测报文的次数未达到预定次数,则向存在环路的CLT下发第一 EOC管理报文、用以读取存在环路的CLT下连接的 CNU在用户端口上学习到的MAC地址;第一定位模块,若从任意CNU读取到的MAC地址为环路检测报文的源MAC地址,则确定该CNU为环路所在的CNU ;终端阻塞模块,在确定出环路所在的CNU后,向存在环路的CLT下发第二 EOC管理报文、用以将环路所在的CNU的用户端口阻塞;头端阻塞模块,若存在环路的CLT持续接收到环回的环路检测报文的次数已达到预定次数,则阻塞存在环路的CLT。所述环路检测报文的目的MAC为保留MAC、源MAC为自定义值、报文类型为用于表示环路检测的值。所述环路检测报文进一步具有数据域;所述报文下发模块向CLT下发的环路检测报文的数据域中携带有该CLT的MAC地址;所述报文检测模块在CLT所接收到的所述环路检测报文的数据域中携带有该CLT 的MAC地址时,认定该CLT接收到了环回的环路检测报文。所述次数判决模块所认定的持续接收为当前接收到回环的环路检测报文与前一次接收到回环的环路检测报文之间的间隔小于预定时间。该装置进一步包括标记读取模块,若所述地址读取模块无法从存在环路的CLT下连接的任意CNU读取到MAC地址,则向存在环路的CLT下发第三EOC管理报文、用以检查该CNU所在终端设备中的寄存器标记位;
第二定位模块,若检查到的寄存器标记位为表示有环路的有效值,则确定该CNU 为环路所在的CNU。该装置进一步包括终端复查模块,若存在环路的CLT持续接收到环回的环路检测报文的次数未达到预定次数,则在所述地指读取模块向存在环路的CLT下发第一 EOC管理报文之前先向存在环路的CLT下发第四EOC管理报文、用以读取已被阻塞的CNU的用户端口的状态;复查阻塞模块,若从已被阻塞的任意CNU读取的用户端口的状态为转发状态,则向存在环路的CLT下发第五EOC管理报文、用以已被阻塞但又恢复为转发状态的CNU的用户端口阻塞。该装置进一步包括终端标记模块,维护有预先为CNU对应设置的终端环路检测标记,所述终端环路检测标记在对应的CNU为环路所在的CNU时被置为有效值;头端标记模块,维护有预先为CLT对应设置的头端环路检测标记,所述头端环路检测标记在对应的CLT存在环路时被置为有效值。如上可见,本发明能够利用环路检测报文先检测出头端设备中存在环路的CLT ; 如果存在环路的CLT持续接收到环回的环路检测报文的次数未达到预定次数,则表示当前的环路影响能够允许在该CLT下定位环路所在的CNU,因而此时可先判断该CLT下的各CNU 是否在用户端口学习到了环路检测报文的源MAC地址、并以此来定位环路是否位于该CNU, 然后将环路所在的CNU的用户端口阻塞即可;但如果存在环路的CLT持续接收到环回的环路检测报文的次数已达到预定次数,则表示当前的环路影响已导致无法在该CLT下定位环路所在的CNU,因而此时可直接将存在环路的CLT阻塞。从而相比于现有如图3所示的环路检测方式,由于本发明只有在当前的环路影响已导致无法在该CLT下定位环路所在的CNU时才会将存在环路的CLT阻塞,而不是只要发现有环路有就简单地将头端设备中的CLT阻塞,因而能够在对CNU的端口阻塞有效的情况下避免未存在环路的CNU也受到阻塞影响;相比于现有如图4所示的环路检测方式,由于本发明利用头端设备中的CPU并辅以CLT和CNU来识别CNU下是否存在环路,因而就并不是必须在终端设备内设置CPU和具有较强检测能力的交换芯片、即能够兼顾终端设备的低成本要求。进一步优选地,对于交换芯片具有较强检测能力的终端设备,本发明还可以利用交换芯片所具有的较强检测能力来辅助头端设备,以使头端设备通过读取终端设备中交换芯片的寄存器标记也能够识别该终端设备中的CNU下是否存在环路。


图1为现有头端设备的结构示意图;图加和图2b为现有终端设备的结构示意图;图3为现有的一种环路检测方式的原理图;图4为现有的另一种环路检测方式的原理图;图fe和图恥为本发明实施例中的环路检测方式的原理图;图6为本发明实施例中的环路检测辅助方式的原理图7为本发明实施例中环路检测方法的示例性流程示意图;图8为本发明实施例中环路检测方法在结合了辅助检测时的示例性流程示意图;图9a至图9b为本发明实施例中环路检测方法优选的具体流程示意图;图10为本发明实施例中环路检测装置的示例性结构示意图;图11为本发明实施例中环路检测装置在结合了辅助检测时的示例性结构示意图。
具体实施例方式为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。图fe和图恥为本发明实施例中的环路检测方式的原理图。如图fe和图恥所示的环路检测方式均是以CNU为检测单位。其中,图fe中以多端口终端设备为例、图恥中以单端口终端设备为例,但图fe和图恥所示出的原理相同。请参见图fe和图恥,对于每一 CLT来说首先由头端设备中的CPU周期性地向CLT下发环路检测报文、用以通过CLT的下行Cable端口向该CLT下连接的各CNU转发,并开始检测CLT是否从其下行Cable端口接收到环回的环路检测报文;CLT从其下行Cable端口所发出的环路检测报文会到达该CLT下连接的各CNU ;每一 CNU的上行Cable端口在接收到环路检测报文后,会通过其用户端口从该CNU 所在的终端设备发出(图fe中的下行端口为交换芯片的下行以太网口、因而还需要进一步通过交换芯片才可从终端设备的下行端口发出,而图恥中的下行端口为CNU的用户端口、 因而从用户端口转发即可从终端设备的下行端口发出),即,终端设备能够透传环路检测报文;如果某个终端设备、g卩CNU下有环路产生,则由该终端设备的CNU所发出的环路检测报文会返回至该终端设备的CNU、再由该终端设备的CNU返回至头端设备中之前曾发出该环路检测报文的CLT ;其中,在环路检测报文返回的过程中会从用户端口进入CNU,此时, 用户端口就为环路检测报文进入CNU的源端口,因而用户端口上就会学习到环路检测报文的源MAC地址;当头端设备中的CLT在其下行Cable端口接收到环路检测报文后均会通过交换芯片上报至CPU,若CPU检测出任意CLT接收到环回的环路检测报文则确定该CLT下存在环路;此后,CPU会判断存在环路的CLT持续接收到环回的环路检测报文的次数是否已达到预定次数;如果未达到预定次数,则表示当前的环路影响允许在该CLT下定位环路所在的 CNU,此时,CPU可以向存在环路的CLT下发一 EOC管理报文、使该EOC管理报文通过存在环路的该CLT的下行Cable端口转发至该CLT下连接的各CNU,用以读取存在环路的该CLT下连接的各CNU在用户端口上学习到的MAC地址,若从任意CNU读取到的MAC地址为环路检测报文的源MAC地址、即表示该CNU在环路检测报文经环路返回的过程中于用户端口学习到了环路检测报文的源MAC地址,则确定该CNU为环路所在的CNU,并向存在环路的该CLT下发另一 EOC管理报文、使该EOC管理报文通过存在环路的该CLT的下行Cable端口转发至该CLT下连接的环路所在的CNU,用以将存在环路的该CLT下连接的环路所在的CNU的用户端口阻塞(图fe和图恥中以虚线单箭头曲线表示由环路导致的环路检测报文传输路径、并以图形“ X ”表示该阻塞状态);但如果已达到预定次数,则表示当前的环路影响已导致无法在该CLT下定位环路所在的CNU (例如环路已导致了网络风暴而使用于读取MAC地址的EOC管理报文被丢弃、或环路已导致了网络风暴而使CNU无暇提供MAC地址等),因而此时可直接令头端设备中的交换芯片将与存在环路的该CLT相连的下行以太网口阻塞,即,将存在环路的CLT阻塞(图 5a和图恥中为了简化视图而未表示出该阻塞状态)。如上述如图fe和图恥所示的原理可见相比于现有如图3所示的环路检测方式,由于本发明实施例只有在当前的环路影响已导致无法在该CLT下定位环路所在的CNU时才会将存在环路的CLT阻塞,而不是只要发现有环路有就简单地将头端设备中的CLT阻塞,因而能够在对CNU的端口阻塞有效的情况下避免未存在环路的CNU也受到阻塞影响;相比于现有如图4所示的环路检测方式,由于本发明实施例利用头端设备中的 CPU并辅以CLT和CNU来识别CNU下是否存在环路,因而就并不是必须在终端设备内设置 CPU和具有较强检测能力的交换芯片、即能够兼顾终端设备的低成本要求。另需要说明的是,本发明实施例中所使用的环路检测报文并不是现有的STP报文,这是因为,如果利用STP报文检测环路,就需要在头端设备的CPU中运行STP机制,而如背景技术部分如图3所示的方式可见,STP机制在检测到任意CLT接收到环回的STP报文后都会立即阻塞该CLT、而不会允许再有其他处理,即,STP机制会导致本发明实施例中定位环路所在终端设备的处理过程无法实现;而且,由于STP机制的处理过程非常复杂,在头端设备的CPU中运行STP机制也会使得CPU的负担过重。由此,本发明实施例中所使用的环路检测报文是一种自定义报文,其中包括6字节的目的MAC,仍选用采用现有技术中的STP报文所使用的保留 MAC (01-80-C2-00-00-00),用以确保环路检测报文在任何情况下都能够被头端设备中的交换芯片上报至头端设备中的CPU ;6字节的源MAC,可以为任意的设定值(例如00-0F-E2-12-34-57),主要用于与终端设备的用户端口上学习到的MAC地址进行比对;4字节的报文类型(Type),设置为用于表示环路检测的值(例如60-0E);6字节的数据域,其中会携带有发出环路检测报文的CLT的MAC地址,用以接收到环路检测报文的CLT是否为发出该环路检测报文的CLT ;可选地还可以包括38字节的保留域。图6为本发明实施例中的环路检测辅助方式的原理图。如图6所示,对于交换芯片具有较强检测能力的终端设备(多端口终端设备)来说,如果该终端设备的交换芯片从某个下行以太网口接收到了之前从该下行以太网口发出的环路检测报文,则认为该下行以太网口有环路产生、并将内置寄存器置为表示对应的以太网口下有环路的值,这样,头端设备 (例如在无法从终端设备读取MAC地址时)可以向存在环路的CLT下发又一 EOC管理报文、 使该EOC管理报文通过存在环路的该CLT的下行Cable端口转发至该终端设备中的CNU,用以通过CNU检查该终端设备的寄存器标记位,若检查到该终端设备的寄存器标记位为表示有环路的有效值,则确定该终端设备中的CNU为环路所在的CNU,并向存在环路的CLT下发前述另一 EOC管理报文、使该EOC管理报文通过存在环路的该CLT的下行Cable端口转发至环路所在的该终端设备中的CNU,用以将环路所在的CNU的用户端口阻塞。如上述如图6所示的原理可见,对于交换芯片具有较强检测能力的终端设备(多端口终端设备),本发明实施例可以进一步优选地利用交换芯片所具有的较强检测能力来辅助头端设备识别终端设备下是否存在环路。下面,先对基于上述原理所实现的环路检测方法进行详细说明。图7为本发明实施例中环路检测方法的示例性流程示意图。如图7所示,本发明实施例中的环路检测方法基于如图fe和图恥所示的原理、并包括在头端设备中的CPU执行的如下步骤步骤701,周期性(例如以&为单位周期)地向头端设备中各CLT(本流程以多个 CLT为例)下发环路检测报文。步骤702,实时检测各CLT是否接收到环回的环路检测报文,若检测出任意CLT接收到环回的环路检测报文则确定该CLT下存在环路、并跳转至步骤703,否则返回步骤702。实际应用中,步骤701向每一 CLT下发的环路检测报文的数据域中可以携带有该 CLT的MAC地址,相应地,步骤702在每一 CLT所接收到的报文的数据域中携带有该CLT的 MAC地址时即可认定该CLT接收到了环回的环路检测报文。从下述的步骤703开始的过程,即是分别针对存在环路的每一 CLT的处理过程。步骤703,判断存在环路的CLT持续接收到环回的环路检测报文的次数是否已达到预定次数,若存在环路的CLT持续接收到环回的环路检测报文的次数已达到预定次数则跳转至步骤707,若存在环路的CLT持续接收到环回的环路检测报文的次数未达到预定次数则跳转至步骤704。本步骤中所认定的持续接收为当前接收到回环的环路检测报文与前一次接收到回环的环路检测报文之间的间隔小于预定时间。步骤704,向存在环路的CLT下发第一 EOC管理报文、用以读取存在环路的CLT下连接的各终端设备中的CNU在用户端口上学习到的MAC地址。步骤705,若从任意终端设备中的CNU读取到的MAC地址为环路检测报文的源MAC 地址,则确定该终端设备中的CNU为环路所在的CNU。若从任意终端设备中的CNU读取到的 MAC地址不是环路检测报文的源MAC地址,则表示该终端设备中的CNU下无环路,因而不予处理。另外,对于无法读取(例如环路已导致了网络风暴而使用于读取MAC地址的第一 EOC 管理报文被丢弃、或环路已导致了网络风暴而使CNU无暇提供MAC地址等)到MAC地址的 CNU,则不予处理。步骤706,在确定出环路所在的CNU后,向存在环路的CLT下发第二 EOC管理报文、 用以将环路所在的CNU的用户端口阻塞。上述步骤704 步骤706的处理过程,可以是并行地对存在环路的CLT下连接的各CNU进行处理,也可以是以遍历的方式依次对存在环路的CLT下连接的每一 CNU进行处理。步骤707,令头端设备中的交换芯片与存在环路的CLT之间的以太网口阻塞、以将存在环路的CLT阻塞。至此,上述流程结束。图8为本发明实施例中环路检测方法的优化的示例性流程示意图。如图8所示, 本发明实施例中的环路检测方法基于如图fe和图恥所示的原理并同时结合如图6所示的辅助检测原理,包括在头端设备中的CPU执行的如下步骤步骤801,周期性(例如以&为单位周期)地向头端设备中各CLT(本流程以多个 CLT为例)下发环路检测报文。步骤802,实时检测各CLT是否接收到环回的环路检测报文,若检测出任意CLT接收到环回的环路检测报文则确定该CLT下存在环路、并跳转至步骤803,否则返回本步骤。实际应用中,步骤801向每一 CLT下发的环路检测报文的数据域中可以携带有该 CLT的MAC地址,相应地,步骤802在每一 CLT所接收到的报文的数据域中携带有该CLT的 MAC地址时即可认定该CLT接收到了环回的环路检测报文。从下述的步骤803开始的过程,即是分别针对存在环路的每一 CLT的处理过程。步骤803,判断存在环路的CLT持续接收到环回的环路检测报文的次数是否已达到预定次数,若存在环路的CLT持续接收到环回的环路检测报文的次数已达到预定次数则跳转至步骤809,若存在环路的CLT持续接收到环回的环路检测报文的次数未达到预定次数则跳转至步骤804。本步骤中所认定的持续接收为当前接收到回环的环路检测报文与前一次接收到回环的环路检测报文之间的间隔小于预定时间。步骤804,向存在环路的CLT下发第一 EOC管理报文、用以读取存在环路的CLT下连接的各终端设备中的CNU在用户端口上学习到的MAC地址。步骤805,若从任意终端设备中的CNU读取到的MAC地址为环路检测报文的源MAC 地址,则确定该终端设备中的CNU为环路所在的CNU。若从任意终端设备中的CNU读取到的 MAC地址不是环路检测报文的源MAC地址,则表示该终端设备中的CNU下无环路,因而不予处理。步骤806,对于无法读取(例如环路已导致了网络风暴而使用于读取MAC地址的 EOC管理报文被丢弃、或环路已导致了网络风暴而使CNU无暇提供MAC地址等)到MAC地址的CNU,向存在环路的CLT下发第三EOC管理报文、用以检查该CNU所在终端设备中的寄存器标记位。步骤807,对于检查到寄存器标记位为表示有环路的有效值的终端设备,确定该终端设备中的CNU为环路所在的CNU。对于检查到的寄存器标记位为表示无环路的无效值的终端设备,则表示该终端设备中的CNU下无环路,因而对该终端设备中的CNU不予处理。另外,对于未检查到寄存器标记位为表示有环路的有效值的终端设备,则对该终端设备中的 CNU不予处理。步骤808,在确定出环路所在的CNU后,向存在环路的CLT下发第二 EOC管理报文、 用以将环路所在的CNU的用户端口阻塞。上述步骤804 步骤808的处理过程可以是并行地对存在环路的CLT下连接的各 CNU进行处理,也可以是以遍历的方式依次对存在环路的CLT下连接的每一 CNU进行处理。步骤809,令头端设备中的交换芯片与存在环路的CLT之间的以太网口阻塞、以将存在环路的CLT阻塞。至此,上述流程结束。此外,在上述如图7和图8所示的流程中还可以结合如下的优化处理1、实际应用中,对CLT的阻塞通常是为头端设备中的交换芯片连接该CLT的下行以太网口设置过滤条件,使交换芯片连接该CLT的下行以太网口将除了环路检测报文之外的其他报文丢弃或屏蔽,也就是说,即便CLT被阻塞,交换芯片连接该CLT的下行以太网口也仍有可能收到该CLT上报的环路检测报文,那么,在步骤702和步骤802之后,本发明实施例如果再判断出收到环回的环路检测报文的CLT为已被阻塞的CLT,则可以省略对该CLT 的后续处理。2、步骤703和步骤803的判断可以利用计时器和计数器来实现,具体说对于头端设备的每一 CLT,均可以维护一计时器和一计数器;当该CLT接收到环回的环路检测报文后,可以先判断计时器是否到达预定时间;如果没有到达预定时间,则表示当前接收到回环的环路检测报文与前一次接收到回环的环路检测报文之间的间隔小于预定时间、即属于持续接收,对计时器清零、并对计数器加1 ;如果已经到达预定时间,则表示当前接收到回环的环路检测报文与前一次接收到回环的环路检测报文之间的间隔大于等于预定时间、即不属于持续接收,对计时器清零、并直接将计数器赋值为1 (从1开始重新计数)。3、当任意终端设备中的CNU的用户端口被阻塞后,用户可以通过手动操作来触发该终端设备复位、并使该终端设备中的CNU的用户端口又恢复为转发状态,这是经常发生的情况,那么,当步骤703和步骤803判断出存在环路的CLT持续接收到环回的环路检测报文的次数未达到预定次数时,可以在步骤704和步骤804读取终端设备学习到的MAC地址之前先判断是否有已被阻塞用户端口的终端设备中的CNU又恢复了转发状态,S卩,向存在环路的CLT下发第四EOC管理报文、用以读取已被阻塞的终端设备中的CNU的用户端口的状态;若从已被阻塞的任意终端设备中的CNU读取的用户端口的状态为转发状态,则确定该终端设备中的CNU为环路所在的CNU、并在向存在环路的CLT下发第一 EOC管理报文之前先向存在环路的CLT下发第五EOC管理报文,以利用第五EOC管理报文重新阻塞该终端设备中的CNU的用户端口。这样,在后续读取MAC地址的过程中,可以无需读取用户端口已被阻塞的终端设备中的CNU、而仅读取用户端口未被阻塞的终端设备中的CNU,从而能够减少后续需要读取MAC地址的CNU数量。4、可以预先为每一终端设备中的CNU设置对应的终端环路检测标记,终端环路检测标记在对应的CNU为环路所在的CNU时被置为有效值True、在对应的CNU的环路已解除时被置为无效值i^alse ;以及,预先为头端设备中的每一 CLT设置对应的头端环路检测标记,头端环路检测标记在对应的CLT存在环路时被置为有效值True、在对应的CLT存在的环路接触时被置为无效值i^alse。利用上述的标记更容易对端口进行管理。图9a至图9b为本发明实施例中环路检测方法优选的具体流程示意图。如图9a 至图%所示,以遍历的方式依次对存在环路的CLT下连接的每一终端设备进行处理为例, 本发明实施例中的环路检测方法基于如图fe和图恥所示的原理并同时结合如图6所示的辅助检测原理以及上述优化处理,可以得到在头端设备中的CPU执行的如下的优选流程
步骤901,周期性地(例如以&为单位周期)向头端设备中各CLT (本流程以多个 CLT为例)下发环路检测报文。步骤902,实时检测各CLT是否接收到环回的环路检测报文,若检测出任意CLT接收到环回的环路检测报文则确定该CLT下存在环路、并跳转至步骤903,否则返回本步骤。实际应用中,步骤901向每一 CLT下发的环路检测报文的数据域中可以携带有该 CLT的MAC地址,相应地,步骤902在每一 CLT所接收到的报文的数据域中携带有该CLT的 MAC地址时即可认定该CLT接收到了环回的环路检测报文。从下述的步骤903开始的过程,即是分别针对存在环路的每一 CLT的处理过程。步骤903,判断存在环路的CLT所对应的头端环路检测标记是否为有效值True, 即,该CLT是否已经被阻塞,如果是则返回步骤902继续检测,否则跳转至步骤904。步骤904,判断存在环路的CLT所对应的计时器是否到达预定时间,如果是则对存在环路的CLT所对应的计时器清零、并跳转至步骤907,否则表示当前接收到回环的环路检测报文与前一次接收到回环的环路检测报文之间的间隔小于预定时间、即属于持续接收, 对存在环路的CLT所对应的计时器清零、并跳转至步骤905。步骤905,判断存在环路的CLT所对应的计数器是否达到预定次数(例如10次), 即存在环路的CLT持续接收到环回的环路检测报文的次数是否已达到预定次数,若是则跳转至步骤920,否则跳转至步骤906步骤906,将存在环路的CLT所对应的对计数器加1,然后跳转至步骤911。步骤907,将存在环路的CLT所对应的计数器赋值为1 (从1开始重新计数),然后跳转至步骤911。步骤911,向存在环路的CLT下发第四EOC管理报文、用以读取对应的终端环路检测标记为有效值True (即已被阻塞)的CNU的用户端口的状态。步骤912,若从对应的终端环路检测标记为有效值True的任意CNU读取的用户端口的状态为转发状态,则向存在环路的CLT下发前述第五EOC管理报文,以将对应的终端环路检测标记为有效值True、但又恢复转发状态的CNU的用户端口再次阻塞,然后跳转至步骤 913。步骤913,开始遍历连接于存在环路的CLT下、且对应的终端环路检测标记为无效值!^alse的各CNU,若遍历未结束则跳转至步骤914,若遍历结束则返回步骤902。步骤914,向在环路的CLT下发第一 EOC管理报文,用以读取当前遍历到的CNU在用户端口上学习到的MAC地址,然后跳转至步骤915。步骤915,判断是否从当前遍历到的CNU读取到了 MAC地址,如果是则跳转至步骤 916,否则跳转至步骤917。步骤916,判断从前遍历到的CNU读取到的MAC地址为环路检测报文的源MAC地址,若从当前遍历到的CNU读取到的MAC地址为环路检测报文的源MAC地址,则确定当前遍历到的该CNU为环路所在的CNU、并跳转至步骤919,否则返回步骤913继续遍历。步骤917,向存在环路的CLT下发第三EOC管理报文、用以检查当前遍历到的该 CNU的寄存器标记位,然后跳转至步骤918。步骤918,判断是否检查到当前遍历到的该CNU所在终端设备中的寄存器标记位为表示有环路的有效值,若是则确定当前遍历到的该CNU为环路所在的CNU并跳转至步骤919,否则返回步骤913继续遍历。步骤919,在确定出当前遍历到的CNU为环路所在的CNU后,向存在环路的CLT下发第二 EOC管理报文、用以将环路所在的CNU的用户端口阻塞,并且将当前遍历到的CNU对应的终端环路检测标记由无效值False置为有效值True,然后返回步骤913继续遍历。步骤920,令头端设备中的交换芯片与存在环路的CLT之间的以太网口阻塞、以将存在环路的CLT阻塞,并将存在环路的该CLT所对应的头端环路检测标记由无效值False 置为有效值True,然后返回步骤902继续检测。至此,上述流程结束。如上可见,本发明实施例中的环路检测方法通过以上的任一流程,均可以在存在的环路数量和/或环路的影响尚未达到足够严重的程度时定位出环路所在的CNU并阻塞其用户端口,而在存在的环路数量和/或环路的影响尚已达到足够严重的程度时定位出头端设备中相应CLT并阻塞。另外,本发明实施例中的环路检测方法所阻塞的用户端口和Cable端口也能够予以恢复。例如,对于CNU的用户端口来说,在被阻塞之后可以通过如下方式恢复转发状态1、周期性地向存在环路的CLT下发前述第四EOC管理报文、用以检查该CNU所在终端设备的寄存器标记位为表示无环路的无效值,若检查到该CNU所在终端设备的寄存器标记位为表示无环路的无效值,则确定该CNU的环路已解除,并向该CNU所连接的CLT下发第五EOC管理报文、用以取消该CNU的用户端口的阻塞;2、终端设备的复位后,其用户端口即可恢复为转发状态;另外,如果终端设备为具有交换芯片的多端口终端设备,则其寄存器标记在复位后就恢复为表示无环路的无效值、 但其在CPU侧对应的终端环路检测标记仍为有效值True,待按照上述方式读取无效值的寄存器标记后再恢复为无效值i^alse ;3、终端设备、即CNU下线后重新再上线后,其CNU的用户端口即可恢复为转发状态;另外,如果终端设备为具有交换芯片的多端口终端设备,则其寄存器标记在重新上线后就仍保持为表示有环路的有效值、但其在CPU侧对应的终端环路检测标记恢复为无效值 i^alse,待经过上述流程重新检测后才能够决定重新上线的终端设备的用户端口是否还需要阻塞。4、在任意终端设备中的CNU的用户端口被阻塞后的预定等待时间过后,向存在环路的CLT下发前述第五EOC管理报文、用以取消该终端设备中的CNU的用户端口的阻塞,如果该终端设备中的CNU下还存在环路,则经过以上的任一流程的检测仍会将该终端设备中的CNU的用户端口再次阻塞,如果该终端设备中的CNU下的环路解除则不会再将该终端设备中的CNU的用户端口阻塞。再例如,对于头端设备中的CLT来说,在被阻塞之后可以通过如下方式恢复转发状态由于对CLT的阻塞通常是为交换芯片连接该CLT的下行以太网口设置过滤条件, 使交换芯片连接该CLT的下行以太网口将除了环路检测报文之外的其他报文丢弃或屏蔽, 也就是说,即便CLT被阻塞,交换芯片连接该CLT的下行以太网口也仍有可能收到该CLT上报的环路检测报文,那么,只要被阻塞的CLT在预定的周期内均未收到环路检测报文,即可认定该CLT下的环路已解除,此时,即可令存环路解除的CLT取消阻塞、并将对应的头端环路检测标记由True置为hise。下面,再对本发明实施例中的环路检测装置进行详细说明。图10为本发明实施例中环路检测装置的示例性结构示意图。如图10所示,本实施例中的环路检测装置基于如图fe和图恥所示的原理、并包括承载于头端设备中的CPU 的如下模块报文下发模块,周期性地向头端设备中各CLT下发环路检测报文。报文检测模块,实时检测各CLT是否接收到环回的环路检测报文,若检测出任意 CLT接收到环回的环路检测报文则确定该CLT下存在环路。实际应用中,报文下发模块向每一 CLT下发的环路检测报文的数据域中可以携带有该CLT的MAC地址,相应地,报文检测模块在每一 CLT所接收到的报文的数据域中携带有该CLT的MAC地址时即可认定该CLT接收到了环回的环路检测报文。次数判决模块,判断存在环路的CLT持续接收到环回的环路检测报文的次数是否已达到预定次数。其中,次数判决模块所认定的持续接收为当前接收到回环的环路检测报文与前一次接收到回环的环路检测报文之间的间隔小于预定时间。地址读取模块,向存在环路的CLT下发第一 EOC管理报文、用以读取存在环路的 CLT下连接的各终端设备中的CNU在用户端口上学习到的MAC地址。第一定位模块,若从任意终端设备中的CNU读取到的MAC地址为环路检测报文的源MAC地址,则确定该终端设备中的CNU为环路所在的CNU。若从任意终端设备中的CNU读取到的MAC地址不是环路检测报文的源MAC地址,则表示该终端设备中的CNU下无环路,因而不予处理。另外,对于无法读取(例如环路已导致了网络风暴而使用于读取MAC地址的 EOC管理报文被丢弃、或环路已导致了网络风暴而使CNU无暇提供MAC地址等)到MAC地址的CNU,则不予处理。终端阻塞模块,在确定出环路所在的CNU后,向存在环路的CLT下发第二 EOC管理报文、用以将环路所在的CNU的用户端口阻塞。上述地址读取模块、第一定位模块、终端阻塞模块所执行的处理过程,可以是并行地对存在环路的CLT下连接的各CNU进行处理,也可以是以遍历的方式依次对存在环路的 CLT下连接的每一 CNU进行处理。头端阻塞模块,令头端设备中的交换芯片与存在环路的CLT之间的以太网口阻塞、以将存在环路的CLT阻塞。图11为本发明实施例中环路检测装置在结合了辅助检测时的示例性结构示意图。如图11所示,本实施例中的环路检测装置基于如图fe和图恥所示的原理以及如图6 所示的辅助检测原理、并包括承载于头端设备中的CPU的如下模块报文下发模块,周期性地向头端设备中各CLT下发环路检测报文。报文检测模块,实时检测各CLT是否接收到环回的环路检测报文,若检测出任意 CLT接收到环回的环路检测报文则确定该CLT下存在环路。实际应用中,报文下发模块向每一 CLT下发的环路检测报文的数据域中可以携带有该CLT的MAC地址,相应地,报文检测模块在每一 CLT所接收到的报文的数据域中携带有该CLT的MAC地址时即可认定该CLT接收到了环回的环路检测报文。
次数判决模块,判断存在环路的CLT持续接收到环回的环路检测报文的次数是否已达到预定次数。其中,次数判决模块所认定的持续接收为当前接收到回环的环路检测报文与前一次接收到回环的环路检测报文之间的间隔小于预定时间。地址读取模块,向存在环路的CLT下发第一 EOC管理报文、用以读取存在环路的 CLT下连接的各终端设备中的CNU在用户端口上学习到的MAC地址。第一定位模块,若从任意终端设备中的CNU读取到的MAC地址为环路检测报文的源MAC地址,则确定该终端设备中的CNU为环路所在的CNU。若从任意终端设备中的CNU读取到的MAC地址不是环路检测报文的源MAC地址,则表示该终端设备中的CNU下无环路,因而不予处理。标记读取模块,对于无法读取(例如环路已导致了网络风暴而使用于读取MAC地址的EOC管理报文被丢弃、或环路已导致了网络风暴而使CNU无暇提供MAC地址等)到MAC 地址的CNU,向存在环路的CLT下发第三EOC管理报文、用以检查该CNU所在终端设备中的寄存器标记位。第二定位模块,对于检查到寄存器标记位为表示有环路的有效值的终端设备,确定该终端设备中的CNU为环路所在的CNU。对于检查到的寄存器标记位为表示无环路的无效值的终端设备,则表示该终端设备中的CNU下无环路,因而对该终端设备中的CNU不予处理。另外,对于未检查到寄存器标记位为表示有环路的有效值的终端设备,则对该终端设备中的CNU不予处理。终端阻塞模块,在确定出环路所在的CNU后,向存在环路的CLT下发第二 EOC管理报文、用以将环路所在的CNU的用户端口阻塞。上述地址读取模块、第一定位模块、标记读取模块、第二定位模块、以及终端阻塞模块所执行的处理过程,可以是并行地对存在环路的CLT下连接的各CNU进行处理,也可以是以遍历的方式依次对存在环路的CLT下连接的每一 CNU进行处理。头端阻塞模块,令头端设备中的交换芯片与存在环路的CLT之间的以太网口阻塞、以将存在环路的CLT阻塞。此外,在上述如图10和图11所示的结构中还可以结合如下的优化1、实际应用中,对CLT的阻塞通常是为交换芯片连接该CLT的下行以太网口设置过滤条件,使交换芯片连接该CLT的下行以太网口将除了环路检测报文之外的其他报文丢弃或屏蔽,也就是说,即便CLT被阻塞,交换芯片连接该CLT的下行以太网口也仍有可能收到该CLT上报的环路检测报文,那么,在如图10和图11所示的结构中还可以进一步包括状态判决模块,状态判决模块可在报文检测模块检测出之后再判断收到环回的环路检测报文的CLT是否为已被阻塞的CLT,若是则屏蔽该CLT、以省略其他模块对该CLT的后续处理。2、次数判决模块可以利用计时器和计数器来实现判断,具体说对于头端设备的每一 CLT,均可以维护一计时器和一计数器;当该CLT接收到环回的环路检测报文后,次数判决模块可以先判断计时器是否到达预定时间;如果没有到达预定时间,则表示当前接收到回环的环路检测报文与前一次接收到回环的环路检测报文之间的间隔小于预定时间、即属于持续接收,次数判决模块对计时器清零、并对计数器加1 ;如果已经到达预定时间,则表示当前接收到回环的环路检测报文与前一次接收到回环的环路检测报文之间的间隔大于等于预定时间、即不属于持续接收,次数判决模块对计时器清零、并直接将计数器赋值为1 (从1开始重新计数)。3、当任意终端设备中的CNU的用户端口被阻塞后,用户可以通过手动操作来触发该终端设备复位、并使该终端设备中的CNU的用户端口又恢复为转发状态,这是经常发生的情况,那么,当次数判决模块判断出存在环路的CLT持续接收到环回的环路检测报文的次数未达到预定次数时,可以在地址读取模块读取终端设备中的CNU学习到的MAC地址之前,先利用一终端复查模块判断是否有已被阻塞用户端口的终端设备中的CNU又恢复了转发状态,即,向存在环路的CLT下发第四EOC管理报文、用以读取已被阻塞的终端设备中的 CNU的用户端口的状态;若从已被阻塞的任意终端设备中的CNU读取的用户端口的状态为转发状态,则由一复查阻塞模块确定该终端设备中的CNU为环路所在的CNU、并在地指读取模块向存在环路的CLT下发第一 EOC管理报文之前先向存在环路的CLT下发第五EOC管理报文,以利用第五EOC管理报文重新阻塞该终端设备中的CNU的用户端口。这样,地址读取模块在后续读取MAC地址的过程中,可以无需读取用户端口已被阻塞的终端设备中的CNU、 而仅读取用户端口未被阻塞的终端设备中的CNU,从而能够减少后续需要读取MAC地址的 CNU数量。4、在图10和图11所示的结构中,可以进一步包括一终端标记模块和一头端标记模块;其中,终端标记模块维护有预先为每一终端设备中的CNU对应设置的终端环路检测标记,终端环路检测标记在对应的终端设备中的CNU为环路所在的CNU时被置为有效值 True、在对应的终端设备中的CNU的环路已解除时被置为无效值i^alse ;头端标记模块则维护有预先为头端设备中的每一 CLT对应设置的头端环路检测标记,头端环路检测标记在对应的CLT存在环路时被置为有效值True、在对应的CLT存在的环路接触时被置为无效值 False.利用上述的标记更容易对端口进行管理。为了使终端设备的用户端口被阻塞之后可恢复转发状态,除了终端设备复位和终端设备中的CNU下线后重新上线的两种方式之外,在如图10和图11所示的结构中可以进一步包括标记复查模块,周期性地向存在环路的CLT下发前述第四EOC管理报文、用以检查用户端口已阻塞的CNU所在终端设备的寄存器标记位是否为表示无环路的无效值;复查恢复模块,若检查到该终端设备的寄存器标记位为表示无环路的无效值,则确定该终端设备中的CNU下的环路已解除,并向该CNU所连接的CLT下发第五EOC管理报文、用以取消该终端设备中的CNU的用户端口的阻塞;和/或,延时恢复模块,在任意终端设备中的CNU的用户端口被阻塞后的预定等待时间过后,向存在环路的CLT下发前述第五EOC管理报文、用以取消该终端设备中的CNU的用户端口的阻塞,如果该终端设备中的CNU下还存在环路,则经过以上的任一流程的检测仍会将该终端设备中的CNU的用户端口再次阻塞,如果该终端设备中的CNU下的环路解除则不会再将该终端设备中的CNU的用户端口阻塞。为了使头端设备的CLT被阻塞之后可以恢复转发状态,在如图10和图11所示的结构中可以进一步包括头端检测模块,只要被阻塞的CLT在预定的周期内均未收到环路检测报文,即可认定该CLT下的环路已解除,此时,即可令存环路解除的CLT取消阻塞、并将对应的头端环路检测标记由iTrue置为i^alse。 上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
权利要求
1.一种环路检测方法,其特征在于,包括a、周期性地向CLT下发环路检测报文、用以向CLT下连接的CNU转发;b、检测CLT是否接收到环回的环路检测报文,若检测出CLT接收到环回的环路检测报文则确定该CLT下存在环路;c、判断存在环路的CLT持续接收到环回的环路检测报文的次数是否已达到预定次数;d、若存在环路的CLT持续接收到环回的环路检测报文的次数未达到预定次数,则向存在环路的CLT下发第一 EOC管理报文、用以读取存在环路的CLT下连接的CNU在用户端口上学习到的MAC地址;e、若从任意CNU读取到的MAC地址为环路检测报文的源MAC地址,则确定该CNU为环路所在的CNU ;f、在确定出环路所在的CNU后,向存在环路的CLT下发第二EOC管理报文、用以将环路所在的CNU的用户端口阻塞;g、若存在环路的CLT持续接收到环回的环路检测报文的次数已达到预定次数,则阻塞存在环路的CLT。
2.根据权利要求1所述的方法,其特征在于,所述环路检测报文的目的MAC为保留 MAC、源MAC为自定义值、报文类型为用于表示环路检测的值。
3.根据权利要求2所述的方法,其特征在于,所述环路检测报文进一步具有数据域;所述步骤a向CLT下发的环路检测报文的数据域中携带有该CLT的MAC地址;所述步骤b在CLT所接收到的所述环路检测报文的数据域中携带有该CLT的MAC地址时,认定该CLT接收到了环回的环路检测报文。
4.根据权利要求1所述的方法,其特征在于,所述步骤c中所认定的持续接收为当前接收到回环的环路检测报文与前一次接收到回环的环路检测报文之间的间隔小于预定时间。
5.根据权利要求1所述的方法,其特征在于,该方法进一步包括h、若所述步骤d无法从存在环路的CLT下连接的任意CNU读取到MAC地址,则向存在环路的CLT下发第三EOC管理报文、用以检查该CNU所在终端设备中的寄存器标记位;i、若检查到的寄存器标记位为表示有环路的有效值,则确定该CNU为环路所在的CNU。
6.根据权利要求1所述的方法,其特征在于,该方法进一步包括j、若存在环路的CLT持续接收到环回的环路检测报文的次数未达到预定次数,则在所述步骤d向存在环路的CLT下发第一 EOC管理报文之前先向存在环路的CLT下发第四EOC 管理报文、用以读取已被阻塞的CNU的用户端口的状态;k、若从已被阻塞的任意CNU读取的用户端口的状态为转发状态,则向存在环路的CLT 下发第五EOC管理报文、用以已被阻塞但又恢复为转发状态的CNU的用户端口阻塞。
7.根据权利要求1至6中任一项所述的方法,其特征在于,该方法进一步包括预先为CNU设置对应的终端环路检测标记,所述终端环路检测标记在对应的CNU为环路所在的CNU时被置为有效值;以及,预先为CLT设置对应的头端环路检测标记,所述头端环路检测标记在对应的CLT 存在环路时被置为有效值。
8.一种环路检测装置,其特征在于,包括报文下发模块,周期性地向CLT下发环路检测报文、用以向CLT下连接的CNU转发; 报文检测模块,检测CLT是否接收到环回的环路检测报文,若检测出CLT接收到环回的环路检测报文则确定该CLT下存在环路;次数判决模块,判断存在环路的CLT持续接收到环回的环路检测报文的次数是否已达到预定次数;地址读取模块,若存在环路的CLT持续接收到环回的环路检测报文的次数未达到预定次数,则向存在环路的CLT下发第一 EOC管理报文、用以读取存在环路的CLT下连接的CNU 在用户端口上学习到的MAC地址;第一定位模块,若从任意CNU读取到的MAC地址为环路检测报文的源MAC地址,则确定该CNU为环路所在的CNU ;终端阻塞模块,在确定出环路所在的CNU后,向存在环路的CLT下发第二 EOC管理报文、用以将环路所在的CNU的用户端口阻塞;头端阻塞模块,若存在环路的CLT持续接收到环回的环路检测报文的次数已达到预定次数,则阻塞存在环路的CLT。
9.根据权利要求8所述的装置,其特征在于,所述环路检测报文的目的MAC为保留 MAC、源MAC为自定义值、报文类型为用于表示环路检测的值。
10.根据权利要求9所述的装置,其特征在于,所述环路检测报文进一步具有数据域; 所述报文下发模块向CLT下发的环路检测报文的数据域中携带有该CLT的MAC地址; 所述报文检测模块在CLT所接收到的所述环路检测报文的数据域中携带有该CLT的MAC地址时,认定该CLT接收到了环回的环路检测报文。
11.根据权利要求8所述的装置,其特征在于,所述次数判决模块所认定的持续接收为当前接收到回环的环路检测报文与前一次接收到回环的环路检测报文之间的间隔小于预定时间。
12.根据权利要求8所述的装置,其特征在于,该装置进一步包括标记读取模块,若所述地址读取模块无法从存在环路的CLT下连接的任意CNU读取到 MAC地址,则向存在环路的CLT下发第三EOC管理报文、用以检查该CNU所在终端设备中的寄存器标记位;第二定位模块,若检查到的寄存器标记位为表示有环路的有效值,则确定该CNU为环路所在的CNU。
13.根据权利要求8所述的装置,其特征在于,该装置进一步包括终端复查模块,若存在环路的CLT持续接收到环回的环路检测报文的次数未达到预定次数,则在所述地指读取模块向存在环路的CLT下发第一 EOC管理报文之前先向存在环路的CLT下发第四EOC管理报文、用以读取已被阻塞的CNU的用户端口的状态;复查阻塞模块,若从已被阻塞的任意CNU读取的用户端口的状态为转发状态,则向存在环路的CLT下发第五EOC管理报文、用以已被阻塞但又恢复为转发状态的CNU的用户端口阻塞。
14.根据权利要求8至13中任一项所述的装置,其特征在于,该装置进一步包括终端标记模块,维护有预先为CNU对应设置的终端环路检测标记,所述终端环路检测标记在对应的CNU为环路所在的CNU时被置为有效值;头端标记模块,维护有预先为CLT对应设置的头端环路检测标记,所述头端环路检测标记在对应的CLT存在环路时被置为有效值。
全文摘要
本发明提供了一种环路检测方法和装置。本发明能够利用环路检测报文先检测出头端设备中存在环路的CLT;如果当前的环路影响能够允许在该CLT下定位环路所在的CNU,则可先判断该CLT下的各CNU是否在用户端口学习到了环路检测报文的源MAC地址、并以此来定位环路是否位于该CNU,然后将环路所在的CNU的用户端口阻塞即可;但如果当前的环路影响已导致无法定位出环路所在的CNU,则可直接将存在环路的CLT阻塞。进一步可选地,如果任意CNU所在的终端设备中还包括具有检测能力的交换芯片,通过读取该CNU所在终端设备中交换芯片的寄存器标记也能够识别该CNU下是否存在环路。
文档编号H04L12/26GK102281172SQ20111028220
公开日2011年12月14日 申请日期2011年9月20日 优先权日2011年9月20日
发明者许俊 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1