Ask Your Question
0

What is the UDP port subscribers open up?

asked 2017-09-27 06:52:23 -0600

codenotes gravatar image

updated 2017-09-27 08:18:54 -0600

gvdhoorn gravatar image

In preparing/configuring networking for a ROS environment, I have noticed that ROS subscribers (and rosout) opens UDP ports.

(from TCPView)

KineticListener.exe **4908  UDP ASHTRAY-1** 52513   *   *                                           
KineticListener.exe 4908    TCP ashtray-1   51328   desktop-mp2jcia 3143    ESTABLISHED

Given I am using TCPROS, I am wondering why this is so and what this 52513 port is for. UDP is not optimal, because I can't route UDP through the NAT, so if these UDP ports are important for something I may not be able to work around it. (rosout.exe also opens UDP, but it is a subscriber, so I think all subscribers do it).

I would just like to know: What is this UDP port for? I would like to ignore it, because I can't (for many reasons) route UDP through the firewall.

NOTE: if you notice the .exe extension and such, yes...this is a ROS installation (kinetic) on windows. I have ported the ROS client libraries and the python infrastructure (roscore, etc.) and they work very well with very little modification.

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
1

answered 2017-09-27 08:17:16 -0600

gvdhoorn gravatar image

updated 2017-09-27 08:20:38 -0600

I would just like to know: What is this UDP port for?

Afaik each ROS node will also open a UDP port to facilitate subscribers that would like to exchange messages over UDPROS. Subscribers can negotiate that by adding the unreliable hint to their TransportHints.

See also: wiki/roscpp/Overview - Publishers and Subscribers - Subscribing to a Topic - Transport Hints.

I would like to ignore it, because I can't (for many reasons) route UDP through the firewall.

As long as your subscribers do not request subscriptions over the unreliable transport (ie: use UDPROS), firewalling those UDP ports should be fine.

There may even be fallback behaviour built-in, but I'm not sure of this: if the unreliable transport doesn't work, the reliable one (ie: TCPROS) gets used automatically.


NOTE: if you notice the .exe extension and such, yes...this is a ROS installation (kinetic) on windows. I have ported the ROS client libraries and the python infrastructure (roscore, etc.) and they work very well with very little modification.

You're referring to codenotes/ros_cygwin here, correct?

edit flag offensive delete link more

Comments

1

Actually, NOT cygwin, pure windows. I became frustrated with the cygwin layer and just sat down for a couple days and went through all python backend stuff and amended it to work on raw windows (10 anyway). The Visual C++ version of the roscpp and TF libraries I had done some time ago.

codenotes gravatar imagecodenotes ( 2017-09-27 08:29:20 -0600 )edit
3

That's very nice.

Do you intend to provide those ports to the community as well?

gvdhoorn gravatar imagegvdhoorn ( 2017-09-27 08:30:47 -0600 )edit

BTW, thank you for the answer here...that puts my fears at rest. It is pretty cool to be doing roscore and the console tools (rostopic, rosnode, etc.) purely on windows. All that backed architecture works real well, credit to you guys. all that is needed is a change to the use of python's popen.

codenotes gravatar imagecodenotes ( 2017-09-27 08:32:05 -0600 )edit
1

I do plan to share, absolutely. Not sure of the best way...I could document my steps for others to reproduce via a ROS wiki...not sure. Open to suggestions. There are remarkably few patches needed on the python/roscore and the roscpp/TF libraries.

codenotes gravatar imagecodenotes ( 2017-09-27 08:35:51 -0600 )edit

Just keep in mind I'm also "just a user". So my answers are based on my (current) understanding.

gvdhoorn gravatar imagegvdhoorn ( 2017-09-27 08:35:56 -0600 )edit

re: sharing: the current instructions for a 'native ROS install' on Windows date back to Electric, Fuerte and Groovy. See wiki/win_ros fi. It would be awesome if we could update that for Kinetic. The patches themselves could either be upstreamed, or kept in a ..

gvdhoorn gravatar imagegvdhoorn ( 2017-09-27 08:38:20 -0600 )edit

.. separate repository. As long as build instructions are available I imagine people should be able to manage. Binary distributions could then always be considered.

gvdhoorn gravatar imagegvdhoorn ( 2017-09-27 08:38:50 -0600 )edit

it's all good...your comment jives with my read of the source...but there's a lot going on, so just wanted to make sure. Anyway, if it proves an issue, I can patch roscpp and remove it...but I really don't like changing the core libraries too much.

codenotes gravatar imagecodenotes ( 2017-09-27 08:40:18 -0600 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

Stats

Asked: 2017-09-27 06:52:23 -0600

Seen: 583 times

Last updated: Sep 27 '17