RTI Connext .NET API (legacy)  Version 6.1.1
DDS::UDPv4_WAN_Transport Interface Reference

Transport plug-in using UDP/IPv4 for WAN communications. More...

#include <managed_transport.h>

Detailed Description

Transport plug-in using UDP/IPv4 for WAN communications.

RTI Real-Time WAN Transport (RWT) is a transport that enables secure, scalable, and high-performance communication over wide area networks (WANs), including public networks.

It extends RTI Connext capabilities to WAN environments. Real-Time WAN Transport uses UDPv4 as the underlying IP transport-layer protocol to better anticipate and adapt to the challenges of diverse network conditions, device mobility, and the dynamic nature of WAN system architectures.

Real-Time WAN Transport, in combination with RTI Cloud Discovery Service (CDS), provides a complete, seamless solution out of the box for WAN connectivity.

This transport is not installed as part of an RTI Connext package; it must be downloaded and installed separately.

Real-Time WAN Transport replaces the transport capabilities of the Secure WAN Transport optionally available with previous RTI Connext releases, and provides the following capabilities:

  • NAT (Network Address Translator) traversal: Ability to communicate between DomainParticipants running in a Local Area Network (LAN) that is behind a NAT-enabled router, and DomainParticipants on the outside of the NAT across a WAN. This functionality is provided in combination with Cloud Discovery Service.
  • IP mobility: Support for network transitions and changes in IP addresses in any of the DomainParticipants participating in the communication.
  • Security: Secure communications between DomainParticipants using Security Plugins.

Real-Time WAN Transport does not require third-party components, such as STUN servers, or protocols like SIP to handle session establishment. Using a single API and security model, you can leverage the extensive capabilities of the RTI Connext framework and ecosystem, including tools and infrastructure services, even for real-time connectivity from edge to cloud and back in highly distributed systems that communicate across wide area networks.

This transport plugin uses UDPv4 sockets to send and receive messages. It supports unicast communications in a single instance of the plugin. By default, this plugin will use all interfaces that it finds enabled and "UP" at instantiation time to send and receive messages.

In addition, you can configure an instance of this plugin to selectively use the network interfaces of a node by specifying the "white" and "black" lists in the base property's fields ("<TRANSPORT_PREFIX>.parent.allow_interfaces", "<TRANSPORT_PREFIX>.parent.deny_interfaces").

RTI Connext can implicitly create this plugin and register with the DDS::DomainParticipant if this transport is specified in DDS::TransportBuiltinQosPolicy.

To specify the properties of the Real-Time WAN Transport that is implicitly registered, you can specify the predefined property names in DDS::PropertyQosPolicy associated with the DDS::DomainParticipant. (see Real-Time WAN Transport Property Names in Property QoS Policy of Domain Participant). The default value is assumed on any unspecified property.

Note that all properties should be set before the transport is implicitly created and registered by RTI Connext. Any properties set after the builtin transport is registered will be ignored. See Built-in Transport Plugins for details on when a builtin transport is registered.

For additional details on how to configure and use the Real-Time WAN Transport, see the Core Libraries User's Manual.

Real-Time WAN Transport Property Names in Property QoS Policy of Domain Participant

The following table lists the predefined property names that can be set in the DomainParticipantQos::property_qos to configure the Real-Time WAN Transport plugin.

Property Names for Real-Time WAN Transport Plugin
Property Name

Description

dds.transport.UDPv4_WAN.builtin.parent.classid See "<TRANSPORT_PREFIX>.parent.classid"
dds.transport.UDPv4_WAN.builtin.parent.address_bit_count See "<TRANSPORT_PREFIX>.parent.address_bit_count"
dds.transport.UDPv4_WAN.builtin.parent.properties_bitmap See "<TRANSPORT_PREFIX>.parent.properties_bitmap"
dds.transport.UDPv4_WAN.builtin.parent.gather_send_buffer_count_max See "<TRANSPORT_PREFIX>.parent.gather_send_buffer_count_max"
dds.transport.UDPv4_WAN.builtin.parent.message_size_max See "<TRANSPORT_PREFIX>.parent.message_size_max"
dds.transport.UDPv4_WAN.builtin.parent.allow_interfaces See "<TRANSPORT_PREFIX>.parent.allow_interfaces".
Interfaces should be specified as comma-separated strings, with each comma delimiting an interface. For example, 127.0.0.1,eth0
dds.transport.UDPv4_WAN.builtin.parent.deny_interfaces See "<TRANSPORT_PREFIX>.parent.deny_interfaces".
Interfaces should be specified as comma-separated strings, with each comma delimiting an interface. For example: 127.0.0.1,eth0
dds.transport.UDPv4_WAN.builtin.parent.thread_name_prefix See "<TRANSPORT_PREFIX>.parent.thread_name_prefix"
dds.transport.UDPv4_WAN.builtin.send_socket_buffer_size See "dds.transport.UDPv4_WAN.builtin.send_socket_buffer_size"
dds.transport.UDPv4_WAN.builtin.recv_socket_buffer_size See "dds.transport.UDPv4_WAN.builtin.recv_socket_buffer_size"
dds.transport.UDPv4_WAN.builtin.ignore_loopback_interface See "dds.transport.UDPv4_WAN.builtin.ignore_loopback_interface"
dds.transport.UDPv4_WAN.builtin.ignore_nonrunning_interfaces See "dds.transport.UDPv4_WAN.builtin.ignore_nonrunning_interfaces"
dds.transport.UDPv4_WAN.builtin.ignore_nonup_interfaces [DEPRECATED] See "dds.transport.UDPv4_WAN.builtin.ignore_nonup_interfaces"
dds.transport.UDPv4_WAN.builtin.no_zero_copy [DEPRECATED] See "dds.transport.UDPv4_WAN.builtin.no_zero_copy"
dds.transport.UDPv4_WAN.builtin.send_blocking See "dds.transport.UDPv4_WAN.builtin.send_blocking"
dds.transport.UDPv4_WAN.builtin.transport_priority_mask See "dds.transport.UDPv4_WAN.builtin.transport_priority_mask"
dds.transport.UDPv4_WAN.builtin.transport_priority_mapping_low See "dds.transport.UDPv4_WAN.builtin.transport_priority_mapping_low"
dds.transport.UDPv4_WAN.builtin.transport_priority_mapping_high See "dds.transport.UDPv4_WAN.builtin.transport_priority_mapping_high"
dds.transport.UDPv4_WAN.builtin.send_ping See "dds.transport.UDPv4_WAN.builtin.send_ping"
dds.transport.UDPv4_WAN.builtin.force_interface_poll_detection See "dds.transport.UDPv4_WAN.builtin.force_interface_poll_detection"
dds.transport.UDPv4_WAN.builtin.interface_poll_period See "dds.transport.UDPv4_WAN.builtin.interface_poll_period"
dds.transport.UDPv4_WAN.builtin.protocol_overhead_max See "dds.transport.UDPv4_WAN.builtin.protocol_overhead_max"
dds.transport.UDPv4_WAN.builtin.disable_interface_tracking See "dds.transport.UDPv4_WAN.builtin.disable_interface_tracking"
dds.transport.UDPv4_WAN.builtin.public_address See "dds.transport.UDPv4_WAN.builtin.public_address"
dds.transport.UDPv4_WAN.builtin.comm_ports See "dds.transport.UDPv4_WAN.builtin.comm_ports"
dds.transport.UDPv4_WAN.builtin.port_offset See "dds.transport.UDPv4_WAN.builtin.port_offset"
dds.transport.UDPv4_WAN.builtin.binding_ping_period

See "dds.transport.UDPv4_WAN.builtin.binding_ping_period"