diff --git a/README.md b/README.md index 888d18501..0f63c50cf 100644 --- a/README.md +++ b/README.md @@ -42,6 +42,7 @@ However, `rmw_fastrtps` offers the possibility to further configure Fast DDS: * [Full QoS configuration](#full-qos-configuration) * [Change participant discovery options](#change-participant-discovery-options) * [Enable Zero Copy Data Sharing](#enable-zero-copy-data-sharing) +* [Large data transfer over lossy network](#large-data-transfer-over-lossy-network) ### Change publication mode @@ -306,6 +307,26 @@ In order to achieve a Zero Copy message delivery, applications need to both enab ``` +### Large data transfer over lossy network + +Out of the box, Fast DDS uses UDPv4 for the data communication over the network. +Although UDP has its own merit for realtime communications, with many applications relying on UDP, depending on application requirements, a more reliable network transmission may be needed. +Such cases included but are not limited to sending large data samples over lossy networks, where TCP's builtin reliability and flow control tend to perform better. + +Because of this reason, Fast DDS provides the possibility to modify its builtin transports via an environmental variable `FASTDDS_BUILTIN_TRANSPORTS`, allowing for easily changing the transport layer to TCP when needed: + +```bash +export FASTDDS_BUILTIN_TRANSPORTS=LARGE_DATA +``` + +This `LARGE_DATA` mode adds a TCP transport for data communication, restricting the use of the UDP transport to the first part of the discovery process, thus achieving a reliable transmission with automatic discovery capabilities. +This will improve the transmission of large data samples over lossy networks. + +> [!NOTE] +> The environmental variable needs to be set on both publisher and subscription side. + +For more information, please refer to [FASTDDS_BUILTIN_TRANSPORTS](https://fast-dds.docs.eprosima.com/en/latest/fastdds/env_vars/env_vars.html#fastdds-builtin-transports). + ## Quality Declaration files Quality Declarations for each package in this repository: