How to configure ROS networking to minimise packet broadcast redundancies?
We have three physical machines: A, B and logger. A and B actively publish to various topics and logger subscribes to everything that A and . The plan is to network them together through a single router/switch running DHCP.
My understanding of how ROS on top of DHCP will work is that each time A publishes to a topic that B and logger are subscribed to - the information in that message will be encoded into TCP packets and transmitted to the router/switch twice - once for each subscribing machine’s IP address.
This strikes me as rather wasteful - a more efficient, ideal situation would be: A publishes to a topic, the message is encoded into TCP packets with the subnet broadcast address, this packet transmits once to the router/switch and is relayed to both B and logger. Given that 100% of messages being sent over the network should be received by every other machine on the network this would double the effective available bandwidth.
Could such a networking scheme be practically configured and if so, how?
should this read: "on top of TCP"?
Also note: if that is the case, then it's only partly correct: ROS supports both UDP and TCP (although UDP support in
rospy
is not complete).As broadcasting is not used in the default ROS transports, I'm wondering what you mean by this.