Administration des réseaux TCP/IP, d'IPMP et des tunnels IP dans Oracle® Solaris 11.2

Quitter la vue de l'impression

Mis à jour : Juillet 2014
 
 

Implémentation du contrôle de congestion du trafic

La congestion du réseau se traduit généralement par des dépassements du tampon du routeur, lorsque les noeuds envoient plus de paquets que le réseau ne peut en gérer. Différents algorithmes empêchent une congestion du trafic à travers la mise en place de contrôles sur les systèmes d'envoi. Ces algorithmes sont pris en charge par Oracle Solaris et peuvent être facilement ajoutés ou directement rattaché à l'OS, comme indiqué dans le tableau suivant qui décrit les algorithmes pris en charge intégrée.

Algorithme
Nom Oracle Solaris
Description
NewReno
newreno
Algorithme par défaut dans Oracle Solaris. Ce mécanisme de contrôle est basé sur une fenêtre de congestion de l'expéditeur et les mécanismes de Slow Start (démarrage lent) et de Congestion Avoidance (anti-congestion).
HighSpeed
highspeed
L'une des modifications de NewReno les plus connues et les plus simples pour les réseaux à haut débit.
CUBIC
cubic
Actuellement l'algorithme par défaut dans Linux 2.6. Avec cet algorithme, la phase Congestion Avoidance passe d'une augmentation linéaire du fenêtrage à une fonction cubique.
Vegas
vegas
Algorithme classique basé sur la temporisation, qui tente de prédire la congestion sans déclencher une perte réelle de paquets.

Pour activer le contrôle de congestion, les propriétés de contrôle TCP suivantes doivent être définies. Bien que ces propriétés concernent le trafic TCP, le mécanisme de contrôle activé par ces propriétés s'applique également au trafic SCTP.

cong_enabled

Contient une liste d'algorithmes, séparés par des virgules, actuellement opérationnels dans le système. Vous pouvez ajouter ou supprimer des algorithmes pour n'utiliser que ceux qui vous intéressent. Cette propriété peut avoir plusieurs valeurs. Vous devez donc utiliser le qualificatif += ou -=, selon le changement que vous souhaitez appliquer.

cong_default

Utilisé par défaut lorsque des applications aucun algorithme n'est spécifié explicitement dans les options de socket. Actuellement la valeur de la propriété cong_default s'applique aux zones globales et non globales.

L'exemple ci-dessous illustre comment ajouter un algorithme de contrôle de congestion au protocole, procédez comme suit :

# ipadm set-prop -p cong_enabled+=algorithm tcp

Supprimer un algorithme comme suit :

# ipadm set-prop -p cong_enabled-=algorithm tcp

Remplacer l'algorithme par défaut comme suit :

# ipadm set-prop -p cong_default=algorithm tcp

Remarque -  L'ajout ou la suppression d'algorithmes n'est soumise à aucune règle de séquence. Vous pouvez supprimer un algorithme avant d'en ajouter d'autres à une propriété. Cependant, vous devez toujours définir un algorithme pour la propriété cong_default.

L'exemple suivant illustre la manière dont vous pouvez implémenter le contrôle de congestion. Dans l'exemple, l'algorithme par défaut du protocole TCP newreno est remplacé par cubic. Ensuite, l'algorithme vegas est retiré de la liste des algorithmes activés.

# ipadm show-prop -p extra_priv_ports tcp
PROTO PROPERTY              PERM CURRENT      PERSISTENT   DEFAULT      POSSIBLE
tcp   extra_priv_ports      rw   2049,4045    --           2049,4045    1-65535

# ipadm show-prop -p cong_default,cong_enabled tcp
PROTO PROPERTY              PERM CURRENT      PERSISTENT   DEFAULT      POSSIBLE
tcp   cong_default          rw   newreno      --           newreno      newreno,cubic,
                                                                        highspeed,vegas
tcp   cong_enabled          rw   newreno,cubic, newreno,cubic, newreno  newreno,cubic,
                                 highspeed,   highspeed,                highspeed,vegas
                                 vegas        vegas

# ipadm set-prop -p cong_enabled-=vegas tcp
# ipadm set-prop -p cong_default=cubic tcp

# ipadm show-prop -p cong_default,cong_enabled tcp
PROTO PROPERTY              PERM CURRENT      PERSISTENT   DEFAULT      POSSIBLE
tcp   cong_default          rw   cubic        cubic        newreno      newreno,cubic,
                                                                        highspeed
tcp   cong_enabled          rw   newreno,cubic, newreno,cubic, newreno  newreno,cubic,
                                 highspeed    highspeed                 highspeed,vegas