Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Comprendre les files d’attente de sortie virtuelle (VOQ) CoS

La méthode traditionnelle de transfert du trafic via un commutateur consiste à mettre en mémoire tampon le trafic entrant dans les files d’attente d’entrée sur les interfaces entrantes, à transférer le trafic sur la structure du commutateur vers les files d’attente de sortie sur les interfaces de sortie, puis à mettre à nouveau le trafic en mémoire tampon sur les files d’attente de sortie avant de transmettre le trafic au saut suivant. La méthode traditionnelle de mise en file d’attente des paquets sur un port entrant consiste à stocker le trafic destiné à différents ports de sortie dans la même file d’attente d’entrée (tampon).

Pendant les périodes de congestion, le commutateur peut déposer des paquets au port de sortie, de sorte qu’il peut dépenser des ressources pour transporter le trafic à travers la structure du commutateur vers un port de sortie, pour ensuite laisser tomber ce trafic au lieu de le transférer. Et comme les files d’attente d’entrée stockent le trafic destiné à différents ports de sortie, la congestion sur un port de sortie peut affecter le trafic sur un autre port de sortie, une condition appelée blocage de tête de ligne (HOLB).

L’architecture de file d’attente de sortie virtuelle (VOQ) adopte une approche différente :

  • Au lieu de tampons physiques distincts pour les files d’attente d’entrée et de sortie, le commutateur utilise les tampons physiques sur le pipeline d’entrée de chaque puce PFE (Packet Forwarding Engine) pour stocker le trafic de chaque port sortant. Chaque file d’attente de sortie sur un port de sortie dispose d’un espace de stockage tampon sur chaque pipeline d’entrée sur toutes les puces PFE du commutateur. Le mappage de l’espace de stockage du pipeline entrant aux files d’attente de sortie est de 1 à 1, de sorte que chaque file d’attente de sortie reçoit de l’espace tampon sur chaque pipeline entrant.

  • Au lieu d’une file d’attente d’entrée contenant le trafic destiné à plusieurs files d’attente de sortie différentes (mappage un-à-plusieurs), chaque file d’attente de sortie dispose d’un VOQ dédié composé des tampons d’entrée sur chaque puce de transfert de paquets dédiés à cette file d’attente de sortie (mappage 1-to-1). Cette architecture empêche la communication entre deux ports d’affecter un autre port.

  • Au lieu de stocker le trafic sur une file d’attente de sortie physique jusqu’à ce qu’il puisse être transféré, un VOQ ne transmet pas le trafic du port entrant à travers la structure vers le port de sortie tant que le port de sortie n’a pas les ressources nécessaires pour transférer le trafic.

Un VOQ est un ensemble de files d’attente d’entrée (tampons) qui reçoivent et stockent le trafic destiné à une file d’attente de sortie sur un port de sortie. Chaque file d’attente de sortie sur chaque port de sortie a sa propre VOQ dédiée, qui se compose de toutes les files d’attente d’entrée qui envoient le trafic vers cette file d’attente de sortie.

VOQ Architecture

Un VOQ représente la mise en mémoire tampon d’entrée pour une file d’attente de sortie particulière. Un ID de tampon unique identifie chaque file d’attente de sortie sur une puce PFE. Chacune des six puces PFE utilise le même ID de tampon unique pour une file d’attente de sortie particulière. Le trafic stocké à l’aide d’un ID de tampon particulier sur les six puces PFE comprend le trafic destiné à une file de sortie particulière sur un port, et constitue la VOQ de cette file d’attente de sortie.

Un commutateur doté de 72 ports de sortie avec 8 files d’attente de sortie sur chaque port possède 576 VOQ sur chaque puce PFE (72 x 8 = 576). Étant donné que le commutateur a six puces PFE, il a un total de 3 456 VOQ (576 x 6 = 3 456).

Un VOQ est distribué sur toutes les puces PFE qui envoient activement le trafic vers cette file d’attente de sortie. Chaque file d’attente de sortie est la somme du nombre total de tampons affectés à cette file d’attente de sortie (par son ID de tampon unique) sur toutes les puces PFE. Ainsi, la file d’attente de sortie elle-même est virtuelle, pas physique, bien que la file d’attente de sortie soit composée de files d’attente d’entrée physiques.

Mise en mémoire tampon du temps aller-retour

Bien qu’il n’y ait pas de mise en mémoire tampon des files d’attente de sortie pendant les périodes de congestion (pas de stockage à long terme), il existe une petite mémoire tampon de file d’attente de sortie physique sur les cartes de ligne de sortie pour prendre en charge le temps d’aller-retour pour que le trafic traverse la structure du commutateur d’entrée à sortie. Le temps d’aller-retour comprend le temps qu’il faut au port d’entrée pour demander des ressources de port de sortie, recevoir une subvention du port de sortie pour les ressources et transmettre les données sur la structure du commutateur.

Cela signifie que si aucun paquet n’est abandonné à l’entrée du commutateur et que le commutateur le transfère à travers la structure vers le port de sortie, le paquet ne sera pas abandonné et sera transféré au saut suivant. Toutes les pertes de paquets ont lieu dans le pipeline d’entrée.

Le commutateur dispose de 4 Go de DRAM externe à utiliser comme tampon de bande passante à délai (DBB). Le DBB assure le stockage des ports entrants jusqu’à ce que les ports puissent transférer le trafic vers les ports sortants.

Demande et octroi de bande passante au port sortant

Lorsque des paquets arrivent à un port entrant, le pipeline d’entrée stocke le paquet dans la file d’attente d’entrée avec l’ID de tampon unique de la file d’attente de sortie de destination. Le commutateur prend la décision de mise en mémoire tampon après avoir effectué la recherche de paquets. Si le paquet appartient à une classe pour laquelle le seuil de trafic maximal a été dépassé, il se peut qu’il ne soit pas mis en mémoire tampon et qu’il soit abandonné. Pour transporter des paquets à travers la structure de commutation vers les ports de sortie :

  1. Le planificateur de demande PFE de la carte de ligne entrante envoie une demande au planificateur d’octroi PFE de la carte de ligne de sortie pour informer le PFE de sortie que des données sont disponibles pour la transmission.

  2. Lorsqu’il y a de la bande passante de sortie disponible, le planificateur d’octroi de la carte de ligne de sortie répond en envoyant une allocation de bande passante au PFE de la carte de ligne entrante.

  3. Le PFE de la carte de ligne entrante reçoit la subvention de la carte de ligne de sortie PFE et transmet les données à la carte de ligne de sortie.

Les paquets entrants restent dans la VOQ sur les files d’attente d’entrée du port entrant jusqu’à ce que la file d’attente de sortie soit prête à accepter et à transférer plus de trafic.

Dans la plupart des cas, la structure de commutation est suffisamment rapide pour être transparente aux stratégies de classe de service (CoS) de sortie. De sorte que le processus de transfert du trafic du pipeline d’entrée, à travers la structure de commutateurs, vers les ports de sortie, n’affecte pas les stratégies CoS configurées pour le trafic. La structure n’affecte la stratégie CoS qu’en cas de défaillance de la structure ou de problème d’équité du port.

Lorsqu’un paquet entre et sort de la même puce PFE (commutation locale), il ne traverse pas la structure du commutateur. Toutefois, le commutateur utilise le même mécanisme de demande et d’octroi pour recevoir la bande passante de sortie que les paquets qui traversent la structure. De sorte que les paquets commutés localement et les paquets qui arrivent à une puce PFE après avoir traversé la structure du commutateur sont traités équitablement lorsque le trafic est en lice pour la même file d’attente de sortie.

Avantages de VOQ

L’architecture VOQ offre deux avantages majeurs :

Éliminez le blocage en tête de ligne

L’architecture VOQ élimine les problèmes de blocage en tête de ligne (HOLB). Sur les commutateurs non-VOQ, HOLB se produit lorsque la congestion à un port de sortie affecte un autre port de sortie qui n’est pas encombré. HOLB se produit lorsque le port encombré et le port non encombré partagent la même file d’attente d’entrée sur une interface entrante.

Un exemple de scénario HOLB est un commutateur dont les flux de trafic entrant dans un port entrant (IP-1) sont destinés à deux ports de sortie différents (EP-2 et EP-3) :

  1. L’encombrement se produit sur le port de sortie EP-2. Il n’y a pas d’encombrement sur le port de sortie EP-3, comme illustré sur la Figure 1.

    Figure 1 : Congestion sur EP-2 Congestion Occurs on EP-2
  2. Le port de sortie EP-2 envoie un signal de contre-pression au port d’entrée IP-1, comme illustré sur la Figure 2.

    Figure 2 : contre-pressions EP-2 IP-1 EP-2 Backpressures IP-1
  3. Le signal de contre-pression empêche le port d’entrée IP-1 d’envoyer du trafic et le met en mémoire tampon jusqu’à ce qu’il reçoive un signal pour reprendre l’envoi, comme illustré à la Figure 3. Le trafic qui arrive au port d’entrée IP-1 à destination du port de sortie EP-3 non encombré est mis en mémoire tampon avec le trafic destiné au port EP-2 encombré, au lieu d’être transféré vers le port EP-3.

    Figure 3 : La contre-pression d’EP-2 fait que l’IP-1 met en mémoire tampon le trafic au lieu d’envoyer du trafic, ce qui affecte EP-3 Backpressure from EP-2 Causes IP-1 to Buffer Traffic Instead of Sending Traffic, Affecting EP-3
  4. Le port d’entrée IP-1 transmet le trafic au port de sortie EP-3 non encombré uniquement lorsque le port de sortie EP-2 est suffisamment dégagé pour permettre au port d’entrée IP-1 de reprendre l’envoi du trafic, comme illustré à la figure 4.

    Figure 4 : désencombrement sur EP-2 pour permettre à IP-1 de reprendre l’envoi du trafic vers les deux ports Congestion on EP-2 Clears, Allowing IP-1 to Resume Sending Traffic to Both Egress Ports de sortie

Ainsi, le port de sortie congestionné EP-2 affecte négativement le port de sortie EP-3 non encombré, car les deux ports de sortie partagent la même file d’attente d’entrée sur le port d’entrée IP-1.

L’architecture VOQ évite HOLB en créant une file d’attente virtuelle dédiée différente pour chaque file d’attente de sortie sur chaque interface, comme illustré à la Figure 5.

Figure 5 : Chaque port de sortie a une file d’attente de sortie virtuelle distincte sur IP-1 Each Egress Port Has a Separate Virtual Output Queue on IP-1

Étant donné que différentes files d’attente de sortie ne partagent pas la même file d’attente d’entrée, une file d’attente de sortie encombrée sur un port ne peut pas affecter une file d’attente de sortie sur un autre port, comme illustré à la figure 6. (Pour la même raison, une file d’attente de sortie encombrée sur un port ne peut pas affecter une autre file d’attente de sortie sur le même port : chaque file d’attente de sortie a sa propre file d’attente de sortie virtuelle dédiée composée de files d’attente d’entrée d’interface entrante.)

Figure 6 : La congestion sur EP-2 n’affecte pas le port EP-3 Congestion on EP-2 Does Not Affect Uncongested Port EP-3 non encombré

L’exécution de la mise en mémoire tampon des files d’attente à l’interface d’entrée garantit que le commutateur n’envoie le trafic à travers la fabric vers une file d’attente de sortie que si cette file d’attente de sortie est prête à recevoir ce trafic. Si la file d’attente de sortie n’est pas prête à recevoir du trafic, celui-ci reste mis en mémoire tampon à l’interface entrante.

Augmenter l’efficacité et l’utilisation de la fabric

L’architecture de file d’attente de sortie traditionnelle présente certaines inefficacités inhérentes à l’architecture VOQ.

  • Mise en mémoire tampon des paquets : l’architecture de mise en file d’attente traditionnelle met en mémoire tampon chaque paquet deux fois dans le stockage DRAM à long terme, une fois à l’interface entrante et une fois à l’interface sortante. L’architecture VOQ met en mémoire tampon chaque paquet une seule fois dans le stockage DRAM à long terme, à l’interface entrante. La structure du commutateur est suffisamment rapide pour être transparente vis-à-vis des stratégies CoS de sortie. Ainsi, au lieu de mettre les paquets en mémoire tampon une deuxième fois à l’interface de sortie, le commutateur peut transférer le trafic à un débit qui ne nécessite pas de tampons de sortie profonds, sans affecter les stratégies CoS de sortie configurées (planification).

  • Consommation de ressources : l’architecture de file d’attente traditionnelle envoie les paquets de la file d’attente d’entrée de l’interface entrante (tampon), via la structure du commutateur, à la file d’attente de sortie de l’interface de sortie (tampon). Au niveau de l’interface de sortie, des paquets peuvent être abandonnés, même si le commutateur a dépensé des ressources pour les transporter à travers la structure et les stocker dans la file d’attente de sortie. L’architecture VOQ n’envoie pas de paquets à travers la structure vers l’interface de sortie tant que celle-ci n’est pas prête à transmettre le trafic. Cela augmente l’utilisation du système, car aucune ressource n’est gaspillée pour transporter et stocker des paquets qui sont abandonnés ultérieurement.

Indépendamment de l’architecture VOQ, l’architecture de commutation Juniper Networks offre également une meilleure utilisation de la structure, car le commutateur convertit les paquets en cellules. Les cellules ont une taille prévisible, ce qui permet au commutateur de pulvériser les cellules uniformément sur les liaisons du tissu et d’utiliser plus pleinement les liaisons du tissu. La taille des paquets varie considérablement et leur taille n’est pas prévisible. Les structures basées sur les paquets ne peuvent pas fournir une utilisation supérieure à 65 à 70 % en raison de la variation et de l’imprévisibilité de la taille des paquets. Les structures cellulaires de Juniper Networks peuvent offrir un taux d’utilisation de la structure de près de 95 % grâce à la prévisibilité et au contrôle de la taille des cellules.