Netzwerk-Scheduler

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 20. Februar 2015 um 18:27 Uhr durch 82.135.30.174 (Diskussion) (→‎Netzwerk-Scheduler-Algorithmen). Sie kann sich erheblich von der aktuellen Version unterscheiden.
Zur Navigation springen Zur Suche springen

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

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

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

Illustration

FIFO Datenstruktur

Netzwerk-Scheduler-Algorithmen

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

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

Referenzen

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