Netzwerk-Scheduler

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Ein Netzwerk-Scheduler (vgl. englisch scheduling bzw. Zeitablaufsteuerung) oder auch Paket-Scheduler ist eine Arbitrationslogik, die die Reihenfolge von Datenpaketen in einem Puffer der Art einer Warteschlange (engl. Queue [kju]) regelt. Für die verschiedenen Betriebssysteme bzw. Kernel sind verschiedene Netzwerk-Scheduler verfügbar, für die dann mehr oder weniger Implementationen von vorhandenen Netzwerk-Scheduling-Algorithmen verfügbar sind.

Implementationen[Bearbeiten]

Für den Linux-Kernel ist zurzeit ein Netzwerk-Scheduler verfügbar, dieser ist integraler Teil des Linux-Netzwerk-Stacks, arbeitet auf Schicht 2 des OSI-Modells, also mit Ethernet Frames und verwaltet die Ein- und Ausgangspuffer sämtlicher Netzwerkkarten. Mit ifconfig oder ip lässt sich die Puffergröße txqueuelen (deutsch: Sendewarteschlangenlänge) /rxqueuelen in Anzahl an Ethernet frames (unabhängig ihrer Größe) für jedes Gerät einstellen. Der Netzwerk-Scheduler verwaltet nicht den Ringpuffer oder irgendwelche anderen Puffer.

Ein weiterer Netzwerk-Scheduler befindet sich in der Planungsphase und ist Teil von Netfilter.

Funktionsweise[Bearbeiten]

Der jeweils geladene Netzwerk-Scheduler-Algorithmus und die eingestellten Parameter bestimmen auf welche Art und Weise der Netzwerk-Scheduler den Warteschlangenpuffer verwaltet.

Illustration[Bearbeiten]

FIFO Datenstruktur

Netzwerk-Scheduler-Algorithmen[Bearbeiten]

Im Laufe der Zeit wurden etliche Netzwerk-Scheduler-Algorithmen (engl. Queueing Discipline [kjuing disiplin] oder Queueing Algorithm) entwickelt. Man kann ganz grob zwischen Leaky-Bucket-Algorithmen und Token-Bucket-Algorithmen unterscheiden, anhand der Einstellmöglichkeiten zwischen klassenbasierten und klassenlosen Algorithmen. Des Weiteren kann man verschiedene Algorithmen zur selben Art zählen, so sind z.B. CHOKe, ARED, GRED and WRED alles RED-Varianten.

Etliche Netzwerk-Scheduler-Algorithmen sind als Linux-Kernel-Module[1] realisiert und sind frei verfügbar:

Schlagwörter[Bearbeiten]

Obwohl die Aufgabe des Netzwerk-Schedulers an sich sehr einfach zu verstehen ist, wurden im Laufe der Zeit sehr viele Schlagwörter zu dem Thema erfunden.

  • Active Queue Management (AQM), Deutsch etwa aktive Warteschlangenverwaltung,
  • Network Traffic Control: quasi ein Überbegriff, denn in der Tat soll der Netzwerkverkehr kontrolliert werden
  • Traffic-Shaping: eine Form von AQM, die verfügbare Bandbreite wird künstlich aufgeteilt und jeweils begrenzt
  • Link Sharing: wenn sich zwei oder mehr Parteien eine Leitung teilen, bietet es sich ein auf dem gemeinsamen Router den Netzwerk-Scheduler entsprechend einzurichten
  • Traffic Prioritizing: eine Form von AQM, die Warteschlange wird verwaltet, indem ausgesuchte Datenpakete priorisiert werden
  • TCP Turbo: ein Schlagwort, das hervorheben soll, dass durch entsprechendes AQM, eine Verlangsamung der TCP-Downloadrate verhindert wird
  • Bandwidth Management: Verwaltung der verfügbaren Bandbreite

Siehe auch[Bearbeiten]

Referenzen[Bearbeiten]

  1. Linux Kernel Source Code: Netzwerk-Scheduler. 26. Dezember 2012. Abgerufen am 26. Dezember 2012.