Why are my reader and writer applications unable to communicate?
Note: Applies to RTI Connext 4.x and above
Generally speaking, if a regular 'ping' does not work in both directions, RTI Connext traffic will not be able to get through either.
There are several other possible reasons that your reader and writer applications may not be communicating with each other:
- Incompatible initial peers lists.
For two applications to communicate, each should have the other in its initial peers list. (No changes to the list are required if you are using default discovery parameters.)| - Incompatible QoS settings.
To see if the reader and writer have incompatible QoS settings, install a listeners on the reader and writer. Turn onDDS_REQUESTED_INCOMPATIBLE_QOS_STATUS
andDDS_OFFERED_INCOMPATIBLE_QOS_STATUS
in the listener mask. If there is any incompatibility, you will get a callback in the listeners. The status parameter will also tell you which QoS is incompatible. - Firewalls.
If there is a firewall between the two machines, RTI Connext may not be able to communicate because the firewall does not allow packets on the required UDP ports through the firewall. Disabling the firewall or modifying the configuration to allow the required ports will enable communication. If multicast communication is required, such as in the default discovery peer configuration, you must ensure that the multicast groups being used are forwarded by the firewall as well. - Network Address Translation (NAT).
If there is a NAT between the two machines, RTI Connext cannot communicate because the NAT will mask and change the host IP and port numbers. To resolve this, make sure that the addresses of any machines that need to communicate with a host across the NAT (as a publisher or a subscriber) are routable from across the NAT. If multicast communication is required, such as in the default discovery peer configuration, you must ensure that the multicast groups being used are forwarded by the router as well; even in this case, routable unicast addresses will still be needed for some communication. - Asymmetric discovery.
If host A has multiple NICs and host B knows how to route traffic to some interfaces but not others, you should disable the unroutable interfaces via the configuration of the transport properties. Otherwise, host A may choose to advertise an unroutable address and the machines will not be able to communicate. This is especially a problem if the host exposes more than 4 interfaces, which may include any virtual network interfaces or aliases.