# Modbus: old, boring and everywhere

> A protocol from the late seventies with no types, no structure description and no security. And the only one spoken by almost everything already on site.

Source: https://naasson.com/en/blog/modbus-old-boring-everywhere/
Published: 2026-06-26
Language: en
Direction: Industry by Naasson (https://naasson.com/en/industry/)
Publisher: Naasson — https://naasson.com

---
Modbus is an industrial communication protocol designed in the late seventies. It has no data types, no way to describe structure, no authentication and no encryption. Errors are easy to make and hard to notice.

It is also the first protocol we built a working driver for. Not because it is the best.

## Why start there

Because existing hardware speaks it. Industrial drives, meters, sensors, controllers: if a device has digital communication at all, the odds that it is Modbus are higher than for all the alternatives combined.

Starting with Modbus means the very first site connects to what is already installed, not to what still has to be bought.

We chose one working driver for a widespread protocol over five stubs for protocols that look good in a feature list.

## What is awkward about it

No types. A register is sixteen bits, and the protocol does not say what is in them. An integer, half of a floating-point number, a set of flags: that is defined by the device documentation, not by the protocol.

No standard byte order. Two devices reporting the same number can lay it out across registers differently. This is the classic source of values that look like garbage or, worse, like plausible nonsense.

No structure description. You cannot ask a device what it has. You can only read its documentation, which disagrees with the firmware.

No security. Whoever reaches the line can read and write.

## How people live with it

With an equipment catalogue. Everything the protocol lacks (units, scale factors, byte order, sensor-failure values) is described in the catalogue per device class and verified on a live device.

"Verified on a live device" is the key phrase. An address that nobody has read with their own eyes on this specific device counts as unverified, because industrial device documentation regularly disagrees with the firmware.

## Missing security as a design constraint

Since the protocol has no authentication, security comes from the network layer: line isolation and restricted access to the segment.

This means Modbus must never be exposed on a shared network. The statement is trivial, and it is broken all the time, usually when remote access is added "just for commissioning".

Hence a practical rule: every path into the industrial segment is described explicitly and has an expiry date. Access granted for commissioning without an expiry date stays forever.

## What we say about other protocols

That there are no drivers for them yet, and that they report this honestly.

That is inconvenient in a presentation and useful on site. A stub that pretends to work is discovered not at the demo, but where the devices have already been bought and installed.

## Why a boring protocol is a good thing

Because it has forty years of field use, known problems and predictable behaviour.

Every issue listed above has been documented by thousands of people and has a known fix. That sets Modbus apart from a modern protocol with the same problems that nobody has written up yet.