DiffServ stands for “Differentiated Services” and is a quite recent model to signal the priority of data packets. DiffServ is based on the known Type-of-Service (ToS) field and uses the same byte within the IP header.
ToS is using the first three bits to describe the priorities (precedence) 0 to 7, as well as four further bits (the ToS bits) to optimize the data stream (e.g. “Low Delay” and “High Reliability”). This model is rather inflexible, and this is why it has been used quite rarely in the past.
The DiffServ model uses the first 6 bits to make distinctions of different classes. Up to 64 gradings are thus possible (Differentiated Services Code Point, DSCP) which enable a finer priorisation of the data stream:
- To ensure downward compatibility with ToS implementations, the previous precedence levels can be depicted with the “Class Selectors” (CS0 to CS7). Thereby, the level “CS0” denotes so-called “Best Effort” (BE) and stands for usual transfer of data packets without special treatment.
- The “Assured Forwarding” classes are used for a secured transfer of data packets. The first digit of the AF class describes each the priority of the transfer (1 to 4), the second digit the “drop probability“ (1 to 3). Packets with AFxx marking are transferred in a secured way, and thus not dropped.
Finally, the class “Expedited Forwarding” marks those packets, that shall be transferred preferentially, before all other packets.
Code point | DSCP bits | Dec. | Code point | DSCP bits | Dec. | Code point | DSCP bits | Dec. | ||
---|---|---|---|---|---|---|---|---|---|---|
CS0 (BE) | 000000 | 0 | AF11 | 001010 | 10 | AF33 | 011110 | 30 | ||
CS1 | 001000 | 8 | AF12 | 001100 | 12 | AF41 | 100010 | 34 | ||
CS2 | 010000 | 16 | AF13 | 001110 | 14 | AF42 | 100100 | 36 | ||
CS3 | 011000 | 24 | AF21 | 010010 | 18 | AF43 | 100110 | 38 | ||
CS4 | 100000 | 32 | AF22 | 010100 | 20 | EF | 101110 | 46 | ||
CS5 | 101000 | 40 | AF23 | 010110 | 22 | |||||
CS6 | 110000 | 48 | AF31 | 011010 | 26 | |||||
CS7 | 111000 | 56 | AF32 | 011100 | 28 |