This is an old revision of the document!
QOS NOTES / CONCEPTS
CLASSIFICATION AND MARKING
* Always Mark traffic: Even if we are not honoring the marking, is a good practise to mark it.
IPP COS
Markings:
* CoS (802.1p) 3bts (layer2)
* ToS > DSCP+ECN
Marking Example: Cs6 network critical ; EF voice ; Afxx for other important traffic ; BE rest
CONGESTION AVOIDANCE
* Policing * Shaping
Shapers can only be used on outbound traffic. You can’t shape traffic arriving on an interface. It’s already arrived. There is no “buffer” to work with).
CONGESTION MANAGEMENT
Now, the network device has a reason to consider which packet to send next.
* CBWFQ: FQ is just some level of fairness for example don't let elephant flows choke the rest.
* LLQ: Means Priority Queue with a Policer: priority up to a max rate
Advanced stuff:
FQ_CoDel:
* CoDel measures how long long a packet has been in the queue, which it calls the “sojourn time.” When the sojourn time is too long, CoDel drops the packet.
* This aggressive drop approach allows TCP to back off to an appropriate rate, and you end up with a more consistent flow rate, more even utilization of the interface, and better sharing among traffic flows.
* CoDel per queue [https://datatracker.ietf.org/doc/html/draft-ietf-aqm-fq-codel-06]]
TCP disciplines:
* CUBIC: BIC and CUBIC TCP variants use math to compute how much to open or close the sliding window based on round trip time and how much data was lost in a given acknowledgement cycle. That’s different from default TCP behavior, which slides the window shut and starts all over again to ramp up the unacknowledged transfer amount whenever there’s packet loss.
* BBR gives nominal TCP performance improvements over CUBIC, but when you operate at Google’s scale, every little bit matters.