Planificateur de réseau - Network scheduler

Paquets mis en file d'attente dans une structure de données FIFO (premier entré , premier sorti).

Un planificateur de réseau , également appelé planificateur de paquets , discipline de file d'attente ( qdisc ) ou algorithme de file d'attente , est un arbitre sur un nœud dans un réseau de communication à commutation de paquets . Il gère la séquence des paquets réseau dans les files d' attente de transmission et de réception de la pile de protocoles et du contrôleur d'interface réseau . Il existe plusieurs planificateurs de réseau disponibles pour les différents systèmes d'exploitation , qui implémentent de nombreux algorithmes de planification de réseau existants .

La logique du planificateur de réseau décide quel paquet réseau transférer ensuite. L'ordonnanceur réseau est associé à un système de file d'attente, stockant temporairement les paquets réseau jusqu'à leur transmission. Les systèmes peuvent avoir une ou plusieurs files d'attente, auquel cas chacune peut contenir les paquets d'un flux , d'une classification ou d'une priorité.

Dans certains cas, il peut ne pas être possible de programmer toutes les transmissions dans les limites du système. Dans ces cas, le planificateur de réseau est chargé de décider quel trafic transférer et ce qui doit être abandonné .

Terminologie et responsabilités

Un programmateur de réseau peut être responsable de la mise en œuvre d' initiatives spécifiques de contrôle du trafic réseau . Le contrôle du trafic réseau est un terme générique pour toutes les mesures visant à réduire la congestion, la latence et la perte de paquets. Plus précisément, la gestion active des files d'attente (AQM) est la suppression sélective des paquets réseau en file d'attente pour atteindre l'objectif plus large d'éviter une congestion excessive du réseau. Le planificateur doit choisir les paquets à supprimer. La mise en forme du trafic lisse les besoins en bande passante des flux de trafic en retardant les paquets de transmission lorsqu'ils sont mis en file d'attente en rafales. L'ordonnanceur décide de la synchronisation des paquets transmis. la qualité de service (QoS) est la hiérarchisation du trafic en fonction de la classe de service ( services différenciés ) ou de la connexion réservée ( services intégrés ).

Algorithmes

Au fil du temps, de nombreuses disciplines de mise en file d'attente de réseau ont été développées. Chacun d'entre eux fournit une réorganisation ou une suppression spécifique des paquets réseau à l'intérieur de divers tampons de transmission ou de réception . Les disciplines de mise en file d'attente sont couramment utilisées pour tenter de compenser diverses conditions de mise en réseau, comme la réduction de la latence pour certaines classes de paquets réseau, et sont généralement utilisées dans le cadre de mesures de QoS.

Voici des exemples d'algorithmes adaptés à la gestion du trafic réseau :

Plusieurs des éléments ci-dessus ont été implémentés en tant que modules du noyau Linux et sont disponibles gratuitement .

ballonnement

Bufferbloat est un phénomène dans les réseaux à commutation de paquets dans lequel une mise en mémoire tampon excessive des paquets provoque une latence élevée et une variation du délai de paquet . Bufferbloat peut être traité par un planificateur de réseau qui rejette stratégiquement les paquets pour éviter un retard de mise en mémoire tampon inutilement élevé. Les exemples incluent CoDel et la détection précoce aléatoire .

Implémentations

Noyau Linux

Le planificateur de paquets du noyau Linux fait partie de la pile réseau, avec netfilter , nftables et Berkeley Packet Filter .

L'ordonnanceur de paquets du noyau Linux fait partie intégrante de la pile réseau du noyau Linux et gère les tampons en anneau de transmission et de réception de toutes les cartes réseau, en travaillant sur la couche 2 du modèle OSI et en gérant les trames Ethernet , par exemple.

Le planificateur de paquets est configuré à l'aide de l'utilitaire appelé tc(abréviation de « contrôle du trafic »). En tant que discipline de file d'attente par défaut, le planificateur de paquets utilise une implémentation FIFO appelée pfifo_fast , bien que systemd depuis sa version 217 change la discipline de file d'attente par défaut en fq_codel .

Les utilitaires ifconfiget ippermettent aux administrateurs système de configurer les tailles de tampon txqueuelenet rxqueuelenpour chaque périphérique séparément en termes de nombre de trames Ethernet quelle que soit leur taille. La pile réseau du noyau Linux contient plusieurs autres tampons, qui ne sont pas gérés par l'ordonnanceur réseau.

Les filtres Berkeley Packet Filter peuvent être attachés aux classificateurs du planificateur de paquets. La fonctionnalité eBPF apportée par la version 4.1 du noyau Linux en 2015 étend les classificateurs programmables BPF classiques à eBPF. Ceux-ci peuvent être compilés à l'aide du backend LLVM eBPF et chargés dans un noyau en cours d'exécution à l'aide de l' tcutilitaire.

BSD et OpenBSD

ALTQ est l'implémentation d'un ordonnanceur de réseau pour les BSD . Depuis la version 5.5 d'OpenBSD, ALTQ a été remplacé par l'ordonnanceur HFSC.

Voir également

Remarques

Les références