1. 概述
很多工业应用要求现场设备采用线形拓扑联网。使用线形拓扑,要求终端设备具有两个以太网端口,实施串行连接的方式,从上一个设备连到下一个设备。这种连接的问题是:一旦一个节点设备或者连接失效,会导致整个网络的失效。如果在终端设备上使用设备环协议, 配置成环形拓扑,这时单点失效就不会阻碍其他设备的通信了。
本文描述的设备环(DLR)协议在环形拓扑网络上提供了高可用性。DLR协议最初打算用在EtherNet/IP的终端设备中,设备具有两个以太网口,嵌入了交换机的技术,网络具有快速的故障检出和重新配置功能,可以满足大多数控制应用的要求。比如:一个50节点的环网使用DLR协议,在最差的情况下,网络恢复的时间小于3ms。
因为DLR协议运行在第2层(在ISO的OSI 网络模型中),环形拓扑和DLR协议的运行,对于高层协议是透明的,诸如TCP/IP和CIP,除了通过CIP提供了一个DLR对象,这个对象包括了DLR配置和诊断接口。
DLR网络至少要有一个节点(设备)、一个环监督器和任何数量的常规环节点。这里假设所有环节点都有两个以太网口,使用了嵌入式技术的交换机。非DLR的多口设备- 交换机或者节点设备-可以接入环中,但要服从一定的规则。非DLR 设备的接入会影响环网的恢复时间。
2. 支持的拓扑结构
DLR拓扑使用简单的单环结构;不支持多环或者重叠环。网络架构允许多于一个DLR环,只要求多个环之间是隔离的。这样,在一个环中的DLR协议帧不会在另一个环上出现。DLR协议可以与其他协议共存,且不会相互干扰。标准的网络协议,诸如IEEE的生成树协议(STP,RSTP,MSTP)、专有的冗余协议,可以和DLR一起运行。也就是说,用户可以用交换机构建环形网络,使用DLR协议,同时还可以运行生成树协议或其他环协议,见图1。

图1:使用交换机的DLR
在图1中,每个DLR都是隔离的DLR网络,每个环都有一个环监督器(DLR Supervisor)。图示中的监督器有一个端口为封闭模式,用短红线表示,这是在环没有故障的情况下。
连接DLR的交换机可以运行STP/RSTP/MSTP, 当冗余路径存在时(图1中用绿线表示),生成树协议可以防止环路产生。交换机在DLR环端口发送的生成树协议报文会由DLR环监督器(参考IEEE 802.1D/802.1Q STP/RSTP/MSTP协议)阻断,交换机不会阻断DLR信息。
连接了DLR设备的交换机端口必须进行配置,以确保能够完成相应的功能。较复杂的拓扑可能是结合DLR环和非DLR交换机时运行STP/RSTP/MSTP,可能在DLR端口产生被阻止的情况。参考DLR规范了解详情。
[DividePage:NextPage]
3. 正常运行
图2表示了一个DLR网络正常运行的情况。就像图中显示的,每个节点有两个以太网口,并假设内嵌了交换机。当节点设备接收到一个以太网口包时,它要决定是接收这个包(比如,包有节点的MAC地址),还是要从另一个以太网口转发这个包。

图 2: 正常运行
有效的环监督器阻断另一个端口的通信,除了一些特殊帧,它不转发从一个口到另一个口的数据。使用这样的机制,可以避免网络环路的形成。在正常工作期间,任何两个环节点之间只有一条路径存在。
在每个信标间隔(缺省值为400微秒),有效环监督器通过它的两个以太网口发送一次信标帧。有效环监督器每秒还发送一次通告帧。发送信标和通告帧可以达到以下的目的:
1. 信标和通告帧可以通知环节点从线形拓扑到环形拓扑的转换。
2. 监督器的信标帧丢失可以检测到某种类型的故障。(注:通用环节点也能检查环和通知环故障)。
3. 信标帧携带一个优先值,当配置了多个环监督器时,通过这个值选择一个有效监督器。
图3表示由有效环监督器发送信标和通告帧:

图3: 信标和通告帧
4. 连接失效
4.1公共失效
最常见的公共链接失效形式包括下面的情形:
• 连接或者其他物理层失效由相邻节点查出。
• 一个环节点的电源失效或者电源波动,由相邻节点查出,认为是连接失效。
• 介质被用户有意断开,比如增加新节点或者删减已有节点。
在上述情况下,故障相邻节点会发送一个Link_Status信息到有效环监督器。图4 表示了故障相邻的环节点各自发送一个Link_Status信息到有效环监督器。

图4:链接失效
接收了Link_Status信息之后,有效环监督器重新配置网络,释放以前被封闭的端口,更新它的单播MAC表。监督器立即发送带有环状态值的信标和通告帧,指出环现在出现故障。
[DividePage:NextPage]
根据一个方向上信标检测的丢失信息、或根据带有环状态值的信标和通告帧,环节点也要更新它们的单播MAC表。在监督器和环节点同时都更新了单播 MAC表以后,网络完成了重新配置,通信才能继续进行。
图5表示了在连接失效后网络的配置,通信信息经过了有效环监督器的两个口。

图5: 在链接失效后网络重新配置
4.2 非公共失效
除了大多数的公共连接失效外,还有一类非公共失效:
• 在一个环节点的高层硬件/固件故障引起通信丢失,但物理层功能正常,电源也正常。
• 环协议未知节点与协议识别节点连接成链,这个链的中间某处出现失效。
在这些情况下,有效环监督器会先在一个口检查信标帧的丢失,然后在两个口都检查到。这时有效环监督器会重新配置网络,和公共失效的情况一样。另外,有效环监督器会发送一个Locate_Fault帧诊断故障位置。
还有可能出现:网络的一部分发生故障(如这部分由同一个电源供电,这个电源出了故障),会导致通信仅在一个方向上丢失。有效环监督器检测到在一个口的信标丢失,可以查出这种故障。当有效环监督器的封闭口检测到部分故障时,会在DLR对象中设置状态值。因为是部分故障,环从这个点会进行网络分段,这时还需要用户的参与,排除故障。
某些特殊条件,诸如一个网络连接器连接不可靠,可能会使有效环监督器不断在故障/恢复周期中循环。如果一直这样持续,会引起网络状态的不稳定,而且很难诊断的问题所在。当有效环监督器快速检测故障/恢复条件(在一个30秒周期发现5故障)时没有发现故障,会在DLR对象中设置一个状态值,在一个端口阻止通信。用户必须通过DLR对象,显式地清除这个状态值。
5.DLR设备的分类
DLR的设备分为下面几类。执行每类的详细要求会在后续章节定义。
环监督器
这类设备执行环监督器的功能。必须完成要求的环监督器行为,包括在缺省信标间隔400微秒时,发送和处理信标帧的能力。
支持信标帧的环节点
这类设备能够执行DLR协议,但没有环监督器的功能。它们能够处理和执行环监督器发送的信标帧。支持信标的环节点要支持以400微秒间隔接收信标的速率。
支持通告帧的环节点
这类设备能够执行DLR协议,但没有环监督器的功能。因为这种环节点不处理信标帧,所以只能转发信标帧。这种节点可以处理通告帧。
[DividePage:NextPage]
6. 实施要求
6.1 嵌入式交换机的要求和建议
下面是对使用嵌入式技术交换机(无论使用哪种商用芯片,FPGA,ASIC,等)的通用要求和建议:
• IEEE 802.3操作:
• 自动协商,10/100Mbps,全/半双工(要求);
• 速度/双工的强迫设置(要求);
• 推荐:在环口关闭流控制。
• 自动MDIX(介质随接口交叉),在自动协商和强迫设置速度/双工模式下。 注:这是物理层和转换问题,不是嵌入交换问题(要求)。
• QoS:
• 2 个队列(要求);4个队列(推荐);
• 因为DLR帧具有排列中的高优先级,所以需要严格执行优先级排序功能(要求);
• 使用802.1Q/D 的优先次序(要求),和DSCP-差分服务代码点 (高度推荐)。要与EtherNet/IP 的QoS 标准相一致。对于IP帧,嵌入交换机要使用DSCP值。对于非IP帧,使用在802.1Q帧头中的优先级位。
• 限制主机CPU的广播速率(推荐)。设备容忍的广播阀值取决于主机CPU。一般的推荐为:当广播通信量超过带宽的1%时,广播流量限制应该使能。
• 到主机CPU 的单播和多播过虑(推荐,实践证明大多数设备需要这个功能)。
6.2 DLR 实施要求
下面的要求应用于DLR节点,无论是环监督器还是环节点:
• 保持环协议帧中的 IEEE 802.1Q VLAN Id 和标签优先级。
• 在环口禁止IP多播过虑或者在环状态转换时更新多播过虑表。
• 为环口转发信标帧和主机CPU执行信标帧配置多播地址。
• 为通告和Locate_Fault 帧转发到主机CPU和环口配置多播地址。
• 为Neighbor_Check_Request /Response和Sign_On仅转发给主机CPU配置多播地址。
• 执行一种机制:标记从环上收到这种帧的端口。
• 执行一种机制:转发从主机CPU到环的这种帧,仅通过该端口发出。
• 配置有效环监督器的单播MAC地址,这样监督器可以在两个口转发帧。
• 在环状态转换时,更新单播MAC 地址表(或者禁止学习)。
• 配置自己的单播MAC地址,这样在MAC地址表更新时,它不会被清除。
• 执行以太网连接对象的接口计数器和介质计数器属性,帮助进行网络监视。
• 执行QoS对象,至少要有由设备产生的EtherNet/IP通信DSCP记号。
• 推荐:配置访问控制列表或者其他适合的机制-在接收报文时,除去来自网络设备自己的帧(比如,在环启动/恢复周期)。
7. 结论
DLR协议适合在EtherNet/IP网络上使用。DLR网络可以容错所有单点失效,在单环拓扑中提供了高可用性网络。在50个节点的DLR网络中,最差的情况下,网络的恢复时间小于3ms。快速的故障恢复,使得DLR网络可以在实时的控制系统中使用。
(转载)



