RTPS (Real Time Publish Subscribe Protocol) is a protocol for reliable pub-sub communication with great effort over unreliable transport including UDP in both unicast and multicast.
RTPS is standardized through OMG (Object Management Group) as an interoperability protocol for Data Distribution Service (DDS) implementations for real-time use in aerospace and security.
In addition to RTPS implementations embedded in different DDS implementations, there are standalone light-weight RTPS implementations, eProsima Fast RTPS being the main ones in terms of overall performance, capabilities, and adherence to the modern-day release of RTPS Preferred (RTPS 2.2)
What is RTPS Benefits?
The basic capabilities of the RTPS protocol are :
- The performance and quality of service (QoS) properties allow first-class-effort and reliable publish-subscribe communication for real-time programs using well-known IP networks.
- Fault tolerance allows network start-up without single factors of failure.
- Extensibility allowing backward compatibility and interoperability through expansion of the protocol and enhancement with new offerings.
- Plug-and-play connectivity to new packages and offerings allowing automated, configuration-much less discovery with the help of applications joining and leaving the community at any time.
- Configuration allowing to balance reliability and timeliness requirements for each record delivery transaction.
- Modularity allows simple devices to implement a subset of protocols and still participate within a publish-subscribe network.
- Structures enabling scalability at scale to very large publication-subscription networks.
- Type-protection to prevent utility programming errors compromising the operation of remote nodes in the post-subscribe community.
A quick rationalization of each module and its parts is preserved below :
Structure Module :
Since RTPS is a wired protocol designed to implement DDS applications, each DDS concept or entity explicitly maps to an RTPS entity. All RTPS entities belong to an RTPS domain, which represents a separate communication plane with fixed contributors. Each RTPS participant can include multiple neighborhood endpoints of exceptional types: writers and readers. These two endpoints change records within the RTPS network by sending RTPS messages. Writers send information locally to readers, who may in turn request or fame the record.
Read this also
The interface between the RTPS endpoints (writers and readers) and its associated DDS units is the history cache. Data exchanged between endpoints is usually stored in a cache change. Each write action, for example, causes a cache change in the writer’s history. After then, the RTPS writer sends an RTPS message to all readers who fulfill the criteria. Upon receipt, the RTPS reader adds the cash change to its respective history cache and informs the DDS entity that a piece of new information is available.
Message Module :
The message module defines the content of the atomic statistics exchange between RTPS writers and readers. RTPS messages are made up of headers seen through some sub messages. The header identifies the message as part of the RTPS protocol, in addition to the model of the protocol being used and the vendor sending the message. It also identifies the participant who is sending the message.
Each sub-message consists of a sub-message header and a sequence of sub-message elements. This structure is chosen to allow the vocabulary of the sub-messages and the structure of each sub-message to be expanded while maintaining backward compatibility. The sub-message header includes the sub-message ID that identifies the type of the sub-message, the sub-message duration in bytes, and the sub-message flag. There are twelve unique types of sub-messages. Please refer to the OMG RTPS specification report for a complete description of all messages, their structure, and interpretation. The 3 most important messages are:
Data: This sub-message is sent from a writer to a reader with information relating to a business to a writer-related information object. This change can happen in value (new information being added) or inside the existence cycle (facts sent in the past are no longer valid).
Heartbeat: This sub-message is sent from a writer to a reader telling the cache change that the writer should be in this second.
ACKNACK: This sub-message is sent from a reader to a writer, and allows the reader to inform the writer which changes it has received and which of them are still lacking. It can be used for both high quality and bad acknowledgment.
Behavior Module :
This module describes the exchange of valid messages that can arise between a writer and a reader. It additionally defines the change in the position of the writer and reader on a per-message basis. A complete set of rules can be found in the OMG RTPS specification record. These regulations have been laid out to create some interactivity between specific implementations.
Discovery Module :
This module describes the protocol that allows participants to obtain information about the lives and characteristics of all the different participants and endpoints within the domain. This statistics trade is known as meta traffic. Once a distant endpoint is located, nearby endpoints can be configured for this reason to establish a verbal exchange. The Discovery Protocol is divided into layers: Participant Discovery Protocol (PDP) and Endpoint Discovery Protocol (EDP). The PDP specifies how individuals find each other. When searched, members state their endpoints about the use of optional statistics EDP. Different providers may also implement more than one discovery protocol, but a PDP and an EDP must be supported by all companies to ensure interoperability. These discovery protocols are called “simple” (Simple PDP and Simple EDP) and are fully applicable to most programs.
Read this also
Full details of the Search module can be found inside the specification document. However, the most important function of this discovery mechanism is that it allows simple plug-and-play connectivity without the need for any configuration through the user.