发布时间:2024-02-06 15:00
PRP协议是工作在终端设备上的冗余协议,因此PRP冗余是一种节点冗余方式。一个终端节点被连接到两个相互独立且网络拓扑结构相同的网络中,同时这两个网络并行运行。下图所示为一个由两个交换网络组成的一个冗余网络,这个网络的拓扑结构是任意的,比如线型、环型、星型等。
两个网络在数据链路层具有相同的协议,但是允许它们在性能和传输时延上有所不同。两个网络之间没有直接连接,因此如果其中一个网络发生了故障,不会对另外一个造成影响。
每个PRP终端设备拥有两个并行运行的端口,两个端口通过链路冗余实体(LRE)被连接到同样的上层协议,如下图所示。
LRE 作为冗余层位于链路层,主要有两个任务:处理复制数据帧和管理冗余。LRE同时屏蔽了两个网络端口,使得上层协议能像普通情况一样工作。
在发送方节点中,当接收到来自上层协议的数据帧后,LRE几乎在同一时间通过两个端口将数据帧发送出去。在接收方节点中,LRE将一对数据帧中第一个到达的传递给上层协议,而将另一个丢弃掉。
如果一个网络或者一个网络接口遭到了破坏,LRE仍然能从另外一个网络中接收到数据帧。因此在只有单点网络发生故障的情况下,数据仍然可以通过另一个网络传输,因此PRP协议具有零冗余恢复时间。
为了管理冗余,LRE在普通以太网数据帧的尾部附加一个冗余标识符(Redundancy Check Trailer,简称RCT)。RCT包含了一组序列号来跟踪复制帧。
1)帧序号:16位,LRE为每个MAC目的地址维护一个帧计数序列号,每次发送加1;
2)网口号:4位,对双冗余网口,网口1为0x1010,网口2为0x1011;
3)LSDU长度:12位, 标识链路数据帧长度;
4)协议后缀:16位,设为常值0x88FC。
Pycharm使用Database Navigator连接mysql数据库全过程
STM32启动文件startup_stm32f407xx.s
记录Chrome插件从V2版本升级到V3版本的过程中遇到的问题
企业微信机器人推送mysql_Zabbix.5.0设置企业微信群机器人推送告警信息
受美制裁,俄罗斯 ClickHouse 能否扛起数据库大旗?
SpringBoot中MybatisX插件的简单使用教程(超详细!!)
PyTorch】常见错误: RuntimeError:one of the variables needed for gradient computation has been modified