Does RTI Connext use IGMP messages?
Note: Applies to NDDS 3.x, RTI Connext 4.x and above
Yes, RTI Connext will cause IGMP messages to be sent, allowing routers to appropriately handle multicast traffic delivery. The RTI code does not send the IGMP messages itself, but the host's network stack should send them when needed.
When RTI Connext finds out that there is a multicast address it needs to listen to, it will ask to join the multicast group for that address (for IPv4, we make a IP_ADD_MEMBERSHIP setsockopt
call) on each enabled interface. This tells the network stack we want to receive the messages for that multicast group.
The network stack tracks multicast memberships for each network interface on a host-wide basis. Whenever the host needs to join a new multicast group on an interface (i.e. some application on a host asks to join a multicast group that wasn't used before on that interface), the stack is expected to send out an IGMP join message. This will tell all routers and "smart" switches attached to the network segment that we're listening for messages. Otherwise these devices may not know to forward messages from other segments to "our" segment.
Of course, there are things that could go wrong with this. Routers may be configured not to give us multicast traffic despite the IGMP messages. Some OSes (e.g. VxWorks) also may allow IGMP support to be turned off in the stack, which will cause problems. Finally, if the multicast TTL is set too low in the RTI Connext QoS parameters, routers will not forward datagrams to other subnets despite the IGMP messages. (Note that the default TTL is 1 for RTI Data Delivery Service 4.x, so you will need to increase it.)
If using multicast with IPv6, the situation is equivalent: the stack will send ICMP group join messages as needed. (IPv6 group management has been incorporated into the ICMPv6 protocol, so there is no "IGMPv6".)