Brevet FR2912582A1 — publié le 20080815

Procédé de calcul du temps maximum nécessaire à un paquet de données pour transiter par un commutateur dans un réseau commuté La présente invention concerne un procédé de calcul du temps maximum nécessaire à un paquet de données pour transiter par un commutateur dans un réseau commuté. Elle concerne également un procédé dle calcul du temps maximum pour transférer un paquet de données d'un serveur à un client à travers un réseau commuté. Elle s'applique par exemple dans le domaine de l'avionique. io Un réseau AFDX, acronyme anglo-saxon de Avionics Full DupleX , est un réseau éthernet redondant et fiabilisé, développé par les industriels de l'avionique conformément à la norme ARINC 664 pour équiper les avions, notamment l'A380 d'Airbus. II s'agit d'un système destiné à servir de support aux communications internes à l'avion, et non pas aux 15 communications avec l'extérieur. Les communications internes sont essentiellement les données échangées entre les divers systèmes avioniques. Un réseau AFDX doit prendre en compte de multiples contraintes, comme la fiabilité des échanges de données et la transmission de données avec de fortes contraintes de déterminisme, notamment au 20 niveau temporel. Un réseau AFDX est dit déterministe dans le sens où il assure la transmission des données dans un délai borné connu et où les paquets de données sont reçus dans le même ordre que celui dans lequel ils sont émis. Tout cela doit être validé en respectant les normes de certification très strictes de l'aéronautique. 25 D'un point de vue physique, un réseau AFDX est un réseau éthernet commuté, appelé également réseau à commutation de paquets. Un réseau éthernet commuté est constitué par une interconnexion de commutateurs réseau, plus connus par leur appellation anglo-saxonne de switch . Sur l'Airbus A380 par exemple, chaque commutateur peut 30 recevoir des paquets de données sur 24 ports d'entrées et peut les renvoyer par 24 ports de sorties. Chaque port de sortie d'un commutateur est connecté à un port d'entrée d'un autre commutateur, constituant ainsi un segment du réseau. Tous les segments sont possibles. Lorsqu'un serveur connecté au réseau doit envoyer un message à un client connecté au réseau, il découpe d'abord les données contenues clans le message en plusieurs paquets de données. Puis il emballe les paquets selon une implémentation du modèle ISO. Enfin il envoie séquentiellement les paquets vers le port d'entrée d'un premier commutateur auquel il est connecté. Celui-ci consulte notamment l'en-tête liaison (couche MAC du modèle ISO) de chaque paquet afin d'en connaître le destinataire. En fonction du destinataire, ce premier commutateur renvoie le paquet vers un deuxième et unique commutateur auquel il est connecté par un segment. 1 o Et ainsi de suite, le paquet de données suit un chemin de commutateur en commutateur via les segments jusqu'au client final. Dans un réseau éthernet commuté, le temps de latence est le temps nécessaire entre l'instant d'émission par un serveur et l'instant de réception par un client, de couche MAC à couche MAC. Dans un réseau éthernet commuté, chaque couple 15 client-serveur peut être caractérisé par un temps de latence, sachant quand même qu'un paquet peut suivre plusieurs chemins pour aller du serveur au client. Un réseau AFDX est un réseau éthernet commuté ayant notamment pour particularité d'être redondé physiquement. Egalement, les 20 commutateurs dans un réseau AFDX n'ont qu'un seul port de sortie associé à chacun des clients sur le réseau, le chemin d'un serveur vers un client est par conséquent unique dans un réseau AFDX. L'ensemble constitué par tous les chemins possibles constitue la topologie du réseau. La topologie du réseau est définie préalablement à son implémentation, implémenter le 25 réseau consistant notamment à remplir, à partir de la topologie du réseau, les tables de routage de chacun des commutateurs. La table de routage d'un commutateur permet à celui-ci d'associer chacun des destinataires possibles à un unique port de sortie. Une liaison virtuelle se définit comme un flux de données envoyé par un unique serveur vers plusieurs clients. Ainsi, une 30 liaison virtuelle ne peut être caractérisée par un seul temps de latence, mais par autant de temps de latence que de clients qui reçoivent le flux. Dans un réseau AFDX, les temps de latence associés à chacune des liaisons virtuelles doivent être bornés, c'est-à-dire ne doivent pas dépasser un délai maximum. En effet, le temps de latence est particulièrement important en ce 35 qui concerne les flux de contrôle de processus. Ces flux peuvent par exemple véhiculer une commande d'actionneur, le délai d'exécution de laquelle pouvant être critique pour la sécurité du vol. Le temps de latence est beaucoup moins important en ce qui concerne les flux d'information, qui peuvent par exemple véhiculer de simples données telles que des informations météo ou des informations de plan de vol. Pour tenter de maîtriser les risques de défaillance, un mécanisme de ségrégation de flux a été mis en place. A chaque flux est associé un contrat de bande passante qui fixe un débit que le flux ne peut dépasser, en 1 o kilobits par seconde (kbps). Un contrat de bande passante est caractérisé par un premier paramètre désigné par l'acronyme anglo-saxon de BAG pour Bandwidth Allocation Gap , qui définit un intervalle de temps minimum pour envoyer 2 paquets successifs. Un contrat de bande passante est également caractérisé par un deuxième paramètre désigné par l'acronyme 15 anglo-saxon de MFS pour Maximum Frame Size , qui définit une taille maximum de paquet en bits. Chaque serveur implémente facilement le contrat de bande passante des flux associés aux liaisons virtuelles dont il est le point de départ, en n'envoyant pas plus de 1 paquet par intervalle de BAG secondes, chaque paquet ne contenant pas plus de MFS bits. Les 20 commutateurs qui reçoivent les flux vérifient qu'ils ne dépassent pas leurs contrats respectifs grâce à un micro-programme au niveau matériel. Si un flux dépasse son contrat, les commutateurs qui le reçoivent ne le retransmettent pas. Afin de diminuer la latence des flux de contrôle de processus par rapport aux flux d'information, les flux de contrôle de 25 processus peuvent se voir attribuer un niveau de priorité dans le traitement du routage supérieur à celui des flux d'information. L'un des problèmes techniques posés est que les temps de latence restent indéterminés malgré les mécanismes de ségrégation des flux, 30 de priorité et de contrat décrits précédemment. En effet, les flux circulent tous simultanément dans le réseau commuté, chacun en dessous du débit définit par leur bande passante. Par conséquent, dans un commutateur plusieurs paquets appartenant à des flux distincts peuvent devoir emprunter simultanément un même port de sortie. Mais comme un seul paquet à la fois 35 peut être renvoyé par un port de sortie, des paquets se retrouvent en attente. Ceci augmente significativement les temps de latence des flux. Et il faut noter que pour un paquet donné qui est en attente dans un commutateur, il est difficile d'estimer son temps d'attente. En effet, le temps d'attente dépendent non seulement du contrat de bande passante de son flux, mais également du contrat de bande passante des flux auxquels appartiennent les autres paquets en attente avec lui. D'innombrables cas sont possibles, rendant l'estimation des temps de latence irréalisable par des méthodes traditionnelles d'inspection à la main qui envisagent tous les cas possibles. Cependant, les normes de certification très strictes en aéronautique exigent que ces temps de latence soient au moins bornés par des temps de latence maximum connus. Une solution existante pour estimer les temps de latence maximum est un procédé utilisé selon l'état de l'Art en matière de réseau AFDX à partir de la théorie du Network Calculus. Basé sur une représentation analytique sur ordinateur du réseau et des flux qui le parcourent, ce procédé est extrêmement complexe et nécessite pour être mis en oeuvre des compétences particulières en théorie mathématique. Puis, il faut compter 30 à 40 minutes de calcul avant d'obtenir un résultat pour un réseau parcouru par seulement 1000 flux, des calculs flottants dans des boucles récursives étant effectués. Tout ceci manque notoirement de souplesse lorsqu'il s'agit de mettre au point la topologie du réseau. Enfin, le procédé est également très difficile à certifier, seuls certains spécialistes étant capables de démontrer formellement que le résultat qu'il fournit est fiable. Lourd à mettre en oeuvre, le procédé actuel de l'état de l'art s'avère aussi particulièrement coûteux. Basée sur l'étude du comportement d'une file d'attente dans le pire des cas et ne s'appuyant que sur des considérations logiques, l'invention a notamment pour but d'estimer une valeur maximale des temps de latence par liaison virtuelle et par client. A cet effet, l'invention a pour objet un procédé de calcul du temps maximum nécessaire à un paquet de données pour transiter par un commutateur dans un réseau commuté, le paquet ressortant du commutateur par un port de sortie donné. Le procédé comporte une étape de détermination d'un pire des cas de transit du paquet par le commutateur, le pire des cas nécessitant un temps de transit maximum. Le procédé comporte également une étape de calcul du temps de transit dans le pire des cas. Le pire des cas est le cas où le paquet est reçu par le commutateur après tous les autres paquets susceptibles de transiter par le commutateur, chaque port d'entrée du commutateur recevant des paquets parmi les autres paquets dans l'ordre décroissant des tailles de paquet. L'invention a également pour objet un procédé de calcul du temps maximum pour transférer un paquet de données d'un serveur à un client à travers un réseau commuté, le paquet suivant un chemin formé par une suite ordonnée de commutateurs dans le réseau commuté. Le procédé comporte une étape de détermination, pour chacun des commutateurs sur le chemin emprunté par le paquet, des autres paquets de données susceptibles d'emprunter ledit commutateur. Le procédé comporte également une étape de calcul des temps de transit du paquet par le commutateur situé en premier sur son chemin, le cas de transit considéré étant un pire des cas nécessitant un temps de transit maximum. Le procédé comporte aussi une étape itérative de calcul du temps cumulé de transit du paquet par les commutateurs situés après le premier sur le chemin, en suivant l'ordre des commutateurs, le cas considéré de transit par chacun des commutateurs sur le chemin étant le pire des cas nécessitant un temps de transit maximum. Le pire des cas de transit du paquet par un commutateur sur le chemin est le cas où le paquet est reçu dans le commutateur après tous les autres paquets susceptibles de transiter par le même commutateur, chaque port d'entrée du commutateur recevant des paquets parmi les autres paquets dans l'ordre décroissant des tailles de paquet. Par exemple, le temps de retransmission du paquet peut être inclus dans son temps de transit et pas le temps de réception. Dans un mode de réalisation, les autres paquets de données susceptibles de transiter par le commutateur peuvent être déterminés lors d'une étape de tri comportant une étape de détermination de tous les chemins parcourus dans le réseau par des paquets de données et une étape d'attribution d'un rang aux commutateurs sur ces chemins. Les chemins parcourus dans le réseau par des paquets de 35 données peuvent être déterminés en extrayant des tables de routage des commutateurs, le commutateur suivant en fonction du client destinataire d'un paquet, en commençant par les commutateurs connectés directement à un serveur. Un rang peut être attribué aux commutateurs sur les chemins parcourus dans le réseau par des paquets de données en numérotant les commutateurs sur chacun des chemins parcourus dans le réseau, en commençant par 0 et par incrément de 1 dans l'ordre d'avancement sur le chemin. Une renumérotation d'un commutateur lors du traitement d'un deuxième chemin passant par ce cornmutateur pouvant conduire à ce qu'un premier chemin passant par ce commutateur n'ait plus ses commutateurs numérotés de manière croissante, la numérotation peut être réalisée une deuxième fois pour tous les chemins dont les commutateurs ne sont plus numérotés de manière croissante. L'invention a encore pour principaux avantages qu'elle permet de valider la topologie d'un réseau à commutation de paquet beaucoup plus rapidement que par les méthodes existantes basées sur la théorie très complexe du Network Calculus . Grâce à une approche beaucoup plus pragmatique, l'invention est également applicable à des réseaux présentant des niveaux de priorité et des débits variables. Les résultats sont obtenus en quelques secondes et les valeurs obtenues sont du même ordre de grandeur que celles obtenues selon le procédé de l'état de l'art. D'autres caractéristiques et avantages de l'invention apparaîtront à l'aide de la description qui suit faite en regard de dessins annexés qui représentent : la figure 1, une illustration par un diagramme des phases possibles 30 du procédé selon l'invention permettant de calculer un temps de latence cumulé maximum dans un réseau commuté ; la figure 2, une illustration par un schéma d'un exemple de paquets de données reçus sur 3 ports d'entrée 1, 2 et 3 d'un commutateur ; la figure 3, une illustration par un schéma d'un ordre de réception 35 des paquets dans le pire des cas ; la figure 4, un exemple d'agencement des paquets de données dans une file d'attente de sortie. La figure 1 illustre des phases possibles du procédé selon l'invention permettant de calculer un temps de latence cumulé maximum clans un réseau commuté. Un modèle du réseau réel est construit préalablement à partir d'une description du réseau réel. Ce modèle sera utilisé pour additionner correctement les temps de latence, la latence résultant de l'accumulation des latences dans les commutateurs traversés par un paquet. Ainsi, avant de calculer la latence d'un commutateur N sur un chemin, il est nécessaire de s'assurer que les latences de tous les commutateurs précédant le commutateur N sur le chemin sont déjà calculées. Dans l'exemple de la figure 1, le procédé de calcul selon l'invention commence par une phase 1 de tri topologique de tous les commutateurs dans le réseau. Tout d'abord, il s'agit de déterminer le chemin parcouru pour chacun des couples liaison virtuelle-client. Considérons par la suite un paquet transitant d'un serveur E vers un client C. Par exemple, à partir du commutateur auquel le serveur E est directement connecté, le chemin peut être construit très simplement en consultant les tables de routage de commutateur en commutateur. La table de routage d'un commutateur donne le commutateur suivant en fonction du client final C. A l'issue du parcourt des tables de routage, le chemin menant du serveur E au client C est connu sous la forme d'une liste ordonnée de commutateurs, depuis le commutateur auquel le serveur E est directement connecté jusqu'au commutateur auquel le client C est directement connecté. Cette opération est répétée pour chacun des couples liaison virtuelle-client, soit pour chacun des couples serveur-client. A l'issue, chaque couple liaison virtuelle-client est associé à un chemin connu sous la forme d'une liste ordonnée de commutateurs. Il faut noter qu'un commutateur peut être présent dans plusieurs listes, mais qu'un commutateur ne peut figurer qu'une seule fois dans une liste. Ensuite, il s'agit d'attribuer un rang FI à chacun des commutateurs, c'est-à-dire de numéroter de manière croissante les commutateurs sur chacun des chemins parcourus dans le réseau. Par exemple, dans un premier chemin de commutateurs représenté par une liste ordonnée, les commutateurs sont numérotés successivement par incrément de 1, en commençant par le rang R==O. Cette opération de numérotation est répétée dans chacun des autres chemins représentés par une liste, toujours en commençant par le premier commutateur du chemin, qui se voit attribuer le numéro O. Il faut noter qu'un commutateur présent sur plusieurs chemins est renuméroté autant de fois qu'il existe de chemins sur lesquels il est présent. Eventuellement une renurnérotation d'un commutateur lors du traitement d'un deuxième chemin passant par ce commutateur peut conduire io à ce qu'un premier chemin passant par ce commutateur n'ait plus ses commutateurs numérotés de manière croissante. C'est pourquoi l'opération de numérotation décrite précédemment est réalisée 2 fois pour tous les chemins, les commutateurs d'un chemin n'étant renumérotés que si les commutateurs qui le composent ne sont plus numérotés de manière 15 croissante. A l'issue de la phase 1 de tri topologique, ayant conduit à numéroter une ou deux fois les chemins parcourus dans le réseau, tous les chemins sont numérotés de sorte que leurs commutateurs ont un rang R, où R varie de manière croissante entre 0 et un entier maxRang. Dans l'exemple de la figure 1, le procédé de calcul selon 20 l'invention se poursuit par une phase 2 de calcul du temps de latence locale clans les commutateurs de rang R=O. En effet, les latences des commutateurs se trouvant en premier sur un chemin sont calculées en premier. Dans l'exemple de la figure 1, le procédé de calcul selon 25 l'invention se poursuit par des phases 3, 4, 5, 6 et 7 qui forment une double boucle d'itération, les phases 3, 4, 5, 6 et 7 étant réalisées plusieurs fois. Une première boucle d'itération sur le rang R des commutateurs, illustrée par les phases 3 et 7, contient elle-même une deuxième boucle d'itération sur les commutateurs N de rang R, illustrée par les phases 4 et 6. Cette double 30 boucle inclut une étape 5 de calcul du cumul des latences à proprement dit, qui est effectuée autant de fois qu'il y a de passages dans la double boucle. Le fonctionnement de cette double boucle peut être expliqué simplement comme suit. Les latences locales de tous commutateurs N de rang R=1 sont calculées et sont chacune ajoutées à la latence du commutateur de rang 35 R=0 qui se trouve respectivement sur un même chemin. Puis, les latences locales de tous commutateurs N de rang R=2 sont calculées et sont chacune ajoutées à la latence cumulée des commutateurs de rang R=0 et R=1 qui se trouvent respectivement sur un même chemin. Et ainsi de suite jusqu'à calculer les latences locales de tous commutateurs N de rang R=maxRang et à les ajouter à la latence cumulée des commutateurs de rang RE {0,...,maxRang-1 } qui se trouvent respectivement sur un même chemin. En sortant de la phase 7, c'est-à-dire lorsque la valeur R=maxRang a été traitée, tous les chemins dans le réseau sont affectés d'une latence cumulée. La latence locale de tous commutateurs N est calculée lors d'une réalisation de l'étape 5. Elle est obtenue grâce à une modélisation du comportement d'un commutateur à partir de structures de données en file d'attente, structure d'un type connu sous la désignation anglo-saxonne de II est supposé que toutes les liaisons virtuelles produisent un paquet et que tous les paquets sont agrégés sur un seul port de sortie qui les retransmet en continu, indépendamment de leur BAG respective. Il faut remarquer que dans certaines conditions particulières, un commutateur peut contenir plus d'un paquet de la même liaison virtuelle et que dans le cas extrême où la concurrence à l'intérieur du commutateur est très grande, le paquet qui appartient au BAG suivant peut prendre part à la compétition. La latence d'un paquet dans un commutateur est le délai qu'il passe dans une structure de file d'attente de type FIFO. Le paquet est retardé parce-que d'autres paquets sont devant elle dans la structure FIFO de sortie du commutateur. La latence minimum correspond au cas où le paquet a été mis dans la structure FIFO de sortie en premier. La latence maximum correspond au cas où le paquet a été mis dans la structure FIFO de sortie en dernier. Toutes les positions intermédiaires du paquet dans la structure FIFO de sortie correspondent à des latences intermédiaires. Pour un client donné C et un commutateur N donné, le temps de latence maximum du commutateur N est estimé en considérant un paquet S de taille maximum à destination du client C et pouvant transiter par le commutateur N considéré. Si le commutateur N n'est pas situé sur un chemin menant au client C, celui-ci ne peut recevoir de paquets à destination du client C et alors le temps de latence qu'il induit est nul. Si le commutateur N est situé sur un chemin menant au client C, les paquets destinés au client C passant par le commutateur N ne peuvent repartir que par un seul port du commutateur N. Dans le commutateur N, même si des paquets destinés au client C ne peuvent arriver que de quelques ports d'entrée bien déterminés, qui sont les ports connectés à d'autres commutateurs sur un chemin vers le client C, les autres ports du commutateur N sont quand même susceptibles de recevoir des paquets vers un autre client que C, ceci en utilisant le même port de sortie. Tous les ports d'entrée du commutateur N sont donc susceptibles de perturber le transit des paquets vers le client C. Il faut donc considérer tous les chemins passant par le commutateur N, qu'ils conduisent au client C ou pas. A chacun de ces chemins peut être associé un paquet de données de taille connue, comme illustré par la figure 2. La figure 2 illustre un exemple de paquets de données reçus sur 3 ports d'entrée 1, 2 et 3 du commutateur N. Les 3 ports sont modélisés sous la forme de 3 files d'attente de type FIFO. Chaque paquet dans l'un des ports 1, 2 ou 3 est ajouté à la FIFO de sortie lorsqu'il est entièrement reçu. La figure 2 illustre un exemple où le commutateur N a reçu 12 paquets distincts P; iE{1,...,12} en plus du paquet S considéré. Les paquets P; ont chacun une taille donnée, ils ne sont pas nécessairement à destination du client C, mais ils peuvent l'être. Le paquet S est quant à lui à destination du client C. La figure 2 ne fournit qu'un exemple d'ordre de réception des paquets par le commutateur N. Ainsi la réception des paquets P1, P2 et P3 commence-t'elle simultanément à partir d'un instant to sur les ports 1, 2, et 3 respectivement. Le paquet P1 est complet à un instant t11, le paquet P2 est complet à un instant t21, le paquet P3 est complet à un instant t31. Puis le paquet P4 est reçu à partir d'un instant t21 sur le port 2, il est complet à un instant t22. Puis le paquet P5 est reçu à partir d'un instant t31 sur le port 3, il est complet à un instant t32. Puis le paquet P6 est reçu à partir d'un instant t22 sur le port 2, il est complet à un instant t23. Puis le paquet P7 est reçu à partir d'un instant t11 sur le port 1, il est complet à un instant t12. Puis le paquet P8 est reçu à partir d'un instant t32 sur le port 3, il est complet à un instant t33. Puis le paquet P9 est reçu à partir d'un instant t12 sur le port 1, il est complet à un instant t13. Puis le paquet P10 est reçu à partir d'un instant t23 sur le port 2, il est complet à un instant t24. Puis le paquet Pl 1 est reçu à partir d'un instant t13 sur le port 1, il est complet à un instant t14. Puis le paquet P12 est reçu à partir d'un instant t24 sur le port 2, il est complet à un instant t25. Enfin le paquet S est reçu à partir d'un instant t14 sur le port 1, il est complet à un instant t15. La somme des tailles des paquets P1 à P12 et S est égale à une quantité Qin en octets. Entre les instants to et ti5, les ports 1, 2 et 3 sont dans une période d'utilisation concurrente du port de sortie vers le client C. Mais que le port de sortie en question soit libre ou pas, un paquet ne peut être transféré vers un port de sortie que d'une part après avoir été reçu dans son intégralité et d'autre part que s'il est le plus ancien paquet dans une structure FIFO d'entrée. Par exemple, le paquet P1 ne peut être transféré vers un port de sortie qu'à partir de l'instant t11. Le paquet P2 ne peut être transféré vers un port de sortie qu'à partir de l'instant t21. Le paquet P3 ne peut être transféré vers un port de sortie qu'à partir de l'instant t31. Le paquet P7 ne peut être transféré vers un port de sortie qu'à partir de l'instant t12 et à condition que le paquet P1 ait déjà été transféré vers un port de sortie à l'instant ti2. Le paquet P4 ne peut être transféré vers un port de sortie qu'à partir de l'instant t22 à condition que le paquet P2 ait déjà été transféré vers un port de sortie à l'instant t22. Par conséquent, le paquet P4 de petite taille dont le début de réception est bien postérieur au début de réception du paquet P1 de grande taille peut être transféré vers un port de sortie avant le paquet P1. Le paquet de grande taille P1 ne ralentira donc pas nécessairement la retransmission des paquets de petite taille P2 et P4. L'exemple de la figure 2 illustre bien la difficulté que représente ne serait-ce que l'exhibition du pire des cas. Ainsi, le pire des cas n'arrive pas lorsque les paquets commencent à être reçus simultanément sur les ports d'entrée. Le délai maximum pour un paquet arrive bien quand il y a beaucoup d'autres paquets dans la même structure FIFO d'entrée. Mais si un très petit premier paquet et un très gros paquets commencent en même temps à être reçus sur deux ports différents, ils sont en attente dans des structure FIFO différentes et leurs instants respectifs de fin de réception peuvent être tels que le très petit paquet est déjà retransmis quand le très gros arrive effectivement. Le pire des cas arrive quand les instants de fin de réception des paquets sont simultanés sur tous les ports d'entrée. Le temps passé pour la réception d'un paquet par un port d'entrée est compté dans le temps de latence du commutateur de rang R précédent. D'une certaine manière, les structures FIFO d'entrée ne sont que des structures logiques, les structures physiques d'entrée n'étant en fait que le reflet des structures FIFO de sortie du commutateur précedent. Ainsi, le temps passé pour la réception d'un paquet par un port d'entrée correspond au temps pour vider une structure FIFO de sortie du commutateur précédent. La figure 3 donne un autre exemple d'ordre de réception par le commutateur N des 12 paquets P; iE(1,...,12} et du paquet S. Il s'agit du pire des cas selon l'invention. Respectivement, les instants t11, t21 et t31 de fin deréception des paquets P1, P2 et P3 coïncident. II faut noter que le commutateur N stocke les paquets dans des structures FIFO dans un premier temps, puis qu'il les renvoie dans un deuxième temps. Appelons Qout la quantité d'octets déjà retransmise hors de la structure FIFO de sortie pendant la période de concurrence, à une vitesse donnée sous la forme d'un temps par octet. Le temps de concurrence est dû à la quantité Q = Qin û Q0, d'octets restant à transmettre quand le paquet S est reçu. La valeur de Qout 35 dépend du ratio entre le temps par octet en entrée et le temps par octet en sortie : dans le cas de deux ports d'entrée à 10 Mbps et d'un port de sortie à 100 Mbps, la structure FIFO de sortie est toujours vide et il n'y a pas de concurrence, c'est-à-dire Q=0. Comrne déjà illustré par la figure 2 et comme repris à la figure 3, un paquet reçu sur un port k est supposé être complet dans une structure FIFO à un instant tk,i. Cet instant tk,i inclut le temps de réception depuis le commutateur précédent. Une fois un paquet complètement dans la structure FIFO d'entrée, le temps de retransmission de ce paquet peut commencer au débit correspondant au temps par octet en sortie. Par exemple, 800 nanosecondes par octet pour une liaison éthernet à 10 mégabits par seconde, 80 nanosecondes par octet pour une liaison éthernet à 100 Mbps et 8 nanosecondes par octet pour une liaison éthernet à 1 gigabit par seconde (Gbps). La figure 4 donne un exemple d'agencement des paquets P; iE{1,...,12} et du paquet S dans une structure FIFO de sortie. Les instants tk,i de fin de réception des paquets sur les ports d'entrée sont représentés sur une frise chronologique tin en haut de la figure 4. Sur la frise tin, tout instant tk,; est représenté sous une forme simplifiée par un indice ki. Les instants de fin de retransmission des paquets sont quant à eux représentés sur une frise chronologique tout en bas de la figure 4, sous la même forme simplifiée par un indice ki. Ainsi, le délai subit par le paquet S est une différence AT entre l'instant d'arrivée du paquet S représenté par l'indice 25 dans la frise tin, et l'instant de retransmission du paquet S représenté par le même indice 25 dans la frise tout. Il faut noter que la quantité d'octets Qout déjà retransmise hors de la structure FIFO de sortie à l'instant t25 se déduit facilement de la frise tout. Il faut noter également que selon les débits respectifs d'entrée et de sortie, dans une structure FIFO d'entrée le délai maximum n'est pas nécessairement subit par le dernier paquet entré dans cette structure FIFO. Le délai est maximum quand Q est maximum, c'est-à-dire quand Qout est minimum. Comme la vitesse de retransmission en sortie est la même pour tous les paquets dans la structure FIFO, Qout est minimum quand la fin de réception du premier paquet dans la structure FIFO d'entrée arrive le plus tard possible. Pour être dans ce cas, il faut que sur chaque port d'entrée les paquets soient reçus dans l'ordre décroissant des tailles de paquet. Il s'agit là du pire des cas selon l'invention. La latence d'un paquet peut être vue comme un jeu fini de délais, chacun d'entre eux étant attaché à une probabilité ou un niveau de confiance. Le délai AT du paquet S est la somme des temps de retransmission de tous les paquets situés avant le paquet S dans la structure FIFO de sortie, à laquelle est ajouté le temps de retransmission du paquet S lui-même. Il a été choisi ici que le délai passé par un paquet dans un commutateur inclus le délai de retransmission du paquet lui-même, alors que ce délai n'est pas un délai qui s'écoule pendant la période de concurrence. La probabilité précédemment citée représente les chances ou la confiance pour que le paquet S puisse être précédé par les paquets situés avant lui dans la structure FIFO de sortie. Le terme de probabilité doit dans le cas présent être utilisé avec précaution. La probabilité attachée à un délai comme défini précédemment n'est pas stricto sensu la probabilité d'avoir un tel délai. En réalité, cette probabilité représente les chances d'avoir un certain nombre de paquets avant le paquet S dans un jeu de N paquets. La vraie probabilité doit prendre en compte le fait d'avoir N paquets en concurrence. Les règles de calcul et d'utilisation d'une telle probabilité sont précisées par la suite. Il a été considéré jusqu'à présent que la latence dans un commutateur est due à la concurrence au sein d'un jeu de paquets. Dès que l'on sera confronté à un choix, c'est la condition qui mène au pire des cas comme décrit précédemment qui sera retenue. La taille en octet du paquet S considéré est S=MFS+IFG où MFS est la taille maximale d'un paquet dans un réseau éthernet commuté et IFG=20 octets est le silence entre les paquets, d'après l'acronyme anglo-saxon Inter Frame Gap . Supposons qu'un paquet est en concurrence au sein d'un jeu de paquets. La période de concurrence est le temps donné par la plus longue émission en continu reçue sur un port d'entrée. On a PériodeDeConcurrence = maxk (linkBurstk • inputByteTimek) où linkBurstk est la quantité d'octets reçus sur le port k et inputByteTimek est le temps par octet sur le port k. Dans les exemples des figures 1 et 2, kE {1,2,3} et la période de 35 concurrence considérée correspond à k=1. La latence plancher représente le délai minimum qu'un paquet peut subir. C'est le cas où il n'y a pas d'autres paquets dans le réseau, donc pas de concurrence, ou encore le cas où le paquet est toujours le premier à être retransmis. La latence plancher est égale au temps de retransmission. Pour le paquet S, le délai de latence plancher est d = s .outputByteTime , où outputByteTime est le temps par octet sur le port de sortie et s est la taille du paquet S. A côté de la latence dans le pire des cas, un autre paramètre intéressant est la taille maximum de la structure FIFO de sortie. En effet, les structures FIFO de sortie sont particulières en ce sens qu'elles ne stockent pas les paquets eux-même mais des pointeurs sur les paquets, les paquets restant physiquement dans des structures de mémorisation non explicitées ici.. II en résulte que la taille de la structure FIFO de sortie est donnée en nombre de paquets et non pas en nombre d'octets. A chaque fois qu'un paquet entre dans la structure FIFO de sortie, un pointeur est stocké et un compteur Nb lié à la structure FIFO est incrémenté de 1. A chaque fois qu'un paquet est retransmis, un pointeur est supprimé et le compteur Nb est décrémenté de 1. La taille maximum de la structure FIFO de sortie est la valeur maximum de Nb, cette valeur étant atteinte pendant la période de concurrence. Cette méthode assure que quand le débit d'octet en sortie est plus grand que celui en entrée, la taille de la structure FIFO de sortie n'est pas augmentée. En permanence, Nb = û Nbout , où Nb;n est le nombre de paquets stockés et Nbout est le nombre de paquets retransmis. La condition du pire des cas est réalisée quand le nombre Nbout de paquets retransmis est minimum. Ceci arrive quand des paquets ne sont sortis de la structure FIFO que peu de fois pendant la période de concurrence, c'est-à-dire quand les paquets sont sortis en prenant les grandes tailles d'abord. REVENDICATIONS 1. Procédé de calcul du temps maximum nécessaire à un paquet de données (S) pour transiter par un commutateur dans un réseau commuté, le paquet (S) ressortant du commutateur par un port de sortie donné, le procédé comportant : - une étape de détermination d'un pire des cas de transit du paquet (S) par le commutateur, le pire des cas nécessitant un temps de transit maximum ; une étape de calcul du temps de transit dans le pire des cas ; caractérisé en ce que le pire des cas est le cas où le paquet (S) est reçu par le commutateur après tous les autres paquets (P;,iE{1,...,12}) susceptibles de transiter par le commutateur, chaque port d'entrée du commutateur recevant des paquets parmi les autres paquets (P;,iE{1,...,12}) dans l'ordre décroissant des tailles de paquet. 2. Procédé de calcul du temps maximum pour transférer un paquet de données (S) d'un serveur à un client à travers un réseau commuté, le paquet (S) suivant un chemin formé par une suite ordonnée de commutateurs dans le réseau commuté, caractérisé en ce qu'il comporte : une étape de détermination, pour chacun des commutateurs sur le chemin emprunté par le paquet (S), des autres paquets (P;,iE{1,...,12}) de données susceptibles d'emprunter ledit commutateur ; - une étape de calcul (2) des temps de transit du paquet (S) par le commutateur situé en premier sur son chemin, le cas de transit considéré étant un pire des cas nécessitant un temps de transit maximum ; une étape itérative (3, 4, 5, 6, 7) de calcul du temps cumulé de transit du paquet (S) par les commutateurs situés après le premier sur le chemin, en suivant l'ordre des commutateurs, le cas considéré de transit par chacun des commutateurs sur le chemin étant le pire des cas nécessitant un temps de transit maximum ; le pire des cas de transit du paquet (S) par un commutateur sur le chemin étant le cas où le paquet (S) est reçu dans le commutateur après tous lesautres paquets (P;,iE{1,...,12}) susceptibles de transiter par le même commutateur, chaque port d'entrée du commutateur recevant des paquets parmi les autres paquets (P;,iE{1,...,12}) dans l'ordre décroissant des tailles de paquet. :3. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que le temps de réception du paquet n'est pas inclus dans son temps de transit. 10 4. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que le temps de retransmission du paquet est inclus dans son temps de transit. 5. Procédé selon la revendication 2, caractérisé en ce que les autres 15 paquets (P;,iE{1,...,12}) de données susceptibles de transiter par le commutateur sont déterminés lors d'une étape (1) de tri comportant les étapes suivantes : une étape de détermination de tous les chemins parcourus dans le réseau par des paquets de données ; 20 - une étape d'attribution d'un rang aux commutateurs sur les chemins parcourus dans le réseau par des paquets de données. 6. Procédé selon la revendication 5, caractérisé en ce que les chemins parcourus dans le réseau par des paquets de données sont déterminés 25 en extrayant des tables de routage des commutateurs le commutateur suivant en fonction du client destinataire d'un paquet, en commençant par les commutateurs connectés directement à un serveur. 7. Procédé selon la revendication 5, caractérisé en ce qu'un rang est 30 attribué aux commutateurs sur les chemins parcourus dans le réseau par des paquets de données en numérotant les commutateurs sur chacun des chemins parcourus dans le réseau, en commençant par 0 et par incrément de 1 dans l'ordre d'avancement sur le chemin, une renumérotation d'un commutateur lors du traitement d'un deuxième 35 chemin passant par ce commutateur pouvant conduire à ce qu'un premier5chemin passant par ce commutateur n'ait plus ses commutateurs numérotés de manière croissante, la numérotation étant réalisée une deuxième fois pour tous les chemins dont les commutateurs ne sont plus numérotés de manière croissante.5