# Available docs on ROS1 TCPROS protocol

**URL:** <https://discourse.openrobotics.org/t/available-docs-on-ros1-tcpros-protocol/27137>\
**Category:** ROS General\
**Tags:** ros, documentation\
**Created:** [August 29, 2022, 4:36pm UTC](https://discourse.openrobotics.org/t/available-docs-on-ros1-tcpros-protocol/27137 "2022-08-29T16:36:38Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![ssnover](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/ssnover/32/14510_2.png) [@ssnover](https://discourse.openrobotics.org/u/ssnover)\
**Post date:** [August 29, 2022, 4:36pm UTC](https://discourse.openrobotics.org/t/available-docs-on-ros1-tcpros-protocol/27137/1 "2022-08-29T16:36:39Z")

</div>

Is there any additional documentation available for the TCPROS protocol?

The links here do a good job explaining the wire protocol for the connection header and the required fields for each participant for different operations: [ROS/TCPROS - ROS Wiki](http://wiki.ros.org/ROS/TCPROS)

But it’s still a little unclear what the order of operations is. Ideally I’m looking for a sequence diagram containing the rosmaster, a publishing node, and a subscribing node at a minimum (also service client/server). If so, how can I update the linked page and/or wherever this documentation should go if it’s not already present?

---

<div class="post-metadata">

**Author:** ![chfritz](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/chfritz/32/26180_2.png) [@chfritz](https://discourse.openrobotics.org/u/chfritz)\
**Post date:** [August 29, 2022, 6:48pm UTC](https://discourse.openrobotics.org/t/available-docs-on-ros1-tcpros-protocol/27137/2 "2022-08-29T18:48:38Z")

</div>

Have you already found the [ROS Master API](http://wiki.ros.org/ROS/Master_API) documentation, too? I think it answers some of your questions. That page + the pages it links to together + the TCPROS wiki page you mentioned + it’s links was pretty much all I needed when I was working on [rosnodejs](https://github.com/RethinkRobotics-opensource/rosnodejs). Definitely not as clean and complete as it could be, and a diagram would certainly be nice. But maybe it will help you along.

---

<div class="post-metadata">

**Author:** ![gavanderhoorn](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/gavanderhoorn/32/969_2.png) [@gavanderhoorn](https://discourse.openrobotics.org/u/gavanderhoorn)\
**Post date:** [August 31, 2022, 2:26pm UTC](https://discourse.openrobotics.org/t/available-docs-on-ros1-tcpros-protocol/27137/3 "2022-08-31T14:26:03Z")

</div>

Afaik there isn’t any more documentation than you’ve already found.

What could help though is the [TCPROS Wireshark dissector](https://www.wireshark.org/docs/dfref/t/tcpros.html).

Especially when you’re implementing a client library yourself, sniffing the traffic to figure out what `roscpp` and/or `rospy` are doing can be helpful.

---

<div class="post-metadata">

**Author:** ![lambdaprime](https://avatars.discourse-cdn.com/v4/letter/l/90ced4/32.png) [@lambdaprime](https://discourse.openrobotics.org/u/lambdaprime)\
**Post date:** [October 8, 2023, 9:22pm UTC](https://discourse.openrobotics.org/t/available-docs-on-ros1-tcpros-protocol/27137/4 "2023-10-08T21:22:33Z")

</div>

ROS1 transport protocol consist from 3 parts:

- [ROS Maste API](http://wiki.ros.org/ROS/Master_API) - An API to interact with ROS1 Master node
- [ROS Node API](http://wiki.ros.org/ROS/Slave_API) - An API which is used by Master node and nodes themselves to communicate with each other
- [TCPROS](http://wiki.ros.org/ROS/TCPROS) - protocol used to transfer data (messages) between the Nodes

> Ideally I’m looking for a sequence diagram containing the rosmaster, a publishing node, and a subscribing node at a minimum

Few [diagrams](http://portal2.atwebpages.com/jrosclient/javadoc/jros1client/jros1client/id/jros1client/ros/package-summary.html) covering the topic (not sequence one)
