Have you ever laid up at night wondering how Ethernet/IP prioritizes their messages or even if they ever did? Well maybe I was working too hard on writing my Ethernet/IP training course, or maybe I am a bit of a geek. Probably both.
At this time, I was reading a really good book on Ethernet/IP called ‘Ethernet/IP: The Everyman’s Guide to The Most Widely Used Manufacturing Protocol’ by John Rinaldi and Jamin Wendorf. There is not a lot of good information on this protocol, and this new book is certainly a welcomed addition to the literature. However, it did not say how frame prioritizing was done or even if it was.
How, or if, the prioritization was done has always bugged me as a communications engineer. I had read that Ethernet/IP could use VLAN but near as I could tell this was not widely used. So, how did they do it? I could not imagine that they had not incorporated a method for frame prioritization! If they did not have a method, then regular TCP traffic could delay IO type messages and who would design a network like that!
Being in the internet age, I decided to email John Rinaldi and ask him. His co-writer Jamin Wendorf had the answer; EtherNet/IP using Quality of Service (QoS) for Prioritization. The method of marking frames can either be VLAN tagging (802.1Q) or Differentiated Services (DiffServ – DSCP). The specification requires the use of DSCP, so that is what most vendors use. You can optionally support the VLAN tagging, but since most vendors don’t support it, it hasn’t gained traction in the field.
This answer leads me on an investigation that clarified the use of the two terms QofS vs, CoS which I was confused with. QofS stands for Quality of Service and is an umbrella term for traffic prioritization. Class of Service (CoS) refers to a specific QofS as implemented in layer-2 Ethernet as defined in 802.1Q.
CoS is a 3-bit field called Priority Code Point (PCP) within an Ethernet frame when using VLAN Tagging as defined in 802.1Q. This all occurs at Layer 2 of the Ethernet frame.
This is how PROFINET uses Quality of Service in VLAN to prioritize messages.
Ethernet/IP also uses Quality of Service but not at layer 2; it is using Differentiated Services Code Point (DiffServ – DSCP) at layer three as part of the IPV4 header.
Assuming that your switch supports this QofS, then you are good for packet prioritization within Ethernet/IP.
Now, that this has been settled, I can sleep at night. As for which is a better way, I don’t see an advantage of one over the other as long as the switch supports the method you are using! The more I work with Ethernet, the more I realize that it always comes down to picking a good switch for your application!