Avr 21

Gestion de congestion sur un routeur, Software et Hardware Queues

Un challenge (parmi tant d’autres) dans les réseaux est l’adaptation au trafic arrivant à un moment T. Quand vos utilisateurs arrivent a 08H00 et lancent en même temps ou presque leur messagerie, une page Facebook ….. bizarre, ça lague ?!

Pourtant les commutateurs et les routeurs sont équipés de files d’attente, une Hardware Queue (TxQ) pour chaque interface ; la taille de celle-ci étant configurée automatiquement par IOS en fonction de la bande passante. Pour ce qui est de la gestion des paquets arrivant, l’implémentation de base est FIFO, First In First Out, ou la loi du premier arrive premier servi 🙂

Commençons cette série d articles sur les routeurs ! Les commutateurs sont plus contraignants car la gestion de la QoS va dépendre du modèle utilisé (3750, 4500, …)

 

Malheureusement cette hardware queue n’est pas suffisante dans les périodes de charge réseau, le routeur drope alors les paquets. la solution est une deuxième file appelée Software Queue qui va permettre et/ou tenter de limiter le phénomène.

 

 

On trouve plusieurs implémentations possibles de Software Queue en fonction de l’IOS, de la gamme de routeurs utilise, … Voici les plus connues avec leurs avantages et inconvénients :

  • FIFO (Interface BW>2Mb)

Le fonctionnement est le même que pour Hardware Queue.

+ : facilite de configuration et d utilisation

-: aucune priorisation, pose des problèmes avec des flux agressifs qui accaparent toute la bande passante (un bon transfert FTP par exemple).

  • PQ, Priority Queuing

Fonctionnement assez simple, chaque paquet a une priorité assigne et place dans une file. Quand la file a haute priorité est vide, on passé a la suivante et ainsi de suite. Donc si la file P1 (haute priorité) n’est jamais vide, les paquets de P2 et P3 (a moindre priorité) ne sont pas envoyés. On parle de phénomène de starvation.

+: facilite de configuration

-:le fait d attendre que la file de haute priorité soit vide avant de passer aux suivantes va induire des latences dans les files de plus basses priorités.

  • RR, Round Robin

En gros comme un tourniquet : plusieurs files, un paquet est pris dans chacune a chaque tour. Si tous les paquets ont la même taille, les files partagent la bande passante de manière égale. Si des paquets plus gros sont places dans une file, celle-ci recevra plus de bande passante

+:pas de starvation comme avec PQ et FIFO

-: impossible de prioriser un trafic particulier

  • WRR, Weighted Round Robin

Même principe que RR mais avec la possibilité de configurer un poids par file

+:idem RR

-:l’envoie des paquets n’est pas toujours conforme aux thresolds configures.

  • CQ, Custom Queuing

Pour faire court, une version de RR a la sauce CISCO. Mais il est possible de réserver une partie de la bande passante a un trafic spécifique..

  • WFQ

Ici, on entre dans des processus de gestion plus complexes mais je vais essayer de resumer le concept en qqls lignes :

Gestion de QoS par défaut si interface <=2Mb (comme un serial)

Comme indiqué dans le nom, c est Fair, équitable :), avec tous les flux sauf les agressifs. Le système va utiliser différents paramètres pour trier le trafic de manière automatique : adresses IP, numéro de port, DSCP (il faudra que je revienne sur cette notion dans un autre article ….) et attribuer une bande passante égale à chaque file.

La bande passante est la même pour tous les flux mais le système calcule le Finish time qui est fonction du DSCP. Plus celui-ci est élevé, plus ce paramètre est faible, plus un paquet a de chances d’être envoyés.

+:évite le problème de starvation, facile a configurer

-:gestion automatique, impossible de manuellement paramétrer ce qui se passe

 

Configuration : commande fair-queue sur interface

 

  • CBWFQ et LLQ

Le haut du panier, un article spécifique présente le concept.

Bon clic a tous,

 

Lien Permanent pour cet article : http://rsocisco.fr/congestion_softwarehardware/

Laisser un commentaire

Your email address will not be published.