Les packet schedulers sont des modes de gestion des files d'attente (queue) des réseaux.

La queue par défaut d'une interface réseau est une FIFO.

D'autre schedulers existent et permettent de réguler le traffic.

Les plus courants sont :

  • PRIORITY QUEUEING (PRIQ) : Permet de créer plusieurs files et de leur assigner une priorité. Les paquets des files les plus prioritaires sont traités en premier. Les files sont organisées à plat (une file ne peut contenir d'autres files).
  • CLASS BASED QUEUING (CBQ) : les files sont organisées en arbre. Chaque file peut contenir d'autres files. Les files sont caractérisées par une bande passante et une priorité. La bande passante permet de garantir un débit à la classe tandis que la priorité influence le délai de traitement des paquets. Optionnellement, une file peut être autorisée à puiser de la bande passante disponible dans sa file parente (borrow).
  • HIERARCHICAL TOKEN BUCKET (HBT) : une version améliorée de CBQ qui permet de définir pour une file des débits garantis, max et de définir des comportement de burst (temps ou quantité de traffic au débit max).
HBT est nettement plus intéressant car il permet d'autoriser une file à puiser dans de la bande passante disponible au delà de la bande passante garantie, tout en limité la capacité de puiser à un max.
Malheureusement, HBT n'est pas implémenté sur OpenBSD 4.2 (ni NetBSD ni FreeBSD d'ailleurs) alors qu'il l'est sous Linux.
Vraiment dommage !