CoDel
CoDel (ausgesprochen „koddel“) steht für controlled delay und bezeichnet einen Algorithmus zum Puffermanagement in Computernetzwerken. Designziel war die Vermeidung von Netzwerküberlastungen, welche durch den sogenannten Bufferbloat verursacht werden. Er wurde von Kathleen Nichols und Van Jacobson entwickelt[1] und als RFC 8289[2] veröffentlicht.
Klassische passive Pufferverwaltungsalgorithmen, wie etwa FIFO, verwerfen eingehende Pakete, wenn der Puffer voll ist. CoDel hingegen wählt gezielt Pakete zum Verwerfen aus und löscht diese frühzeitig aus dem Puffer um die Latenz gering zu halten. Damit zählt CoDel zur Klasse der aktiven Pufferverwaltungsalgorithmen.
CoDel ist ab Version 3.5[3] im Linux-Kernel enthalten, wurde aber von manchen Projekten, wie z. B. OpenWrt, auch auf ältere Kernel portiert.[4] Heute wird allerdings vorwiegend die Weiterentwicklung FQ-CoDel eingesetzt.
Ziele
[Bearbeiten | Quelltext bearbeiten]Wie beschrieben, wurde CoDel entwickelt, um dem Problem des Bufferbloats in Computernetzwerken zu begegnen. Es wird zwischen „guten“ Puffern und „schlechten“ Puffern unterschieden. Gute Puffer bezeichnen die genutzten Kapazitäten, welche sich durch Bursts aufbauen und anschließend zügig wieder abgebaut werden. Schlechte Puffer sind dauerhaft gefüllte Puffer, welche nicht wieder abgebaut werden, da die Eingangs- und Ausgangsrate der Pakete in etwa gleich ist. Dies sorgt für sogenannte stading queues und verursacht Latenz im Netzwerkverkehr. Das Designziel von CoDel war es, zwischen diesen beiden Arten von Puffern zu unterscheiden, und so in der Lage zu sein, beide unterschiedlich zu bearbeiten.
Ein weiteres Ziel war es, CoDel parameterlos zu halten. Es sollte also keine Einstellparameter für Nutzer oder Softwareentwickler geben. Dadurch sollte die Implementierung und Nutzung des Verfahrens einfach und effizient möglich sein.
Einzelnachweise
[Bearbeiten | Quelltext bearbeiten]- ↑ queue.acm.org
- ↑ K. Nichols, V. Jacobson, A. McGregor, J. Iyengar: RFC – Controlled Delay Active Queue Management. Januar 2018 (englisch).
- ↑ pro-linux.de
- ↑ dev.openwrt.org