The ISO transport protocol, ISO-ON-TCP protocol, and TCP protocol, what are the differences between them?

 In industrial communication, there are various protocols. For example, when creating a new communication protocol for Siemens CP modules, there are many options to choose from, as shown in the following diagram:


What are the differences among these communication protocols? How should we choose based on practical situations? Today, let's discuss common communication protocols in Siemens industrial communication: ISO transport protocol, ISO-ON-TCP protocol, and TCP protocol.

The ISO transport protocol is an early Ethernet protocol by Siemens, based on ISO 8073 TP0 (Transport Protocol Class0), situated in the fourth layer of the ISO-OSI reference model, belonging to the transport layer. ISO transport protocol operates on message-based data transmission, allowing dynamic modification of data length. It delivers fast transmission suitable for moderate to large amounts of data. ISO transport doesn't use IP addresses between sites; instead, it relies on MAC addresses, making it unsuitable for routing (no routing support). Moreover, ISO transport is an internal Ethernet protocol exclusive to Siemens and is applicable only to SIMATIC systems. Data exchange between two SIMATIC sites employs Send/Receive services, while server communication utilizes Fetch/Write services.

The major advantage of the ISO transport protocol lies in its use of data packets for sending/receiving data. However, due to its lack of routing capabilities, its drawbacks become apparent as network nodes increase.

To address the growing number of network nodes, Siemens introduced the ISO-ON-TCP protocol, enhancing the ISO transport protocol with TCP/IP functionality. This new protocol is documented by extending RFC1006 "ISO on top of TCP" (RFC stands for Request For Comments), hence referred to as the "ISO-ON-TCP" protocol.

ISO-ON-TCP defines ISO transport properties within the TCP/IP protocol, positioned at the fourth layer of the ISO-OSI reference model, with a default data transmission port of 102. See the diagram below:





Similar to the ISO transport protocol, data exchange between two SIMATIC sites using the ISO-ON-TCP protocol involves the use of Send/Receive for data transmission and Fetch/Write for server communication.

In the utilization of the ISO transport protocol and ISO-ON-TCP protocol, the configuration of TSAP (Transport Service Access Point) is also involved.

TSAP, short for "Transport Service Access Point," refers to a unique access point for a process in a transport connection. In a transmission link, multiple processes may coexist, and to differentiate the data transmission for different processes, a dedicated access point is required — this access point is called TSAP. In the context of a single transmission link between two sites, if only one transmission process exists, the local and remote TSAPs can be the same. However, if multiple transmission processes exist, the TSAP must be unique. TSAP is equivalent to the port in TCP or UDP protocols, providing a means to identify different processes.

For S7-300/400, the supported TSAP length ranges from 1 to 16 bits. User-configured TSAP lengths should be above 3 bits, leaving 2 bits or fewer for internal system use. TSAP can be represented in ASCII or hexadecimal form. The following diagram illustrates the TSAP settings for ISO-ON-TCP:




The advantage of the ISO-ON-TCP protocol lies in its ability to transmit large amounts of data and support routing functionality. However, it is limited to SIMATIC systems and can only be used internally within Siemens, restricting its application to some extent. Recognizing this limitation, Siemens eventually provided comprehensive support for the TCP/IP protocol.

TCP/IP, a widely used Ethernet protocol globally, stands for "Transmission Control Protocol" (TCP) at the fourth layer of the ISO-OSI reference model (UDP also resides in this layer), and "Internet Protocol" (IP) at the third layer.

TCP/IP provides reliable transmission between sites, incorporating feedback mechanisms and supporting routing functionality. It is applicable for communication within Siemens SIMATIC systems and communication between SIMATIC and PC or other systems that support TCP/IP. Data exchange between two sites involves Send/Receive, and server communication uses Fetch/Write.

Communication using TCP/IP requires the configuration of local and remote IP addresses, along with the assignment of port numbers associated with specific processes. The port number range is from 1025 to 65535. See the diagram below: