Brevet FR2751160A1 — publié le 19980116

La présente invention concerne un procédé de détection de congestion amont au sein d'un commutateur à architecture répartie tel que ceux utilisés dans les réseaux de transmissions de données par paquets, connus sous l'abréviation anglo-saxonne ATM de "asynchronous transférer mode". Elle s'applique notamment à la mise en oeuvre dans les réseaux ATM de la catégorie de service connue sous l'abréviation anglo-saxonne ABR de "available bit rate". Ce service permet à un usager d'utiliser la bande passante disponibie sur le trajet d'une connexion préalablement établie sans l'obliger à une réservation statique de ressources lors de l'établissement de la connexion. En contrepartie de cette souplesse, les deux extrémités de la connexion doivent adapter leur débit à la bande passante disponible. A cet effet, des cellules ATM particulières, dénommées cellules RM, de l'abréviation anglo-saxonne "ressource managemenf', permettent de renseigner les extrémités d'une connexion sur la disponibilité des ressources dans le réseau. Ces cellules, générées et traitées en temps réel par les équipements d'extrémité aussi bien que par les commutateurs ATM, comportent des champs destinés à convoyer des informations de débit, et notamment le débit ER conseillé par le réseau à la source, ER étant l'abréviation anglo-saxonne de "explicit cell rate". Les commutateurs qui ont cette capacité calculent le débit ER et l'inscrivent dans les cellules RM. Les différents algorithmes connus pour calculer le débit ER permettent le partage des ressources d'un port de sortie donné, entre les différentes connexions qui passent par ce port. Ces algorithmes ont généralement un fonctionnement différent selon que le commutateur est dans un état d'encombrement ou non, c'est-à-dire selon que le flot de cellules à destination d'un port concerné est plus important que le débit de sortie autorisé sur ce port ou non. À la place du terme "encombrement", le terme "congestion" est utilisé fréquemment avec le sens qu'a ce terme en langue anglaise. La congestion est en principe exclue pour les catégories de services qui requièrent une réservation statique des ressources qu'elles utilisent. D'ailleurs les cellules ATM correspondant à ces catégories de services sont généralement commutées à la volée, sans mise en attente. II n'en est pas de même pour les services qui n'imposent pas de réservation de ressources, tel l'ABR, aussi des mémoires tampon sont elles généralement prévues pour absorber les surdébits de cellules, en attendant que les sources diminuent leur débit en réponse aux indications du réseau convoyées dans les cellules RM. Dans ces conditions, I'encombrement momentané d'un port de sortie d'un commutateur se traduit mécaniquement par une accumulation de cellules à destination de ce port dans les mémoires tampon. Dans le cas d'un commutateur à architecture répartie composé de plusieurs joncteurs d'entrée couplés entre eux par un brasseur, un encombrement momentané d'un port de sortie se traduit par une accumulation dans les joncteurs d'entrée des cellules à destination de ce port. C'est ce qu'on appel la congestion amont. Cette répartition dans les joncteurs d'entrée des cellules à destination d'un port de sortie déterminé, rend difficile l'agrégation des différentes informations partielles concernant les cellules en attente dans chaque joncteur, pour permettre leur comptabilisation. Le but de l'invention est de résoudre ce problème en définissant les informations à gérer dans chaque joncteur d'entrée et en définissant un moyen d'intégration des informations partielles. A cet effet, I'invention a pour objet un procédé de détection de congestion amont au sein d'un commutateur ATM à architecture répartie composé de plusieurs joncteurs d'entrée et de sortie pour la transmission dans un réseau de cellules ATM, caractérisé en ce qu'il consiste à compter dans chaque joncteur d'entrée le nombre de cellules entrantes et sortantes à destination d'un port de sortie déterminé d'un joncteur, à transférer les résultats des comptages fournis par les joncteurs d'entrée vers le port de sortie, à agréger les résultats des comptages dans le joncteur de sortie et à déclarer une congestion dans le port de sortie si le nombre de cellules agrégé est supérieur à une valeur de seuil déterminée. D'autres caractéristiques et avantages de l'invention apparaîtront dans la description qui suit faite en regard des dessins annexés qui représentent: La figure 1, une représentation simplifiée d'un commutateur ATM utilisée pour la mise en oeuvre de l'invention. Les figures 2 à 6 des exemples de mise en oeuvre du procédé selon l'invention sous la forme d'organigrammes. Le commutateur à architecture répartie et mémorisation en entrée qui est représenté à la figure 1 est composé de plusieurs modules ou joncteurs identiques 1 réalisant une interface avec une ou plusieurs artères 2 de communication à haut débit, à fibre optique ou à paire de câble torsadée par exemple. Chacune de ces interfaces étant dénommées dans ce qui suit par port. Les joncteurs 1 sont reliés entre eux par un dispositif de commutation à très haut débit ou brasseur 3 structuré par exemple de la façon décrite dans la demande de brevet FR 2 681164 déposée au nom de la Demanderesse. Chaque joncteur possède des capacités de traitement suffisantes pour analyser les cellules ATM entrantes, les envoyer directement vers le joncteur ad hoc si ce dernier peut les traiter, ou bien les mémoriser en attendant que ce dernier puisse les traiter. Dans ce qui suit la terminologie "joncteur d'entrée" et joncteur de sortie est utilisée pour préciser qu'une cellule passant dans un commutateur rencontre d'abord un joncteur d'entrée puis est renvoyée dans le réseau par un joncteur de sortie. II ne s'agit pas d'une classification des joncteurs, tout joncteur est joncteur d'entrée pour certaines cellules et joncteur de sortie pour d'autres. Avec ce type d'architecture un encombrement momentané d'un port de sortie se traduit par l'accumulation dans les joncteurs d'entrée des cellules à destination de ce port. Cet encombrement qui est désigné ciaprès par le terme de "congestion" est détecté au niveau de chaque port de sortie par l'exécution d'un procédé qui se déroule suivant les étapes référencées de 4 à 7 sur l'organigramme de la figure 2. Suivant ce procédé la première étape qui est référencée 4 sur la figure 2, consiste à compter dans chaque joncteur d'entrée le nombre de cellules destinées à un même port de sortie. L'identification du port de sortie a lieu par exemple de la façon décrite dans la demande de brevet FR 2 681164 en lisant dans l'entête de chaque cellule ATM se présentant à l'entrée d'un joncteur, son numéro de faisceau Vpl et son numéro de canal Vcî. Le comptage a lieu en incrémentant et décrémentant un compteur dédié au port de sortie concerné chaque fois qu'une cellule à destination de ce port de sortie entre dans le joncteur d'entrée ou en sort. Une autre variante de comptage peut aussi consister à compter dans chaque joncteur chaque cellule par connexion. Cette deuxième variante apparait mieux adaptée aux cas des connexions point à multipoint car il peut être plus difficile dans le joncteur d'entrée de mettre à jour en parallèle l'ensemble des compteurs par port concernés par une telle connexion. La deuxième étape référencée en 5 sur la figure 2 consiste à centraliser l'information collectée dans les compteurs des différents joncteurs dans le joncteur de sortie 2 correspondant. Le transfert a lieu en générant dans chaque joncteur d'entrée concerné des cellules ATM spécifiques, ou en utilisant des cellules RM dont certains champs sont réservés au commutateur. Les transferts peuvent être effectués de différentes façons. Ils peuvent être par exemple strictement périodiques, ou n'avoir lieu que lorsque l'information varie de manière significative ou encore avec une périodicité égale à celle des cellules RM quand celles-ci servent de véhicule à l'information. L'étape suivante, référencée 6 sur la figure 2, a pour but d'agréger les informations transmises à l'étape précédente dans les joncteurs de sortie 2 pour élaborer une mesure de l'encombrement en cellules des joncteurs d'entrée. Le résultat de cette mesure peut être égal strictement au nombre de cellules en attente si la synchronisation des informations collectées est parfaite. Mais, il est suffisant de limiter la mesure à une simple somme des informations collectées, si les mécanismes de mis à jour des informations sont suffisamment fréquents et efficaces. La mesure peut aussi consister en un simple calcul d'une moyenne effectuée sur les informations collectées par un calcul de moyenne exponentielle par exemple telle que rappelé en Annexe 1. Enfin lors de la dernière étape référencée 7 sur la figure 2, la mesure obtenue à l'étape référencée 6 est exploitée pour décider si oui ou non chaque port de sortie considéré est soumis à un flux de cellules dont le débit est supérieur à ce que lui permettent ses caractéristiques physiques. Ceci peut être réalisé en conjuguant un critère dynamique, tel que l'augmentation significative de la mesure d'encombrement par exemple à un critère statique tel que par exemple, le fait que la mesure dépasse un seuil, pour décréter qu'un port de sortie est en congestion si i'un de ces deux critères est satisfait. Trois variantes de mise en oeuvre du procédé selon l'invention qui vient d'être décrit sont représentées aux figures 3 à 5 où les étapes homologues à celles de la figure 2 sont représentées avec les mêmes références. Une première variante représentée sur la figure 3 consiste à utiliser pour l'exécution de l'étape référencée 4 un compteur par port de sortie dans chaque joncteur d'entrée en faisant l'hypothèse que chaque joncteur 1 ne comporte qu'un seul port de sortie et à utiliser à l'étape 5 pour le transfert de l'information vers les joncteurs de sortie des cellules RM comme véhicules. Dans ce transfert, le joncteur d'entrée inscrit dans chaque cellule RM la valeur du compteur de cellules à destination du port de sortie de cette cellule avec son propre identifiant. A l'étape référencée 6 le joncteur de sortie, entretient une mesure qui est la somme des informations reçues de chaque joncteur, en faisant contribuer chaque joncteur par l'information la plus récente qu'il lui a envoyée de la façon représentée à la figure 4, par la mise à jour dans le joncteur de sortie d'une table 8 de mémorisation des informations reçues qui possède autant d'entrées qu'il existe de joncteurs d'entrée dans le commutateur. Chaque entrée notée J1 à Jn sur la figure 4, adresse une zone de comptage qui mémorise l'état d'un compteur correspondant dans un joncteur d'entrée et qui est mis à jour chaque fois qu'à l'étape marquée 5, un transfert du contenu du compteur du joncteur correspondant est reçu dans le joncteur de sortie. Dans ces conditions chaque nouvelle contribution d'un compteur de joncteur d'entrée s'obtient en soustrayant dans un dispositif de calcul 9 la valeur de son ancien compte mémorisé dans la table 8 à la valeur de son nouveau compte et cette contribution est ajoutée dans le dispositif de calcul 9 au contenu d'un registre accumulateur 10 qui accumule à son contenu chaque nouvelle contribution reçue d'un joncteur d'entrée. La mise à jour de la table 8 s'effectue à l'arrivée de chaque nouveau compte par l'intermédiaire d'un registre 11. Par ailleurs un mécanisme de défense non représenté prévient chaque joncteur de la mise en service et hors service de l'un quelconque des autres joncteurs, afin que ceux-ci puissent gérer convenablement la table 8 et la mesure d'encombrement. La détection de la congestion de l'étape référencée 7 est effectuée par conjonction d'un critère dynamique et d'un critère statique portant sur la mesure d'encombrement décrite précédemment. Un microprogramme écrit en langage C et permettant l'exécution des étapes référencées 6 et 7 est détaillée à l'annexe 2. Dans la deuxième variante représentée à la figure 5, L'étape référencée 4 met en oeuvre des compteurs par connexion dans chaque port d'entrée. Le transfert de l'information contenue dans un compteur à destination d'un port de sortie a lieu à l'étape référencée 5 en utilisant une cellule RM comme véhicule. Le joncteur d'entrée correspondant inscrit dans chaque cellule RM la valeur du compteur de cellules en attente pour la connexion concernée. Les étapes référencées 6 et 7 sont similaires à celles de la première variante à la différence toutefois de l'adressage des zones de comptage de la table 8 qui s'effectue pour chaque connexion. Un mécanisme de défense non représenté prévient chaque joncteur de l'établissement et de la libération des connexions passant par lui, afin que le joncteur puisse gérer convenablement la table 8 et la mesure de l'encombrement.. Un microprogramme correspondant écrit en langage C est détaillé en l'annexe 3. Enfin selon une troisième variante qui est représentée à la figure 6, le procédé de la figure 5 peut être modifié dans sa troisième étape référencée en 6 en effectuant la mesure d'encombrement sur chaque port de sortie d'un joncteur de sortie, par un calcul de moyenne exponentielle des informations de comptage reçues pour chaque connexion passant par le port de sortie concerné. D'après le principe même de la moyenne exponentielle, détaillée à l'annexe 1, I'influence d'une contribution à un instant donné sur la somme s'estompe progressivement. Dans ce cas, aucun mécanisme de défense particulier n'est à prévoir, car une connexion qui disparaît perd rapidement toute influence sur la mesure du fait qu'elle n'y contribue pas. Aussi, le fait de transporter l'information de comptage dans les cellules RM a l'avantage de donner plus de poids aux connexions de fort débit car celles-ci émettent des cellules RM plus fréquemment. Un microprogramme correspondant écrit en langage C pour l'exécution de cette troisième étape est décrit à l'annexe 4. Annexe 1: La "moyenne exponentielle" (exponential mean) n'est rien d'autre que le résultat d'un filtrage linéaire du premier ordre à temps discret. Si un désigne la suite des valeurs d'entrée et xn la suite des états du filtre, I'équation d'état du filtre peut s'écrire: xn+l = a . xn + (1 - a) un {13 où a est un paramètre inférieur à 1, proche de 1, qui définit l'horizon du filtre. La suite xn représente ainsi une sorte de moyenne instantanée à plus ou moins long terme des entrées. Dans l'application envisagée, les valeurs d'entrée un représentent des nombres de cellules. Afin d'éviter les calculs à virgule flottante et les multiplications, on utilisera pour a la valeur remarquable 7/8 et on moyennera les valeurs Un = 4 * un pour garder une précision suffisante malgré la troncature. La mesure d'encombrement est donc donnée par: Xn+1= ((Xn '' 3) - Xn + Un) ' > 3 [2] Annexe 2: variables rémanentes: t~word~32 total, ancien~total t~word~16 anciencompteur[ ] t~boolean etat~congestion traitement initialisation: etat~congestion = false for (j in anciencompteur) ancien-compteur [j] = O total = ancien~total = 0 traitement cellule FRM: &num; récupération et agrégation des informations total = total + cell.payload.compteur ancien compteurfcell.payload.origine] anciencompteur[cell. payload.origine] = cell. payload.compteur &num; calcul de l'état de congestion etat~congestion = (total > ancien total) Il (total > 50) ancien~total = total Annexe 3: variables rémanentes: t~word~32 total t~word~16 ancien-compteur[ ] traitement initialisation: for a in ancien~compteur) ancien compteurlil = O total = 0 traitement cellule FRM: &num; récupération et agrégation des informations total = total + cell.payload.compteur - ancien compteur[cell.vpi~vci] ancien-compteur[cell.vpi-vci] = cell. payload. compteur Annexe 4: variables rémanentes: t~word~32 total traitement initialisation: total = 0 traitement cellule FRM: &num; récupération et agrégation des informations total = (total > 3 REVENDICATIONS 1. Procédé de détection de congestion amont au sein d'un commutateur ATM à architecture répartie composé de plusieurs joncteurs (1) d'entrée et de sortie pour la transmission dans un réseau de cellules ATM, caractérisé en ce qu'il consiste à compter (4) dans chaque joncteur (1) d'entrée le nombre de cellules entrantes et sortantes à destination d'un port de sortie déterminé d'un joncteur, à transférer (5) les résultats des comptages fournis par les joncteurs d'entrée vers le port de sortie, à agréger (6) les résultats des comptages dans le joncteur de sortie et à déclarer (7) une congestion dans le port de sortie si le nombre de cellules agrégé est supérieur à une valeur de seuil déterminée. 2. Procédé selon la revendication 1, caractérisé en ce que le transfert (5) des résultats de comptage s'effectue en utilisant des cellules ATM spécifiques. 3. Procédé selon la revendication 1, caractérisé en ce que le transfert (5) des résultats de comptage s'effectue en utilisant des cellules RM. 4. Procédé selon l'une quelconque des revendications I à 3, caractérisé en ce qu'il consiste pour agréger les résultats de comptage à mémoriser les résultats de comptage dans une table (8) du joncteur de sortie, à soustraire (9) du nouveau résultat de comptage fourni par un joncteur d'entrée le résultat de comptage précédent qui est mémorisé dans la table (8) du joncteur de sortie et à accumuler (10) dans un accumulateur les résultats des soustractions obtenus. 5. Procédé selon l'une quelconque des revendications 1 à 3, caractérisé en ce qu'il consiste pour déterminer (6) une congestion sur un port de sortie à calculer la moyenne exponentielle des résultats de comptage reçues pour chaque connexion passant par le port de sortie.