Skip to main content

ethernet-ip

Core Messaging Mechanisms: The Two Languages of EtherNet/IP

A cornerstone of the EtherNet/IP design is its strategic use of two distinct messaging types, each tailored for a specific purpose and transported by a different protocol. This dual-messaging approach is an elegant engineering solution that balances the need for configuration integrity with the demand for real-time I/O performance. Understanding the difference between explicit and implicit messaging is critical for any developer or integrator working with the protocol.  

Explicit Messaging (The "What" and "Why" Channel)

Explicit messaging operates on a client/server, request/response model. It is used for information that is not time-critical, where flexibility and reliability are more important than raw speed.  

  • Mechanism: Each message is a self-contained transaction. A "Client" device (e.g., a PLC or HMI) sends a request packet that explicitly states what action it wants a "Server" device (e.g., a drive or sensor) to perform. This could be "Get the value of attribute X" or "Set the value of attribute Y." The Server processes this request and sends back a single, corresponding response. Because each request contains all the necessary information to be understood and acted upon, this method is highly flexible but carries more overhead per transaction.  

  • Transport: To ensure that these critical configuration and information messages are delivered reliably, explicit messaging is transported using the Transmission Control Protocol (TCP) on the registered port 44818. TCP is a connection-oriented protocol that provides essential services like error checking, packet sequencing, and acknowledgements, guaranteeing that the data arrives intact and in the correct order.  

  • Use Cases: Explicit messaging is the workhorse for asynchronous, on-demand communication. Its primary uses include uploading and downloading device parameters, retrieving diagnostic information, sending program files, and general device configuration.  

Implicit Messaging (The Real-Time I/O Channel)

When time-critical data needs to be exchanged for real-time control, EtherNet/IP switches to implicit messaging. This method, often called "I/O messaging," prioritizes speed, efficiency, and low latency above all else.  

  • Mechanism: Implicit messaging uses a producer-consumer model. Before any data is exchanged, a "Scanner" device (typically a PLC or controller) establishes a connection with one or more "Adapter" devices (I/O modules, actuators, etc.). 1 During this connection setup (using a Forward_Open explicit message), the data to be exchanged is defined. A unique Connection ID is assigned to this data link. From that point on, the producer simply broadcasts the data packets, and the consumers listen for packets with the appropriate Connection ID. The meaning of the data is "implied" by the Connection ID, not contained within each packet, which drastically reduces overhead.  

  • Transport: To achieve maximum speed and efficiency, implicit messaging is transported using the User Datagram Protocol (UDP) on the registered port 2222. UDP is a connectionless protocol that forgoes the handshaking and acknowledgements of TCP. It simply sends the data packets (datagrams) as quickly as possible. This is ideal for I/O data, where if a packet is lost, it is often better to simply receive the next, more current, data packet a few milliseconds later rather than waiting for a retransmission of old data. UDP also supports IP multicast, which is the mechanism that enables the efficient one-to-many communication of the producer-consumer model.  

  • Scheduling: Unlike explicit messages which are sent on-demand, implicit data is exchanged at a steady, predictable rate defined by the Requested Packet Interval (RPI). The RPI is configured when the connection is established and is independent of the PLC's main program scan cycle, ensuring deterministic communication timing.  

Table 2: Explicit vs. Implicit Messaging Comparison

CharacteristicExplicit MessagingImplicit Messaging (I/O Messaging)
Communication ModelClient/Server\n(Request/Response)Producer/Consumer\n(Cyclic/Event-driven)
Transport ProtocolTCP (Transmission Control Protocol)UDP (User Datagram Protocol)
Port Number448182222
Primary Use CaseConfiguration, Diagnostics, ParameterizationReal-time I/O Data for Control
Data TypeNon-time-critical, informational dataTime-critical, control data
OverheadHigh (each packet is self-describing)Low (data meaning is pre-defined)
SpeedSlower, transaction-orientedFaster, continuous stream
ReliabilityHigh (guaranteed delivery via TCP)Lower (UDP is best-effort; CIP connection timeout detects failures)
Connection TypeUnconnected or ConnectedConnected
Initiator/ResponderClient / ServerScanner / Adapter