<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"><head><title>terminologie</title><link href="style.css" rel="stylesheet" type="text/css" /><meta content="DocBook XSL Stylesheets V1.73.2" name="generator" /><link rel="start" href="index.html" title="HOWTO du routage avancé et du contrôle de trafic sous Linux" /><link rel="up" href="ch09.html" title="Chapitre 9. Gestionnaires de mise en file d'attente pour l'administration de la bande passante" /><link rel="prev" href="ch09s03.html" title="Conseils pour le choix de la file d'attente" /><link rel="next" href="ch09s05.html" title="Gestionnaires de file d'attente basés sur les classes" /></head><body><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">terminologie</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="ch09s03.html">Précédent</a> </td><th align="center" width="60%">Chapitre 9. Gestionnaires de mise en file d'attente pour l'administration de la bande passante</th><td align="right" width="20%"> <a accesskey="n" href="ch09s05.html">Suivant</a></td></tr></table><hr /></div><div class="sect1" lang="fr"><div class="titlepage"><div><div><h2 class="title"><a id="lartc.qdisc.terminology" />terminologie</h2></div></div></div><p>Pour comprendre correctement des configurations plus compliquées, il est d'abord nécessaire d'expliquer quelques concepts. A cause de la complexité et de la relative jeunesse du sujet, beaucoup de mots différents sont utilisés par les personnes mais ils signifient en fait la même chose. </p><p>Ce qui suit est lâchement inspiré du texte <code class="filename">draft-ietf-diffserv-model-06.txt</code>, <em class="citetitle">An Informal Management Model for Diffserv Routers</em>. Il peut être trouvé à l'adresse <a class="ulink" href="http://www.ietf.org/internet-drafts/draft-ietf-diffserv-model-04.txt" target="_top"> http://www.ietf.org/internet-drafts/draft-ietf-diffserv-model-04.txt </a>. </p><p>Lisez-le pour les définitions strictes des termes utilisés. </p><div class="variablelist"><dl><dt><span class="term">Gestionnaire de mise en file d'attente (qdisc) (<em class="wordasword">Queueing Discipline</em>)</span></dt><dd><p>Un algorithme qui gère la file d'attente d'un périphérique, soit pour les données entrantes (<em class="wordasword">ingress</em>), soit pour les données sortantes (<em class="wordasword">egress</em>). </p></dd><dt><span class="term">Gestionnaire de mise en file d'attente sans classes (<em class="wordasword">Classless qdisc</em>)</span></dt><dd><p>Un gestionnaire de mise en file d'attente qui n'a pas de subdivisions internes configurables. </p></dd><dt><span class="term">Gestionnaire de mise en file d'attente basé sur des classes (<em class="wordasword">Classful qdisc</em>)</span></dt><dd><p>Un gestionnaire de mise en file d'attente basé sur des classes contient de multiples classes. Certaines de ces classes contiennent un gestionnaire de mise en file d'attente supplémentaire, qui peut encore être basé sur des classes, mais ce n'est pas obligatoire. Si l'on s'en tient à la définition stricte, <code class="literal">pfifo_fast</code> <span class="emphasis"><em>EST</em></span> basé sur des classes, dans la mesure où il contient trois bandes, qui sont en fait des classes. Cependant, d'un point de vue des perspectives de configuration pour l'utilisateur, il est sans classes dans la mesure où ces classes ne peuvent être modifiées avec l'outil <span class="command"><strong>tc</strong></span>. </p></dd><dt><span class="term">Classes</span></dt><dd><p>Un gestionnaire de mise en file d'attente basé sur les classes peut avoir beaucoup de classes, chacune d'elles étant internes au gestionnaire. Une classe peut à son tour se voir ajouter plusieurs classes. Une classe peut donc avoir comme parent soit un gestionnaire de mise en file d'attente, soit une autre classe. Une classe terminale est une classe qui ne possède de classes enfants. Seul 1 gestionnaire de mise en file d'attente est attaché à cette classe. Ce gestionnaire est responsable de l'envoi des données de cette classe. Quand vous créez une classe, un gestionnaire de mise en file d'attente fifo est créé. Quand vous ajoutez une classe enfant, ce gestionnaire est supprimé. Le gestionnaire fifo d'une classe terminale peut être remplacé par un autre gestionnaire plus adapté. Vous pouvez même remplacer ce gestionnaire fifo par un gestionnaire de mise en file d'attente basé sur des classes de sorte que vous pourrez rajouter des classes supplémentaires. </p></dd><dt><span class="term">Classificateur (<em class="wordasword">Classifier</em>)</span></dt><dd><p>Chaque gestionnaire de mise en file d'attente basé sur des classes a besoin de déterminer vers quelles classes il doit envoyer un paquet. Ceci est réalisé en utilisant le classificateur. </p></dd><dt><span class="term">Filtre (<em class="wordasword">Filter</em>)</span></dt><dd><p>La classification peut être réalisée en utilisant des filtres. Un filtre est composé d'un certain nombre de conditions qui, si elles sont toutes vérifiées, satisfait le filtre. </p></dd><dt><span class="term">Ordonnancement (<em class="wordasword">Scheduling</em>)</span></dt><dd><p>Un gestionnaire de mise en file d'attente peut, avec l'aide d'un classificateur, décider que des paquets doivent sortir plus tôt que d'autres. Ce processus est appelé ordonnancement (<em class="wordasword">scheduling</em>), et est réalisé par exemple par le gestionnaire <code class="literal">pfifo_fast</code> mentionné plus tôt. L'ordonnancement est aussi appelé « <span class="quote">reclassement</span> » (<em class="wordasword">reordering</em>), ce qui peut prêter à confusion. </p></dd><dt><span class="term">Mise en forme (<em class="wordasword">Shaping</em>)</span></dt><dd><p>Le processus qui consiste à retarder l'émission des paquets sortants pour avoir un trafic conforme à un débit maximum configuré. La mise en forme est réalisée sur <em class="wordasword">egress</em>. Familièrement, rejeter des paquets pour ralentir le trafic est également souvent appelé Mise en forme. </p></dd><dt><span class="term">Réglementation (<em class="wordasword">Policing</em>)</span></dt><dd><p>Retarder ou jeter des paquets dans le but d'avoir un trafic restant en dessous d'une bande passante configurée. Dans Linux, la réglementation ne peut que jeter un paquet, et non le retarder dans la mesure où il n'y a pas de « <span class="quote">file d'attente d'entrée</span> » (<em class="wordasword">ingress queue</em>). </p></dd><dt><span class="term"><em class="wordasword">Work-Conserving</em></span></dt><dd><p>Un gestionnaire de mise en file d'attente <em class="wordasword">work-conserving</em> délivre toujours un paquet s'il y en a un de disponible. En d'autres termes, il ne retarde jamais un paquet si l'adaptateur réseau est prêt à l'envoyer (dans le cas du gestionnaire <em class="wordasword">egress</em>). </p></dd><dt><span class="term"><em class="wordasword">non-Work-Conserving</em></span></dt><dd><p>Quelques gestionnaire de mise en files d'attente, comme par exemple le <em class="wordasword">Token Bucket Filter</em>, peuvent avoir besoin de maintenir un paquet pendant un certain temps pour limiter la bande passante. Ceci signifie qu'ils refusent parfois de libérer un paquet, bien qu'ils en aient un de disponible. </p></dd></dl></div><p>Maintenant que nous avons défini notre terminologie, voyons où tous ces éléments sont situés. </p><p> <pre class="screen"> Programmes Utilisateurs ^ | +---------------+-------------------------------------------+ | Y | | -------> Pile IP | | | | | | | Y | | | Y | | ^ | | | | / ----------> Transmission -> | | ^ / | | | |/ Y | | | | | | ^ Y /-qdisc1-\ | | | Classificateur /--qdisc2--\ | --->->Gestionnaire de mise de sortie ---qdisc3---- | -> | en file d'attente (Egress) \__qdisc4__/ | | d'entrée (Ingress) \-qdiscN_/ | | | +-----------------------------------------------------------+ </pre> Merci à Jamal Hadi Salim pour cette représentation ASCII. </p><p>Le grand rectangle représente le noyau. La flèche la plus à gauche représente le trafic du réseau entrant dans votre machine. Celui-ci alimente alors le gestionnaire de mise en file d'attente Ingress qui peut appliquer des filtres à un paquet, et décider de le supprimer. Ceci est appelé « <span class="quote">réglementation</span> » (<em class="wordasword">Policing</em>). </p><p>Ce processus a lieu très tôt, avant d'avoir beaucoup parcouru le noyau. C'est par conséquent un très bon endroit pour rejeter au plus tôt du trafic, sans pour autant consommer beaucoup de ressources CPU. </p><p>Si le paquet est autorisé à continuer, il peut être destiné à une application locale et, dans ce cas, il entre dans la couche IP pour être traité et délivré à un programme utilisateur. Le paquet peut également être transmis sans entrer dans une application et dans ce cas, être destiné à <em class="wordasword">egress</em>. Les programmes utilisateurs peuvent également délivrer des données, qui sont alors transmises et examinées par le classificateur <em class="wordasword">Egress</em>. </p><p>Là, il est examiné et mis en file d'attente vers un certain nombre de gestionnaire de mise en file d'attente. Par défaut, il n'y a qu'un seul gestionnaire <em class="wordasword">egress</em> installé, <code class="literal">pfifo_fast</code>, qui reçoit tous les paquets. Ceci correspond à « <span class="quote">la mise en file d'attente</span> » (<em class="wordasword">enqueueing</em>). </p><p>Le paquet réside maintenant dans le gestionnaire de mise en file d'attente, attendant que le noyau le réclame pour le transmettre à travers l'interface réseau. Ceci correspond au « <span class="quote">retrait de la file d'attente</span> » (<em class="wordasword">dequeueing</em>). </p><p>Le schéma ne montre que le cas d'un seul adaptateur réseau. Les flèches entrantes et sortantes du noyau ne doivent pas être trop prises au pied de la lettre. Chaque adaptateur réseau a un gestionnaire d'entrée et de sortie. </p></div><div class="navfooter"><hr /><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="ch09s03.html">Précédent</a> </td><td align="center" width="20%"><a accesskey="u" href="ch09.html">Niveau supérieur</a></td><td align="right" width="40%"> <a accesskey="n" href="ch09s05.html">Suivant</a></td></tr><tr><td valign="top" align="left" width="40%">Conseils pour le choix de la file d'attente </td><td align="center" width="20%"><a accesskey="h" href="index.html">Sommaire</a></td><td valign="top" align="right" width="40%"> Gestionnaires de file d'attente basés sur les classes</td></tr></table></div></body></html>