UDPv4 Multicast

The following tests have been performed to compare the use of Multicast versus Unicast in a scenario with one Publisher and many Subscribers across several machines connected through 10Gbps NICs to the same LAN.

The tests show three different use-cases:

  • Unicast + Best Effort reliability

  • Unicast + Reliable Reliability

  • Multicast + Best Effort reliability

  • Multicast + Reliable Reliability

We also repeated the tests for sample sizes of 1 kB, 8kB, 63 kB and 128 bytes.

The following graph displays the average Maximum Throughput obtained by all the Subscribers in a scenario where we always start a single RTI Perftest Publisher in a node and we start increasing the number of RTI Perftest Subscribers.

Note

By default, RTI Perftest enables batching when performing a Maximum Throughput test. The batching feature allows sending more than one data sample per RTPS packet, improving network performance for small data sizes. See the RTI Connext DDS Core Libraries User’s Manual for more information on batching.

The batch maximum size is set by RTI Perftest to be 8192 bytes; after 8192 bytes, batching is not enabled.

Detailed Statistics

The following tables contains the raw numbers presented by RTI Perftest.

  • Reliable (Multicast)

Subscribers

Min

Median

90percentile

Max

1

9915.7

9915.7

9915.7

9915.7

2

9910.9

9910.9

9910.9

9910.9

4

9908.4

9908.4

9908.4

9908.4

8

9907.1

9907.2

9907.2

9907.2

10

9906.9

9906.9

9906.9

9906.9

20

9906.4

9906.9

9906.9

9906.9

30

9906.5

9906.9

9906.9

9906.9

50

9906.5

9906.9

9906.9

9906.9

70

9898.2

9898.3

9898.3

9898.3

80

9906.5

9906.9

9906.9

9906.9

90

9906.7

9906.7

9906.8

9906.8

100

9906.7

9906.7

9906.8

9906.8

  • Best Effort (Multicast)

Subscribers

Min

Median

90percentile

Max

1

9916.3

9916.3

9916.3

9916.3

2

4300.1

9916.3

9916.3

9916.3

4

2738.2

9916.3

9916.3

9916.3

8

2418.9

9916.3

9916.3

9916.3

10

2637.2

9916.3

9916.3

9916.3

20

2318.1

9916.3

9916.3

9916.3

30

2234.0

9916.3

9916.3

9916.3

70

2318.4

9916.3

9916.3

9916.3

80

2402.0

9916.3

9916.3

9916.3

90

2335.4

9916.3

9916.3

9916.3

100

2284.5

9916.3

9916.3

9916.3

  • Reliable (Unicast)

Subscribers

Min

Median

90percentile

Max

1

9915.7

9915.7

9915.7

9915.7

2

4639.9

4639.9

4639.9

4639.9

4

2335.4

2335.4

2335.5

2335.5

8

1109.0

1109.0

1109.0

1109.0

10

927.7

927.7

927.8

927.8

20

461.1

461.1

461.1

461.1

30

310.3

310.3

310.3

310.3

50

194.5

194.5

194.5

194.5

70

140.6

140.6

140.6

140.6

80

123.1

123.1

123.1

123.2

100

98.7

98.7

98.7

98.7

  • Best Effort (Unicast)

Subscribers

Min

Median

90percentile

Max

1

9916.3

9916.3

9916.3

9916.3

2

4958.1

4958.1

4958.1

4958.1

4

2479.1

2479.1

2479.1

2479.1

10

991.6

991.6

991.6

991.6

20

495.8

495.8

495.8

495.8

30

330.5

330.6

330.6

330.6

50

198.3

198.3

198.3

198.3

70

141.7

141.7

141.7

141.7

80

124.0

124.0

124.0

124.0

90

110.2

110.2

110.2

110.2

100

99.2

99.2

99.2

99.2


Test Hardware

The following hardware was used to perform these tests:

Linux Nodes

Dell R340 Servers (13 Units)
Processor: Intel Xeon E-2278G (3.4-5GHz, 8c/16t, 16MB cache, 2 memory channels @2666MHz)
RAM: 4x 16GB 2666MHz DIMM (64GB RAM)
HD: 480GB SATA SSD
NIC 1: Intel 710 dual port 10Gbps SFP
OS: Ubuntu 20.04 -- gcc 9.3.0

Switch

Dell 2048 -- 10Gbps switch

From the tests performed above, we can see how Unicast starts with one and two Subscribers, with similar throughput as that produced using Multicast, but when the number of Subscribers increases beyond that, throughput degrades. This is due to having to send each of the samples as many times as there are Subscribers in the test.

When using Multicast, we can see that the performance remains the same when we keep increasing the number of Subscribers, since data is only sent once. This is completely true for Best Effort reliability; however, for Reliable reliability another effect takes place: all samples need to be acknowledged, and the reliable protocol will send the Heartbeat packets via Multicast, but the acknowledge packets that need to be sent in response to a Heartbeat are sent via Unicast. This is not a problem when the sample size is relatively big, but it can adversely affect performance when using small sample sizes (such as 128 bytes).