首页> 中国专利> 以太环网系统及其边缘节点和以太环网实现方法

以太环网系统及其边缘节点和以太环网实现方法

摘要

本发明公开了一种以太环网系统及其边缘节点,以及一种以太环网的实现方法。本发明取消了辅助边缘节点和SRPT检测机制的概念,引入子环优先级的概念。低优先级子环的主节点发送的HELLO报文可以在高优先级子环内转发,且在高优先级子环内转发时,低优先级子环的主节点发送的HELLO报文被高优先级子环看作数据报文,按照数据报文进行阻塞或转发。而高优先级子环的主节点发送的HELLO报文不能在低优先级的子环内转发。使用本发明能够支持多个子环从不同位置接入主环,从而提高组网灵活性,而且最大限度地保证以太环网的最大连通性。

著录项

  • 公开/公告号CN101656664A

    专利类型发明专利

  • 公开/公告日2010-02-24

    原文格式PDF

  • 申请/专利权人 杭州华三通信技术有限公司;

    申请/专利号CN200910092823.0

  • 发明设计人 杨碧辉;

    申请日2009-09-09

  • 分类号H04L12/56(20060101);H04L12/28(20060101);

  • 代理机构11018 北京德琦知识产权代理有限公司;

  • 代理人王一斌;王琦

  • 地址 310053 浙江省杭州市高新技术产业开发区之江科技工业园六和路310号华为杭州生产基地

  • 入库时间 2023-12-17 23:31:30

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-05-10

    专利权人的姓名或者名称、地址的变更 IPC(主分类):H04L12/56 变更前: 变更后: 申请日:20090909

    专利权人的姓名或者名称、地址的变更

  • 2012-05-23

    授权

    授权

  • 2010-06-02

    实质审查的生效 IPC(主分类):H04L12/56 申请日:20090909

    实质审查的生效

  • 2010-02-24

    公开

    公开

说明书

技术领域

本发明涉及以太环网技术,具体涉及一种以太环网系统、一种应用于该以太环网系统的边缘节点以及一种以太环网的实现方法。

背景技术

图1为一种典型以太环网的组网示意图。以太环网包括主环和子环,子环可以为一个或多个。在以太网环完整时可能会出现数据环路,从而引起广播风暴。为了避免这种情况的发生,目前各个公司都推出了避免以太环网数据环路的协议。例如,快速环网保护协议(RRPP,Rapid Ring ProtectionProtocol)。

当如图1所示的以太环网中的设备启动RRPP协议时,图1即为一种RRPP环网系统,该RRPP环网系统包括相交的两个环,S1~S4的设备组成主环,S3~S6的设备组成子环。每个环上必须有一个主节点,而且只能有一个,主节点是环网状态的主动检测机制的发起者,也是检测到环故障后的执行操作的决策者。环上除主节点外的所有其他节点是传输节点。主节点和传输节点接入环的两个端口中,一个为主端口,另一个为副端口。如图1所示,主环的主节点为S1,子环的主节点为S6,S2、S3和S4都是主环的传输节点,S5是子环的传输节点。

主环和子环相交的两个交点分别称为边缘节点和辅助边缘节点,在现有技术中边缘节点和辅助边缘节点需要成对配置。如图1所示,S4为边缘节点,S3为辅助边缘节点。边缘节点和辅助边缘节点接入子环的端口称为边缘端口,接入主环的两个端口称为公共端口,边缘节点上公共端口与辅助边缘节点上公共端口之间的链路被称为公共链路。如图1所示,S3上的端口1和端口2为公共端口,端口3为边缘端口,S3与S4之间的链路为公共链路。

环中的主节点主动检测环网状态。具体来说,主节点周期性地从其主端口发送握手(HELLO)报文,该HELLO报文依次经过主环上的传输节点传播,当主节点的副端口在规定时间(该规定时间由Fail定时器定义)内收到主节点自己发送的HELLO报文时,就认为主节点处于完整状态(CompleteState),即环网状态完整。为了防止环上的数据报文形成广播环路,主节点的副端口在规定时间内收到自己发送的HELLO报文时阻塞其副端口,该阻塞是指对数据报文的阻塞。如图1所示,图中设备端口上的符号“”表示该端口被阻塞(BLOCK)。主节点阻塞副端口后,网络拓扑发生改变,为了避免报文定向错误,主节点还需要通知环上的所有传输节点刷新MAC表项和ARP/ND表项。

如果主节点的副端口未在规定时间内收到Hello报文,就认为环网上有链路处于故障状态,此时,主节点放开副端口对数据报文的阻塞,以保证环网上的通信不中断。当链路故障恢复后,主节点再次从副端口收到HELLO报文,则认为环网恢复到完整状态,此时重新阻塞副端口,防止形成数据环路。图1示出了主环和子环均无故障时主环主节点和子环主节点阻塞其副端口的示意图。

主环中的节点总在监控自己的端口链路状态,一旦发现端口DOWN将立即采取措施,这种监控端口链路状态的机制称为快速LINK DOWN通知机制。具体来说,当主环中主节点的主端口检测到端口DOWN后,主节点直接感知链路故障,立即放开副端口。当主环中传输节点上的主端口或副端口发生链路DOWN时,该传输节点将从故障端口配对的状态为UP的副端口或主端口发送LINK-DOWN报文通知主节点。主节点收到LINK-DOWN报文后,放开副端口。与采用HELLO报文检测环网状态的机制相比,LINKDOWN通知机制能够快速地感知到链路故障。采用HELLO报文检测环网状态的机制应用于主环和子环,LINK DOWN通知机制仅应用于主环。

对于多主环的情况,现有技术还引入了子环协议报文通道(SRPT)检查机制。SRPT就是指子环协议报文在主环中的通道。RRPP协议理论上将主环看成是子环的一个逻辑节点,子环的协议报文会通过主环透传,即子环协议报文会被边缘节点和辅助边缘节点广播到主环中,如图1所示,边缘节点S3接到S6发来的子环协议报文,将其通过端口1和端口2广播出去。除下面介绍到的EDGE-HELLO外,主环将子环协议报文视为数据报文,子环协议报文不能通过阻塞的端口。

每个子环有2条SPRT,在图1中分别为S3-S4和S3-S2-S1-S2。在主环完整时,其主节点副端口处于阻塞状态,只有S3-S4是通的。在主环故障时,如果故障发生在S3-S2-S1-S2上,则S3-S4是通的,如果故障发生在S3-S4上则S3-S2-S1-S2是通的。因此,在任意时刻,子环的2条SRPT中,只有一条是通的,那么子环主节点S6会保持副端口的阻塞,这样就避免了形成数据环路。如果子环的2条SRPT全部中断,则子环主节点收不到自己发出的HELLO报文,于是Fail定时器超时,子环主节点放开副端口,这样子环中的S4、S5和S6仍然可以进行通信,从而使得子环可以获得最大的通信通路,且不会造成环路。

但是对于图2示出的在实际中采用较多的双归属以太环网来说,双归属的两个子环即子环1和子环2借助边缘节点和辅助边缘节点相互连接,本身就形成了一个环路。当主环上子环的2条SRPT全部中断后,2个子环的主节点副端口均放开,子环之间势必形成数据环路(数据报文走向如双箭头所示,形成“8”字形数据环路)。

为了消除这一缺陷,引入了上述SRPT状态检查机制,这一SRPT状态检查机制由边缘节点和辅助边缘节点配合完成,其目的是当边缘节点检测到SRPT中断后,在两个子环主节点副端口全部放开之前,阻塞两个子环边缘节点的边缘端口,从而避免子环间形成数据环路。

具体来说,边缘节点是SRPT状态检查机制的发起者和决策者,辅助边缘节点通道状态的监听者,并负责在通道状态改变时及时通知边缘节点。边缘节点通过连入SRPT的两个端口周期性的向主环内发送边缘握手(EDGE-HELLO)报文,该EDGE-HELLO报文依次经过主环上各节点发往辅助边缘节点。如果辅助边缘节点在规定时间内能够收到EDGE-HELLO报文,表明至少有1条SRPT正常,子环报文可以正常通过,反之辅助边缘节点收不到EDGE-HELLO,说明2条SRPT全部中断,子环报文无法通过。当检测到2条SRPT全部中断时,辅助边缘节点立即从边缘端口通过子环链路向边缘节点发送主环故障(MAJOR-FAULT)报文。边缘节点收到MAJOR-FAULT后,阻塞自己的边缘端口。

以图2所示双归属组网为例,当图2所示两条链路故障后,S5和S6的副端口放开,且辅助边缘节点S3接不到边缘节点S4发来的EDGE-HELLO报文,则S3通过其边缘端口即端口3和端口4发送MAJOR-FAULT报文,由于S5和S6都放开了副端口,因此从S3的端口3发出的MAJOR-FAULT报文通过S6到达边缘节点的端口4,从S3的端口4发出的MAJOR-FAULT报文通过S5到达边缘节点的端口3,此时边缘节点S3阻塞其端口3和端口4,阻塞结果如图3所示。从图3可以看出,端口阻塞后,S5和S6仍然可以与S3进行通信,但是不能与S4进行通信,不能保证环网的最大连通性。

同样,对于图1示出的组网结构,当S3-S4和S1-S2两条链路故障后,S6放开副端口,且辅助边缘节点S3接不到边缘节点S4发来的EDGE-HELLO报文,则S3通过其边缘端口即端口3发送MAJOR-FAULT报文,由于S6放开了副端口,因此S4能够接到MAJOR-FAULT报文,此时边缘节点S3阻塞其端口3,阻塞结果如图4所示。从图4可以看出,端口阻塞后,S6可以与S5和S4进行通信,但是不能与S3进行通信,不能保证环网的最大连通性。

可见,现有的SRPT状态检查机制不能够保证环网的最大连通性。

此外,SRPT状态检查机制是通过边缘节点和辅助边缘节点互发报文实现的,因此必须引入边缘节点和辅助边缘节点的概念,且环上只能有一个边缘节点和一个辅助边缘节点,否则将出现报文发送的混乱,从而无法实现SRPT状态检查机制。因此现有的以太环网结构,只支持子环从相同的边缘节点和辅助边缘节点接入主环,在这种情况下,如图5所示的组网将不可用。

发明内容

有鉴于此,本发明提供了一种以太环网系统,能够支持多个子环从不同位置接入主环,以提高组网灵活性,且不会造成数据环路。

该系统包括由节点组成的主环以及一个或多个子环;主环和每个子环均包括一个主节点;每个主节点,用于从自身的主端口发送握手HELLO报文,在从自身的副端口接收到自身发出的HELLO报文后,阻塞副端口;主环中的各节点在接收到来自子环的HELLO报文时,将所接收HELLO报文视为数据报文,根据自身端口状态确定转发或阻塞所接收的HELLO报文;

不同子环从相同或不同的节点接入主环,子环与主环相交的所有节点称为边缘节点;不同子环被配置为具有不同的优先级;

所述边缘节点,用于在接收到源自子环x的HELLO报文时,将所接收HELLO报文转发到主环和优先级不低于子环x的子环中;

系统中的各子环的主节点在接收到来自其他子环的HELLO报文时,将所接收HELLO报文视为数据报文,根据自身端口状态确定转发或阻塞所接收的HELLO报文。

较佳地,各子环中的主节点进一步用于,在预定时间t1内未接到自己发出的HELLO报文时,先放开副端口对非本子环协议报文的阻塞,等待一段设定时间t2后,再放开副端口对数据报文的阻塞。

较佳地,各子环中的主节点包括控制单元、控制域故障定时器和数据域故障定时器;

所述数据域故障定时器的定时时间大于所述控制域故障定时器的定时时间,且数据域故障定时器和控制域故障定时器的定时时间均大于HELLO报文的发送周期;

所述控制单元,用于当所在子环主节点发出HELLO报文后,控制所述控制域故障定时器和所述数据域故障定时器开始计时;当所述控制域故障定时器超时时,放开所在子环主节点的副端口对非本子环协议报文的阻塞;当所述数据域故障定时器超时时,放开所在子环主节点的副端口对数据报文的阻塞;当所在子环主节点接收到自己发出的HELLO报文时,取消所述控制域故障定时器和所述数据域故障定时器的计时。

较佳地,主环的主节点包括控制单元、数据域故障定时器和控制域故障定时器;

所述数据域故障定时器的定时时间大于所述控制域故障定时器的定时时间,且数据域故障定时器和控制域故障定时器的定时时间均大于HELLO报文的发送周期;

所述控制单元,用于当所在主环主节点发出HELLO报文时,控制所述控制域故障定时器和所述数据域故障定时器开始计时;当所述控制域故障定时器超时时,放开所在主环主节点的副端口对子环协议报文的阻塞;当所述数据域故障定时器超时时,放开所在主环主节点的副端口对数据报文的阻塞;当所在主环主节点接收到自己发出的HELLO报文时,取消所述控制域故障定时器和所述数据域故障定时器的计时。

较佳地,主环的各节点进一步用于,当临时阻塞状态维持预定时间t1时,先放开临时阻塞端口对子环协议报文的阻塞,等待一段设定时间t2后,再放开临时阻塞端口对数据报文的阻塞。

较佳地,主环中的节点包括控制单元、控制域故障定时器和数据域故障定时器;

所述数据域故障定时器的定时时间大于所述控制域故障定时器的定时时间,且控制域故障定时器和数据域故障定时器的定时时间均大于HELLO报文的发送周期;

所述控制单元,用于当自身状态迁移到临时阻塞状态时,控制所述控制域故障定时器和数据域故障定时器开始计时;当所述控制域故障定时器超时时,放开所在节点的临时阻塞端口对子环协议报文的阻塞;当所述数据域故障定时器超时时,放开所在节点的临时阻塞端口对数据报文的阻塞。

较佳地,所述数据域故障定时器的定时时间为HELLO报文发送周期的4倍;所述控制域故障定时器的定时时间为HELLO报文发送周期的2倍。

本发明还提供了一种上述应用于以太环网系统中的边缘节点设备,能够支持多个子环从不同位置接入主环,以提高组网灵活性,且不会造成数据环路。

该边缘节点包括报文接收单元和报文转发单元;

所述报文接收单元,用于将接收自节点外部的HELLO报文发送给报文转发单元;

所述报文转发单元,用于在接收到源自子环x的HELLO报文时,将所接收的HELLO报文转发到所在系统的主环和优先级不低于子环x的子环中。

较佳地,所述报文转发单元包括对应模块和转发模块;

所述对应模块,用于保存设置的源环信息与出端口的对应关系;源环信息为主环,则对应的出端口为连接主环的公共端口;源环为子环,则对应的出端口包括连接主环的公共端口和特定边缘端口,所述特定边缘端口为与优先级不低于源环的子环相连的边缘端口;

所述转发模块,用于在接收到HELLO报文后,采用根据所接收HELLO报文确定的源环信息在所述对应模块中进行匹配,找到所接收HELLO报文的出端口,并从查找到的出端口转发所接收的HELLO报文。

本发明又提供了一种以太环网系统的实现方法,能够支持多个子环从不同位置接入主环,以提高组网灵活性,且不会造成数据环路。

该方法应用与包括主环以及一个或多个子环的以太环网系统中;其特征在于,不同子环从相同或不同的节点接入主环,子环与主环相交的所有节点称为边缘节点;

该方法还包括:为不同子环配置不同优先级;

主环和每个子环中的主节点从主端口发送HELLO报文,在副端口接收到自身发送的握手报文后,阻塞副端口;

主环中的各节点在接收到来自子环的HELLO报文时,将所接收HELLO报文视为数据报文,根据自身端口状态确定转发或阻塞所接收的HELLO报文;

边缘节点在接收到源自子环x的HELLO报文时,将所接收的HELLO报文转发到主环和优先级不低于子环x的子环中;

系统中各子环的主节点在接收到来自其他子环的HELLO报文时,根据该子环的主节点自身端口状态确定转发或阻塞所接收的HELLO报文。

较佳地,该方法进一步包括:预先设置源环信息与出端口的对应关系;源环信息为主环,则对应的出端口为连接主环的公共端口;源环为子环,则对应的出端口包括连接主环的公共端口和特定边缘端口,所述特定边缘端口为与优先级不低于源环的子环相连的边缘端口;

所述将所接收的HELLO报文转发到主环和优先级不低于子环x的子环中包括:边缘节点在接收到HELLO报文后,采用根据所接收HELLO报文确定的源环信息在所述对应关系中进行匹配,找到所接收HELLO报文的出端口,并从查找到的出端口转发所接收的HELLO报文。

较佳地,该方法进一步包括:各子环中的主节点在预定时间t1内未接到自己发出的HELLO报文时,先放开副端口对非本子环协议报文的阻塞,等待一段设定时间t2后,再放开副端口对数据报文的阻塞。

较佳地,所述先放开副端口对非本子环协议报文的阻塞,等待一段设定时间t2后,再放开副端口对数据报文的阻塞,包括:

当子环的主节点Sx1发出HELLO报文后,控制一控制域故障定时器和一数据域故障定时器开始计时;

当所述控制域故障定时器超时时,放开主节点Sx1的副端口对非本子环协议报文的阻塞;当所述数据域故障定时器超时时,放开主节点Sx1的副端口对数据报文的阻塞;

当主节点Sx1接收到自己发出的HELLO报文时,取消所述控制域故障定时器和所述数据域故障定时器的计时;

所述数据域故障定时器的定时时间大于所述控制域故障定时器的定时时间,且数据域故障定时器和控制域故障定时器的定时时间均大于HELLO报文的发送周期。

较佳地,该方法进一步包括:

当主环的主节点Sx2发出HELLO报文时,控制一控制域故障定时器和一数据域故障定时器开始计时;

当所述控制域故障定时器超时时,放开主节点Sx2的副端口对子环协议报文的阻塞;当所述数据域故障定时器超时时,放开主节点Sx2的副端口对数据报文的阻塞;

当主节点Sx2接收到自己发出的HELLO报文时,取消所述控制域故障定时器和所述数据域故障定时器的计时;

所述数据域故障定时器的定时时间大于所述控制域故障定时器的定时时间,且数据域故障定时器和控制域故障定时器的定时时间均大于HELLO报文的发送周期。

较佳地,该方法进一步包括:主环的各节点在临时阻塞状态维持预定时间t1时,先放开临时阻塞端口对子环协议报文的阻塞,等待一段设定时间t2后,再放开临时阻塞端口对数据报文的阻塞。

较佳地,该方法进一步包括:所述先放开临时阻塞端口对子环协议报文的阻塞,等待一段设定时间t2后,再放开临时阻塞端口对数据报文的阻塞,包括:

主环的节点Sx3在自身状态迁移到临时阻塞状态时,控制一控制域故障定时器和一数据域故障定时器开始计时;

当所述控制域故障定时器超时时,放开节点Sx3的临时阻塞端口对子环协议报文的阻塞;当所述数据域故障定时器超时时,放开节点Sx3的临时阻塞端口对数据报文的阻塞;

所述数据域故障定时器的定时时间大于所述控制域故障定时器的定时时间,且控制域故障定时器和数据域故障定时器的定时时间均大于HELLO报文的发送周期。

较佳地,所述数据域故障定时器的定时时间为HELLO报文发送周期的4倍;所述控制域故障定时器的定时时间为HELLO报文发送周期的2倍。

根据以上技术方案可见,由以上方案可见,本发明由于取消了辅助边缘节点的概念,因此当需要多子环接入时,可以灵活的选择接入节点,而不是必须固定从唯一的边缘节点和辅助边缘节点接入,因此可以实现如图5所示的多子环结构。

而且,本发明设置子环优先级,并允许低优先级子环中的HELLO报文在高优先级子环中转发,从而增加了不需要经过主环的子环HELLO报文转发路径,而现有技术中子环HELLO报文转发路径必须经过主环。当主环出现链路故障,尤其是出现双链路故障(即主环上的一条公共链路故障,一条非公共链路故障)时,经过主环的子环HELLO报文转发路径都被阻断,但本发明增加的不需要经过主环的子环HELLO报文转发路径没有受到影响,HELLO报文转发路径的完整使得相应子环主节点能够阻塞副端口,不会出现数据环路,保证环网的正常运行。

其次,本发明在子环主节点上对非本子环的协议报文和数据报文进行区分,当在预定时间内未接到自己发出的HELLO报文时,先放开副端口对非本子环协议报文的阻塞,等待一段设定时间t2后,再放开副端口对数据报文的阻塞,从而避免了主环双链路故障时的瞬间数据环路。

此外,本发明在主环各节点上对子环的协议报文和数据报文进行区分,当节点的临时阻塞状态维持预定时间时,先放开临时阻塞端口对子环协议报文的阻塞,等待一段设定时间后,再放开临时阻塞端口对数据报文的阻塞,从而避免了主环双链路故障恢复时的瞬间数据环路。

附图说明

图1为现有技术中一种典型以太环网的组网示意图。

图2为现有技术中双归属以太环网的组网示意图。

图3为现有技术中双归属以太环网双链路故障后,执行SRPT状态检查机制后的端口阻塞示意图。

图4为现有技术中单子环以太环网双链路故障后,执行SRPT状态检查机制后的端口阻塞示意图。

图5为一种多个子环通过不同节点接入主环的以太环网示意图。

图6为本发明实施例提供的以太环网示意图。

图7为本发明实施例中边缘节点的示意图。

图8为本发明实施例一中主环的HELLO报文转发路径示意图。

图9为本发明实施例一中子环1的HELLO报文转发路径示意图。

图10为本发明实施例一中子环2的HELLO报文转发路径示意图。

图11为本发明实施例一中双链路故障的HELLO报文转发路径示意图。

图12为本发明实施例二中子环1的HELLO报文转发路径示意图。

图13为本发明实施例二中子环2的HELLO报文转发路径示意图。

图14为本发明实施例二中公共链路S1-S2故障后的示意图。

图15为本发明实施例二中公共链路S3-S4故障后的示意图。

图16为本发明实施例二中公共链路S1-S2和S3-S4故障后的示意图。

图17为本发明实施例二中非公共链路S1-S4故障后的示意图。

图18为本发明实施例二中双链路故障后的示意图。

具体实施方式

下面结合附图并举实施例,对本发明进行详细描述。

本发明为一种以太环网的实现方案,如图6所示,该方案取消了辅助边缘节点的概念,由于系统中不存在辅助边缘节点,因此现有技术中的SRPT检测机制也随之取消。具体来说,本发明的以太环网系统包括主环和一个或多个子环;多个子环从相同或不同的节点接入主环,子环与主环相交的所有节点都称为边缘节点;边缘节点接入子环的端口为边缘端口,接入主环的两个端口为公共端口。

本发明还引入了子环优先级的概念。子环优先级的用途是,低优先级子环的主节点发送的HELLO报文可以在高优先级子环内转发,且在高优先级子环内转发时,低优先级子环的主节点发送的HELLO报文被高优先级子环看作数据报文,按照数据报文进行阻塞或转发。而高优先级子环的主节点发送的HELLO报文不能在低优先级的子环内转发。另外,与现有技术相同的是,子环的主节点发送的HELLO报文还要在主环中转发。

在引入子环优先级的情况下,本发明以太环网系统中的边缘节点,在接收到源自子环x的HELLO报文时,将所接收的HELLO报文转发到主环和优先级不低于子环x的子环中。其中,不低于子环x的子环包括子环x本身。

子环中的主节点在接收到来自其他子环的HELLO报文时,将所接收HELLO报文视为数据报文,根据该子环的主节点自身端口状态确定转发或阻塞所接收的HELLO报文。

与现有技术相同的是,主环和子环中的主节点也会执行主动检测环网状态的动作,即每个主节点从自身的主端口发送握手HELLO报文,在从自身的副端口接收到自己发出的HELLO报文后阻塞副端口,从而切断数据环路。并且主环上的各节点将来自子环的HELLO报文视为数据报文,根据自身端口状态确定转发或阻塞所接收的HELLO报文。

在本发明中,可以通过在协议报文中设置优先级字段来表示协议报文源自哪个子环。例如,对应RRPP协议来说,RRPP协议报文的字段中具有保留字段,可以任选一个保留字段定义为优先级字段。较佳地,为了避免增加字段,也可以利用现有RRPP协议报文中的环标识(Ring ID)字段来标识子环优先级。例如,子环1的Ring ID为1,则其优先级为1,子环2的Ring ID为2,则其优先级为2。数字越小表示优先级越大,或者数字越大表示优先级越大,数字与优先级的具体对应关系可以进行设置。

由以上方案可见,本发明由于取消了辅助边缘节点的概念,因此当需要多子环接入时,可以灵活的选择接入节点,而不是必须固定从唯一的边缘节点和辅助边缘节点接入,因此可以实现如图5所示的多子环结构。

而且,本发明设置子环优先级,并允许低优先级子环中的HELLO报文在高优先级子环中转发,从而增加了不需要经过主环的子环HELLO报文转发路径,而现有技术中子环HELLO报文转发路径必须经过主环。当主环出现链路故障,尤其是出现双链路故障(即主环上的一条公共链路故障,一条非公共链路故障)时,经过主环的子环HELLO报文转发路径都被阻断,但本发明增加的不需要经过主环的子环HELLO报文转发路径没有受到影响,HELLO报文转发路径的完整使得相应子环主节点能够阻塞副端口,不会出现数据环路,保证环网的正常运行。而且,从以下举出的各个实施例可以看出,本发明的RRPP环网还能够保证环网的最大连通性。

本发明还提供了一种应用于上述以太环网系统的边缘节点。图7为本发明实施例中边缘节点的示意图。如图7所示,该边缘节点包括报文接收单元和报文转发单元,其中,

报文接收单元,用于将接收自节点外部的HELLO报文发送给报文转发单元;

报文转发单元,用于在接收到源自子环x的HELLO报文时,将所接收的HELLO报文转发到所在以太环网系统的主环和优先级不低于子环x的子环中。

在实际中,报文转发单元可以在接收到HELLO报文时,根据HELLO报文中的信息判断HELLO报文源自哪个子环,然后再根据子环间的优先级关系,确定向哪个子环转发所接收HELLO报文。但是这样的操作过于复杂,给边缘节点设备带来很大的计算负担。

因此较佳地,本发明预先根据子环间的优先级关系在边缘设备上存储设置的源环信息与出端口的对应关系,然后在接收到HELLO报文后,通过匹配对应关系找到相应出端口并转发。具体来说,报文转发单元包括对应模块和转发模块;其中,

对应模块,用于保存根据各子环优先级关系设置的源环信息与出端口的对应关系。该对应关系可以采用ACL实现,或者设置报文组播MAC地址与出端口的对应关系实现。在实际中,对应模块中保存的对应关系的具体内容需要根据网络结构进行预先配置。

其中,对应关系可以包括:源环信息为主环,则对应的出端口为连接主环的公共端口;源环为子环,则对应的出端口包括连接主环的公共端口和特定边缘端口,所述特定边缘端口为与优先级不低于源环的子环相连的边缘端口。

转发模块,用于在接收到HELLO报文后,采用根据所接收HELLO报文确定的源环信息在对应模块保存的对应关系中进行匹配,找到所接收HELLO报文的出端口,并从查找到的出端口转发所接收的HELLO报文。

其中,根据所接收HELLO报文确定源环信息的方式可以为:根据报文携带的MAC地址确定源环信息,或者是根据报文中的RingID字段确定源环信息。

下面以图6示出的双归属以太环网系统为例对本发明的边缘节点的对应关系设置和根据对应关系转发报文进行描述。如图6所示,设备S1~S4组成主环,设备S3、S4和S5组成子环1且S5为主节点,设备S3、S4和S6组成子环2且S6为主节点。统一定义各主节点的端口2为副端口。S4和S3为边缘节点。假设子环1的优先级高于子环2。

那么,在设备S4上设置的对应关系可以为:源环信息为子环1时,则对应的出端口为端口1、端口2和端口3;源环信息为子环2,则对应的出端口为端口1、端口2、端口3和端口4。源环信息为主环时,对应的出端口为端口1和端口2。需要说明的是,接收HELLO报文的端口不再转发所接收HELLO报文。

当S4从端口1/端口2接收到源自主环的HELLO报文时,从端口2/端口1转发;当S4从端口3接收到源自子环1的HELLO报文时,根据对应关系从端口1和端口2转发;当S4从端口4接收到源自子环2的HELLO报文时,根据对应关系从端口1、端口2和端口3转发。

虽然边缘节点将所接收的HELLO报文复制了多份,并通过不同的端口转发出去,但是在链路正常的情况下,只有一份HELLO报文会回到源子环主节点,其他HELLO报文在转发路径上被某个节点阻塞,任意时刻只有一条HELLO转发路径完整。下面的实施例将会详细说明这一点。

本发明可以应用于启动RRPP协议的以太环网,也可以应用于启动其他环网协议的以太环网,只要以太环网中的各节点按照上述方案执行相应操作,就在本发明的保护范围内。

下面以启动RRPP协议的以太环网为例,举多个实施例对本发明的实现方式和效果进行详细描述。且在以下实施例中,均定义节点的端口1为主端口,端口2为副端口。

实施例一

本实施例以图6示出的双归属组网结构为例。首先说明主环和各子环的HELLO报文转发路径。

图8示出了本实施例一中主环的HELLO报文转发路径。如图8所示,当主环完整时,主环主节点S1的端口1发送的HELLO报文经过各传输节点,由主节点的副端口接收到,S1的端口2被阻塞,这与现有技术是相同的。

图9示出了本实施例一中子环1的HELLO报文的转发路径。如图9所示,当主环和子环完整时,主环主节点S1的副端口即端口2被阻塞。子环1主节点S5的端口1发送的HELLO报文到达边缘节点S4,由于HELLO报文来自子环1,且子环1的优先级大于子环2,则S4将HELLO报文转发到主环中,即通过端口1和端口2转发HELLO报文。由于S1的端口2被阻塞而且子环HELLO报文在主环中被当作数据报文,因此子环1的HELLO报文到达S1后停止转发,而另一路HELLO报文通过公共链路S3-S4到达另一边缘设备S3后,由S3通过其端口1、2和4转发出去,通过端口4转发的HELLO报文回到S5,从而形成的一条HELLO报文转发路径即图9中的路径②,此时S5阻塞其副端口,以避免形成数据环路。而S3通过端口1和2发送出去的报文在S1处被阻塞。

可见,当主环和子环完整时,图9中的路径①不通,只有路径②通。当公共链路S3-S4故障时,S1放开副端口,则路径②断开,路径①通。

图10示出了本实施例一中子环2的HELLO报文的转发路径。如图10所示,当主环和子环完整时,主环主节点S1的副端口即端口2被阻塞。子环2主节点S6的端口1发送的HELLO报文到达边缘节点S4,由于HELLO报文来自子环2,且子环2的优先级低于子环1,则S4将HELLO报文转发到主环和子环1中,即通过端口1、2和3转发HELLO报文。HELLO报文在主环和子环1中被转发,由于S1和S5的副端口被阻塞,因此HELLO报文只能够通过公共链路S3-S4到达另一边缘节点S3。S3通过其端口1~4转发该HELLO报文,只有通过端口3转发的报文回到S6,从而形成的一条HELLO报文转发路径即图10中的路径②,此时S6阻塞其副端口,以避免形成数据环路。

可见,当主环和子环完整时,图10中的路径①和路径③不通,只有路径②通。当公共链路S3-S4故障时,S1放开副端口,S5仍阻塞,因此子环2只有路径①通;当公共链路和主环上任一其他链路故障时,S5放开其副端口,因此子环2只有路径③通。

结合图8~图10示出的主环和各子环的HELLO报文转发路径,可以得知,当主环和所有子环完整时,子环1和子环2都有一条HELLO报文转发路径完整,因此子环1和子环2中主节点的副端口被阻塞,不会形成数据报文环路,且各个节点之间都能够保持通信。

当主环上有一条公共链路故障时,S1的副端口放开阻塞,保证主环各节点的连通。子环1和子环2仍分别有一条HELLO报文转发路径完整,即图9中的路径①和图10中路径①,因此子环1和子环2中主节点的副端口仍然阻塞,不会形成数据报文环路,且各个节点之间都能够保持通信。

当主环上有一条非公共链路故障时,例如链路S1-S4故障,S1的副端口放开阻塞,保证主环各节点的连通。子环1和环2仍分别有一条HELLO报文转发路径完整,即图9中的路径②和图10中路径②,因此子环1和子环2中主节点的副端口仍然阻塞,不会形成数据报文环路,且各个节点之间都能够保持通信。

当主环上有一条公共链路和一条非公共链路故障时,如图11所示的链路S3-S4和链路S1-S4故障,此时,主环主节点S1的副端口放开,同时子环1的HELLO报文转发路径全部中断,因此子环1主节点S5的副端口也放开。而子环2中仍然存在路径③所示的HELLO报文转发路径,因此子环2中主节点的副端口仍然阻塞,防止环路的发生。而且,从图11可以看出,虽然主环中有两条链路故障,但系统中的S1~S6六个设备之间能有通路,从而保证了环网的最大连通性。

实施例二

本实施例以子环1和子环2通过不同边缘节点接入主环为例。参见图12,设备S1~S4组成主环,S7、S8、S1和S2构成了子环1,且通过边缘节点S1和S2接入主环,S5、S6、S3和S4构成子环2,且通过边缘节点S3和S4接入主环。子环1的优先级大于子环2。

首先说明主环和各子环的HELLO报文转发路径。

本实施例中,主环的HELLO报文转发路径也是在主环内。这与现有技术是相同的。当主环完整时,S1的端口2被阻塞。

图12还示出了本实施例二中子环1的HELLO报文的转发路径。如图12所示,当主环和子环完整时,主环主节点S1的副端口即端口2被阻塞。子环1的主节点S7的端口1发送的HELLO报文到达边缘节点S2,由于HELLO报文来自子环1,且子环1的优先级大于子环2,则S2将HELLO报文转发到主环中,即通过端口1和端口2转发HELLO报文。由于S1的端口2被阻塞,因此子环1的HELLO报文通过S3和S4到达S1的端口2时,停止转发。而另一路的HELLO报文通过公共链路S1-S2到达S1后,由S1通过其端口3转发至S7,从而形成一条HELLO报文转发路径即图12中的路径①,此时S7阻塞其副端口,以避免形成数据环路。

可见,当主环和子环完整时,图12中的路径②不通,只有路径①通。而当公共链路S1-S2故障时,S1放开副端口,则路径①断开,路径②通。

图13示出了本实施例二中子环2的HELLO报文的转发路径。如图13所示,当主环和子环完整时,S1的副端口被阻塞。子环2主节点S6的端口1发送的HELLO报文到达边缘节点S4时,由于HELLO报文来自子环2,且子环2的优先级低于子环1,则S4将该HELLO报文转发到主环(因为S4未连接子环1)中,即通过端口1和2转发HELLO报文。由于S1副端口被阻塞,因此HELLO报文只能够通过公共链路S3-S4到达另一边缘节点S3。S3通过其端口2和3转发该HELLO报文,只有通过端口3转发的报文回到S6,从而形成的一条HELLO报文转发路径即图12中的路径①,此时S6阻塞其副端口。而通过S3的端口2转发的HELLO报文会因为S1和S7的阻塞而停止转发。

可见,当主环和子环完整时,图13中的路径②和路径③不通,只有路径①通。当公共链路S3-S4故障时,S1放开副端口,S7仍阻塞,此时图13中的路径②通,路径①和路径③不通。当两条公共链路故障,或一条公共链路故障和一条主环非公共链路故障时,图13中的路径③通,路径①和路径②不通。

结合图12~图13示出的各子环的HELLO报文转发路径,可以得知,当主环和所有子环完整时,子环1和子环2都有一条HELLO报文转发路径完整,因此子环1和子环2中主节点的副端口被阻塞,从而防止数据报文环路,且各个节点之间都能够保持通信。

当主环上的公共链路S1-S2故障时,参见图14,S1的副端口放开阻塞,主环内的各节点可以正常通信。对于子环1,子环1的路径①不通,但由于S1副端口的放开,子环1的路径②开通,因此子环1保有一条完整的HELLO报文转发路径,S7的副端口仍阻塞。对于子环2,链路S1-S2故障对子环2不会产生影响,子环2的路径①保持连通。因此,子环1和子环2分别有一条HELLO报文转发路径完整,子环1和子环2中主节点的副端口仍然阻塞,不会形成数据环路。而且系统中的S1~S8八个设备之间都能够保持通信,保证了环网的最大连通性。

当主环上的公共链路S3-S4故障时,参见图15,S1的副端口放开阻塞,主环内的各节点可以正常通信。对于子环1,链路S3-S4故障对子环1不会产生影响,子环1的路径①保持连通。对于子环2,子环2的路径①不通,但由于S1副端口的放开,子环2的路径②开通。因此,子环1和子环2分别有一条HELLO报文转发路径完整,子环1和子环2中主节点的副端口仍然阻塞,不会形成数据环路。而且系统中的S1~S8八个设备之间都能够保持通信,保证了环网的最大连通性。

当主环上的公共链路S3-S4和S3-S4均故障时,参见图16,主环中的主节点S1放开其副端口;子环1中两条的HELLO报文转发路径均不通,因此主节点S7也放开其副端口,此时,子环2中的路径③连通,子环2中主节点的副端口仍然阻塞。从图16中可以看出,系统中的S1~S8八个设备之间能有通路,从而保证了环网的最大连通性。

当主环上的一条非公共链路S1-S4故障时,参见图17,主环中的主节点S1放开其副端口;子环1中路径①可用,子环2的路径①可用,因此子环1和子环2分别有一条HELLO报文转发路径完整,子环1和子环2中主节点的副端口仍然阻塞,不会形成数据报文环路。而且,系统中的S1~S6六个设备之间都能够保持通信,保证了环网的最大连通性。非公共链路S2-S3故障后的HELLO报文转发路径与图17类似,这里不详述。

当主环上一条公共链路S3-S4和一通非公共链路S1-S4故障时,参见图18,主环中主节点S1放开其副端口;子环1中路径①可用;子环2主节点S6放开其副端口。此时,如图18所示,主环、子环1和子环2中不存在数据报文环路,而且,系统中的S1~S8八个设备之间都能够保持通信,保证了环网的最大连通性。

在实际中,当主环双链路故障时,或者主环从双链路故障恢复时,都有可能产生瞬间环路。本发明通过设置数据域定时器和控制域定时器来避免瞬间环路的产生。

首先对双链路故障时瞬间环路的避免进行详细描述。

在现有技术中,主节点在规定时间内未接收到HELLO报文,才放开副端口。该规定时间由Fail定时器决定,Fail定时器的定时时间通常设置为HELLO报文发送周期倍数,通常为3倍。系统中各节点的Fail定时器的定时时间相同。

那么,如图11所示的主环双链路故障发生时,子环1主节点S5的副端口和子环2主节点S6的副端口都未放开,子环2的HELLO报文在子环1中被视为数据报文,因此此时子环2的路径③仍然不通。当S5和S6的Fail定时器超时时,S5和S6同时放开副端口,此时子环2的路径③连通,路径③的连通使得子环2的HELLO报文和数据报文可能同时到达子环2主节点S6的副端口,由于S6还未来得及阻塞其副端口,因此形成了瞬间数据环路。

为了避免双链路故障时瞬间环路的产生,本发明在子环主节点上区分数据报文(包括主环和子环的数据报文)和非本子环的协议报文,不再一视同仁。当在规定时间内未接到自己发出的HELLO报文时,先放开非本子环协议报文的阻塞,等待一段时间后,再放开数据报文的阻塞。

该区分数据报文和非本子环的协议报文的方案可以通过设置两个Fail定时器实现。具体来说,在每个子环主节点上设置两个定时器,一个是数据域Fail定时器,一个是控制域Fail定时器,数据域Fail定时器的定时时间大于控制域Fail定时器,且这两个定时器的定时时间均大于HELLO报文的发送周期。较佳地,可以设置控制域Fail定时器的定时时间为HELLO报文发送周期的2倍,数据域Fail定时器的定时时间为HELLO报文发送周期的4倍。

那么,子环主节点中的控制单元,当所在子环主节点发出的HELLO报文时,控制控制域Fail定时器和数据域Fail定时器开始计时;当控制域Fail定时器超时时,放开所在子环主节点的副端口对非本子环协议报文的阻塞;当数据域Fail定时器超时时,放开所在子环主节点的副端口对数据报文的阻塞;当所在子环主节点接收到自己发出的HELLO报文时,取消控制域Fail定时器和数据域Fail定时器的计时。

参见图11,采用两个Fail定时器的方案,当主环双链路故障后,S5和S6会在控制域Fail定时器超时时,放开HELLO报文的阻塞,此时子环2的HELLO报文沿着路径③到达S6,于是S6阻塞其副端口以避免数据环路,并且S6取消两个Fail定时器的计时,从而取消了定时器超时状态。当S5的数据域Fail定时器超时时,S5放开阻塞状态,使得数据报文得以流通。

由于主环有快速LINK-DOWN通知机制,因此设置两个Fail定时器的机制可以不引入主节点。当然,为了避免LINK-DOWN通知报文丢失的情况,也可以在主环主节点上设置两个Fail定时器。

与子环主节点相似,当在主环主节点上设置两个Fail定时器时,子环主节点中的控制单元在所在主环主节点发出的HELLO报文时,控制控制域Fail定时器和数据域Fail定时器开始计时;当控制域Fail定时器超时时,放开所在主环主节点的副端口对子环协议报文的阻塞;当数据域Fail定时器超时时,放开所在主环主节点的副端口对数据报文的阻塞;当所在主环主节点接收到自己发出的HELLO报文时,取消控制域Fail定时器和数据域Fail定时器的计时。

下面,对主环从双链路故障恢复时的瞬间环路避免进行详细描述。

在现有技术中,为了避免瞬时环路,当某链路从故障恢复时,先将该链路两端的端口设置为临时阻塞(Pre-forwarding)状态,然后在接到主节点的确认恢复报文(COMPLETE-FLUSH-FDB)时,或者Pre-forwarding状态维持规定时间后,才从Pre-forwarding状态切换为连通(Link-Up)状态。所述规定时间由Fail定时器决定,Fail定时器的定时时间通常设置为HELLO报文发送周期倍数,常为3倍。当端口处于Pre-forwarding状态时,数据报文和非本环的协议报文均不能通过。

那么,如图11所示的主环双链路故障恢复时,主环上S1、S3和S4仍处于Pre-forwarding状态,子环的协议报文和数据报文还不能通过主环。当S1、S3和S4的Pre-forwarding状态维持规定时间后,同时切换为连接(Link-Up)状态,从而放开各自的副端口,此时子环1的协议报文和数据报文同时进入子环1,此时子环1主节点S5的副端口仍处于放开状态,就形成了瞬间数据环路。

为了避免双链路故障恢复时瞬间环路的产生,本发明在主环各节点上区分数据报文和子环协议报文,不再一视同仁。当主环节点的Pre-forwarding状态维持时间达到规定时间时,先放开子环协议报文的阻塞,等待一段时间后,再放开数据报文的阻塞。

该区分数据报文和子环协议报文的方案可以通过设置两个Fail定时器实现。具体来说,在主环的各节点上设置两个定时器,一个是数据域Fail定时器,一个是控制域Fail定时器,数据域Fail定时器的定时时间大于控制域Fail定时器,且这两个定时器的定时时间均大于HELLO报文的发送周期。较佳地,可以设置控制域Fail定时器的定时时间为HELLO报文发送周期的2倍,数据域Fail定时器的定时时间为HELLO报文发送周期的4倍。

那么,主环各节点中的控制单元,在自身状态迁移到pre-forwarding状态时,控制控制域Fail定时器和数据域Fail定时器开始计时;当控制域Fail定时器超时时,放开临时阻塞端口对子环协议报文的阻塞;当数据域Fail定时器超时时,放开临时阻塞端口对数据报文的阻塞。

从以上所述可见,本发明的RRPP环网系统能够提供灵活的子网接入方式,在主环链路出现故障时,能够保证不出现数据环路,而且能够在最大限度内保证环网最大连通性。而且,由于本发明取消了SRPT状态检查机制,因此如果出现如图4所示的环网结构和故障时,S3不会阻塞其端口3,从而保证了环网的最大连通性。

基于以上所述的本发明以太环网系统,本发明还提供了一种以太环网的实现方法,该方法应用与包括主环以及一个或多个子环的以太环网系统中;多个子环从相同或不同的节点接入主环,子环与主环相交的节点称为边缘节点。该方法包括以下步骤:

A、为不同子环配置不同优先级。

B、主环和每个子环中的主节点,从主端口发送HELLO报文,在副端口接收到自身发送的握手报文后,阻塞副端口。

C、主环中的各节点在接收到来自子环的HELLO报文时,将所接收HELLO报文视为数据报文,根据自身端口状态确定转发或阻塞所接收的HELLO报文。

D、边缘节点在接收到源自子环x的HELLO报文时,将所接收的HELLO报文转发到主环和优先级不低于子环x的子环中。与现有技术相同,边缘节点在接收到源自主环的HELLO报文时,只转发到主环中。

E、各子环的主节点在接收到来自其他子环的HELLO报文时,将所接收HELLO报文视为数据报文,根据主节点端口状态确定转发或阻塞所接收的HELLO报文。

以上各步骤的序号并不用于限定步骤执行的先后顺序。

其中,所述步骤A的配置步骤可以为:采用现有技术中的RingID字段作为本发明的子环优先级标识。

所述步骤B可以通过匹配预先配置的源环信息与出端口的对应关系实现。该对应关系已经在前文具体描述,这里略。在这种情况下,所述步骤B为:各边缘节点将所接收的HELLO报文转发到主环和优先级不低于子环x的子环中包括:边缘节点在接收到HELLO报文后,采用根据所接收HELLO报文确定的源环信息在所述对应关系中进行匹配,找到所接收HELLO报文的出端口,并从查找到的出端口转发所接收的HELLO报文。

为了避免主环双链路故障时可能出现的瞬间数据环路,该方法进一步包括如下步骤:各子环中的主节点在预定时间t1内未接到自己发出的HELLO报文时,先放开副端口对非本子环协议报文的阻塞,等待一段设定时间t2后,再放开副端口对数据报文的阻塞。

该步骤可以通过设置两个Fail定时器实现。具体来说,当子环的主节点Sx1发出HELLO报文后,控制一控制域Fail定时器和一数据域Fail定时器开始计时;当所述控制域Fail定时器超时时,放开主节点Sx1的副端口对非本子环协议报文的阻塞;当所述数据域Fail定时器超时时,放开主节点Sx的副端口对数据报文的阻塞;当主节点Sx1接收到自己发出的HELLO报文时,取消所述控制域Fail定时器和所述数据域Fail定时器的计时。

其中,数据域Fail定时器和控制域Fail定时器的设置与前文相同,这里略。

该双Fail定时器的机制也可以引入主环主节点,用以避免LINK-DOWN报文丢失时可能引起的瞬间数据环路。在这种情况下,该方法进一步包括如下步骤:

当主环的主节点Sx2发出HELLO报文时,控制一控制域Fail定时器和一数据域Fail定时器开始计时;

当控制域Fail故障定时器超时时,放开主节点Sx2的副端口对子环协议报文的阻塞;当数据域Fail定时器超时时,放开主节点Sx2的副端口对数据报文的阻塞;

当主节点Sx2接收到自己发出的HELLO报文时,取消控制域Fail定时器和数据域Fail定时器的计时。

为了避免主环双链路故障恢复时可能出现的瞬间数据环路,该方法进一步包括如下步骤:主环的各节点在临时阻塞状态维持预定时间t1时,先放开临时阻塞端口对子环协议报文的阻塞,等待一段设定时间t2后,再放开临时阻塞端口对数据报文的阻塞。

该步骤也可以通过设置上述的两个Fail定时器实现。具体来说,当主环的各节点Sx3在自身状态迁移到pre-forwarding状态时,控制一控制域Fail定时器和一数据域Fail定时器开始计时;

当控制域Fail定时器超时时,放开节点Sx3的临时阻塞端口对子环协议报文的阻塞;当数据域Fail定时器超时时,放开节点Sx3的临时阻塞端口对数据报文的阻塞。

综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号