Multicast Transport: Parameters Reference

The following table describes the parameters specific to multicast transports in the configuration interface.

For web API access to transport definitions, see Transport Definition Objects.

GUI Parameter JSON Attribute Description
Host host Optional.

Specify a network interface or an IP address. The transport resolves the value of the host parameter when the application establishes a bus.

If you supply an IP address, the transport first treats the IP address as a host address, comparing it against the interface addresses of the host computer, and it uses the first matching interface. If it does not find a direct match, the transport next treats the IP address as a subnet address, comparing the IP address against the network addresses of the interfaces of the host computer, and uses the first interface address whose network address matches the IP address.

Asterisk (*) is a special value, which designates all network interfaces on the host computer (that is, INADDR_ANY).

For testing multicast on a single host, you may supply the loopback interface, 127.0.0.1.

When absent, the transport uses the default interface address. First it calls gethostname to get the host name string. Then it calls gethostbyname with that host name to get the IP address of the default network interface.

Port port Required.

Specify a multicast port.

Listen Groups lgrps The transport joins all the listen groups that you specify. You may configure between zero and 64 listen groups.

A listen group enables inbound communication.

When absent, the transport does not support receive nor receive inbox communication.

Multicast Send Group sgrp When present, the transport sends on this multicast group. You may supply at most one send group.

A send group enables outbound communication.

When absent, the transport does not support send nor send inbox communication.

Packet Send Limit packet_send-limit Required. Use this upper limit to prevent fast senders from overwhelming slower receivers.

This value limits the maximum number of UDP packets per second that a program can send over the multicast transport. When a sending program exceeds this maximum, the transport buffers the excess packets in order to keep its outbound packet rate at or below this limit.

Zero is a special value, indicating no upper limit on sending programs.

For a detailed explanation, see UDP Packet Send Limit.

Retransmission Receiver Loss Suppression Level rxc_loss_tolerance When absent or zero, the transport always requests retransmission (within the constraints of the reliability window).

When present and non-zero, the transport can suppress retransmission requests from receivers that miss packets in excess of this loss percentage, and can report this condition in advisory messages. Specify the suppression behavior with the following parameter.

For details, see Multicast Retransmission Suppression.

Retransmission Receiver Loss Suppression Behavior rxc_advise_only This parameter modifies the behavior of the previous parameter.
When the loss suppression level is non-zero, you can select either of two behaviors:
  • Stop NAKs Suppress retransmission requests and report advisory messages.
  • Warning Only Output warning log messages, but do not suppress retransmission requests.

For details, see Multicast Retransmission Suppression.

Send Messages enable_inbox_support Only on Subscriber Interest (or the JSON attribute is set to the boolean value true) the multicast transport carries only those messages that match subscriber interest, filtering outbound messages at sending endpoints (see Subscriber Interest).

However, enabling this parameter is not sufficient. You must also configure the transport’s multicast groups to support bi-directional communication on the transport bus (see Listen Groups and Send Group). The two directions, inbound and outbound, need not use the same multicast group.

Always (or the JSON attribute is set to the boolean value false) the multicast transport carries all messages, without filtering. This value is the default, for backward compatibility.

Loopback On Send enable_loopback When enabled, the transport includes the loopback interface in its bus, so co-located application processes can communicate over the multicast bus. (Otherwise the multicast bus carries messages only over the network.)

To properly configure loopback behavior, select this parameter for all the transports of the bus that use loopback (that is, on the sending transports and the receiving transports).

Note: The internal details of loopback semantics vary by operating system. For best results, configure for consistent behavior on every platform, rather than coupling the transport definition to a specific operating system.
Reliability Time reliability_time Required.

The transport retains multicast data during this time window (a floating point value, in seconds).

Transports in sending applications retain recent multicast data in order to redeliver data to receiving applications upon request.

The reliability time of the sending transport determines the effective reliability window of all applications receiving data from it. A receiving transport does not request data beyond the reliability window of the sending transport (even if the receiver configures a longer reliability window).

For this value, the transport supports time granularity of 0.001 (1 millisecond) and a maximum value of 120.0 seconds (2 minutes). Within application programs, the base library throws an exception when it detects a non-zero value less than 1 millisecond or greater than 120 seconds.

Zero is a special value. Sending transports do not store data for retransmission. Receiving applications never request retransmission.

Reliability Memory reliability_mem When present, the transport retains multicast data up to this maximum (in bytes). See also Size Units Reference.

When absent, the default is zero, a special value indicating no reliability limit by size.

UDP Send Buffer Size udp_sndbuf When present, the library requests a buffer of this size, in bytes, for outbound multicast data. Operating system constraints can limit or override this request. The value must be a non-negative integer. (See also Size Units Reference.)

When absent or zero, the library requests the default buffer size, 16MB.

In most situations the default buffer size yields the best results. However, in some high-volume situations, larger buffers could yield higher throughput (depending on other factors).

UDP Receive Buffer Size udp_rcvbuf When present, the library requests a buffer of this size, in bytes, for inbound multicast data. (Operating system constraints can limit or override this request.) The value must be a non-negative integer. (See also Size Units Reference.)

When absent or zero, the library requests the default buffer size, 16MB.

In most situations the default buffer size yields the best results. However, in some high-volume situations, larger buffers could yield higher throughput (depending on other factors).

UDP Sender Port Range

UDP Receiver Port Range

udp_sender_port

udp_receiver_port

Port Ranges

When present, the transport binds available ports within these ranges.

When absent, the transport uses ephemeral ports assigned by the operating system.

For motivation and details, see Multicast Port Ranges.

For syntax, see Multicast Port Range Syntax.

UDP Maximum Packet MTU Size mtu_size When networks support a larger MTU size than the standard, set this parameter to the maximum packet size, in bytes.

When present, the multicast transport uses this size rather than the standard size.