Parallel Redundancy Protocol
Parallel Redundancy Protocol (PRP) is a data communication network standardized by the International Electrotechnical Commission as IEC 62439-3 Clause 4. It allows systems to overcome any single network failure without affecting the data transmission.
The two LANs are completely separated and are assumed to be fail-independent. A source node sends simultaneously two copies of a frame, one over each port. The two frames travel through their respective LANs until they reach a destination node, in the fault-free case, with a certain time skew. The destination node accepts the first frame of a pair and discards the second, taking advantage of a sequence number in each frame that is incremented for each frame sent.
Therefore, as long as one LAN is operational, the destination always receives one frame. This protocol provides a zero-time recovery and allows to check the redundancy continuously to detect lurking failures.
Non-PRP nodes are either attached to one network only (and therefore can communicate only with other nodes attached to the same network), or are attached through a RedBox, a device that behaves like a doubly attached node.
Node failures are not covered by PRP, but duplicated nodes may be connected via a PRP network.
Each node in PRP has two Ethernet interfaces that use the same MAC address and present the same IP address(es). Therefore, PRP is a layer 2 redundancy, which allows higher network protocols to operate without modification.
The original standard IEC 62439-3 (2010) was amended to align PRP with the High-availability Seamless Redundancy (HSR) protocol, which uses a ring topology instead of parallel networks. To achieve this, the original PRP was modified at the cost of a loss of compatibility with the PRP 2010 version.
The revised standard IEC 62439-3 (2012) describes both HSR and PRP. Many technical details are now aligned with HSR, which eases the implementation of multi-protocol nodes. In particular, a redundant transition between HSR and PRP networks is now possible.
The old PRP 2010 standard is sometimes referred to as PRP-0 (according to the protocol version), and PRP 2012 as PRP-1.