1、PRP协议运行原理
PRP协议是工作在终端设备上的冗余协议,因此PRP冗余是一种节点冗余方式。一个终端节点被连接到两个相互独立且网络拓扑结构相同的网络中,同时这两个网络并行运行。下图所示为一个由两个交换网络组成的一个冗余网络,这个网络的拓扑结构是任意的,比如线型、环型、星型等。 两个网络在数据链路层具有相同的协议,但是允许它们在性能和传输时延上有所不同。两个网络之间没有直接连接,因此如果其中一个网络发生了故障,不会对另外一个造成影响。 每个PRP终端设备拥有两个并行运行的端口,两个端口通过链路冗余实体(LRE)被连接到同样的上层协议,如下图所示。 LRE 作为冗余层位于链路层,主要有两个任务:处理复制数据帧和管理冗余。LRE同时屏蔽了两个网络端口,使得上层协议能像普通情况一样工作。 在发送方节点中,当接收到来自上层协议的数据帧后,LRE几乎在同一时间通过两个端口将数据帧发送出去。在接收方节点中,LRE将一对数据帧中第一个到达的传递给上层协议,而将另一个丢弃掉。 如果一个网络或者一个网络接口遭到了破坏,LRE仍然能从另外一个网络中接收到数据帧。因此在只有单点网络发生故障的情况下,数据仍然可以通过另一个网络传输,因此PRP协议具有零冗余恢复时间。 为了管理冗余,LRE在普通以太网数据帧的尾部附加一个冗余标识符(Redundancy Check Trailer,简称RCT)。RCT包含了一组序列号来跟踪复制帧。
2、PRP协议帧格式
1)帧序号:16位,LRE为每个MAC目的地址维护一个帧计数序列号,每次发送加1;
2)网口号:4位,对双冗余网口,网口1为0x1010,网口2为0x1011;
3)LSDU长度:12位, 标识链路数据帧长度;
4)协议后缀:16位,设为常值0x88FC。
3、PRP协议说明
- PRP协议借鉴IEC 62439-3:2016标准,对可选功能根据项目需求选择性实现。
- PRP协议工作于链路层,双冗余端口通过链路冗余实体(link redundancy entity,LRE)连接到上层协议,不依赖上层协议,对上层协议透明。可接收非PRP协议格式的正确的普通网络消息,递交应用层。
- 为了硬件对原有节点网络冗余技术的兼容,支持PRP协议的LRE通过底层软件方式实现。节点可以通过不同调用接口或配置不同BSP固件,实现双网口切换冗余备份和双冗余并行冗余备份的两种工作方式。
- 无论单网口节点还是双网口节点具按PRP帧格式发送UDP帧,无需考虑单网口节点消息被错误处理问题。RCT的LAN ID不作为LRE接收与否的判别内容,但需要记录并上报消息与网口不适配的错误。
- 某个端节点的双冗余网口分别连接到两个相互独立且网络拓扑结构相同的网络,两个网络同时并行运行。
- 支持PRP协议的端节点双网口IP地址、MAC地址相同,便于地址解析协议ARP能和普通单网口节点一样工作。
- LRE在普通以太网数据帧的尾部附加一个冗余标识符(redundancy check trailer,RCT),通过源MAC地址和序列号来判别冗余复制帧,对冗余数据帧采用先到数据,晚到的另一个数据帧被丢弃。LRE通过RCT的消息序号和源MAC地址去区分是否是重复帧;LRE将收到的第一个新的消息序号的帧立即上传给应用层。
|