paint-brush
Secure and Dynamic Publish/Subscribe: LCMsec: Description of LCMby@marshalling

Secure and Dynamic Publish/Subscribe: LCMsec: Description of LCM

by MarshallingJuly 10th, 2024
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow

Too Long; Didn't Read

LCM is a brokerless, topic-based Publish/Subscribe protocol designed for real-time systems that require high-throughput and lowlatency. Messages are transmitted using UDP and routed via IP-multicast to all other nodes within the multicast group. The binary-encoded LCM messages are then sent via multicast groups.
featured image - Secure and Dynamic Publish/Subscribe: LCMsec: Description of LCM
Marshalling HackerNoon profile picture

Authors:

(1) Moritz Jasper, Barkhausen Institut gGmbH, Wurzburger Straße 46, Dresden, Germany ([email protected]);

(2) Stefan Kopsell, Barkhausen Institut gGmbH, Wurzburger Straße 46, Dresden, Germany ([email protected]).

Abstract and Introduction

Related Work

Description of LCM

Attacker Model and Security Goals

LCMSec: The Proposed Protocol

Implementation and Evaluation

Conclusion

Appendix and References

III. DESCRIPTION OF LCM

Lightweight Communications and Marshalling [2] is a brokerless, topic-based Publish/Subscribe protocol designed for real-time systems that require high-throughput and lowlatency. Message types can be defined in the LCM type specification language, which is a language-neutral and platformneutral specification language for structured data. From this specification language, language-specific bindings for binary serialisation and encoding are generated, while maintaining interoperability.


The binary-encoded LCM messages are then sent via multicast groups, which are identified by the multicast IP-address and port on which they are transmitted. Each group comprises multiple topics, which in LCM are called channels, identified by a channelname string. Messages are transmitted using UDP and routed via IP-multicast to all other nodes within the multicast group. A node can subsequently subscribe to a channel within that group by simply dropping all messages except those that match the channelname. Since the same channelname might be used in multiple multicastgroups at the same time, we can uniquely identify a only by the combination of multicastgroup and channelname. We will therefore define LCMDomain=(multicastgroup, channelname).


Fig. 1. High-level illustration of LCM


The LCM packet format, as depicted in Figure 2, consists of a 4 byte magic number to identify the LCM protocol, a sequence number which is incremented by each sender separately, and a zero-terminated, ASCII-encoded channelname string. The channelname string is immediately followed by the payload. Large messages are fragmented into multiple smaller transportation units to achieve a maximum message size of 4 GB, in this case a slightly more complicated header is used, but omitted here.


Fig. 2. LCM packet format


This paper is available on arxiv under CC BY 4.0 DEED license.