ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

RTPS vs TCP (Foxy)

asked 2021-10-07 08:24:53 -0500

Thomas10017 gravatar image

Hi!

I have a question, why FastDDS uses RTPS even for qos_reliability=reliable instead of use TCP? What are advantages to use RTPS?

Thank you

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
1

answered 2021-10-07 20:37:49 -0500

ChuiV gravatar image

First you need to understand that TCP and RTPS are not exactly the same thing. It's like asking why you would use AC voltage instead of a USB plug.

Go look at the diagrams at https://en.wikipedia.org/wiki/OSI_model before continuing to read this...

UDP and and TCP are transport protocols (layer 4 in the OSI model), and RTPS is probably layer 5.

The cool thing with the OSI model is that if you really needed to, you could swap out lower layers as long as they provide the same functionality. For example IPoAC (https://en.wikipedia.org/wiki/IP_over...) swaps out the data link layer with pigeons (yes. you read that right.).

Fastdds includes a few different "transport" methods: UDP, TCP, or Shared memory. UDP transport is compatible with other DDS/RTPS vendors as UDP is specified as part of the RTPS protocol. TCP transport and shared memory transport are not part of the RTPS specification (Though I wish they were..) and therefore not compatible with other DDS/RTPS vendors.

So I think bottom line to answer your question: FastDDS uses UDP unless configured otherwise because that's what the RTPS specification defines.

edit flag offensive delete link more

Comments

Thank you so much for your very informative answer, I learned a lot. Have a good day and thank you again!

Thomas10017 gravatar image Thomas10017  ( 2021-10-08 01:53:59 -0500 )edit

Question Tools

2 followers

Stats

Asked: 2021-10-07 08:24:53 -0500

Seen: 94 times

Last updated: Oct 07 '21