Dear All,
When we make use of the RTI-DDS routing service we are often asked by our IT-security: What is the higher level protocol (above TCP).
I know DDS in local networks is RTPS2 via UDP. But what is it exactly if we use the routing service via TCP over a single port?
Thank you in advance & best regards,
Thomas
Hi Thomas,
yes, you are right. All the infrastructure services we provide (like routing service), tools, and the middleware are based on the RTPS2 protocol for putting data into the wire.
With that said, while the encapsulation of RTPS2 over UDP does not include additional overhead beyond the IP/UDP headers, our RTPS2 over TCP implementation includes some additional proprietary overhead and signaling messages.
That overhead is required because, while in UDP the RTPS2 logical ports are mapped to UDP ports, in TCP all the traffic is sent to the same TCP server port (using multiple connections). Therefore the need of a signaling protocol.
In a typical scenario with two RTI DDS based applications using TCP in asymetric mode (one application runs as client openning connections to the other application running a TCP server listening over a port), RTI DDS will create five connections:
- Control connection: this will be used for negotiating and maintaning the rest of connections, it can contains traffic in both ways (client to server, server to client).
- Two discovery connections: one for sending discovery from the client to the server, the other one for sending discovery from the server to the client.
- Two user data connections: one for sending user data from the client to the server, the other one for sending user data from the server to the client.
Let me know if you need any further clarification,
Best,
Jose