EtherNet/IP and TCP/IP

I have a friend, Emily, who knows all about muscles. More than that she knows how to figure out which muscles in your body are sloughing off and “not pulling their weight!” And what’s more, she can than magically tweak them to wake them from their slumber and start working again. I call Emily the “Muscle Magician” because of that special expertise.

What’s interesting to me about this is that she doesn’t think she has special knowledge. Because she lives muscle-mania all day long, she assumes that everyone knows what she knows. I remind her that she’s the Muscle Magician because what she does is magic to the rest of us.

I think we are all like that. We all have very special expertise but believe that our special expertise isn’t so special and wouldn’t be valuable to someone else. I know that I am like that. I think that the stuff I know (Ethernet networks, enterprise communication, factory floor protocols, and the rest) is simple, straightforward, and not especially valuable.

I realized again that this wasn’t true when I was asked again about the difference between EtherNet/IP, CIP, and TCP/IP. I think of that as just basic knowledge. Similar to me asking Emily what a bicep does. It’s self-evident to both of us in our chosen fields but we have to remember that not everyone lives in those domains and they are as foreign as they could be to many people.

So today I am going to address what to some is a confusing question: “Just what is the difference between TCP/IP, CIP, and EtherNet/IP?” Let’s look at them individually.

TCP/IP – A TCP/IP protocol suite is the collection of communication protocols needed to communicate over Ethernet. The three most important components of the TCP/IP protocol suite are IP, TCP, and UDP.
IP – IP is the Internet protocol. It is responsible for moving a packet from point A to point B. IP knows nothing about TCP, CIP, or EtherNet/IP. It simply moves the data packets provided to it by TCP, UDP, and other protocols in a TCP/IP suite.

TCP – TCP is an acronym for Transmission Control Protocol. It is a connection oriented protocol that is responsible for managing the connection between a client and a server (Scanner and Adapter for EtherNet/IP fans). Among its many duties is fragmenting data packets that don’t meet size constraints and validating that messages reach their destination.

UDP – UDP (User Datagram Protocol) is a connectionless protocol used for “send and forget” messages. Where TCP ensures that messages reach their destination, UDP just fires them off with no concern that they arrive at their destination.

Neither IP, TCP, nor UDP knows anything about EtherNet/IP or CIP.

CIP – The Common Industrial Protocol (CIP) is a mechanism for organizing and sharing data in industrial devices. CIP is the core technology behind CompoNet, EtherNet/IP, DeviceNet and ControlNet. CIP organizes data as objects with data elements called attributes. CIP defines two classes of objects: required objects and application objects. Required objects are present in every CIP device. The Identity Object, for example, organizes identity data (vendor, catalog #, revision number, etc.) as attributes that can be accessed by the external world using a CIP Read Attribute message. CIP organizes application data into objects that reflect how the device vendor wants to expose the application data. CIP specifies both the object structure of a device and the messaging used to access that device. CIP defines two message types: asynchronous messages (Explicit) and synchronous messages (Implicit).

EtherNet/IP – EtherNet/IP is the implementation of CIP over Ethernet just as DeviceNet is the implementation of CIP over CAN (Controller Area Network). In EtherNet/IP, CIP objects are accessed using Explicit messaging over a TCP connection and Implicit messaging over a UDP connection.

Explicit messages which read and write attributes of objects are transferred over a TCP connection to ensure that these types of messages arrive at their destination. Changing operational setpoints requires a connection where the sender is certain that the new data arrived. Implicit messages, which transfer I/O data between a Scanner and an Adapter, are transferred over a UDP connection. These messages are cyclic and if one fails to arrive, another will be transmitted on the next cycle (usually 10 ms).

No one has ever called me the “Protocol Magician”, but I hope this description of the relationship between these three important entities provides a clear picture of EtherNet/IP and its component parts in the TCP/IP software suite.