What are the differences between ISO Transport Protocol, ISO-ON-TCP Protocol, and TCP Protocol?

 In industrial communication, there are various protocols. For instance, when creating a new transmission protocol for Siemens CP modules, there are many options to choose from, as shown below. 




What are the distinctions between these communication protocols? How should we choose based on practical scenarios? Today, let's discuss three common protocols in Siemens industrial communication: ISO Transport Protocol, ISO-ON-TCP Protocol, and TCP Protocol.

ISO Transport Protocol is an early Ethernet protocol developed by Siemens, based on ISO 8073 TP0 (Transport Protocol Class 0). It operates at the fourth layer of the ISO-OSI reference model, specifically within the transport layer. ISO Transport Protocol involves message-based data transfer, allowing dynamic modification of data lengths. It offers fast transmission speeds, making it suitable for medium to large data quantities. Communication between ISO Transport Protocol-enabled sites doesn't use IP addresses; instead, it relies on MAC addresses. Consequently, data packets cannot be routed through routers (no routing support). ISO Transport Protocol is an internal Siemens Ethernet protocol, exclusively applicable to the SIMATIC system. Data transmission between two SIMATIC sites utilizes Send/Receive, while server read/write operations use Fetch/Write services.

ISO Transport Protocol's major advantage lies in sending/receiving data via data packets. However, due to its lack of routing capabilities, its limitations become apparent as network nodes increase.

To address the growing number of network nodes, Siemens enhanced the ISO Transport Protocol by adding TCP/IP protocol functionality. The new protocol is documented with comments on the extended RFC1006 "ISO on top of TCP" (RFC stands for Request For Comments). Therefore, it is referred to as the "ISO-ON-TCP" protocol.

ISO-ON-TCP defines the properties of ISO Transport within the TCP/IP protocol and operates at the fourth layer of the ISO-OSI reference model. The default data transmission port for ISO-ON-TCP is 102, as shown below.



Similar to the ISO Transport Protocol, data transmission between two SIMATIC sites using the ISO-ON-TCP protocol also utilizes Send/Receive, while server read/write operations use Fetch/Write.

In the usage of both ISO Transport Protocol and ISO-ON-TCP Protocol, there is also the involvement of TSAP settings.

TSAP stands for "Transport Service Access Point." In a transport connection, multiple processes may exist. To distinguish data transmissions for different processes, a unique access point is required, known as the TSAP. In the same transport connection between two sites, if only one transport process exists, the local and remote TSAPs can be the same. If multiple transport processes exist, the TSAP must be unique. The TSAP is analogous to the port in TCP or UDP protocols.

S7-300/400 supports TSAP lengths from 1 to 16 bits. The user's TSAP length should be above 3 bits, and 2 bits or fewer are reserved for internal system use. TSAP can be in ASCII or hexadecimal format. Below is the TSAP setting 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. However, it is limited to the SIMATIC system and can only be used internally within Siemens, restricting its application to some extent. Siemens recognized this limitation and eventually provided comprehensive support for the TCP/IP protocol.

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

TCP/IP provides reliable transmission between sites, features feedback mechanisms, supports routing, and can be used for communication within the Siemens SIMATIC system as well as between SIMATIC and PCs or other systems that support TCP/IP. Data transmission between two sites also uses Send/Receive, while server read/write operations use Fetch/Write.

For TCP/IP communication, it is necessary to set local and remote IP addresses, along with port numbers associated with the process. The port number range is from 1025 to 65535. Below is an illustration:


Alright, that's it for the discussion on ISO Transport, ISO-ON-TCP, and TCP protocols for now.