Dans un réseau, les informations sont transmises sous la forme de paquets, petites unités de transmission transmises de routeur en routeur jusqu'à la destination. Tous nos traitements vont donc s'opérer sur ces paquets.
La mise en place de la qualité de service nécessite en premier lieu la reconnaissance des différents services. Celle-ci peut-se faire sur la base de nombreux critères :
- La source et la destination du paquet.
- Le protocole utilisé (UDP/TCP/ICMP/etc.).
- Les ports de source et de destination dans le cas des protocoles TCP et UDP.
- La date et l'heure.
- La congestion des réseaux.
- La validité du routage (gestion des pannes dans un routage en cas de routes multiples par ex.)
- La bande passante consommée.
- Les temps de latence.
En fonction de ces critères, différentes stratégies peuvent ensuite être appliquées pour assurer une bonne qualité de service.
Choix des routes
Lorsque plusieurs routes vers une destination sont disponible, le choix d'une des routes peut se faire pour garantir la qualité de services. Par exemple, une route proposant délai faible mais débit faible sera utilisée pour les applications interactives, tandis qu'une route acceptant un meilleur débit au prix d'un délai plus long sera preférée pour les applications moins sensible au délai (Streaming, téléchargement, etc).
Mise en forme du trafic
Mettre en forme un (Trafic shaping en anglais) trafic signifie prendre des dispositions pour s'assurer que le trafic ne dépasse jamais certaines valeurs prédéterminées. Pratiquement, cette contrainte s'applique en délayant certains paquets pour forcer un certain trafic, selon divers algorithmes.
Le contrôle du trafic peut-être utile pour limiter l'engorgement et assurer une latence correcte. Par ailleurs, des limitations de débits séparément aux trafics permettent en contrepartie de leur assurer en permanence un débit minimum, ce qui peut être particulièrement intéressant pour un fournisseur d'accès par exemple, souhaitant garantir une certaine valeur du débit à ses clients.
Les deux algorithmes les plus utilisés sont :
- Le seau percé (Leaky bucket)
- Le seau à jetons (Token bucket)
Ordonnancement
L'ordonnancement désigne l'ensemble des méthodes visant à modifier l'ordre de départ des paquets, en remplacement de la règle du « premier arrivé, premier servi ».
Une de ses applications les plus courantes consistera ainsi à donner priorité à certains types de trafic, de façon sommaire en ne laissant passer du trafic de faible priorité que s'il n'y a plus de trafic de forte priorité, ou de façon plus fine avec des algorithmes de Round-Robin pondérés, visant à faire passer des paquets des différentes connexions tour à tour, en laissant plus de temps aux paquets prioritaires.
Une autre application, le Fair Queuing consiste à séparer nettement les connexions, et à leur attribuer successivement et équitablement une possibilité de faire passer leurs paquets : cela permet de s'assurer qu'aucune application, même très demandeuse de débit, n'en écrasera d'autres.