7.25.1. Protocol Modules

A stack of protocol modules is used to implement various aspects of the reliable multicast communication mechanism.

The transport modules are responsible for transporting messages. The UDP module uses IP multicast to deliver multicast messages and IP unicast to deliver unicast messages. The TCP module uses a mesh of TCP connections to deliver both multicast and unicast messages. The TUNNEL module can tunnel other transport to a specialized router.

The discovery modules are responsible for locating the group upon initialization. The PING, MPING and BPING modules use IP multicast or IP broadcast over UDP. The TCPPING module attempts to contact members from a given list. The TCPGOSSIP module attempts to contact members using a specialized router. The FILE_PING, JDBC_PING, RACKSPACE_PING and S3_PING keep track of members in various places ranging from shared file systems and shared database tables to cloud storage services.

The merge modules are responsible for merging groups during recovery from network partitioning failures. The MERGE2 module has group coordinators periodically multicast presence and membership information, distinct subgroups are merged upon discovery. The MERGE3 module has all members periodically multicast membership information hash, inconsistent membership information is retrieved and merged upon discovery.

The failure detection modules are responsible for detecting failed members. The FD module uses periodic ping with acknowledgment between neighboring members in a ring. The FD_ALL module uses multicast heartbeat among all members in a group. The FD_SOCK module uses a TCP socket ring, socket close indicates suspect. The VERIFY_SUSPECT module provides additional verification of suspect members.

The reliable message transmission modules are responsible for providing reliable ordered message delivery.

Other modules provide functions such as authentication, encryption, compression, fragmentation, flow control, atomic delivery, totally ordered delivery, and other.