Introduction to 802.1p
In a previous post, I discussed traffic coloring. Modifications to a data packet such that the packet itself informs your network equipment that it requires handling different from normal packets such as best effort traffic. In other words, if you looked at your Ethernet frame or at the IPv4 header, you'd notice a few bits different on these packets than on normal packets.
What does this look like on Ethernet? Here's a capture of two almost identical packets. Take a look at the bytes of the raw data in the first image. The first 6 bytes (in green) are for the MAC address of the receiving NIC. The second 6 bytes (in red) are for the MAC address of the source NIC. The next 2 bytes (in black) are for the Ethernet type. This tells the receiving host that the data after the Ethernet header is IPv4 traffic.
On this second image Netmon's been kind enough to tell us that this packet has a special tag in the Ethernet header. It calls it an 802.1q tag. Compare the raw data of the payload and you'll find this tag. It's the additional 4 bytes highlighted in purple. It's placed right before the Ethernet type.
This 4 byte tag is defined as part of the IEEE 802.1Q standard for Virtual Bridged Local Area Networks (aka VLAN). The tag has 3 parts: a fixed tag protocol identifier (81-00), a user priority value ranging from 0 to 7 (called an 802.1p value) and VLAN information (e.g. VLAN id). Note that if the VLAN id is 0, the tag contains only user priority information. Rephrased: you can use an 802.1q tag without deploying VLANs on your networks.
So how do you map these 802.1p values? Which priority value should you use when? That's also defined (or buried depending on your perspective) in another IEEE standard. If you scanned the end of the 1998 IEEE 802.1D standard, in Annex H, you'd find a discussion of user priorities and traffic classes. For the sake of simplicy, this is the important table from this annex:
Table H-15 — Traffic type acronyms
user_priority Acronym Traffic type
1 BK Background
2 — Spare
0 (Default) BE Best Effort
3 EE Excellent Effort
4 CL Controlled Load
5 VI “Video,” < 100 ms latency and jitter
6 VO “Voice,” < 10 ms latency and jitter
7 NC Network Control
Now we know how to color our Ethernet frames and which values to select for our packets. If only it was this easy…
- Mathias
Comments
Anonymous
January 09, 2006
Is there a way to use VLANs with Windows like in Linux?
e.g. a virtual adapter for each VLAN?Anonymous
January 11, 2006
The comment has been removedAnonymous
January 18, 2006
The comment has been removedAnonymous
March 23, 2006
Some weeks ago I described 802.1p. It's a way to color traffic on your local network segment. If you...Anonymous
June 28, 2006
In Windows Vista, a great deal of effort has gone into making it simple for network applications to take...Anonymous
June 29, 2006
My previous post on WiFi QoS (WMM) discussed the four access classes (BG, BE, VI, and VO) available for...Anonymous
June 29, 2006
My previous post on WiFi QoS (WMM) discussed the four access classes (BG, BE, VI, and VO) available for...Anonymous
July 05, 2006
A while back I wrote about the fundamentals of networking Quality of Service (QoS) including 802.1p and...Anonymous
February 08, 2007
The “Certified for Windows Vista” logo is comprised of requirements for myriad networking features andAnonymous
September 07, 2007
Consider a case where a network application calls Windows QoS APIs to add a layer-2 IEEE 802.1Q UserPriority