Brevet FR2832010A1 — publié le 20030509

PROCEDE DE VERIFICATION DU COMPORTEMENT DETERMINISTE D'UN RESEAU A COMMUTATION DE PAQUET DESCRIPTION Domaine technique La présente invention concerne un procédé de vérification du comportement déterministe d'un réseau à commutation de paquets, notamment dans le domaine avionique. Etat de la technique antérieure Les procédés décrits dans les documents de l'art connu, référencés [1], [2] et [3] en fin de description, sont basés sur des considérations statistiques qui sont adaptées aux réseaux de télécommunication terrestres mais qui sont difficilement acceptables dans un avion. La présente invention a pour objet de permettre de vérifier qu'un réseau à commutation de paquets a bien un fonctionnement déterministe, notamment dans le domaine avionique. Exposé de l'invention L'invention propose un procédé de vérification du comportement déterministe d'un réseau à commutation de paquets comprenant des stations abonnés reliées entre elles au travers d'au moins un commutateur, un tel comportement étant dit déterministe au sens que tout paquet émis sur le réseau à partir d'une station abonné source rejoint la (ou les) station(s) abonné(s) destinataire(s) avec une durée qui est bornée dans le temps, caractérisé en ce que l'on vérifie l'inégalité suivante pour chaque port de sortie de chaque commutateur du réseau : dans laquelle : - la valeur Latence max est la durée maximale de résidence dans le buffer de sortie d'un commutateur, cette valeur pouvant être différente pour chaque commutateur du réseau. - BAGi représente le temps minimum séparant deux trames consécutives appartenant à un lien virtuel i, et ce avant leur émission sur le support physique. - (Jitter In)i est le Jitter associé à un lien virtuel i, qui représente l'intervalle de temps entre l'instant théorique d'émission d'une trame et son émission effective qui peut être avant ou après l'instant théorique, - (durée trame max)i est la durée de la trame la plus longue sur le lien virtuel i. Dans un autre mode de réalisation on ajoute les liens virtuels un à un, en vérifiant après chaque ajout d'un lien virtuel que le fonctionnement de l'ensemble du réseau reste bien déterministe. Dans le domaine avionique, l'invention permet de répondre à une exigence de sécurité primordiale lors du transport d'informations sur un avion, appelée "déterminisme". En effet, il est indispensable lorsqu'une donnée est envoyée à un destinataire qu'elle soit effectivement reçue dans un délai maximal qui soit connu. Le procédé de l'invention présente l'avantage d'être extrêmement simple d'utilisation (une seule équation par port de sortie). Elle est analytique et ne demande que très peu d'informations sur les caractéristiques du réseau (latence maximum par commutateur, BAG, et gigue des abonnés). L'invention est utile pour tous les réseaux à commutation de paquets dont on exige un certain niveau de qualité de service en terme de garantie d'acheminement des informations, par exemple : "Fast Ethernet", ATM ("Asynchronous Transfer Mode")... L'aéronautique (civil et militaire), le spatial, la marine et le nucléaire apparaissent cependant comme des domaines d'utilisation privilégiés. Brève description des dessins La figure 1 illustre un modèle de noeud d'extrémité. La figure 2 illustre la gigue (Jitter) pour un flux régulier. Les figures 3A à 3C illustrent la position des trames à l'intérieur de leur fenêtre de gigue. La figure 4 illustre un modèle de commutateur . Les figures 5A à 5G illustrent le positionnement de la fenêtre glissante pour un exemple (BAG, Jitter In). La figure 6 illustre un exemple de topologie. La figure 7 illustre le nombre de liens virtuels pour la topologie illustrée sur la figure 6. Les figures 8A et 8B illustrent un exemple d'agrégation de liens virtuels. La figure 9 illustre un exemple de réalisation dans le domaine avionique. Exposé détaillé de modes de réalisation L'invention concerne un procédé de vérification du comportement déterministe d'un réseau à commutation de paquet. Ce procédé permet de garantir qu'un tel réseau possède un comportement déterministe, au sens où tout paquet émis sur le réseau à partir d'un noeud source rejoint le ou les noeuds destinataires avec une durée qui est bornée dans le temps. Un tel procédé s'applique à tous les réseaux basés sur la commutation de paquets ou de trames ou de cellules. Il permet d'affirmer que la configuration d'un réseau, au travers des tables de routages des commutateurs et des flux de trames qui les traversent, est conforme avec un fonctionnement déterministe. Dans la suite de la description, on appelle noeud d'extrémité ou "End System" un noeud d'un réseau qui est capable de générer et de recevoir des trames mais qui n'est pas un noeud intermédiaire (commutateur, routeur, pont,...) chargé d'acheminer les trames dans le réseau. Lorsqu'un noeud intermédiaire est la source d'un flux de trames qui est destiné à un ou plusieurs noeuds d'extrémité, il se comporte comme noeuds d'extrémité. Un lien virtuel (VL) est une connexion logique entre un n#ud d'extrémité source et un ou plusieurs noeuds d'extrémité destination. Chaque lien virtuel possède une valeur propre appelé intervalle d'allocation de bande passante ("Bandwidth Allocation Gap" ou BAG), dont l'unité est la seconde, qui représente le temps minimum séparant deux trames consécutives appartenant au lien virtuel en question et ce avant leur émission sur le support physique. Un modèle de noeud d'extrémité est illustré sur la figure 1. En entrée on a des flux irréguliers de paquets 10 en provenance des applications (flux asynchrones entre les liens virtuels VL1, VL2, VL3). Les flux de paquets sont ensuite régulés grâce à des régulateurs 11 correspondant chacun à un lien virtuel afin d'espacer les paquets d'un intervalle BAG. Un multiplexeur 12 permet ensuite de délivrer un flux de trames 13 sur le support physique 14. La gigue(ou "Jitter") associée à un lien virtuel représente l'intervalle de temps entre l'instant théorique d'émission d'une trame (rapport au BAG) et son émission effective qui peut être avant ou après l'instant théorique. Le flux de trames d'un lien virtuel est entièrement caractérisé par le couple (BAG, Jitter max) où le Jitter max est la valeur maximale du Jitter instantané qu'il est possible d'obtenir pour ce lien virtuel. Dans la suite, le terme Jitter se réfère au Jitter max. Pour un lien virtuel dont le flux est maximal (toujours une trame à émettre) et régulier, on a une trame 20 exactement à chaque intervalle BAG, comme illustré sur la figure 2. La gigue associée à ce lien virtuel est nulle. Dans le cas général, le début d'émission d' une trame peut se trouver à n' importe quel endroit à l'intérieur de l'intervalle Jitter. En fait, si la trame 1 est retardée au passage dans le commutateur, puis quelques instants après la trame 2 du même lien virtuel est très peu retardée alors la valeur BAG n'est plus respectée. Le flux de trames d'un même lien virtuel possède donc une certaine gigue par rapport à la valeur BAG. Les trois cas illustrés sur les figures 3A, 3B et 3C montrent la position des trames à l' intérieur de leur fenêtre de gigue. La figure 3A illustre le cas Jitter La figure 3B illustre le cas Jitter=BAG. Lorsque Jitter=BAG, il y a une possibilité purement théorique de recouvrement d'une trame par une trame très en avance. Or, l'ordre d'émission étant garanti, cette possibilité est interdite car une trame émise après une autre trame ne peut chevaucher ou dépasser de façon temporelle cette dernière. Il y a donc apparition de deux trames côte à côte (appelé rafales de trame ou "burst"). La figure 3C illustre le cas Jitter>BAG. Les gigues se chevauchent mutuellement et la trame 2 est transmise juste après la trame 1. Il y a apparition d'un "burst". La gigue associée à chaque lien virtuel en sortie d'un n#ud d'extrémité, qui vaut Jitter ES est due à la contention qui s'opère à la sortie du noeud d'extrémité où plusieurs flux régulés veulent avoir accès au même registre FIFO ("First in-First out") de sortie. Sa valeur dépend entre autre du nombre de liens virtuels liés au noeud d'extrémité. Ainsi tous les liens virtuels sortant d'un noeud d'extrémité ont pour caractéristiques (BAG, Jitter ES). Un modèle de commutateur est illustré sur la figure 4, avec des "buffers" ou tampons d'entrée 30, un démultiplexeur 31, un multiplexeur 32, et des "buffers" de sortie 33. D'après ce modèle, on voit qu'en fonction de la configuration du commutateur (table de "forwarding") et des caractéristiques des flux des liens virtuels arrivant dans les ports d'entrée, il y a "plus ou moins" de contention pour l'accès aux ports de sortie. Cette contention a pour effet de générer des délais donc une pollution sur la caractéristique du flux de chaque lien virtuel au niveau des ports de sortie. En fonction de la charge instantanée d'un commutateur, une trame peut soit y rester un temps minimal (latence minimum) ou soit y rester un temps maximal (latence maximum du commutateur) ou soit toute durée intermédiaire. Si la caractéristique du flux d'un lien virtuel entrant dans le commutateur est (BAG, Jitter In) alors la perturbation majorante générée par le commutateur donne une nouvelle caractéristique pour le flux du même lien virtuel en sortie de commutateur : (BAG, Jitter Out (avec Jitter Out = Jitter In + latence max. Afin de démontrer le déterminisme, il est nécessaire de dimensionner la taille des "buffers" de sortie pour ne perdre aucune trame avec pour point de départ une configuration de commutateur donnée et les caractéristiques des liens virtuels traversant le commutateur . Pour un lien virtuel donné, possédant la caractéristique (BAG, Jitter In), la formule donnant le nombre max de trames associées à ce lien virtuel qu'il peut y avoir pendant une fenêtre glissante FG d'une durée de T secondes est : où la fonction int (x) la fonction partie entière de x (pour arrondir à l'entier inférieur) - pour x de [0,1[, int(x)=0 - pour x de [1,2[,int(x)=1 Si par exemple, on se donne un intervalle de référence T=l ms, cette formule implique : -BAG+2 ms/Jitter In=0,5 ms#1+int((0,5+1)/2)=1 trame max/ms (voir la figure 5A) -BAG=2 ms/Jitter In=l ms#1+int((1+1)/2)=2 trames max/ms (voir la figure 5B). Dans ce cas, deux événements d'émission trame peuvent être présents pendant 1 ms et donc deux trames complètes peuvent se trouver dans le buffer (on aurait pu penser qu'il n'y avait qu'une seule trame pendant 1 ms). -BAG=2 ms/Jitter In= 1,5 ms#1+int((1,5+1)/2)=2 trames max/ms (voir la figure 5C) -BAG=2ms/Jitter In=2 ms1+int((2+1)/2=2 trames max/ms (voir figure 5D) -BAG=2 ms/Jitter In=2,5 ms1+int((2,5+1)/2=2 trames max/ms (voir la figure 5E) -BAG=2 ms/Jitter In= 3 ms1+int((3+1)/2)=3 trames max/ms (voir la figure 5F) -BAG=2 ms/Jitter In=4 ms1+int((4+1)/2)=3 trames max/ms (voir la figure 5G). Pour éviter une congestion du buffer de sortie d'un commutateur et ainsi ne jamais perdre de trames, il faut pour chaque port de sortie d'un commutateur et pour tous les commutateurs d'un réseau, que l'inégalité suivante soit vérifiée : La valeur latence max est la durée maximale de résidence dans le buffer de sortie d'un commutateur et elle peut être différente pour chaque commutateur du réseau. La partie de gauche représente la durée de toutes les trames de tous les liens virtuels qui peuvent résider dans le buffer de sortie d'un commutateur en prenant pour fenêtre glissante la durée latence max. Si cette inégalité est vérifiée alors il n'y a pas congestion et la caractéristique du flux d'un lien virtuel se trouve transformée de (BAG, Jitter In) en (BAG, Jitter Out=Jitter In + latence max). En d'autres termes, la configuration du commutateur est en accord avec les performances du commutateur (latence max). Application à un réseau simple Une topologie est illustrée sur la figure 6. On considère que chaque noeud d'extrémité ES1, ES2, ES3 ou ES4 possède des liens virtuels qui vont vers tous les autres noeuds d'extrémité (cas de "broadcast"). Chaque noeud d'extrémité possède un nombre identique Ni de liens virtuels avec pour caractéristiques BAG=2 ms et Jitter ES= 0,5 ms. Le schéma représentant le nombre Ni de lien virtuels sur chaque lien simple est illustré sur la figure 7. Les calculs sont les suivants : Sur les deux liens centraux : Nl[l+int((0,5+1)/2)*15,52+N2[l+int((0,5+1)/2)]*15,52 D'autre part, on a l'équation : Nl=N2=N3=N4, d'où 5.Nl.15,52 Le nombre de liens virtuels sur un lien montant vers un noeud d'extrémité est donc de 3*12=36 liens virtuels. Une taille de trame de 174 octets donne un débit physique pour un lien virtuel à BAG=2 ms de : 1000/2*(174+20)*8=776 000 bit/s. D'où 36 liens virtuels correspondent à un débit physique de 36*776 000=27,936 Mbit/s Il apparaît que le majorant de la perturbation engendrée par un commutateur choisi a divisé par plus de 3 le débit physique théorique que l'on aurait pu trouver sur le lien (100 Mbits/s). Il est particulièrement important de noter qu' un lien virtuel avec un BAG de 128 ms coûte pour le réseau autant qu'un lien virtuel avec un BAG de 4 ms par exemple (si la gigue est inférieure à 2). Ceci est dû au 1 dans la formule l+int(Jitter+T)/BAG). Dans un autre mode de réalisation avantageux du procédé de l'invention, on utilise une démarche incrémentale : on ajoute les liens virtuels un à un, en vérifiant après chaque ajout d'un lien virtuel que le fonctionnement de l'ensemble du réseau reste bien déterministe. Agrégation de liens virtuels Pour remédier au désavantage décrit cidessus, une optimisation possible est d'agréger plusieurs liens virtuels pour former un seul super lien virtuel qui sert de base dans le calcul de noncongestion. On entend par agrégation le fait de reréguler plusieurs liens virtuels de grand BAG avec une valeur de faible BAG pour faire comme si les liens virtuels de faible débit se comportaient comme un seul lien virtuel de plus grand débit. Un exemple est illustré sur la figure 8A. On a quatre liens virtuels VL1, VL2, VL3 et VL4 à BAG=2 ms et trois liens virtuels VL5, VL6 et VL7 à BAG=8 ms. Le premier 40 des sept régulateurs 41 joue le rôle de lisseur pour les liens virtuels à BAG=8 ms . Comme la gigue de 0,5 ms est garanti pour le flux en sortie de ce régulateur alors les liens virtuels à BAG=8 ms possèdent également la même valeur de gigue. Par contre, il est clair que ce modèle génère plus de latence pour les liens virtuels à BAG=8 ms. Pour que le lissage soit possible, il faut vérifier la condition de non saturation du premier régulateur: Nombre de liens virtuels à lisser x BAG lissage #min (BAGlien virtuel) Cette agrégation de liens virtuels n'entraîne aucune perte de ségrégation. Elles permet d'obtenir un flux de paquets illustré sur la figure 8B, les numéros indiqués étant ceux des liens virtuels. En utilisant le procédé de l'invention, il est donc tout à fait possible d'avoir un grand nombre de liens virtuels sur un lien physique tout en conservant la propriété de non congestion évoquée. La figure 9 illustre un exemple de réalisation dans le domaine avionique permettant de mettre en oeuvre le procédé de l'invention. Dans cet exemple, un premier commutateur 50 est relié d'une part à un premier écran graphique 51 (paramètres de vol) et à un second écran graphique (paramètres de vol et maintenance), et d'autre part à un second commutateur 53 lui-même relié à un générateur de paramètres de vol 54 et à un calculateur de maintenance avion 55. REFERENCES [1] "Queuing delays in rate controlled networks" de Barnejea et S. Keshav (Proceedings of IEEE INFOCOM'93, pages 547-556, San Francisco, CA, Avril 1993). [2] "A calculus for network delay" de R. Cruz (Part 1 Network elements in isolation. IEEE Transaction of Information Theory, 37(1), pages 121-141,1991) [3] "A calculus for network delay" de R. Cruz (Part II: Network analysis. IEEE Transaction of Information Theory, 37(1), pages 121-141,1991). REVENDICATIONS 1. Procédé de vérification du comportement déterministe d'un réseau à commutation de paquets comprenant des stations abonnés reliées entre elles au travers d'au moins un commutateur, un tel comportement étant dit déterministe au sens que tout paquet émis sur le réseau à partir d'une station abonné source rejoint la (ou les) station(s) abonné(s) destinataire(s) avec une durée qui est bornée dans le temps, caractérisé en ce que l'on vérifie l'inégalité suivante pour chaque port de sortie de chaque commutateur du réseau : dans laquelle : - la valeur Latence max est la durée maximale de résidence dans le buffer de sortie d'un commutateur, cette valeur pouvant être différente pour chaque commutateur du réseau. - BAGi représente le temps minimum séparant deux trames consécutives appartenant à un lien virtuel i, et ce avant leur émission sur le support physique. - (Jitter In)i est le Jitter associé à un lien virtuel i, qui représente l'intervalle de temps entre l'instant théorique d'émission d'une trame et son émission effective qui peut être avant ou après l'instant théorique. - (durée trame max)i est la durée de la trame la plus longue sur le lien virtuel i. 2. Procédé selon la revendication 1, dans lequel on ajoute les liens virtuels un à un, en vérifiant après chaque ajout d'un lien virtuel que le fonctionnement de l'ensemble du réseau reste bien déterministe.