Zum Inhalt springen

Netzwerk-Scheduler

aus Wikipedia, der freien Enzyklopädie
Dies ist die aktuelle Version dieser Seite, zuletzt bearbeitet am 11. Juni 2023 um 17:12 Uhr durch imported>Christian1985 (Netzwerk-Scheduler-Algorithmen: link geprüft).
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Ein Netzwerk-Scheduler (vgl. {{Modul:Vorlage:lang}} Modul:Vorlage:lang:103: attempt to index field 'wikibase' (a nil value) bzw. Zeitablaufsteuerung) oder auch Paket-Scheduler ist eine Arbitrationslogik, die die Reihenfolge von Datenpaketen in einem Puffer der Art einer Warteschlange (engl. Queue [<templatestyles src="IPA/styles.css" />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 [<templatestyles src="IPA/styles.css" />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.

  • FQ ({{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value))
  • WFQ ({{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value))
  • Taildrop-Algorithmus

Etliche Netzwerk-Scheduler-Algorithmen sind als Linux-Kernel-Module<ref>Vorlage:Cite book/Name: [Internetquelle: archiv-url ungültig Linux Kernel Source Code: Netzwerk-Scheduler.] , archiviert vom Vorlage:IconExternal (nicht mehr online verfügbar) am Vorlage:Cite book/URL; abgerufen am 26. Dezember 2012.Vorlage:Cite book/URLVorlage:Cite book/MeldungVorlage:Cite book/Meldung2Vorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/Meldung</ref> realisiert und sind frei verfügbar:

  • CBQ ({{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value)) discipline
  • CHOKe (CHOose and Keep for responsive flows, CHOose and Kill for unresponsive flows) ist eine RED-Variante
  • CoDel (Controlled Delay) und Fair/Flow Queue CoDel
  • DRR (Deficit Round Robin) und DWRR
  • HSFC ({{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value))
  • NETEM Network emulator
  • HTB ({{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value))
  • QFQ ({{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value)) Scheduler
  • RED ({{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value)) sowie ARED, GRED, RRED und WRED
  • SFB ({{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value)) sowie Resilient SFB
  • SFQ ({{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value))
  • TBF ({{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value))
  • TEQL ({{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value))

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.

  • {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value), Deutsch etwa aktive Warteschlangenverwaltung,
  • {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value): quasi ein Überbegriff, denn in der Tat soll der Netzwerkverkehr kontrolliert werden
  • {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value): eine Form von AQM, die verfügbare Bandbreite wird künstlich aufgeteilt und jeweils begrenzt
  • {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value): wenn sich zwei oder mehr Parteien eine Leitung teilen, bietet es sich ein auf dem gemeinsamen Router den Netzwerk-Scheduler entsprechend einzurichten
  • {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value): eine Form von AQM, die Warteschlange wird verwaltet, indem ausgesuchte Datenpakete priorisiert werden
  • {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value): ein Schlagwort, das hervorheben soll, dass durch entsprechendes AQM, eine Verlangsamung der TCP-Downloadrate verhindert wird
  • {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value): Verwaltung der verfügbaren Bandbreite

Siehe auch

Einzelnachweise

<references />