# Qualité de service

La qualité de service (QDS) ou quality of service (QoS) est la capacité à véhiculer dans de bonnes conditions un type de trafic donné, en termes de disponibilité, débit, délais de transmission, gigue, taux de perte de paquets, etc.
La qualité de service est un concept de gestion qui a pour but d’optimiser les ressources d'un réseau (en management du système d'information) ou d'un processus (en logistique) et de garantir de bonnes performances aux applications critiques pour l'organisation. La qualité de service permet d’offrir aux utilisateurs des débits et des temps de réponse différenciés par applications (ou activités) suivant les protocoles mis en œuvre au niveau de la structure.
Elle permet ainsi aux fournisseurs de services (départements réseaux des entreprises, opérateurs, etc.) de s’engager formellement auprès de leurs clients sur les caractéristiques de transport des données applicatives sur leurs infrastructures IP.

## Enjeux

La qualité d'un service est une notion subjective. Selon le type de service envisagé, la qualité pourra résider dans le débit (téléchargement ou diffusion vidéo), le délai (pour les applications interactives ou la téléphonie), la disponibilité (accès à un service partagé) ou encore le taux de pertes de paquets (pertes sans influence pour de la voix ou de la vidéo, mais critiques pour le téléchargement). La qualité de service propre au domaine de la gestion de la qualité est un concept utile en urbanisation du système d'information gérant les flux immatériels et à la logistique qui gère les flux matériels. L'objet est de créer les synergies (ou flexibilités) nécessaires à l'organisation. Ceci passe par une amélioration de la standardisation des formats, et la mutualisation et réutilisation des ressources dans le cadre de l'intégration des flux.
La priorisation du trafic induite par la qualité de service peut aussi être considérée comme une atteinte à la neutralité du Net quand l'objectif de la qualité de service est lié à des enjeux commerciaux.

## Caractéristiques

Dans un réseau, les informations sont transmises sous la forme de paquets, petits éléments de transmission transmis de routeur en routeur jusqu'à la destination. Tous les 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 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 exemple).
* 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 disponibles, le choix d'une des routes peut se faire pour garantir la qualité de service. Par exemple, une route proposant un délai faible sur un 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 préférée pour les applications moins sensibles au délai (Streaming, téléchargement, etc.).

### Mise en forme du trafic

Mettre en forme un trafic (Traffic shaping) signifie prendre des dispositions pour s'assurer que le trafic ne dépasse jamais certaines valeurs prédéterminées. En pratique, 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é et le Seau à jetons.

### Ordonnancement

La méthode par défaut gérant l'ordre de départ des paquets est définie selon le principe de "Premier arrivé, premier servi" ( "First In, First Out" (FIFO) ). Celle-ci n'appose aucune priorité sur les paquets, et ceux-ci sont transmis dans l'ordre où ils sont reçus. D'un point de vue technique, cette méthode est toujours utilisée par défaut sur les interfaces dont le débit est supérieur à 2 Mb/s. Sur les produits Cisco, il est possible de la configurer via la commande d'interface tx-ring-limit.
L'ordonnancement désigne l'ensemble des méthodes visant à modifier cet ordre, en remplacement de la règle précédente.
Une de ses applications les plus courantes, le priority queuing (en), 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 (devenant alors du custom queuing), 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 (en) 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. Une version générale de cette application existe, le weighted queuing (en). Cette généralisation est effectuée en multipliant la taille du paquet concerné par l'inverse du poids de la file dans laquelle il se trouve (le FQ en est un cas spécial dans le sens où les files ont toutes le même poids). Une dernière version existe, le class based queuing (en) (autrement appelée Class-Based Queuing) qui utilisera des classes configurées selon différents critères (priorité, interface, application d'origine, ...) en lieu et place des connexions du Fair Queuing. Chacune de ces classes se voit ainsi allouée une partie de la bande passante en fonction de leur priorité globale.
Une dernière application, appelée le Low Latency Queuing (en) concentre son action sur le trafic sensible au délai. Il prend comme base le CBWFQ en rendant les priorités plus strictes. Cette méthode est particulièrement adaptée à l'usage de VOIP et de visiophonie.

### Le matériel

La qualité de service se réalise au niveau de la couche 2 (802.1p) ou de la couche 3 (DiffServ) du modèle OSI. Elle doit donc être configurée sur les commutateurs, les routeurs ou la passerelle reliée à Internet.

## Outils

Plusieurs outils existent sur le marché pour surveiller la qualité de service en ligne de certaines applications.
* NetScout (de NetScout Systems (en)) : outil de type client-serveur de métrologie utilisé pour surveiller les réseaux de grande envergure.
* Alaloop (alaloop.com) : plate-forme de métrologie en service managé qui délivre un service de mesures de QoS (Qualité de service) d'infrastructures réseaux, de QoE (Qualité d'expérience) d'applications critiques et d'analyses de trafic. La vision réconciliée temps réel des réseaux et des applications apporte une vision globale de contrôle de la performance des systèmes d'information.
* grenouille.com (France) : fermé le 20 juin 2017. Outil gratuit (associatif) de type plate-forme collaborative, permettant à l'aide d'un logiciel client de vérifier automatiquement et de façon régulière la qualité d'une connexion à Internet louée à un fournisseur d'accès à Internet et de partager ces statistiques avec les autres utilisateurs.