一种防止通信路径改变的工业网络环路检测方法与流程

文档序号:15751718发布日期:2018-10-26 17:52阅读:586来源:国知局
一种防止通信路径改变的工业网络环路检测方法与流程

本发明涉及工业现场总线领域,特别涉及针对防止通信路径改变的工业网络环路检测的方法。



背景技术:

近年来,工业现场总线在工厂自动化(fa)领域得到广泛应用。由于工业网络的复杂度越来越高,从而增加了信息帧通过环路循环的风险,而环路检测能抑制其风险。传统的环路检测方法往往会改变通信路径和传输延迟,难以保持同步传输。

以太网不仅适用于家庭和办公室环境中的局域网,也适用于广域网(如数据通信系统),同时以太网也具备带宽和成本方面的优势。但是标准以太网不能实现工业网络所需的实时、可靠的通信,为了解决这个问题,工业现场总线已经在iec61158协议下标准化,实时、高度可靠的通信协议也在iec61784-2协议中得到了规范。

工业网络是通过工业现场总线连接单个主设备和多个从设备而构建的。工业网络有许多技术要求:设备之间的同步,如控制器,机器人和传感器;容错系统;灵活和可扩展的网络;可维护性;环境稳健;网络安全。当使用以太网交换机扩展网络并在各种设备之间引入多个路径时,存在广播帧和多播帧通过环路循环的风险。环路不仅会减少可用带宽,还会损失同步的精度,传统方法通过阻塞环路中的端口消除环路,但是这种方法会改变通信路径,由此引起的延迟对同步的精度有很大影响。



技术实现要素:

本发明为了克服现有技术中存在的问题,提出一种在不改变通信路径的前提下,进行工业网络环路检测的方法,主要思想是选择环路中优先级最低的端口作为待阻塞的端口,为了避免通信路径改变,当前端口的优先级被设置为高于被阻塞端口和链路建立之后立即添加的端口的优先级。

为解决上述技术问题,本发明提供了一种防止通信路径改变的工业网络环路检测方法,在网络节点的l2sw中实现,包括以下步骤:

步骤1:设计一个用于操作管理和维护消息的环路检测帧,其格式如下所示:

步骤2:定义三种类型的端口状态,优先级由高到低分别为“运行”、“过滤”、“阻塞”,所有端口会定期发送环路检测帧;

状态为“运行”的端口,可以转发用户帧和环路检测帧;

状态为“过滤”的端口,可以转发环路检测帧,但不能转发用户帧;

状态为“阻塞”的端口,不能转发用户帧或环路检测帧;

若端口状态相同,则根据设备特定标识符的大小评估两台交换机端口之间的相对优先级,并根据端口号评估l2sw中端口的相对优先级,由此确定网络中所有端口的相对优先级;

步骤3:选择环路中具有最低优先级的端口作为阻塞端口;

步骤4:通过逐步关闭具有最低优先级的端口来检测和消除环路。

所述环路检测帧具有三个特定的参数:出端口,最低端口状态和最低mac;

出端口,保存环路检测帧的出口端口号;

最低端口状态,保存环路中的最低端口状态,当l2sw转发环路检测帧时,通过比较前面定义的端口优先级来更新最低端口状态;

最低mac,保存具有最低端口状态的l2sw端口的mac地址;

每个l2sw将入口和出口端口的“最低端口状态”字段与另一个l2sw已经发送的环路检测帧进行比较,根据比较,“最低端口状态”和“最低mac”字段都用较低优先级进行更新。

所述步骤3具体包括:l2sw将环路检测帧收集的信息整理成“环路管理表”,该“环路管理表”包括入口和出口端口位图参数、l2sw检测参数和最低l2sw参数;

找到与l2sw自身发送的环路检测帧的入端口和出端口对应的参数,令该参数设置为“1”。

当l2sw自身发送的环路检测帧中的“最低端口状态”字段已经不再是初始值时,l2sw检测参数设置为“1”;

l2sw将入端口和出端口的“最低端口状态”字段与l2sw自身传输的环路检测帧进行比较,根据比较,只有在l2sw自身具有环路中最低优先级的端口时,最低l2sw参数才更新为“1”;

当发送环路检测帧时,l2sw检查环路管理表中的条目;

若与出端口对应的条目只包含与入端口和出端口相同的有效位,并且“l2sw检测”为0,则目标端口被阻塞;

若条目包含与入端口和出端口不同的有效位,并且“最低l2sw”为1,则除了最高优先级的端口外,环路中的每个端口都被阻塞,如果条目包含与入端口和出端口相同的有效位,或者“最低l2sw”为1,则除了最高优先级的端口外,其他出端口未被阻塞,选择环路中具有最低优先级的端口作为阻塞端口。

定义一个监测时间,当l2sw在设定监测时间内没有接收到发送的环路检测帧时,则在扩展线路中不存在环路,端口状态变为“运行”。

所述监测时间计算公式为:

其中,tm为监测时间,c是试用环路检测的次数,a是落在环路检测系统范围内的通信设备的数量,ni是第a个设备的传输延迟时间,b是落在环路检测系统范围内的l2sw的数量,sj是第b个l2sw的传输延迟时间。

有益效果:本发明与现有技术相比,本发明在两种环路模式下与传统方法进行比较,本发明在同步、有效性和容错性方面得到了验证。本发明提出的方法能够在不改变通信路径的情况下消除环路,从而保持同步,因此本发明对于工业网络具有重要价值。

附图说明

图1:端口状态转换图;

图2:选择环路中待阻塞端口的流程图;

图3:消除单个端口扩展的线路中的环路例1;

图4:消除单个端口扩展的线路中的环路例2;

图5:消除端口间环路的示例。

具体实施方式

下面结合实施例进一步阐述该发明方法。

本发明可应用于工业网络环路检测,提出一种不改变网络拓扑,并能实现高精度同步可靠网络。选择环路中优先级最低的端口作为待阻塞端口,为了避免通信路径改变,当前端口的优先级被设置为高于被阻塞端口和链路建立之后立即添加的端口的优先级。本发明的算法在网络节点的二层交换机(l2sw)中实现的。

为选择环路中的阻塞端口,定义三种类型的端口状态,如下表:

状态为“运行”的端口可以转发用户帧和环路检测帧。

状态为“过滤”的端口可以转发环路检测帧,但不能转发用户帧。

状态为“阻塞”的端口不能转发用户帧或环路检测帧。为了检测环路,所有的端口都会定期发送环路检测帧,而不管其端口状态如何。

如果端口状态相同,则根据设备特定标识符(如mac地址)的大小评估两台交换机端口之间的相对优先级,并根据端口号评估l2sw中端口的相对优先级。这样就确定了网络中所有端口的相对优先级。图1显示了端口状态转换图。

1)事件#1:

链接建立后,端口状态从“链接关闭”立即变为“过滤”。

2)事件#2:

当l2sw在设定监测时间(tm)内没有接收到发送的环路检测帧时,则在扩展线路中不存在环路。在这种情况下,端口状态变为“运行”。监视时间由下面公式(1)确定:

其中,c是试用环路检测的次数,a是落在环路检测系统范围内的通信设备的数量,ni是第a个设备的传输延迟时间,b是落在环路检测系统范围内的l2sw的数量,sj是第b个l2sw的传输延迟时间。

3)事件#3:

当l2sw接收到它发送的环路检测帧时,说明在扩展线上存在环路。当目标端口为环路中优先级最低的端口时,此端口设置为“阻塞”。

4)事件#4:

链路断开后,无论当前的端口状态如何,都变为“链路断开”。

为检测环路,设计一个基于特定格式的用于操作管理和维护(oam)消息的环路检测帧,其格式如下所示:

环路检测帧具有三个特定的参数:出端口,最低端口状态,最低mac。

出端口:该参数保存环路检测帧的出口端口号。

最低端口状态:该参数保存环路中的最低端口状态。当l2sw转发环路检测帧时,通过比较前面定义的端口优先级来更新该参数。

最低mac:该参数保存具有最低端口状态的l2sw端口的mac地址。每个l2sw将入口和出口端口的“最低端口状态”字段与另一个l2sw已经发送的环路检测帧进行比较。根据比较,“最低端口状态”和“最低mac”字段都用较低优先级更新。每当l2sw接收到它自己发送的环路检测帧时,就判断存在环路,并获得环路中的“最低端口状态”和“最低mac”值。

l2sw将环路检测帧收集的信息保存在如下环路管理表中,该环路管理表的条目是从之前传输过程中的出端口采集的;

1)入口和出口端口的位图

找到与l2sw自身发送的环路检测帧的入端口和出端口对应的参数,令该参数设置为“1”。

2)l2sw检测

只有当l2sw自身发送的环路检测帧中的“最低端口状态”字段已经不再是初始值时,该参数才是“1”。

3)最低l2sw

l2sw将入端口和出端口的“最低端口状态”字段与l2sw自身传输的环路检测帧进行比较。根据比较,只有在l2sw自身具有环路中最低优先级的端口时,该参数才更新为“1”。

当发送环路检测帧时,l2sw检查环路管理表中的条目,如果与出端口对应的条目只包含与入端口和出端口相同的有效位,并且“l2sw检测”字段为0,则目标端口被阻塞。如果条目包含与入端口和出端口不同的有效位,并且“最低l2sw”字段为1,则除了最高优先级的端口外,环路中的每个端口都被阻塞。否则,出端口未被阻塞。因此,选择环路中具有最低优先级的端口作为阻塞端口。另外,即使存在多个环路,也可以通过逐步阻塞具有最低优先级的端口来消除环路。由于当前操作端口的优先级高于阻塞端口和链路刚刚建立后立即被激活的端口的优先级,本发明在不改变通信路径的前提下检测并消除环路。选择环路中待阻塞端口的流程如图2所示。

如图3所示,在单个端口的扩展线路中形成环路的情形下,通过接收l2sw#1的端口#1发送的环路检测帧来检测环路。由于入端口和出端口的位是相同的,并且“l2sw检测”等于0,l2sw#1上的端口#1根据图2的过程被阻塞。因此,可以在不改变通信路径的情况下消除环路。

如图4所示,环路由l2sw#1检测。由于“l2sw检测”等于1,因此l2sw#1上的端口#1不被阻塞。另一方面,由于“最低l2sw”等于1,所以l2sw#2上的端口#3根据图2所示的过程被阻塞。因此,根据提出的方法,与环路相邻的l2sw#2可以阻塞端口#3。

如图5所示,在两个端口之间形成环路的情形下,与新路径相邻的端口的状态是“过滤”,其优先级低于初始状态下的操作端口。由于入口和出口端口的位是不同的,并且“最低l2sw”等于1,l2sw#4上的端口#2为环路中最低优先级的端口,被阻塞了。另一方面,由于“最低l2sw”等于0,所以在监测时间之后,l2sw#3上的端口#2不被阻塞且其状态变为“运行”。

即使存在多个环路,本发明也可以通过逐步关闭具有最低优先级的端口来检测和消除环路。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1