PRP和HSR的无缝保留协议

在工业中,随着 ICS承担着越来越多的功能,而数据丢失可能会导致巨大的成本。

例如,在能源领域,如果来自测量传感器的数据没有及时到达继电器端子,则可能会导致短路蔓延到供电网络的相邻部分,这将导致损失比及时将部分从短路断开的情况严重得多。 因此,在能源项目中,通常可以满足“恢复时间少于1毫秒”的要求。

在数据传输出现任何故障的情况下,基于诸如RSTP,MRP,DLR等行业协议的网络冗余是基于拓扑结构的变化。 更改拓扑需要一定的时间(从毫秒到秒,具体取决于协议),这称为“恢复时间”。 在这段时间内,没有与网络的一部分进行通信,因此,数据丢失了。 即 传统的环形冗余技术不允许恢复时间少于1 ms。

有鉴于此,所谓的“无缝”冗余技术-PRP和HSR-越来越流行。 与上述协议相比,基于PRP和HSR的冗余不是通过重建拓扑结构而是通过复制帧来实现的。 每个帧都由发送方复制,并且两个帧以不同的方式传输,并且接收节点处理第一个进入的帧,然后丢弃第二个进入的帧。 该操作原理不需要重组拓扑,因此,该协议几乎“无缝”运行。 在剪切下,您将找到这些协议的实现细节。

网络结构


无缝冗余是在终端节点而不是网络组件上实现的。 这是PRP和HSR与其他冗余协议(如RSTP或MRP)之间的主要区别之一。 考虑PRP和HSR的网络结构特征。

PRP-网络结构


端节点具有两个以太网接口,这些接口连接到彼此隔离的两个网络,它们并行运行并具有独立的拓扑(即,这两个网络的拓扑可以相同或不同)。 必须隔离网络,以使一个网络中的任何故障和数据传输停止都不会影响第二个网络,即 甚至网络电源也由不同的来源提供。 这些网络之间不应有任何直接连接。



PRP网络结构

这两个网络通常称为LAN A和LANB。如上所述,它们可以具有不同的拓扑和不同的性能。 数据传输的延迟也可能有所不同。

该网络可能包含以下元素:

  • DAN(双连接节点)-连接到两个网络并发送/接收重复帧的节点。
  • SAN(单连接节点)-仅连接到一个网络(LAN A或LAN B)并发送/接收普通帧的节点。
  • 如果需要将具有一个以太网接口并且不支持PRP协议的设备冗余连接到RPR网络,则使用所谓的“冗余盒”(Redundancy Box)(通常是RedBox)。 在RedBox上,来自设备的数据包被复制并传输到PRP网络,就像从DAN传输数据一样。 此外,RedBox后面的设备被视为其他设备的DAN。 这样的节点称为虚拟DAN或VDAN(虚拟DAN)。




RedBox的工作原理

HSR-网络结构




高铁网络结构

HSR的工作原理是将所有设备组合成一个环,并且复制所有消息以及PRP中的消息。 设备通过环发送两个帧:一个顺时针复制,另一个逆时针复制。 接收者接收两个副本,但仅处理第一个副本,然后删除第二个副本。 如果其中一个链接发生了问题,并且其中一个重复的帧没有出现,则仅接受另一个。 所有HSR设备都有两个以太网接口-端口A和端口B。

根据HSR协议,网络中可能存在以下元素:

  • SAN是只有一个以太网接口的节点。 这样的节点可以专门通过RedBox连接到HSR网络。
  • DAN-可以在HSR环内部交换数据的节点(可以发送/接收重复的帧)。
  • RedBox-与PRP中一样,RedBox允许您将具有一个以太网接口的设备连接到HSR网络。 RedBox后面的设备被视为其他设备的DAN。 这样的节点称为虚拟DAN或VDAN(虚拟DAN)。
  • QuadBox-HSR还引入了一个新元素-QuadBox。 该设备具有四个HSR端口。 它允许您组合两个HSR环。 在每个环中,QuadBox充当DAN,可以将数据从一个环传输到另一环。



QuadBox示例

DAN结构


对于PRP和HSR,DAN结构相似。 每个DAN都有两个并行运行的接口,并通过所谓的LRE层-链路冗余实体连接到一个通信堆栈的上层。 在此级别上,将执行所有备份功能。

两个DAN接口具有相同的MAC地址和一个IP地址。 这使您可以使预订对顶层透明。 特别重要的是,这允许将ARP和DAN用于任何非冗余节点。

但是,对于PRP和HSR,DAN结构中当然会有细微差别。

PRP-DAN结构


从顶层发送帧时,LRE将对其进行复制并几乎同时通过端口发送这两个数据包。 两个帧通过两个具有不同延迟的网络并行传输。 在理想情况下,它们以最小的时间差传递到目标节点。 接收到LRE后,接收器将接收到的第一个帧发送到上层,并丢弃第二个帧。

LRE在发送时创建重复的帧,并在收到后对其进行处理。 与较高级别有关,该级别表示非冗余网络适配器的常规接口。 LRE执行两项任务:处理重复的帧和管理冗余。 为了实现控制,LRE向每个帧添加了一个32位冗余控制尾部(RCT),并在接收到该帧时将其删除。



在PRP中的两个DAN之间传输数据

HSR-DAN结构


从上层发送的帧被LRE层复制,并且数据包几乎同时通过端口A和端口B发送。 (图中的1和2)。

接收到帧后,接收器将其传输到LRE级别,还将其重定向到另一个端口,然后在环网中进一步传递。 (3,4)。

如果一帧到达发送者,则该帧不再进一步发送,而是被破坏(5、6)。

两个帧都到达LRE级别,但是发送速度更快的帧被传送到更高级别,并且重复的帧被丢弃。

LRE在每个帧上添加一个48位HSR标签(类似于添加VLAN标签),并在收到后删除该标签。



在HSR中的两个DAN之间传输数据

SAN和DAN之间的互操作性


在PRP中,SAN可以连接到任何网络-LAN A或LAN B,但是这样的节点不支持备份功能。 因此,连接到一个网络的SAN无法与连接到第二个网络的另一个相似节点进行通信。 为了与SAN交互,DAN生成特殊的帧。 这种需求是由于以下事实:来自冗余设备的正常帧中的SAN必须忽略RCT,这是不可能的,因为SAN无法将RCT与普通的IEEE 802.3数据块区分开。 反过来,DAN知道它将帧发送到SAN,并且不将RCT添加到该帧。 它仅将一帧从顶层转发到与SAN连接的接口。 换句话说,如果DAN无法确定正在与另一个DAN交换数据的内容,则不会将RCT添加到帧中。

在HSR中,SAN无法直接连接到网络。 它只能通过RedBox连接。

DAN模式


当使用在两个接口上收到的重复帧(如果它们可以维修)时,DAN必须接受其中一个帧并丢弃第二个。 PRP中有两种处理方法:

  • 重复接受是一种接收两个传入帧并将其重定向到上级的方法。
  • 重复丢弃-一种方法,其中接收节点从传入帧的RCT中读取信息,以确定要丢弃的帧。

对于HSR,请考虑最流行的U和X模式。

重复接受


在数据链路层进行处理时,以这种模式运行的DAN不会丢失任何帧。

没有RCT,帧将发送到LAN A和LANB。 接收器的LRE只是将两个帧都重定向到上层,假设进一步的传输会破坏重复的帧(IEEE 802.1D明确规定上层协议必须能够处理重复的帧)。

例如,TCP和UDP对重复帧具有很高的弹性。

这种方法实施起来非常简单,但是有一个严重的缺点-它不提供任何网络控制功能,因为 不会以任何方式监视两个帧的接收。

在通道级别重复丢弃


使用第二种方法时,将由四个八位位组组成的字段添加到帧-RCT(冗余控制尾部)中。 当从顶层接收到帧时,在LRE级别添加了预告片。 RCT由以下参数组成:

  • 16位序列号;
  • 4位网络标识符,LAN A为1010(0xA),LAN B为1011(0xB);
  • 12位帧大小。

由于在框架中添加了RCT尾部,因此其大小大于IEEE 802.3-2005标准中定义的最大框架大小。 要使用PRP在网络内传输数据,必须将设备配置为传输1496个八位位组大小的数据。 因此,并非每个交换机都适合在LAN A或LAN B上使用。



带有RCT的框架

每次链路层将帧发送到特定地址时,发送方都会增加相应节点的序列号,并通过两个接口发送相同的帧。

接收节点必须根据来自RCT的信息确定重复项。

重复丢弃方法算法


接收器假定使用PRP协议从任何源发送的帧都以不断增加的数量顺序发送。 下一个帧的预期序列号存储在变量ExpectedSeqA中,并因此存储在ExpectedSeqB中。

接收到后,可以通过将ExpectedSeqA(ExpectedSeqB)的值与存储在RCT中currentSeq变量中的接收帧的序列号进行比较,来检查序列的正确性。 如果结果是肯定的,则将变量ExpectedSeq设置为比currentSeq多一个,以便可以在此行上进行正确的检查。



丢帧间隔(丢窗口)

对于两个接口,成对的序列号都有一个动态的帧丢失间隔。 该间隔的上限是ExpectedSeq(此接口上的下一个预期序列号),不包括给定值本身,此间隔的下限是startSeq(丢弃具有该序列号的重复帧的最小序列号)。

在检查了序列号之后,接收机决定是否丢弃该帧。 假设LAN A的帧丢失间隔大小不为零(图5)。 来自LAN B的编号在此间隔内的帧将被丢弃。 来自LAN B的所有其他帧将被接受并发送到更高级别。

从LAN B删除帧会减小LAN A的大小,因为 接收到该帧后,在该接口上将不会再出现编号较低的帧。 因此,startSeqA被设置为比currentSeqB多一个。 在这种情况下,LAN B帧的丢失间隔的大小被重置为0(startSeqB = ExpectedSeqB),因为 显然,LAN B帧位于LAN LAN的“后面”,并且不应丢弃来自LAN A的帧。



从LAN B丢帧后减小LAN A间隔

在图7的情况下,当来自LAN A的几帧连续出现,但没有来自LAN B的帧时,则它们被接受,因为 它们的currentSeq在LAN B帧的丢弃间隔之外,并且LAN A间隔增加一个位置。 如果来自LAN A的帧继续到达,但仍然没有来自LAN B的帧,则当达到最大间隔大小时,startSeqA也将开始增加一。

当接收到的帧在另一个LAN的帧的丢弃间隔之外时,将保存该帧,并将此接口的间隔大小设置为1,这意味着将仅丢弃来自另一个LAN的具有相同序列号的帧,而另一个接口的丢弃窗口设置为0,这意味着不会丢失任何帧(图7)。



局域网B的帧未丢失

最常见的情况是两个接口都同步并且两个间隔的大小均为0(图8)时,这意味着将接受第一个接口的帧,并且该接口的间隔将增加到1,这将允许该帧从另一个接口被丢弃。相同的序号。



同步局域网

由于RCT中存在LAN标识符,因此重复的帧相差一位(并且具有不同的校验和)。 接收器检查该帧是否属于接口(即检查具有LAN A标识符的帧是否已到达接口A)。 接收方不会丢弃该帧,因为 它可能在数据块中包含有用的信息,但是在这种情况下,计数器cntWrongLanA或cntWrongLanB将增加1。 由于此类错误不是一次性的(由LAN A和LAN B混合),因此计数器将不断增加。

链接高铁交通


在HSR网络中传输数据时,会将HSR标签添加到每个帧。
HSR标签由以下参数组成:

  • 16位HSR以太网类型
  • 4位路径指示器
  • 12位帧大小
  • 16位序号

发送方将相同的序列号插入到要发送的重复帧中,然后为从该节点发送的每个消息增加序列号。

接收器监视来自接收数据的每个源的所有帧的序列号(它通过MAC地址区分源)。 如果帧来自不同的行,并且具有相同的源和序列号,则接受其中一个,丢弃第二个。

为了控制网络,每个设备都维护着一个表,该表包含了网络中所有从其接收数据的节点。 这使您可以检测节点的消失和总线上的错误。

节点按源和序列号定义发送的帧。



带有添加的HSR标签的框架

HSR节点从不丢弃它先前未收到的帧。 该节点定义了几乎所有重复的帧,但是如果它们很少,则它不会删除它们。 框架仅穿过整个环,并在发送方上被破坏。

在标准中,没有定义用于确定重复帧的算法。 作为可能的方法,可以使用哈希表,队列和序列号跟踪。

U模式


在这种模式下,接收帧的节点将销毁副本,并且不允许其进一步传播。 如果仍然将帧进一步传输,则会在随后的节点上将其销毁。 此模式允许您从单播流量中卸载环网。

在该图中,红色箭头表示从端口“ A”发送的带有HSR标签的数据包(以下称为帧“ A”)。

绿色箭头表示从端口“ B”发送的带有HSR标签的数据包(以下称为帧“ B”)。

空箭头表示流量下降,即 在正常操作期间将发送但在此模式下将被发送的帧。
叉号表示从环网中删除了流量(无论如何)。



X模式


在这种模式下,如果不再从其他方向收到该帧,则节点不会进一步转发该帧,并且会丢弃该帧。

例如,图像中的DAN 1不会进一步转发帧“ B”,因为 他已经接收到帧“ A”,并且DAN 2将不再发送帧“ A”,因为 已经收到帧“ B”。

如果算法中某处发生错误并且进一步传输了帧,则将在以下节点或在其上创建它们的节点上丢弃这些帧。

X模式不适用于PTP消息和监管帧传输。



网络控制


PRP


接收器检查所有帧是否依次到达并在两个通道上正确接收。 它支持可以通过例如SNMP读取的错误计数器。

所有设备都支持与之交换数据的节点表。 这些表包含有关从特定节点发送或接收最后一帧的时间的信息,以及有关PRP协议的其他信息。

同时,这些表格可以检测需要同步序列号的化合物,以及检测断裂的序列和缺失的节点。

诊断基于以下事实:每个DAN都会定期发送诊断帧(监控帧),这使您可以检查网络的完整性和节点的存在。 同时,这些帧允许您检查哪些设备充当DAN,确定其MAC地址以及它们以何种模式工作-重复接受或重复丢弃。

高铁


每个节点不断检查所有链接。

每个节点定期(向两个端口)发送一个诊断帧,其中包含有关节点状态的信息。 该帧被所有节点(包括发送方)接受。 当发送方收到自己的诊断消息时,将执行物理通道完整性检查。

发送诊断帧的时间间隔相对较大(几秒钟),因为 它不需要提供冗余,而仅用于诊断目的。

将所有节点输入到找到的所有伙伴的表中,并记录该节点上一次活动时的时间,以及所有跳过的帧和未按顺序发送的帧。

还记录所有发生的拓扑更改,并且可以通过SNMP获取所有信息。

HSR和PRP:利弊



结论


这并不是说一个协议要比另一个协议更好-它们针对不同的应用程序做了一些设计。 HSR和PRP都允许无缝的网络冗余,但是HSR允许您创建更具成本效益的解决方案。 但是这种盈利能力带来了困难,因为 基于HSR的网络很难扩展,并且应用也不是很灵活。 灵活性低是由于拓扑结构有限(环,环对)以及协议与其他技术的兼容性差所致。 因此,HSR更适合于小型系统的冗余以及与大型网络的集成。 整个网络的基于HSR的备份是有问题的。 反过来,PRP是一种更昂贵的解决方案,但允许您组织一个相当大的网络,将来可以毫无问题地进行扩展,因为该协议可以方便地集成几乎所有技术并实现完全不同的拓扑。

寻找解决方案

Source: https://habr.com/ru/post/zh-CN443248/


All Articles