Saturation réseau – Détecter les congestions réseaux

Comment déterminer qu’une saturation se produit sur un réseau ?

Comment en connaître la cause et y remédier rapidement ?

Les réseaux informatiques sont conçus pour transmettre les données à la vitesse la plus élevée possible. Les protocoles modernes comme TCP savent adapter leur utilisation au gabarit du réseau. En règle générale ces mécanismes suffisent à garantir la bonne gestion des flux. Il arrive malgré tout qu’une mauvaise conception du réseau ou un événement imprévu entrainent la surcharge momentanée d’un point précis.

Scenario de la congestion

Une liaison réseau saturée est une liaison qui doit transmettre plus de trames que ne le permet son support physique. Il s’agit par exemple du port d’un routeur qui devrait émettre 110 Mbits/s (megabits par seconde) quand la norme utilisée est le 100BaseTX (100 Mbps).

A ce stade le routeur commence par placer les paquets surnuméraires dans un tampon local (« buffer »). Ce tampon est vidé lorsque la saturation se termine et que la liaison permet l’écoulement.

Si la saturation se maintient suffisamment longtemps pour remplir le tampon, le routeur doit se résoudre à ne pas traiter les paquets (« drop »). Il peut éventuellement en informer l’émetteur par divers mécanismes (« TCP ECN » ou « ICMP Congestion detected »).

Les routeurs peuvent utiliser des politiques de « Quality of Service » (QOS) pour déterminer quels paquets supprimés en priorité (« best effort »). Les autres paquets sont prioritaires et sont moins concernés par la congestion.

Si la congestion se produit sur un équipement moins performant qu’un routeur (commutateur, hub, firewall ou borne wifi), les résultats sont catastrophiques.

Symptôme de la congestion

La congestion se traduit avant tout par un ressenti utilisateur classique : la lenteur. Cet état reflète la variation du débit effectif du réseau, c’est à dire le temps nécessaire pour transmettre l’intégralité d’une donnée d’un point à un autre. Le débit efficace n’existe pas en tant que tel, il se compose dans la réalité de 3 indicateurs distincts :

  • la latence
  • la gigue
  • le taux de perte

Il existe de nombreuses études sur l’influence de ces paramètres. En synthèse on peut retenir quelques faits. En premier lieu le débit efficace est inversement proportionnel à la latence. Multiplier la latence par deux revient à diviser le débit par deux. Ensuite la gigue, qui est la variation de la latence dans le temps, impacte le débit en influençant la latence. Enfin le débit théorique est inversement proportionnel à la racine carrée du taux de perte.

En somme lorsqu’une congestion se produit, la latence augmente du fait de l’utilisation des tampons, la gigue augmente pour la même raison et le taux de perte n’est plus nul. Le débit efficace est impacté directement par cet état.

Détection de la congestion

Les symptômes de la congestion nous permettent de nous baser sur des indicateurs objectifs pour la caractériser. Mesurer le débit efficace entre un poste utilisateur et un serveur est très difficile à réaliser. Mesurer la latence, la gigue ou le taux de perte est faisable.

La saturation de l’interface réseau d’un équipement est également une mesure objective réalisable. La plupart des équipements fournissent cet indicateur via SNMP.

Saturation d’un lien SDSL


Enfin certains routeurs ou commutateurs fournissent en plus le taux de remplissage de leurs buffers.

En mesurant tous ces indicateurs à intervalles réguliers il est possible de détecter la congestion. De plus, avec un intervalle court, on peut détecter des micro-congestion qui ne durent que quelques minutes.

La présentation de ces indicateurs se fait idéalement sous la forme d’une carte qui permet de comprendre la situation en une seule vue.

Exemple de carte présentant une congestion


Anticiper la congestion

Lorsqu’une liaison se retrouve saturée, c’est en général le résultat d’une montée en charge progressive. Celle-ci peut toutefois être rapide (quelques minutes). Afin d’anticiper la survenue de la congestion, la supervision des indicateurs cités plus haut est la meilleure méthode. En effet lorsqu’un lien est utilisé à 80%, les indicateurs de latence et de gigue sont déjà dégradés. En plaçant des seuils d’alerte il devient possible de détecter en amont toute saturation potentielle.

Gérer la congestion

Selon la cause de la congestion, les actions possibles diffèrent. Si la congestion est générée par un flux inhabituel dans son volume ou son horaire, il est possible de faire cesser ce flux. Afin d’identifier le type de flux, l’utilisation de Netflow / sFlow peut être utile. Voir à ce sujet notre document sur la maîtrise des flux. L’exemple suivant montre le rendu d’un module d’analyse Netflow / sFlow.

Analyse des « top talkers » en Netflow


Si la congestion est le résultat d’une mauvaise conception du réseau, le problème ne peut pas être résolu immédiatement. Comme pour l’infrastructure routière, une étude complète est nécessaire. Certains outils de cartographie peuvent être très efficace. Sur la carte présentée plus haut, on comprend rapidement où se trouve la congestion et quel type de flux en est la cause.

Sur une telle carte on peut aussi déceler un fonctionnement dégradé du réseau, comme ici la mauvaise répartition de la charge entre deux liens redondés. Ce cas de figure est très fréquent, les causes en sont multiples: bascule spanning-tree, HSRP ou LACP, mauvaise configuration d’un trunk etc.