CN105897578A - 一种快速自愈的变电站环网协议算法和实现方法 - Google Patents

一种快速自愈的变电站环网协议算法和实现方法 Download PDF

Info

Publication number
CN105897578A
CN105897578A CN201410458238.9A CN201410458238A CN105897578A CN 105897578 A CN105897578 A CN 105897578A CN 201410458238 A CN201410458238 A CN 201410458238A CN 105897578 A CN105897578 A CN 105897578A
Authority
CN
China
Prior art keywords
node
port
control frame
frps
ring
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.)
Granted
Application number
CN201410458238.9A
Other languages
English (en)
Other versions
CN105897578B (zh
Inventor
姬磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NANJING CHANGYANG TECHNOLOGY Co Ltd
Original Assignee
Individual
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CN201410458238.9A priority Critical patent/CN105897578B/zh
Publication of CN105897578A publication Critical patent/CN105897578A/zh
Application granted granted Critical
Publication of CN105897578B publication Critical patent/CN105897578B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Small-Scale Networks (AREA)

Abstract

一种快速自愈的变电站环网协议算法和实现方法,它涉及网络协议算法领域,它包含FRPS环、环端口、控制VLAN、业务VLAN、主节点、传输节点、控制帧。FRPS的实现是基于和内核空间进行通信来实现的。在内核空间,系统能够对底层的端口进行监控和设置,同时内核空间还能够对底层接收的数据包进行处理,筛选出FRPS协议的控制帧,并通知用户空间的处理程序来处理。在用户空间,FRPS协议的控制帧的发送需要先交给内核空间,再由内核空间来驱动底层硬件发送,并且FRPS协议在实现过程中也需要对端口进行直接的操作,如阻塞,打开阻塞,刷新MAC地址表和发送控制帧。它通过环网控制协议将物理的环变为逻辑的链,从而避免了在环网上形成广播风暴。

Description

一种快速自愈的变电站环网协议算法和实现方法
技术领域:
本发明涉及网络协议算法领域,具体涉及一种智能变电站内网络快速自愈算法及其实现方法。
背景技术:
在由各种设备连接形成的网络中,经常会因为某个节点或设备出现故障而导致整个网络瘫痪。通常将这个现象称为“单点故障”。网络可靠性是网络性能的重要指标。为了保证网络的正常的运行,在网络的组建中就需要通过一些方法来避免单点故障。当网络发生故障,要以极快的方式恢复通讯,保障网络正常运行。而构建冗余网络是避免单点故障的重要措施。
冗余设计是网络设计的重要部分,是保证网络整体可靠性能的重要手段。而冗余拓扑就能解决网络中的单点故障。当网络出现故障时,可以切换到冗余的拓扑上,从而恢复网络的功能。
在骨干网络设备连接中,单一链路的链接很容易,但一个简单的故障就会造成网络的中断。因此在实际网络组建的过程中,为了保持网络的稳定性,再多台交换机组成的网络环境中,通常都使用一些备份连接,以提高网络的健全性和稳定性。这里的备份连接也叫备份链路,或者冗余链路。备份链路之间的交换机直接经常互相连接,形成一个还路,通过环路可以在一定程度上实现冗余。链路的冗余备份能为网络带来健全性、稳定性和可靠性的好处,但是备份链路会使网络存在环路,环路问题的备份链路所面临的最为严重的问题,交换机直接的环路将导致网络新问题,即冗余拓扑结构会引起广播风暴,多帧复制,MAC地址表错误的问题。
如果网络中存在环路,目的主机可能会从不同端口,收到某个数据帧的多个副本,此时会导致交换机在处理这些数据帧时无从选择,可能造成无法确定该处理哪个帧,严重时会导致网络连接的中断。参看说明书附图1,当计算机A向路由器发送数据包,当如果交换机A和交换机B都是刚刚启动,此时他们的MAC表里没有路由器的MAC地址。交换机A收到这个数据包后,就会广播这个数据包。交换机B就会在Segment2上收到交换机A的广播包,交换机B也发现自己没有路由器的MAC地址,交换机B也会把这个广播包广播道Segmentl上。这样路由器就会收到多个同样的数据包。
另外当交换机连接不同网段时,会将出现通过不同端口收到来自同一个广播帧的多个副本的情况。这个过程也会同时导致MAC地址表的多次刷新。这种持续的更新、刷新过程会严重消耗内存资源,影响交换机的交换能力,同时降低整个网络的运行效率。严重时将耗尽整个网络的资源,最终造成网络的瘫痪。
综上所述,冗余在避免单点故障的时候,却又会引起广播风暴等问题,那么要避免冗余拓扑引起的其他问题,就需要采用一些控制协议来进行冗余管理。
发明内容:
本发明的目的是提供一种快速自愈的变电站环网协议算法和实现方法,它结合了标准MAC交换,故障告警,故障处理和环网控制协议,通过环网控制协议将物理的环变为逻辑的链,从而避免了在环网上形成广播风暴。
为了解决背景技术所存在的问题,本发明是采用以下技术方案:一、环网算法即FRPS(Fast Ring Protection Switch)算法:它包含FRPS环、环端口、控制VLAN、业务VLAN、主节点、传输节点、控制帧。
所述的FRPS环:FRPS算法是针环网方式组网的以太网,FRPS算法必须运行在环网上,所以将FRPS环定义为运行了FRPS算法的以太环网。
所述的环端口:在以太环网上,每个节点都有2个端口连接在环上。这两个端口就称为环端口。
所述的控制VLAN:在FRPS算法中,应用了VLAN技术。环上所有环端口都会加入控制VLAN。控制VLAN上传输的是为了维护FRPS算法而生成的各种控制帧,但不传输其他以太网帧。
所述的业务VLAN:在FRPS环上,除了控制VLAN,还设置了业务VLAN。环网上的所有端口都加入业务VLAN。业务VLAN上传输的是各种数据报文和普通以太网帧。在正常工作状态下环上会有一个端口在业务VLAN上保持阻塞,这样就能避免环网上产生广播风暴。
所述的主节点:在FRPS环上的特殊节点。在正常工作状态下,这个节点负责阻塞环路,避免广播风暴的形成。在环网上出现故障时,主节点就将打开备份链路,实现保护切的功能。主节点的两个环端口分别称为主端口和从端口。正常状态下,从端口对业务VLAN保持阻塞;故障状态下,从端口解除对业务VLAN的阻塞。主端口在两种状态下都保持转发状态。
所述的传输节点:在FRPS环上除了主节点以外的其他节点都称为传输节点。在正常状态下,这传输节点的两个端口都不阻塞,而是保持在转发状态。当节点的端口出现故障,就会将故障端口阻塞。
所述的控制帧:在控制VLAN上传输的用于FRPS算法的报文。控制帧上包含当前节点的状态以及两个环端口的状态。每个节点都会定时发送控制帧到环上,控制帧在环上传输后,可使环上其他节点都得到发送节点的信息。这样的方式可以使每个节点都得到环上所有节点的信息。
FRPS算法的工作原理:在FRPS环上有一个主节点,这个主节点在初始时将从端口对业务VLAN设为阻塞,主端口在业务VLAN上设为转发状态。在控制VLAN上,所有端口都不阻塞都可以进行转发可能工作帧。其他传输节点在初始化时将两个环端口都设为转发状态。初始化后,节点都会生成控制帧,将自身的信息填入控制帧,包括端口状态信息,节点状态和节点角色。控制帧在环网上传输,最终所有节点都获得了环上主节点和传输节点的信息,并保存起来。为了防止控制帧的丢失,控制帧会定时发送。控制帧的定时发送可以使环上的节点获得发送节点的状态,如果发送节点出现故障,如断电,那么环上的节点就无法再收到这个节点的状态,经过一定时间后就会将这个节点的状态删除,也就是认为这个节点已经与FRPS环失去了联系。
在正常情况下,整个FRPS环上就只有一个环端口处于阻塞状态,这个就是主节点的端口处于阻塞状态。正是由于这个端口阻塞了业务VLAN,所以在业务VLAN上没有环路形成。
如果有节点存在端口处于阻塞状态,并且环上不存在故障端口同时又发现主节点的从端口处于阻塞状态,就会立即将阻塞端口打开。由于每个节点都能获得环上所有节点的状态,每个节点就可以根据获得的这些所有节点信息进行判断,并决定是否要需要采取动作。
当链路发生故障时,与故障相邻的节点会立即检测到故障,并将连接故障的端口设为阻塞状态。检测到端口故障的节点,称为故障节点。故障节点会立即将当前端口的状态通过控制帧发送出去,通知环上的传输节点和主节点。
环上的节点收到故障节点发出控制帧后,就会发现环上出现了故障端口,传输节点将节点状态从正常状态变为故障状态,并会立即刷新MAC地址表,并将这个控制帧发送出去。其他传输节点收到这个控制帧也进行相同的操作。
这个控制帧通过各个节点依次转发,最终传输到主节点。当主节点收到这个控制帧后,就会发现环上出现故障端口,原来的传输路径出现了故障,此时主节点就会立即打开从端口,使其进入转发状态,同时也刷新MAC地址表,将节点状态状态变为故障状态。这样主节点就启动了备份链路。同时环上的节点也因受到故障节点发送的控制帧,得知环上有故障端口,刷新了MAC地址表。经过主节点的这个操作就使原来的故障拓扑切换到新的拓扑上,实现了保护切换功能,此时新的拓扑就形成了。
为了防止故障节点发送的控制帧因故丢失,节点会定期发送携带端口状态和节点状态的控制帧。当收到同一个节点发送的相同的控制帧,节点只需转发,而不做任何处理。如果节点第一次收到某个节点控制帧,就会将其保存起来。如果节点收到某个节点发送的不同于之前的控制帧,则表明该节点的状态发生改变,此时,接收节点就会更新本地保存的发送节点的信息,并根据节点的具体改变,采取相应的操作。
当连接故障恢复时,端口就会立即检测到并通知节点。节点发现故障恢复后,仍保持恢复端口为阻塞状态,把端口状态值设为相应的值,并发送控制帧通知主节点。之所以把恢复端口仍设为阻塞状态而没有变为转发状态,是因为如果将恢复端口立即置为转发状态,那么会在环网形成回路,造成广播风暴。在传输节点的端口恢复时,主节点还没有得到端口恢复的消息,所以主节点的从端口还处于转发状态,如果立即将故障端口直接设为转发状态,那么FRPS环上的所有端口都将处于转发状态,这样就会形成回路,那么就会产生广播风暴。所以为了避免回路的形成,节点需要保持恢复端口为阻塞状态。
环上的其他传输节点收到故障恢复节点发送的控制帧时,更新本地保存的节点信息,由于发送节点的故障端口保持在阻塞状态,环上的传输拓扑还没有发送变化,接收节点不会进行其他设置,仅仅是将控制帧转发。
故障恢复节点发送的控制帧经过环上节点的逐个转发,最后到达主节点。当主节点收到这个控制帧时,立即更新本地保存的节点信息。同时主节点会检查本地保存的环节点信息,检查后发现环上节点不再有故障端口,就会立即将从端口设为阻塞状态,刷新地址表,将节点状态变正常状态。同时将主节点最新的端口状态通过控制发送出去。但是,如果当检查保存的所有节点信息后发现,环上还有节点的端口处于故障状态,那么主节点就必须保持从端口为转发状态,而不会对业务VLAN阻塞,因为此时环上还有故障端口,主节点的从端口必须为转发状态,不能回到正常状态。最后主节点将接收的控制帧继续转发,使环上的其他节点获得故障恢复节点的最新状态。
如果环上没有故障端口了,那么主节点就会在阻塞从端口后,在控制帧空将从端口状态设为对应的值,并发送出去。传输节点收到这个控制帧,立即更新本地保存的主节点的信息,可以发现环上的节点没有故障端口,并且主节点已经恢复到正常状态,那么传输节点也可以恢复到正常状态。此时传输节点就会刷新MAC地址表,重新学习新的拓扑,将节点状态设为正常状态,将两个环端口都设为转发状态。同时将端口的状态通过控制帧发送出去。当主节点这个报文传输到环上每个传输节点后,那么整个环路就又恢复到正常状态。对于故障恢复节点,在收到这个控制帧时,就会将解除恢复端口的阻塞,使两个端口都变为转发状态并刷新MAC地址表,学习网络拓扑。通过这个方式使得恢复的网络又能回到正常的状态。
二、本发明的实现方案如下:FRPS的实现是基于和内核空间进行通信来实现的。在内核空间,系统能够对底层的端口进行监控和设置,同时内核空间还能够对底层接收的数据包进行处理,筛选出FRPS协议的控制帧,并通知用户空间的处理程序来处理。在用户空间,FRPS协议的控制帧的发送需要先交给内核空间,再由内核空间来驱动底层硬件发送,并且FRPS协议在实现过程中也需要对端口进行直接的操作,如阻塞,打开阻塞,刷新MAC地址表和发送控制帧。
所以为了用户空间和内核空间的通信,采用了几种方式来达到FRPS协议所需的通信。第一利用netlink的方式来完成用户空间的kernel和FRPS协议的通信,实现控制帧由内核空间到达用户空间的传递。第二,将内核空间的一些端口设置函数进行封装,使得用户空间可以直接调用这些函数,实现对端口的直接控制,并且可以直接利用这些函数将控制报文发送到FRPS环上。在用户空间为了实现FRPS算法,采用了多进程处理的方式,为了满足进程间的通信使用了socket方式。
在用户空间为了实现FRPS算法,编写了3个程序,分别为FRPSenable程序,FRPSdisable程序和FRPSdaemon程序。FRPSenable程序完成了算法的主要功能,包括:节点的初始化,控制帧的生成和发送,控制帧的接收和对端口的控制。FRPSdisable程序用于终止FRPS算法的运行。FRPSdaemon程序实现了内核空间的直接通信,同时也实现了和FRPSenable程序的通信,可以说是FRPSenable和内核空间的沟通桥梁。。
FRPSenable程序完成了FRPS协议主要功能,从协议程序运行开始,首先判断节点是否为主节点,如果是主节点,进行变量初始化,就将其从端口对业务VLAN阻塞,主端口进入转发状态。如果节点为传输节点,也要先进行变量初始化,就将两个环断口都设为转发状态。在设置好端口状态后,就会立即发送一个控制帧,这个控制帧中包含着两个环端口的状态。在发送了控制帧后,就会运行控制帧发送线程和接受线程,直到结束为止。这个初始化的过程不仅包括各种变量的初始化也包括建立各个进程间的通信通道。
发送帧过程的作用是定时地将含有端口状态情况的控制帧发送出去。这个发送间隔定为5秒。这个时间间隔可以人为设定。利用这种定时发送控制帧的方式,可以避免控制帧丢失而无法再环上传播,而且利用这种定时控制帧可以使得环上的节点了解到环上存在的节点情况。
而接收帧过程的作用是接收从FRPSdaemon程序通过Socket方式发送给FRPSenable的控制帧。FRPSenable程序中的接收控制帧线程会根据接收的控制帧的类型进行相应的操作。
当节点收到的控制帧是其他节点发送的控制帧时,由于主节点和传输节点的区别,所以两者对控制帧的处理也存在着差别。
FRPSenable进程中完成了主节点和传输节点对控制帧的接收和处理过程。同时这个过程也是FRPS算法的功能的具体实现。
FRPSdaemon程序也采用了两个线程,分别为端口状态检测线程和接收从内核空间收到的控制帧线程。这个端口状态的变化监控,是利用硬件扫描的方式监控端口的状态,当端口的状态发生变化就会通知内核空间,当内核空间得到这个通知后就会立即利用netlink的方式通知到用户空间的FRPSdaemon程序。当FRPSdaemon程序得到这个消息后,就会将这个消息转化为控制帧的格式并发送给FRPSenable程序来进行处理。FRPSdaemon程序收到内核空从底层硬件接收到的控制帧并将这个控制帧中有用的信息剥离出来并转发给FRPSenable程序,让协议程序来处理。FRPSdaemon程序可以认为FRPSenable程序和内核空间的通信桥梁。
本发明具有以下有益效果:FRPS算法在环网上通过设置主节点,传输节点能够快速的确定备份端口和链路,不必通过漫长的选举过程,并略过监听状态,学习状态,直接进入转发状态,减少了故障时间。当环上出现故障时,传输节点可以从另外一个端口发送控制帧,通知环上的所有节点。在生成树算法中必须在根端口向跟网桥发送TCN报文。在RSTP中,仅当非边缘端口转为转发状态时,拓扑结构才会发生改变,而当节点出现断开时时,并不认为是拓扑发生改变,而在FRPS算法中,对环而言,如果出现链路断开,拓扑对于环上节点而言,是发生变化的,需要进行拓扑的切换和重新学习。
附图说明:
图1是本发明中背景技术结构示意图。
图2是本发明中端口状态机示意图。
图3是本发明的程序框架图。
图4是本发明中FRPSenable程序的流程图。
图5是本发明中控制帧发送程序流程图。
图6是本发明中接收帧程序流程图。
图7是本发明中主节点的控制帧的处理流程图。
图8是本发明中传输节点的控制帧的处理流程图。
具体实施方式:
参看图2,本具体实施方式是采用以下技术方案:一、环网协议算法即FRPS(Fast Ring Protection Switch)算法:它包含FRPS环、环端口、控制VLAN、业务VLAN、主节点、传输节点、控制帧。
所述的FRPS环:FRPS算法是针环网方式组网的以太网,FRPS算法必须运行在环网上,所以将FRPS环定义为运行了FRPS算法的以太环网。
所述的环端口:在以太环网上,每个节点都有2个端口连接在环上。这两个端口就称为环端口。
所述的控制VLAN:在FRPS算法中,应用了VLAN技术。环上所有环端口都会加入控制VLAN。控制VLAN上传输的是为了维护FRPS算法而生成的各种控制帧,但不传输其他以太网帧。
所述的业务VLAN:在FRPS环上,除了控制VLAN,还设置了业务VLAN。环网上的所有端口都加入业务VLAN。业务VLAN上传输的是各种数据报文和普通以太网帧。在正常工作状态下环上会有一个端口在业务VLAN上保持阻塞,这样就能避免环网上产生广播风暴。
所述的主节点:在FRPS环上的特殊节点。在正常工作状态下,这个节点负责阻塞环路,避免广播风暴的形成。在环网上出现故障时,主节点就将打开备份链路,实现保护切的功能。主节点的两个环端口分别称为主端口和从端口。正常状态下,从端口对业务VLAN保持阻塞;故障状态下,从端口解除对业务VLAN的阻塞。主端口在两种状态下都保持转发状态。
所述的传输节点:在FRPS环上除了主节点以外的其他节点都称为传输节点。在正常状态下,这传输节点的两个端口都不阻塞,而是保持在转发状态。当节点的端口出现故障,就会将故障端口阻塞。
所述的控制帧:在控制VLAN上传输的用于FRPS算法的报文。控制帧上包含当前节点的状态以及两个环端口的状态。每个节点都会定时发送控制帧到环上,控制帧在环上传输后,可使环上其他节点都得到发送节点的信息。这样的方式可以使每个节点都得到环上所有节点的信息。
FRPS算法的工作原理:在FRPS环上有一个主节点,这个主节点在初始时将从端口对业务VLAN设为阻塞,主端口在业务VLAN上设为转发状态。在控制VLAN上,所有端口都不阻塞都可以进行转发可能工作帧。其他传输节点在初始化时将两个环端口都设为转发状态。初始化后,节点都会生成控制帧,将自身的信息填入控制帧,包括端口状态信息,节点状态和节点角色。控制帧在环网上传输,最终所有节点都获得了环上主节点和传输节点的信息,并保存起来。为了防止控制帧的丢失,控制帧会定时发送。控制帧的定时发送可以使环上的节点获得发送节点的状态,如果发送节点出现故障,如断电,那么环上的节点就无法再收到这个节点的状态,经过一定时间后就会将这个节点的状态删除,也就是认为这个节点已经与FRPS环失去了联系。
在正常情况下,整个FRPS环上就只有一个环端口处于阻塞状态,这个就是主节点的端口处于阻塞状态。正是由于这个端口阻塞了业务VLAN,所以在业务VLAN上没有环路形成。
如果有节点存在端口处于阻塞状态,并且环上不存在故障端口同时又发现主节点的从端口处于阻塞状态,就会立即将阻塞端口打开。由于每个节点都能获得环上所有节点的状态,每个节点就可以根据获得的这些所有节点信息进行判断,并决定是否要需要采取动作。
当链路发生故障时,与故障相邻的节点会立即检测到故障,并将连接故障的端口设为阻塞状态。检测到端口故障的节点,称为故障节点。故障节点会立即将当前端口的状态通过控制帧发送出去,通知环上的传输节点和主节点。
环上的节点收到故障节点发出控制帧后,就会发现环上出现了故障端口,传输节点将节点状态从正常状态变为故障状态,并会立即刷新MAC地址表,并将这个控制帧发送出去。其他传输节点收到这个控制帧也进行相同的操作。
这个控制帧通过各个节点依次转发,最终传输到主节点。当主节点收到这个控制帧后,就会发现环上出现故障端口,原来的传输路径出现了故障,此时主节点就会立即打开从端口,使其进入转发状态,同时也刷新MAC地址表,将节点状态状态变为故障状态。这样主节点就启动了备份链路。同时环上的节点也因受到故障节点发送的控制帧,得知环上有故障端口,刷新了MAC地址表。经过主节点的这个操作就使原来的故障拓扑切换到新的拓扑上,实现了保护切换功能,此时新的拓扑就形成了。
为了防止故障节点发送的控制帧因故丢失,节点会定期发送携带端口状态和节点状态的控制帧。当收到同一个节点发送的相同的控制帧,节点只需转发,而不做任何处理。如果节点第一次收到某个节点控制帧,就会将其保存起来。如果节点收到某个节点发送的不同于之前的控制帧,则表明该节点的状态发生改变,此时,接收节点就会更新本地保存的发送节点的信息,并根据节点的具体改变,采取相应的操作。
当连接故障恢复时,端口就会立即检测到并通知节点。节点发现故障恢复后,仍保持恢复端口为阻塞状态,把端口状态值设为相应的值,并发送控制帧通知主节点。之所以把恢复端口仍设为阻塞状态而没有变为转发状态,是因为如果将恢复端口立即置为转发状态,那么会在环网形成回路,造成广播风暴。在传输节点的端口恢复时,主节点还没有得到端口恢复的消息,所以主节点的从端口还处于转发状态,如果立即将故障端口直接设为转发状态,那么FRPS环上的所有端口都将处于转发状态,这样就会形成回路,那么就会产生广播风暴。所以为了避免回路的形成,节点需要保持恢复端口为阻塞状态。
环上的其他传输节点收到故障恢复节点发送的控制帧时,更新本地保存的节点信息,由于发送节点的故障端口保持在阻塞状态,环上的传输拓扑还没有发送变化,接收节点不会进行其他设置,仅仅是将控制帧转发。
故障恢复节点发送的控制帧经过环上节点的逐个转发,最后到达主节点。当主节点收到这个控制帧时,立即更新本地保存的节点信息。同时主节点会检查本地保存的环节点信息,检查后发现环上节点不再有故障端口,就会立即将从端口设为阻塞状态,刷新地址表,将节点状态变正常状态。同时将主节点最新的端口状态通过控制发送出去。但是,如果当检查保存的所有节点信息后发现,环上还有节点的端口处于故障状态,那么主节点就必须保持从端口为转发状态,而不会对业务VLAN阻塞,因为此时环上还有故障端口,主节点的从端口必须为转发状态,不能回到正常状态。最后主节点将接收的控制帧继续转发,使环上的其他节点获得故障恢复节点的最新状态。
如果环上没有故障端口了,那么主节点就会在阻塞从端口后,在控制帧空将从端口状态设为对应的值,并发送出去。传输节点收到这个控制帧,立即更新本地保存的主节点的信息,可以发现环上的节点没有故障端口,并且主节点已经恢复到正常状态,那么传输节点也可以恢复到正常状态。此时传输节点就会刷新MAC地址表,重新学习新的拓扑,将节点状态设为正常状态,将两个环端口都设为转发状态。同时将端口的状态通过控制帧发送出去。当主节点这个报文传输到环上每个传输节点后,那么整个环路就又恢复到正常状态。对于故障恢复节点,在收到这个控制帧时,就会将解除恢复端口的阻塞,使两个端口都变为转发状态并刷新MAC地址表,学习网络拓扑。通过这个方式使得恢复的网络又能回到正常的状态。
在FRPS环上为了保证环网上不形成回路,需要对端口进行阻塞操作,在故障出现时又需要将原来阻塞的端口变为转发状态,如果按照生产树协议算法,端口由监听状态到学习状态在到转发状态,这个时间非常长,所以需要能够使端口在需要的时候立即进入转发状态,而略过这些中间状态,同时还能避免广播风暴的产生。
在运行了FRPS算法的节点上,对端口的状态控制是根据端口现有状态和当前发生的事情来决定的,所以对端口的管理可以根据端口状态机来进行。在FRPS算法中,端口状态机如说明书附图2所示,状态转换条件如下:
A、断开状态到阻塞状态。端口使能,与其他端口连接;主节点上电从端口使能。
B、阻塞状态到到断开状态。端口断开,链路发生故障。
C、阻塞状态到转发状态。主节点认为环网发送故障;节点的端口恢复链接,主节点阻塞从端口后,节点恢复端口恢复转发状态。
D、转发状态到阻塞状态。主节点认为环上的故障恢复时从端口的动作。
E、转发状态到断开状态。端口端口,断电或链路故障。
F、断开状态到转发状态。端口使能,传输节点上电。
结合端口状态机,FRPS算法在运行时就可以进行相应的端口管理操作。当交换芯片运行FRPS算法时,主节点的的从端口进入阻塞状态,而主端口进入转发状态;传输节点的两个环端口都进入转发状态。通过这个操作,这个FRPS环上有一个端口处于阻塞状态,这个环上就不会发送广播风暴,同时主节点的从端口阻塞的链路作为冗余链路起到备份作用。当环网故障时,当某条链路因发送意外而断线,主节点发现后迅速将主节点从端口从断开状态进入转发状态,同时环上节点发现这个故障后都会立即刷新MAC地址表,从而形成新的链路,而与故障相连得端口因链路断开而进入端口状态。当故障修复后,与原故障链路相连的端口从断开状态进入阻塞状态,在主节点发现环网修复后将从端口从转发状态置为阻塞状态,并将通知节点将恢复的阻塞端口进入转发状态。
参看图3,本具体实施方式的实现方案如下:FRPS的实现是基于和内核空间进行通信来实现的。在内核空间,系统能够对底层的端口进行监控和设置,同时内核空间还能够对底层接收的数据包进行处理,筛选出FRPS协议的控制帧,并通知用户空间的处理程序来处理。在用户空间,FRPS协议的控制帧的发送需要先交给内核空间,再由内核空间来驱动底层硬件发送,并且FRPS协议在实现过程中也需要对端口进行直接的操作,如阻塞,打开阻塞,刷新MAC地址表和发送控制帧。
所以为了用户空间和内核空间的通信,采用了几种方式来达到FRPS协议所需的通信。第一利用netlink的方式来完成用户空间的kernel和FRPS协议的通信,实现控制帧由内核空间到达用户空间的传递。第二,将内核空间的一些端口设置函数进行封装,使得用户空间可以直接调用这些函数,实现对端口的直接控制,并且可以直接利用这些函数将控制报文发送到FRPS环上。在用户空间为了实现FRPS算法,采用了多进程处理的方式,为了满足进程间的通信使用了socket方式。
在用户空间为了实现FRPS算法,编写了3个程序,分别为FRPSenable程序,FRPSdisable程序和FRPSdaemon程序。FRPSenable程序完成了算法的主要功能,包括:节点的初始化,控制帧的生成和发送,控制帧的接收和对端口的控制。FRPSdisable程序用于终止FRPS算法的运行。FRPSdaemon程序实现了内核空间的直接通信,同时也实现了和FRPSenable程序的通信,可以说是FRPSenable和内核空间的沟通桥梁。。
参看图4,FRPSenable程序完成了FRPS协议主要功能,从协议程序运行开始,首先判断节点是否为主节点,如果是主节点,进行变量初始化,就将其从端口对业务VLAN阻塞,主端口进入转发状态。如果节点为传输节点,也要先进行变量初始化,就将两个环断口都设为转发状态。在设置好端口状态后,就会立即发送一个控制帧,这个控制帧中包含着两个环端口的状态。在发送了控制帧后,就会运行控制帧发送线程和接受线程,直到结束为止。这个初始化的过程不仅包括各种变量的初始化也包括建立各个进程间的通信通道。
参看图5,发送帧过程的作用是定时地将含有端口状态情况的控制帧发送出去。这个发送间隔定为5秒。这个时间间隔可以人为设定。利用这种定时发送控制帧的方式,可以避免控制帧丢失而无法再环上传播,而且利用这种定时控制帧可以使得环上的节点了解到环上存在的节点情况。
参看图6,接收帧过程的作用是接收从FRPSdaemon程序通过Socket方式发送给FRPSenable的控制帧。FRPSenable程序中的接收控制帧线程会根据接收的控制帧的类型进行相应的操作。
如果收到的控制帧为端口状态变化的控制帧,先判断端口状态的具体变化。当端口从Up变为Down,说明端口连接的链路出现故障了,此时节点就会将该端口设为阻塞状态,将其他非故障的环端口设为转发状态,同时更新节点的端口状态,刷新MAC地址表,并立即发送控制帧同时环上的其他节点;当端口由Down变成UP,则表明端口连接的链路重新恢复了连接,此时如果将端口直接变为转发状态就会造成回路,所以为了避免环路,就继续保持恢复连接的端口的阻塞状态,并更新节点的端口状态信息,立即发送控制帧通知环上的主节点,报告故障恢复。
当节点收到的控制帧是其他节点发送的控制帧时,由于主节点和传输节点的区别,所以两者对控制帧的处理也存在着差别。
参看图7,主节点收到这个控制后,先判断是否是主节点发送出去的,如果是,则将这个控制丢弃,不进行处理。如果收到的是其他节点发送的控制帧,那么就坚持这个节点的控制是否接收过,如果没有,那么就是第一次接受到这个节点的控制帧,此时就需要将这个节点的信息保存下来,包括节点的MAC地址,端口的状态。如果主节点接收过这个节点的控制帧,那么就会检查控制帧中的端口状态是否和主节点保存的该节点的端口状态一致,如果一致,就仅仅是转发该帧,不做其他处理。如果收到的控制帧中的信息和主节点保存的信息不一致,那么就需要进行下一步判断。
如果节点的端口状态中有某个端口的状态变为0,就表示这个节点的端口Down了,此时主节点就需要将原来阻塞的从端口打开然后,更新主节点状态,更新保存的节点信息,然后转发该帧。
如果节点的端口状态中有某个端口的状态为1,就表示这个端口被阻塞了,并且这个端口的连接的链路是正常的。此时主节点就会坚持在主节点保存的环上节点的端口状态,如果还有节点的端口处于故障状态,即状态为0,那么主节点就会保持从端口子在转发状态,并将该控制帧转发出去。当主节点发现环上节点都没有故障端口时,就会将从端口阻塞,并更新主节点的状态,刷新MAC地址表,发送控制帧通知环上其他节点。
参看图8,当传输接收到自己发送的控制帧时,就会将该帧丢弃,不做处理。当传输节点收到其他节点控制帧时会先转发,然后进行处理。当传输节点第一次收到其他节点发送的控制帧时,就会将这个节点的MAC地址,端口状态保存起来。如果不是第一次接收,那么就会比较接收的控制帧中的信息和保存的信息是否一致。如果一致表明发送节点的状态未发生变化,只需更新节点信息,不必做其他处理。当接收的节点状态和传输节点保存的状态不一样,此时节点就需要根据控制帧的信息进行对应处理。
如果发送节点端口由正常的状态变为故障状态,则传输节点会刷新MAC地址表,发送控制帧,将此时节点的状态发送出去,通知环上的节点。
如果发送节点的端口的状态为1,就判断发送节点是否为主节点。如果是主节点发送的,其从端口助于阻塞状态,主节点处于转发状态,则说明主节点已经确认环上没有故障节点,此时传输节点就会将两个端口都置于转发状态,并将节点的当前状态通过控制帧发送出去。如果控制帧是由传输节点发送的,那么传输节点只需保持原来的状态就可以,更新保持的节点信息就可以了。
FRPSenable进程中完成了主节点和传输节点对控制帧的接收和处理过程。同时这个过程也是FRPS算法的功能的具体实现
FRPSdaemon程序也采用了两个线程,分别为端口状态检测线程和接收从内核空间收到的控制帧线程。这个端口状态的变化监控,是利用硬件扫描的方式监控端口的状态,当端口的状态发生变化就会通知内核空间,当内核空间得到这个通知后就会立即利用netlink的方式通知到用户空间的FRPSdaemon程序。当FRPSdaemon程序得到这个消息后,就会将这个消息转化为控制帧的格式并发送给FRPSenable程序来进行处理。FRPSdaemon程序收到内核空从底层硬件接收到的控制帧并将这个控制帧中有用的信息剥离出来并转发给FRPSenable程序,让协议程序来处理。FRPSdaemon程序可以认为FRPSenable程序和内核空间的通信桥梁。
本具体实施方式具有以下有益效果:它结合了标准MAC交换,故障告警,故障处理和环网控制协议,通过环网控制协议将物理的环变为逻辑的链,从而避免了在环网上形成广播风暴。

Claims (2)

1.一种快速自愈的变电站环网协议算法,其特征在于它包含FRPS环、环端口、控制VLAN、业务VLAN、主节点、传输节点、控制帧;
所述的FRPS环:FRPS算法是针环网方式组网的以太网,FRPS算法必须运行在环网上,所以将FRPS环定义为运行了FRPS算法的以太环网;
所述的环端口:在以太环网上,每个节点都有2个端口连接在环上,这两个端口就称为环端口;
所述的控制VLAN:在FRPS算法中,应用了VLAN技术,环上所有环端口都会加入控制VLAN,控制VLAN上传输的是为了维护FRPS算法而生成的各种控制帧,但不传输其他以太网帧;
所述的业务VLAN:在FRPS环上,除了控制VLAN,还设置了业务VLAN,环网上的所有端口都加入业务VLAN,业务VLAN上传输的是各种数据报文和普通以太网帧,在正常工作状态下环上会有一个端口在业务VLAN上保持阻塞,这样就能避免环网上产生广播风暴;
所述的主节点:在FRPS环上的特殊节点,在正常工作状态下,这个节点负责阻塞环路,避免广播风暴的形成,在环网上出现故障时,主节点就将打开备份链路,实现保护切的功能,主节点的两个环端口分别称为主端口和从端口,正常状态下,从端口对业务VLAN保持阻塞;故障状态下,从端口解除对业务VLAN的阻塞,主端口在两种状态下都保持转发状态;
所述的传输节点:在FRPS环上除了主节点以外的其他节点都称为传输节点,在正常状态下,这传输节点的两个端口都不阻塞,而是保持在转发状态,当节点的端口出现故障,就会将故障端口阻塞;
所述的控制帧:在控制VLAN上传输的用于FRPS算法的报文,控制帧上包含当前节点的状态以及两个环端口的状态,每个节点都会定时发送控制帧到环上,控制帧在环上传输后,可使环上其他节点都得到发送节点的信息,这样的方式可以使每个节点都得到环上所有节点的信息。
2.一种快速自愈的变电站环网协议算法的实现方法,其特征在于FRPS的实现是基于和内核空间进行通信来实现的,在内核空间,系统能够对底层的端口进行监控和设置,同时内核空间还能够对底层接收的数据包进行处理,筛选出FRPS协议的控制帧,并通知用户空间的处理程序来处理,在用户空间,FRPS协议的控制帧的发送需要先交给内核空间,再由内核空间来驱动底层硬件发送,并且FRPS协议在实现过程中也需要对端口进行直接的操作,如阻塞,打开阻塞,刷新MAC地址表和发送控制帧;
所以为了用户空间和内核空间的通信,采用了几种方式来达到FRPS协议所需的通信,第一利用netlink的方式来完成用户空间的kernel和FRPS协议的通信,实现控制帧由内核空间到达用户空间的传递,第二,将内核空间的一些端口设置函数进行封装,使得用户空间可以直接调用这些函数,实现对端口的直接控制,并且可以直接利用这些函数将控制报文发送到FRPS环上,在用户空间为了实现FRPS算法,采用了多进程处理的方式,为了满足进程间的通信使用了socket方式;
在用户空间为了实现FRPS算法,编写了3个程序,分别为FRPSenable程序,FRPSdisable程序和FRPSdaemon程序,FRPSenable程序完成了算法的主要功能,包括:节点的初始化,控制帧的生成和发送,控制帧的接收和对端口的控制,FRPSdisable程序用于终止FRPS算法的运行,FRPSdaemon程序实现了内核空间的直接通信,同时也实现了和FRPSenable程序的通信,可以说是FRPSenable和内核空间的沟通桥梁;
FRPSenable程序完成了FRPS协议主要功能,从协议程序运行开始,首先判断节点是否为主节点,如果是主节点,进行变量初始化,就将其从端口对业务VLAN阻塞,主端口进入转发状态,如果节点为传输节点,也要先进行变量初始化,就将两个环断口都设为转发状态,在设置好端口状态后,就会立即发送一个控制帧,这个控制帧中包含着两个环端口的状态,在发送了控制帧后,就会运行控制帧发送线程和接受线程,直到结束为止,这个初始化的过程不仅包括各种变量的初始化也包括建立各个进程间的通信通道;
发送帧过程的作用是定时地将含有端口状态情况的控制帧发送出去,这个发送间隔定为5秒,这个时间间隔可以人为设定,利用这种定时发送控制帧的方式,可以避免控制帧丢失而无法再环上传播,而且利用这种定时控制帧可以使得环上的节点了解到环上存在的节点情况;
而接收帧过程的作用是接收从FRPSdaemon程序通过Socket方式发送给FRPSenable的控制帧,FRPSenable程序中的接收控制帧线程会根据接收的控制帧的类型进行相应的操作;
当节点收到的控制帧是其他节点发送的控制帧时,由于主节点和传输节点的区别,所以两者对控制帧的处理也存在着差别;
FRPSenable进程中完成了主节点和传输节点对控制帧的接收和处理过程,同时这个过程也是FRPS算法的功能的具体实现;
FRPSdaemon程序也采用了两个线程,分别为端口状态检测线程和接收从内核空间收到的控制帧线程,这个端口状态的变化监控,是利用硬件扫描的方式监控端口的状态,当端口的状态发生变化就会通知内核空间,当内核空间得到这个通知后就会立即利用netlink的方式通知到用户空间的FRPSdaemon程序,当FRPSdaemon程序得到这个消息后,就会将这个消息转化为控制帧的格式并发送给FRPSenable程序来进行处理,FRPSdaemon程序收到内核空从底层硬件接收到的控制帧并将这个控制帧中有用的信息剥离出来并转发给FRPSenable程序,让协议程序来处理,FRPSdaemon程序可以认为FRPSenable程序和内核空间的通信桥梁。
CN201410458238.9A 2014-09-11 2014-09-11 一种快速自愈的变电站环网协议实现方法 Active CN105897578B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410458238.9A CN105897578B (zh) 2014-09-11 2014-09-11 一种快速自愈的变电站环网协议实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410458238.9A CN105897578B (zh) 2014-09-11 2014-09-11 一种快速自愈的变电站环网协议实现方法

Publications (2)

Publication Number Publication Date
CN105897578A true CN105897578A (zh) 2016-08-24
CN105897578B CN105897578B (zh) 2019-07-02

Family

ID=56999961

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410458238.9A Active CN105897578B (zh) 2014-09-11 2014-09-11 一种快速自愈的变电站环网协议实现方法

Country Status (1)

Country Link
CN (1) CN105897578B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107104870A (zh) * 2017-04-18 2017-08-29 深圳市立全鼎盛科技有限公司 一种可实现多种网络冗余设置的交换机
CN113612703A (zh) * 2021-08-26 2021-11-05 北京东土科技股份有限公司 交换机的启动控制方法、装置、设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101035047A (zh) * 2007-04-03 2007-09-12 中兴通讯股份有限公司 环网保护的处理方法
CN101035053A (zh) * 2007-04-26 2007-09-12 中兴通讯股份有限公司 一种分布式系统的节点链路切换的处理方法及其装置
CN101075934A (zh) * 2007-03-06 2007-11-21 中兴通讯股份有限公司 保障以太环网在传输节点故障时可靠运行的方法及装置
US20090052317A1 (en) * 2005-03-31 2009-02-26 Kazuo Takagi Ring Network System, Failure Recovery Method, Failure Detection Method, Node and Program for Node

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090052317A1 (en) * 2005-03-31 2009-02-26 Kazuo Takagi Ring Network System, Failure Recovery Method, Failure Detection Method, Node and Program for Node
CN101075934A (zh) * 2007-03-06 2007-11-21 中兴通讯股份有限公司 保障以太环网在传输节点故障时可靠运行的方法及装置
CN101035047A (zh) * 2007-04-03 2007-09-12 中兴通讯股份有限公司 环网保护的处理方法
CN101035053A (zh) * 2007-04-26 2007-09-12 中兴通讯股份有限公司 一种分布式系统的节点链路切换的处理方法及其装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张永军等: "电信级以太网环网技术的研究", 《中兴通讯技术》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107104870A (zh) * 2017-04-18 2017-08-29 深圳市立全鼎盛科技有限公司 一种可实现多种网络冗余设置的交换机
CN113612703A (zh) * 2021-08-26 2021-11-05 北京东土科技股份有限公司 交换机的启动控制方法、装置、设备及介质
CN113612703B (zh) * 2021-08-26 2024-02-20 北京东土科技股份有限公司 交换机的启动控制方法、装置、设备及介质

Also Published As

Publication number Publication date
CN105897578B (zh) 2019-07-02

Similar Documents

Publication Publication Date Title
CN101022390B (zh) 一种对双归接入的rrpp环网的保护方法、系统和设备
CN101610193B (zh) 以太环网自动发现及生成环的方法
CN108270669A (zh) Sdn网络的业务恢复装置、主控制器、系统及方法
CN101652963B (zh) 重配通信网络的方法
CN100450036C (zh) 一种rrpp与局部stp组网故障恢复时防止环路的方法和装置
CN101958831B (zh) 以太环网故障恢复方法、以太环网及交换设备
CN101841450B (zh) 多个环形拓扑构建相交环实现稳定通信的方法及系统
CN105871674B (zh) 环保护链路故障保护方法、设备及系统
CN101013992A (zh) 一种以太网自动保护方法
JP2012019391A (ja) 通信フレームの中継装置および中継方法
US9800521B2 (en) Network switching systems and methods
CN101227371B (zh) 同级交换机设备间的备份切换方法和装置
CN106817301A (zh) 故障恢复方法及装置、控制器、软件定义网络
CN105099905B (zh) 中继系统以及交换机装置
CN101436975B (zh) 一种在环网中实现快速收敛的方法、装置及系统
CN101340377B (zh) 一种用于二层网络数据传输的方法、装置及其系统
CN101873244A (zh) 一种多环路自动保护的方法
CN101902382B (zh) 一种以太单环网地址刷新方法及系统
WO2012171380A1 (zh) 以太网远端故障的处理方法及装置
CN101834774A (zh) 以太环网中交换节点端口的地址刷新方法及交换节点
CN102238067B (zh) 一种快速环网保护协议环上的切换方法和装置
CN103825754B (zh) 一种环网多点故障发现和恢复处理方法
CN101534234B (zh) 一种相交以太环网保护方法和系统
CN102957588A (zh) 防止广播风暴的环网保护实现方法及系统
CN105897578A (zh) 一种快速自愈的变电站环网协议算法和实现方法

Legal Events

Date Code Title Description
DD01 Delivery of document by public notice

Addressee: Ge Juan

Document name: Notification of Passing Preliminary Examination of the Application for Invention

C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
DD01 Delivery of document by public notice
DD01 Delivery of document by public notice

Addressee: Ge Juan

Document name: Notification of Passing Examination on Formalities

GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20190909

Address after: 3/F, Building No. 7, 266 Chuangyan Road, Jiangning District, Nanjing City, Jiangsu Province, 210000

Patentee after: Nanjing Changyang Technology Co., Ltd.

Address before: 210000 Nanjing City, Jiangsu province Jiangning Qilin Town Road 9

Patentee before: Ji Lei