
Un planificateur réseau , également appelé planificateur de paquets , discipline de mise en file d'attente ( qdisc ) ou algorithme de mise en file d'attente , est un arbitre sur un nœud d'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 réseau disponibles pour les différents systèmes d'exploitation , qui implémentent de nombreux algorithmes de planification réseau existants .
La logique du planificateur réseau décide quel paquet réseau doit être transmis ensuite. Le planificateur réseau est associé à un système de mise en file d'attente, qui stocke 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 s'avérer impossible de planifier toutes les transmissions dans les limites du système. Dans ces cas, le planificateur réseau est chargé de décider quel trafic transférer et quel trafic abandonner .
Terminologie et responsabilités
Un planificateur réseau peut être chargé de mettre en œuvre des 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 du réseau , la latence et la perte de paquets. Plus précisément, la gestion active des files d'attente (AQM) consiste à supprimer de manière sélective les paquets réseau en file d'attente pour atteindre l'objectif plus large de prévention d'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 par rafales. Le planificateur décide du timing des paquets transmis. La qualité de service (QoS) est la priorisation 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 réseau ont été développées. Chacune d'entre elles permet de réorganiser ou de supprimer des paquets réseau spécifiques dans 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 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 qualité de service.
Les disciplines de mise en file d'attente par classe permettent la création de classes, qui fonctionnent comme des branches sur un arbre. Des règles peuvent ensuite être définies pour filtrer les paquets dans chaque classe. Chaque classe peut elle-même se voir attribuer une autre discipline de mise en file d'attente par classe ou sans classe . Les disciplines de mise en file d'attente sans classe ne permettent pas d'y ajouter d'autres disciplines de mise en file d'attente.
Voici quelques 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 .
Gonflement de la mémoire tampon
Le phénomène de saturation de la mémoire tampon est un phénomène qui se produit dans les réseaux à commutation de paquets, dans lequel une mise en mémoire tampon excessive des paquets entraîne une latence élevée et une variation du délai de transmission des paquets . Le phénomène de saturation de la mémoire tampon peut être résolu par un planificateur réseau qui élimine de manière stratégique les paquets pour éviter un retard de mise en mémoire tampon inutilement élevé. Les exemples incluent CoDel , FQ-CoDel et la détection précoce aléatoire .
Implémentations
Noyau Linux

Le planificateur 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 mise en 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 modifie la discipline de mise en 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 le planificateur 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 eBPF de LLVM 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 planificateur réseau pour BSD . Depuis la version 5.5 d'OpenBSD, ALTQ a été remplacé par le planificateur HFSC.