5 ms·
Interesting. Does it define a wire protocol or is the interface implicit to the client library.
by anonymousDan 3y ago
Interesting. Does it define a wire protocol or is the interface implicit to the client library.
- elcritch 3y agoBoth, sorta. There’s a serialization format, and the wire message format with QoS on top of UDP. The message format seems similar to MQTT semantics, but with a few extras. I think the wire format is fixed, but it’s pretty simple. The serialization layer (CDR) is swappable, but mostly all the same, though one of the most popular implementations uses a slightly non-standard FastCDR. Though from my testing it produces the same bytes and the CDR spec was updated. Maybe they match now. I wish there was a better implementers guide. DDS might be a decent alternative to MQTT for more generic embedded if so.
- rektide 3y agoThe wireshark wiki has a surprisingly good write up on the underlying RTPS protocol: > The Real-Time Publish-Subscribe (RTPS) Wire Protocol provides two main communication models: the publish-subscribe protocol, which transfers data from publishers to subscribers; and the Composite State Transfer (CST) protocol, which transfers state. https://wiki.wireshark.org/Protocols/rtps https://wiki.wireshark.org/Protocols/rtps ROS docs talk quite a lot a out various vendor implementations of RTPS middleware. But little docs on the protocol. Did a little search but haven't found many truly great in depth resources. OpenDDS seems to be the main impl I've stumbled across. Descend docs. https://opendds.readthedocs.io/en/latest-release/devguide/introduction.html#data-centric-publish-subscribe-dcps-overview https://opendds.readthedocs.io/en/latest-release/devguide/in...
- rektide 3y ago(This post wasn't to say there are great implementers resources! I searched for a while for more specific implementation or Wireshark-centric things, to really explain what was what. Would absolutely adore more technical coverage!)