> On 25 May, 2015, at 07:31, Mikael Abrahamsson <[email protected]> wrote:
>
> I don't understand the difference between AF1 and CS1. Please elaborate.
> On Sun, 24 May 2015, Simon Barber wrote:
>
> I can't find reference to DSCP 000010 or 000110, where are they defined?
It’s important to remember that the DSCP field and, to a lesser extent, the ECN
bits (which both reside in the IP-header TOS byte) overlap with the legacy
Precedence and Type-Of-Service fields, and are only partly backwards-compatible
with them. Probably a lot of network (and network hardware) engineers still
think in terms of the legacy definitions, even though DSCP and ECN together
have been around for almost 15 years now.
Precedence and TOS used to be orthogonal concepts. Precedence meant
“priority”, and TOS was meant to influence routing decisions; the example given
was satellite (high delay, high bandwidth) versus leased-line (low delay, low
bandwidth), which just goes to show how assumptions about technology go
obsolete over time.
CS0, CS1, CS2 … CS7 are DSCPs which correspond to the legacy Precedence field
set to the given value, and the TOS field (not to be confused with the TOS
*byte*) set to zero. The legacy interpretation of these is that CS7 is highest
priority, and CS0 is lowest priority; each was given military-style names which
are mostly forgotten (and better so). It is an unfortunate but understandable
historical artefact that the default setting was the lowest priority.
AF1x and CS1 both set the legacy Precedence field to 001, which is all that
many hardware priority systems look at. However, a DSCP is a homogeneous field
with all six bits significant, and they differ in the fourth and fifth bits
(001xx0). According to my cheat-sheet compiled from RFC4594, AF1x corresponds
to “high throughput data” with three different “drop priority” levels (in
common with the other three Assured Forwarding groups: AF2x, AF3x, AF4x).
DSCP 000010 has the shorthand TOS2, because it corresponds to the legacy
Precedence 000, TOS 010. It was the legacy method of specifying “high
throughput”.
TOS1 (000001) meant “maximum reliability”, which doesn’t really correspond to
any modern DSCP, and TOS4 (000100) meant “minimum delay”, which best
corresponds to EF (101110).
AFAIK, there is no standardised meaning for DSCP 000110. It also has ambiguous
meaning in the legacy scheme, and is unlikely to have been used by well-behaved
applications. I would consider it an available spare.
All DSCPs matching xxxx11 are reserved for local and experimental use. They do
escape their environments on occasion.
There was also a fourth TOS bit which was meant to specify “minimum cost”.
However, I understand it was specified rather late in the Precedence/TOS
lifecycle, and in any case it overlaps with the ECN bits. It sure would have
been useful to still have that available - but having ECN is worth the trouble.
To me, it’s somewhat ambiguous whether “high throughput” should mean “low
priority”. It strikes me that many application developers would seize on it as
meaning “faster”. If they found that it actually made things slower (in a
magical future where functional Diffserv support was ubiquitous), they might
give up on Diffserv entirely as a bad job.
Nevertheless, when I worked out an eight-class Diffserv scheme as a modest
simplification of the 12 classes described in RFC4594, I classed TOS2 / AF1x
“high throughput” as lower than best-effort, but just above CS1 “background”.
This was on the basis that throughput had to be traded off against latency, and
Cake’s priority scheme thus gave “higher” classes more priority but less
throughput. In the four-class scheme that’s now the default in Cake, however,
I lumped the “high throughput” classes in with “best effort”, with only CS1
being distinct as “background".
Here’s my cheat-sheet, covering the 25 well-known DSCPs:
/* List of traffic classes in RFC 4594:
(roughly descending order of contended priority)
(roughly ascending order of uncontended throughput)
Network Control (CS6,CS7) - routing traffic
Telephony (EF,VA) - aka. VoIP streams
Signalling (CS5) - VoIP setup
Multimedia Conferencing (AF4x) - aka. video calls
Realtime Interactive (CS4) - eg. games
Multimedia Streaming (AF3x) - eg. YouTube, NetFlix, Twitch
Broadcast Video (CS3)
Low Latency Data (AF2x,TOS4) - eg. database
Ops, Admin, Management (CS2,TOS1) - eg. ssh
Standard Service (CS0 & unrecognised codepoints)
High Throughput Data (AF1x,TOS2) - eg. web traffic
Low Priority Data (CS1) - eg. BitTorrent
Total 12 traffic classes.
*/
It’s a mess, isn’t it?
- Jonathan Morton
_______________________________________________
aqm mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/aqm