How Ethernet/IP Corrupts…

Ethernet/IP folks are always saying that PROFINET “corrupts the stack.”  I want to show that PROFINET no more “corrupts the stack” than Ethernet/IP does.  Since those proponents of Ethernet/IP apparently don’t understand how Ethernet interacts with “the stack,” here is a short tutorial on Ethernet and the stack.

What is “the stack” anyway?  For that answer we need to consider the ISO/OSI model.  (ISO = International Standards Organization; OSI = Open System Interconnect)  This 7-layer model starts from the bottom with the physical layer and ends at the top with layer seven’s application layer:

   Layer 7: Application

   Layer 6: Presentation

   Layer 5: Session

   Layer 4: Transport

   Layer 3: Network

   Layer 2: Data Link

   Layer 1: Physical

The Internet maps to this model as follows:

   Layers 1 and 2 are Ethernet.

   Layer 3 is the IP layer.

   Layer 4 is the TCP and UDP layer.

   Layers 5 and 6 are skipped.  (Ack! The Internet corrupts the stack!  Or more accurately, the ISO/OSI model does not require that every layer be used.  Whew!  What a relief!)

Layer 7 is the application layer for applications like web browsers, email clients, and FTP.

Some Industrial Ethernets including Modbus TCP, Ethernet/IP, and PROFINET follow the Internet model, too.  The only difference is that at the application layer, in addition to typical Internet applications, the Industrial Ethernet protocol applications reside.

Speaking of not requiring the use of every layer, many commonly used protocols skip lots of layers.  For example, Address Resolution Protocol (ARP) is used to find IP addresses, so it does not use the IP layer (layer 3).  (More details about ARP are on Wikipedia.) How does it manage that?  A standard Ethernet frame has fields preceding the data including one called EtherType.  You can find details about EtherType on Wikipedia.  When an Ethernet frame arrives at its destination the EtherType is checked.  If the EtherType is 0x0800 it is sent to the IP “stack.”  If it is 0x0806, it is sent to ARP.  If it is 0x8892, it is sent directly to the PROFINET application skipping the other layers.  Skipping does not equal corrupting!  Ethernet/IP after all skips layers 5 and 6 as do Modbus TCP, PROFINET, web browsers, email clients, and many others.

The conclusion to be drawn: there is nothing wrong with skipping layers of the ISO/OSI model including skipping the “TCP/IP stack.”  Internet applications skip layers.  I don’t think my web browser corrupts the stack.  ARP finds IP addresses without using the “TCP/IP stack.”  It does not corrupt the stack.  PROFINET skips the TCP/IP stack for real-time information.  It does not corrupt the stack either.  In fact for hundreds of EtherTypes that do not use “the stack,” visit the IEEE’s list of EtherTypes.  They don’t corrupt the stack either.

Ethernet/IP is corrupting something, but it’s not the stack – it’s the facts.