Modbus RTU and Modbus TCP carry the same function codes and the same register model, defined in the Modbus Application Protocol specification. RTU sends compact binary frames over a serial line, usually RS-485, with one master, a slave address and a CRC-16. TCP wraps the same request in a 7-byte MBAP header and sends it over Ethernet to port 502, with no Modbus CRC. Pick by the physical network you have or are building.

Who this is for:

Automation, instrumentation and maintenance engineers in plants, and system integrators, choosing between the two for a device, panel or retrofit.

Embedos blogs photo of a PLC rack mounted in a control panel, with field wiring in ducts and terminals above and below

What you'll be able to do after reading:

Read both frame formats byte by byte, apply the RS-485 limits correctly, estimate polling time, understand ports and security, and choose RTU or TCP for meters, VFDs, PLCs and remote sites.

Modbus RTU vs Modbus TCP at a glance

Point Modbus RTU Modbus TCP
Physical layer Serial: RS-485 two-wire is most common, RS-232 for short point to point links Ethernet, TCP/IP
Who may talk One master at a time per bus; slaves only reply Client and server; several connections, up to the device’s limit
Addressing Slave address 1 to 247, 0 is broadcast IP address plus a 1-byte Unit Identifier
Framing Frames separated by at least 3.5 character times of silence 7-byte MBAP header with a length field
Error check CRC-16 in every frame No Modbus CRC; TCP/IP and the Ethernet CRC-32 handle it
Maximum frame 256 bytes (253-byte PDU + address + CRC) 260 bytes (253-byte PDU + 7-byte MBAP)
Devices and distance 32 devices per segment without a repeater (4 fewer if the line is polarised); up to 1000 m at 9600 baud with AWG26 or wider cable Set by Ethernet design, switches and cabling
Port Not applicable 502; Modbus/TCP Security over TLS uses 802

All figures above come from the Modbus Organization’s free specifications: the Modbus application protocol specification, the Modbus over serial line specification, the Modbus messaging on TCP/IP implementation guide and the Modbus/TCP Security protocol specification. Wikipedia’s Modbus article is useful further reading.

Frame by frame: RTU address and CRC-16 vs the 7-byte MBAP header

The same request in both formats: read two holding registers (function 03) starting at address 0 from device 1. The specification numbers registers from 1 but addresses them from 0 on the wire. In the common Modicon-style convention many manuals use, holding register 40001 is address 0.

Why do I get exception code 2?

Illegal Data Address. The start address or quantity is outside the device’s map, often because the 40001 offset was not removed.

Embedos blogs diagram of the same Modbus request in two frames. RTU, 8 bytes: 01 slave address, PDU 03 00 00 00 02 (function 03, start address 0, quantity 2), then CRC-16 C4 0B low byte first. TCP, 12 bytes: 7-byte MBAP header 00 01 transaction ID, 00 00 protocol ID, 00 06 length, 01 unit ID, then the same PDU with no CRC. The shared PDU is boxed across both frames.

Modbus RTU request

01 03 00 00 00 02 C4 0B
01     slave address
03     function: read holding registers
00 00  start address 0
00 02  quantity 2
C4 0B  CRC-16, low byte first

Modbus TCP request

00 01 00 00 00 06 01 03 00 00 00 02
00 01  transaction identifier
00 00  protocol identifier (0 = Modbus)
00 06  length: 6 bytes follow
01     unit identifier
03 00 00 00 02  the same PDU, no CRC

The PDU in the middle is identical; only the wrapper changes. Check a Modbus CRC-16 yourself: choose CRC-16/MODBUS and low byte first.

Reading the response: why do floats read wrong?

A 32-bit float needs two 16-bit registers. Modbus sends each register high byte first, but the Modbus application protocol specification does not say which register comes first, so master and device can disagree without any error. A pressure transmitter on a 0 to 50 bar range returns 01 03 04 41 26 66 66 A4 4E over RTU, or 00 01 00 00 00 07 01 03 04 41 26 66 66 over TCP. The two registers are 4126 and 6666 (hex):

Order Bytes Value
ABCD 41 26 66 66 10.4
CDAB (word swapped) 66 66 41 26 2.718 × 1023
BADC 26 41 66 66 6.710 × 10−16
DCBA 66 66 26 41 2.717 × 1023

Only ABCD falls inside 0 to 50 bar. These values match the free tool to decode Modbus float word order (ABCD, CDAB).

RTU is a protocol, RS-485 is the wire

Modbus RTU is a framing; RS-485 is the electrical layer it most often runs on. From the Modbus over serial line specification:

  • Addresses: 1 to 247 for slaves, 0 for broadcast, one master at a time.
  • Silent interval: frames are separated by at least 3.5 character times.
  • Devices: 32 devices are always allowed on a segment without a repeater; more only if the device documentation says so. Transceivers rated at a fraction of a unit load raise this. TI’s RS-485 design guide notes that 1/8 unit load parts allow up to 256 nodes on an unbiased bus, but failsafe bias resistors can add up to 20 unit loads, which cuts that to about 96. The Modbus specification likewise reduces the allowed count by 4 when the line is polarised.
  • Trunk length: up to 1000 m at a maximum of 9600 baud with AWG26 or wider cable, halved when 4-wire cable is used as a 2-wire system. Category 5 cable may be used up to 600 m.
  • Drops: derivation cables never more than 20 m. Faster transceivers need shorter stubs, according to the same TI design guide (SLLA272).
  • Termination: at both ends of the trunk only, a 150 ohm resistor, or 120 ohm in series with 1 nF where the line is polarised. Never on a drop, and none on RS-232.
  • Bias (polarisation): one pair of resistors for the whole bus, pull-up to 5 V on D1 and pull-down to common on D0, between 450 and 650 ohm, usually at the master. The specification reduces the allowed device count by 4 when bias is fitted, and 650 ohm allows more devices than 450 ohm.

Check your values with the free RS-485 termination and bias calculator.

Is Modbus RTU the same as RS-485?

No. RTU is the framing and protocol; RS-485 is the electrical layer it usually runs on. RTU can also run on RS-232.

Should I use 8N1 or 8E1?

The specification default is even parity. If you use no parity, it requires 2 stop bits, though many devices ship as 8N1. Match the device.

How many devices can be on a Modbus RTU network?

Addresses run from 1 to 247, but an RS-485 segment is allowed 32 devices without a repeater unless the device documentation permits more, and 4 fewer if the line is polarised.

Speed and polling in practice: which is faster?

On RTU, the arithmetic

At the specification default of 19200 baud, 8 data bits, even parity and 1 stop bit, each byte takes 11 bits, about 0.573 ms. Reading 10 registers from one device:

  1. Request, 8 bytes: about 4.58 ms.
  2. Silent gap of 3.5 characters: about 2.01 ms.
  3. Response, 25 bytes (address, function, byte count, 20 data bytes, CRC): about 14.32 ms.
  4. Another 3.5 character gap: about 2.01 ms.
  5. Total wire time: about 22.9 ms, plus the device’s own response time from its manual.

With 10 such devices on one segment, a full scan takes at least 229 ms plus ten device response times. Above 19200 baud the serial line specification recommends fixed timer values: 1.75 ms for the inter-frame gap (t3.5) and 750 µs for the inter-character time-out (t1.5). Read registers in blocks, up to 125 per request with function 03. If a slave answers only some of the time, rule out clock baud rate error at either end.

On TCP

Wire time is rarely the limit. The device’s response time, how many simultaneous requests it serves, and any gateway in the path, which brings back the serial timing above, decide the real speed. “Faster” depends on the network and the devices, not on the protocol name.

Which is faster, Modbus RTU or Modbus TCP?

The network under TCP is faster, but a slow device answers slowly on either. Gains come from parallel connections, not from the single request.

Ports and security: 502, 802 and authentication

  • Modbus TCP uses registered port 502, as the TCP/IP implementation guide states.
  • Plain Modbus defines no authentication: any client that reaches the port can read and write. NIST SP 800-82 Rev. 3 notes that many OT protocols have no authentication at any level.
  • The Modbus/TCP Security protocol wraps Modbus in TLS, with X.509v3 certificates for authentication and role-based authorisation, on port 802. Check that both ends support it before relying on it.
  • Keep plain Modbus TCP on a segmented OT network, never on the internet.
What port does Modbus TCP use?

Port 502. Modbus/TCP Security, which wraps Modbus in TLS, uses port 802.

Is Modbus TCP secure?

Plain Modbus TCP has no authentication or encryption. Use network segmentation, and Modbus/TCP Security where both ends support it.

Multiple clients on Modbus TCP vs one master on an RTU bus

An RTU bus has exactly one master, and slaves never talk to each other. Modbus TCP uses a client and server model: the TCP implementation guide lets a server accept several connections and serve several requests at once, up to a limit set by the device’s design, and several transactions can share one connection using the transaction identifier. So two SCADA systems can read one TCP device directly, if the device allows enough connections, but two masters cannot share one RS-485 segment.

embedos-blogs comparison diagram: on the left, a Modbus RTU RS-485 bus with one master, three slaves on short drops and termination at both ends; on the right, two SCADA clients connected through an Ethernet switch to one Modbus TCP server, which accepts several connections up to its limit.
Can Modbus TCP have multiple masters?

Several clients can connect to one server, up to the device’s connection limit. An RTU bus allows only one master.

Modbus RTU over TCP is not Modbus TCP

Some serial device servers forward raw RTU frames, CRC and all, inside a TCP stream, often called “RTU over TCP”. That is not the Modbus TCP format: there is no MBAP header, and framing still depends on the CRC. A Modbus TCP client talking to such a server, or the reverse, gets garbage or timeouts. Set both ends to the same mode.

Converting RTU to TCP: gateways and the Unit Identifier

A Modbus TCP to RTU gateway is a TCP server on the Ethernet side and the single RTU master on the serial side. The TCP implementation guide says the Unit Identifier carries the serial slave address through the gateway; for a device directly on Ethernet it recommends 0xFF. Plan for:

  • requests from several TCP clients being queued and sent one at a time on the serial side;
  • a gateway serial timeout longer than the slowest device’s response, and a client timeout longer still;
  • a table of IP address, Unit Identifier and serial address for every device.

Which one should you choose for your panel?

Situation Usual choice Why
Energy meters or VFDs with only an RS-485 port RTU That is what the device offers; keep the trunk short and terminated
PLC with an Ethernet port and Modbus TCP server TCP No serial wiring; several clients can read it
Many RS-485 devices plus SCADA on Ethernet RTU on the bus, TCP above a gateway Keeps one master per bus
Remote site, few devices, cellular link RTU locally, data sent onward by an edge device Avoids exposing Modbus over the public network

For moving whole machines onto a plant system, OPC UA is often the better upper layer; see our guide to retrofitting legacy machines with OPC UA or Modbus.

Where does Embedos fit?

The Embedos 4G Ethernet Modbus gateway page lists Modbus RTU and Modbus TCP with RS-485, Ethernet, Wi-Fi and 4G interfaces.

Download the Modbus RTU vs TCP Guide

Get the fill-in selection and RS-485 wiring checklist by email. We send the link to your work email.


Decode your registers with the free Modbus register interpreter, and size your bus with the RS-485 termination and bias calculator.

Next step

Polling more than one device? Embedos Edge reads Modbus and pushes it to the cloud. Book a 20 min commissioning call.

Building a new plant? Write these choices into your tenders with our greenfield plant digital readiness checklist.