-
Notifications
You must be signed in to change notification settings - Fork 43
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Multicast PDP + TCP data use case (#594)
* Refs #19762: Introduction Signed-off-by: EduPonz <eduardoponz@eprosima.com> * Refs #19762: TCP with multicast discovery Signed-off-by: EduPonz <eduardoponz@eprosima.com> * Refs #19762: Add Troubleshooting section Signed-off-by: EduPonz <eduardoponz@eprosima.com> * Refs #19762: Apply Carlos' suggestions Signed-off-by: EduPonz <eduardoponz@eprosima.com> --------- Signed-off-by: EduPonz <eduardoponz@eprosima.com>
- Loading branch information
Showing
9 changed files
with
211 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
.. _troubleshooting: | ||
|
||
Troubleshooting | ||
=============== | ||
|
||
This section offers hints and pointers to help users with navigating through the documentation while troubleshooting | ||
issues. | ||
|
||
* Problems with transmitting **large samples such as video or point clouds**? Please refer to | ||
:ref:`use-case-largeData`. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
.. include:: ../../../03-exports/aliases.include | ||
|
||
.. _use-case-tcp: | ||
|
||
Fast DDS over TCP | ||
================= | ||
|
||
As explained in :ref:`transport_tcp_tcp`, Fast DDS offers the possibility to communicate nodes within distributed | ||
applications with DDS over a TCP transport layer. | ||
This has the advantage of leveraging the builtin flow control and reliability of the TCP protocol, which in the | ||
context of DDS applications is best suited for the transmission of large payloads, i.e. large data samples, over | ||
lossy networks. | ||
Examples of such cases would be transmitting video or large point clouds resulting from laser scanning over WiFi | ||
links. | ||
|
||
The configuration of the TCP transport typically involves an *a priori* knowledge of the deployment in order | ||
to set :ref:`Simple Initial Peers` for :ref:`discovery`, which may not always be possible and creates difficulties when | ||
reallocating nodes of the distributed applications, as the entire discovery configuration needs to be changed. | ||
To overcome this problem, this use case presents an approach for leveraging the Fast DDS' TCP transport capabilities | ||
while at the same time not requiring configuration modifications when the deployment changes over time. | ||
It does so by configuring the participant discovery phase (see :ref:`disc_phases`) to occur over UDP multicast, while | ||
the application data delivery occurs over TCP. | ||
|
||
.. toctree:: | ||
:maxdepth: 2 | ||
|
||
/fastdds/use_cases/tcp/tcp_with_multicast_discovery.rst |
31 changes: 31 additions & 0 deletions
31
docs/fastdds/use_cases/tcp/tcp_with_multicast_discovery.rst
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
.. include:: ../../../03-exports/aliases.include | ||
.. include:: ../../../03-exports/aliases-api.include | ||
|
||
.. _use-case-tcp-multicast: | ||
|
||
TCP Communication with Multicast Discovery | ||
========================================== | ||
|
||
The following snippets show how to configure *Fast DDS* |DomainParticipants| to run the | ||
:ref:`PDP discovery<disc_phases>` phase over UDP multicast and communicate application data over a | ||
:ref:`transport_tcp_tcp` transport. | ||
With this approach, applications managing large samples can benefit from transmitting their data over TCP, while | ||
at the same time have the flexibility of automatic discovery. | ||
|
||
.. tabs:: | ||
|
||
.. tab:: C++ | ||
|
||
.. literalinclude:: ../../../../code/DDSCodeTester.cpp | ||
:language: c++ | ||
:dedent: 8 | ||
:start-after: //PDP-MULTICAST-DATA-TCP | ||
:end-before: //! | ||
|
||
.. tab:: XML | ||
|
||
.. literalinclude:: /../code/XMLTester.xml | ||
:language: xml | ||
:start-after: <!-->PDP-MULTICAST-DATA-TCP<--> | ||
:end-before: <!--><--> | ||
:lines: 2-4, 6-80, 82-83 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters