The Relable Multicast Protocol(RMP) is a multicast transport protocol that provides a totally ordered, reliable, atomic multicast service on top of an unreliable multicast datagram service such as IP-Multicasting. For reliability and ordering, the RMP provides a primary receiver, called token site, which serializes messages from all senders and multicasts an acknowledgment(ACK) to inform the senders that the token site has received the messages and to inform all sites in the multicast-group the global ordering information. The token rotates and atomic delivery of a message to an application is possible after N transfers of the token, where N is the number of members.
The Multi-Token RMP(MTRMP) protocol, modified version of the RMP protocol, is proposed to adapt the RMP to a multicast-group of large members over a slow network. The MTRMP divides members of multicast-group into several groups, called sub-token ring. Each sub-token ring has another token, called sub-token, and the sub-token rotates concurrently its sub-token ring to perform the role of the token of the RMP.
The MTRMP is implemented using the RMP version 1.35p5 and ported to Solaris workstations and Linux machines. Through the analysis on the assumption that the transmission delay inside the sub-token ring is much shorter than the transmission delay among sub-token rings, it can be shown that the atomic delivery latency and required queue length is proportional to the number of sub-token rings, not to the number of members in multicast-group as the RMP is. The MTRMP has been tested using 8 Intel Pentium-150MHz Linux machines on a 1250KB/sec Ethernet. The test has shown that the MTRMP requires at most 15 pieces of queue slot while the RMP requires more than 28 pieces of queue slot.
For the multicast-group of large members over slow network, the MTRMP provides much better delivery latency and queue length characteristic than the RMP. Even inside LAN, the MTRMP is still better than the RMP.