FR2907628A1 - Procede de transmission de paquets de donnees, produit programme d'ordinateur, moyen de stockage et commutateur correspondants - Google Patents

Procede de transmission de paquets de donnees, produit programme d'ordinateur, moyen de stockage et commutateur correspondants Download PDF

Info

Publication number
FR2907628A1
FR2907628A1 FR0609319A FR0609319A FR2907628A1 FR 2907628 A1 FR2907628 A1 FR 2907628A1 FR 0609319 A FR0609319 A FR 0609319A FR 0609319 A FR0609319 A FR 0609319A FR 2907628 A1 FR2907628 A1 FR 2907628A1
Authority
FR
France
Prior art keywords
packet
link
switch
transmission
priority
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR0609319A
Other languages
English (en)
Other versions
FR2907628B1 (fr
Inventor
Arnaud Closset
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to FR0609319A priority Critical patent/FR2907628B1/fr
Publication of FR2907628A1 publication Critical patent/FR2907628A1/fr
Application granted granted Critical
Publication of FR2907628B1 publication Critical patent/FR2907628B1/fr
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/40Wormhole routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/06Deflection routing, e.g. hot-potato routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/11Identifying congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/33Flow control; Congestion control using forward notification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/82Miscellaneous aspects
    • H04L47/821Prioritising resource allocation or reservation requests

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

L'invention concerne un procédé de transmission de paquets de données dans un réseau de communication à commutation de paquets, comprenant une pluralité de commutateurs interconnectés par une pluralité de liens, à chaque paquet étant associée une priorité.Selon l'invention, un tel procédé les étapes suivantes effectuées par un premier commutateur du réseau :- détermination d'une situation de blocage permanent dans la transmission de données ;- détermination d'au moins deux paquets participant à ladite situation de blocage permanent, un premier paquet, dit paquet bloquant, étant en cours de transmission sur un premier lien et, au moins un second paquet, dit paquet en attente, étant bloqué sur un second lien en attente de transmission vers le premier lien ;- détermination (502) si le paquet en attente a une priorité associée plus élevée que le paquet bloquant ;- si le paquet en attente a une priorité associée plus élevée que le paquet bloquant, envoi (503) sur un desdits premier et second liens d'une première requête de délestage vers un second commutateur.

Description

1 Procédé de transmission de paquets de données, produit programme
d'ordinateur, moyen de stockage et commutateur correspondants. 1. Domaine de l'invention La présente invention se rapporte au domaine des réseaux de communication mettant en oeuvre de la commutation de paquets, et en particulier à la transmission de données dans un tel réseau fonctionnant à haut débit. 2. Solutions de l'art antérieur On rappelle que la commutation permet d'aiguiller correctement des données entre un terminal source et un ou plusieurs terminaux destinataires, ces données étant organisées en unités de données de protocole, et par exemple par paquets. On connaît, dans l'art antérieur, deux techniques différentes de commutation (en anglais switch ): - la commutation de circuit ; et - la commutation de paquets. Dans un réseau à commutation de circuit, interconnectant plusieurs appareils, on utilise essentiellement un multiplexage par répartition dans le temps ou MRT (de l'anglais TDM ou Time Division Multiplex ). Cette technique permet la transmission de données synchrones, par l'allocation d'intervalles de temps (en anglais Lime slot ) sur le bus MRT pour des communications variées et synchronisées. En entrée, un appareil source écrit des données sur un ou plusieurs intervalles de temps qui lui sont alloués. En sortie, un ou plusieurs appareils cibles lisent les données sur l'intervalle de temps auxquelles elles sont attachées.
Selon cette technique, il est possible d'utiliser les intervalles de temps comme canal de diffusion, ceux-ci étant utilisés en écriture par une seule source et utilisés en lecture par plusieurs cibles. En outre, la nature synchrone du mécanisme garantit que toutes les données utiles sont traitées convenablement par tous les appareils, à la fois source et cible. 2907628 2 Dans un réseau à commutation de paquets, le transfert des données entre les appareils sources et les appareils cibles suppose que le réseau les reliant soit disponible. En d'autres termes, cela dépend du statut du réseau. Ainsi, on prévoit un protocole de type poignée de main connu sous le nom anglais de 5 handcheck afin d'assurer non seulement la disponibilité des données mais aussi leur bonne prise en compte. Cela est particulièrement nécessaire, lorsqu'il s'agit de mettre en oeuvre un routage de type ver ( ou wormhole routing en anglais) dans lequel les données en cours de transmission peuvent être réparties entre plusieurs éléments 10 de commutation d'un commutateur (la décision de routage de type wormhole routing est prise avant la réception complète du paquet à l'opposé d'un routage stockage et de relais ou en anglais store and forward routing ) et/ou lorsque des appareils sources et cibles ont des mémoires tampons de type FIFO (de l'anglais First In First Out ) connectés à la fois à des ports sources et cibles. 15 On présente, en relation avec la figure 1, un réseau de communication à commutation de paquets classique 2000 mettant en oeuvre un routage de type ver . Le réseau 2000 comprend un dispositif de commutation 200, lui-même comprenant des premier 212 à huitième 219 commutateurs, chacun pouvant être connecté à un, deux ou trois commutateur(s) adjacent(s) au moyen de liens 20 bidirectionnels internes, comme par exemple décrit dans la demande de brevet publiée sous la référence WO 2004/066,557. Ainsi, le premier commutateur 212 est connecté : - au second commutateur 213 au moyen d'un premier lien interne 2120 ; - au cinquième commutateur 216 au moyen d'un second lien interne 25 2121 ; - au sixième commutateur 217 au moyen d'un troisième lien interne 2122. Le second commutateur 213 est connecté : - au troisième commutateur 214 au moyen d'un quatrième lien interne 2131 ; 2907628 3 - au cinquième commutateur 216 au moyen d'un cinquième lien interne 2132. Le quatrième commutateur 215 est connecté : -au troisième commutateur 214 au moyen d'un sixième lien interne 5 2151 ; -au huitième commutateur 219 au moyen d'un septième lien interne 2152 ; -au septième commutateur 218 au moyen d'un huitième lien interne 2153. 10 Le huitième commutateur 219 est connecté : - au troisième commutateur 214 au moyen d'un neuvième lien interne 2191 ; - au septième commutateur 218 au moyen d'un dixième lien interne 2192. 15 Le sixième commutateur 217 est connecté : - au cinquième commutateur 216 au moyen d'un onzième lien interne 2171 ; - au septième commutateur 218 au moyen d'un douzième lien interne 2172. 20 Ainsi, le dispositif de commutation 200 présente une topologie de type maillée. Les premier 212 à huitième 219 commutateurs sont connectés respectivement à des premier 201 à huitième 208 terminaux réseaux au moyens de premier 2011 à huitième 2018 liens bidirectionnels externes, comme par exemple 25 décrit dans la demande de brevet publiée sous la référence WO 2004/066,557. Dans le réseau 2000 les paquets sont routés selon un protocole de routage de type ver et comprennent une entête de routage source. On présente, en relation avec la figure 2, un paquet 100 à entête de routage source en transit dans le réseau 2000 et provenant d'un dispositif source du réseau 30 2000. 2907628 4 Le paquet 100, de taille variable, comprend : - une entête de routage source 101 dédiée au routage du paquet dans les commutateurs du dispositif de commutation 200 du réseau 2000 ; - un champ entête 102 qui est dédié à l'identification du paquet en 5 dehors du dispositif de commutation 200 et qui contient en outre une information de priorité relative à un niveau de priorité de transmission du paquet; - un champ 103 dédié aux données utiles ; - un champ 104 comprenant une indication de fin de paquet (champ EOP 10 pour End Of Packet ). La taille du paquet 100 est limitée à un nombre prédéterminé N d'octets. Du fait du protocole de routage de type ver mis en oeuvre dans le commutateur 200, les paquets routés par le dispositif de commutation 200 entre les terminaux du réseau 2000 sont dispersés dans les différents commutateurs 212 15 à 219. Ainsi, lors du routage de différents paquets dans le réseau 2000, de la congestion peut se produire lorsqu'un premier paquet provenant d'un port d'entrée d'un commutateur sur le chemin de transmission du paquet doit être routé vers un port de sortie de ce commutateur, le port de sortie servant déjà à la 20 transmission d'un second paquet. Lors du routage simultané de plusieurs paquets par un dispositif de routage (tel que le dispositif de routage 200), une boucle de congestion peut se former au sein du dispositif de routage et ainsi donner lieu à une situation de blocage permanent au niveau du dispositif de routage. 25 Un exemple de situation de blocage permanent due à une boucle de congestion est décrit ci-après dans le cadre du dispositif de commutation 200 de la figure 1. Ainsi, un premier paquet 210 émis par le terminal 202 à destination du terminal 205 traverse les second 213 et troisième 214 commutateurs mais est mis 30 en attente devant le quatrième commutateur 215 le temps que le port de sortie 2907628 5 numéro 2 du quatrième commutateur 215 se libère de la transmission d'un second paquet 209. Le second paquet 209 émis par le terminal 204 à destination du terminal 201 traverse les quatrième 215, huitième 219 et septième 218 commutateurs mais 5 est mis en attente devant le sixième commutateur 217 le temps que le port de sortie numéro 0 du sixième commutateur 217 se libère de la transmission d'un troisième paquet 211. Le troisième paquet 211 émis par le terminal 206 à destination du terminal 204 traverse les sixième 217 et cinquième 216 commutateurs mais est mis en 10 attente devant le second commutateur 213 le temps que le port de sortie numéro 2 du second commutateur 213 se libère de la transmission du premier paquet 210. Ainsi, le routage des premier 210, second 209 et troisième 211 paquets forme une boucle de congestion et donne lieu à une situation de blocage permanent au niveau du dispositif de routage 200. 15 Le document de brevet américain n US 4,630,259 propose une solution permettant une suppression de cette situation de blocage permanent à base de la mise en oeuvre d'un mécanisme de suppression de paquets selon lequel au moins un des paquets concernés par la boucle de congestion est supprimé afin de débloquer le routage. 20 Conformément à cette solution, un mécanisme de sélection du paquet à supprimer met en oeuvre une horloge de surveillance et tient compte de la priorité des différents paquets concernés par la boucle. Une fois que le paquet sélectionné est supprimé, un message de maintenance est envoyé au terminal ayant préalablement émis le paquet afin que 25 celui-ci re-émette ce paquet. Actuellement, aucune technique ne permet de supprimer les situations de blocage permanent dues à des boucles de congestion dans un réseau de communication à commutation de paquets sans mettre en oeuvre de suppression d'au moins un paquet. 2907628 6 Or, les inventeurs ont observé qu'il serait souhaitable d'obtenir une technique permettant de supprimer ces situations de blocage permanent qui n'impose pas de supprimer des paquets. En effet, la suppression de paquets peut conduire à une remise en cause de la politique de qualité de service mise en oeuvre 5 dans le réseau. Par ailleurs, l'émission de messages de maintenance dans le réseau de communication (liés à la suppression d'au moins un paquet) conduit à une augmentation de la charge en termes de flux de données du réseau. Cet aspect n'a jamais été envisagé dans l'art antérieur, et l'homme du 10 métier a toujours considéré qu'afin de supprimer une situation de blocage permanent due à une boucle de congestion, il est nécessaire de supprimer au moins un paquet participant à la boucle de congestion. Cette observation est donc, en soi, une invention de problème. 3. Objectifs de l'invention 15 L'invention a notamment pour objectif de pallier ces inconvénients de l'art antérieur. Plus précisément, un objectif de l'invention, dans au moins un de ses modes de réalisation, est de fournir une technique permettant de supprimer les situations de blocage permanent dues à des boucles de congestion dans un réseau 20 de communication à commutation de paquets qui n'impose pas de supprimer des paquets. Un autre objectif de l'invention, dans au moins un de ses modes de réalisation, est de mettre en oeuvre une telle technique qui tienne compte de la priorité des paquets transmis dans le réseau. 25 L'invention, dans au moins un de ses modes de réalisation, a encore pour objectif de fournir une telle technique qui soit compatible avec une politique de qualité de service mise en oeuvre dans le réseau. L'invention, dans au moins un de ses modes de réalisation, a encore pour objectif de fournir une telle technique qui ne conduise pas à une augmentation de 30 la charge en termes de flux de données du réseau. 2907628 7 L'invention, dans au moins un de ses modes de réalisation, a encore pour objectif de fournir une telle technique qui soit simple à mettre en oeuvre et peu coûteuse. 4. Exposé de l'invention 5 Conformément à un mode de réalisation particulier, l'invention concerne un procédé de transmission de paquets de données dans un réseau de communication à commutation de paquets, comprenant une pluralité de commutateurs interconnectés par une pluralité de liens, à chaque paquet étant associée une priorité. 10 Selon l'invention, ledit procédé comprend les étapes suivantes effectuées par un premier commutateur du réseau : détermination d'une situation de blocage permanent dans la transmission de données ; - détermination d'au moins deux paquets participant à ladite situation de 15 blocage permanent, un premier paquet, dit paquet bloquant, étant en cours de transmission sur un premier lien et, au moins un second paquet, dit paquet en attente, étant bloqué sur un second lien en attente de transmission vers le premier lien ; - détermination si le paquet en attente a une priorité associée plus élevée que 20 le paquet bloquant ; -si le paquet en attente a une priorité associée plus élevée que le paquet bloquant, envoi sur un desdits premier et second liens d'une première requête de délestage vers un second commutateur. Le principe général de l'invention consiste en l'envoi, par un commutateur 25 du réseau, sur détection d'une situation de blocage impliquant au moins un paquet en attente et un paquet bloquant, et dans le cas où le paquet en attente est prioritaire par rapport au paquet bloquant, d'une requête de délestage destinée à résoudre la situation de blocage au niveau d'un paquet de priorité moins élevée que le paquet en attente notamment par stockage du paquet de priorité moins 30 élevée. 2907628 8 Ainsi, l'invention fournit une technique de suppression de situations de blocage permanent dues à des boucles de congestion dans un réseau de communication à commutation de paquets, qui n'impose pas de supprimer des paquets. 5 Ainsi, l'invention permet de mettre en oeuvre une telle technique de résolution de situation de blocage permanent qui tienne compte de la priorité des paquets transmis dans le réseau. Avantageusement, si le paquet en attente a une priorité associée plus élevée que le paquet bloquant, ladite première requête de délestage commande le 10 stockage, dans une mémoire de délestage, d'un paquet déterminé associé à une priorité moins élevée que la priorité associée au paquet en attente, ledit paquet déterminé participant à ladite situation de blocage. Préférentiellement, si le paquet en attente a une priorité associée plus faible que le paquet bloquant, le procédé de transmission comprend également une 15 étape de stockage du paquet en attente dans une mémoire de délestage. Selon une caractéristique avantageuse de l'invention, le procédé comprend en outre les étapes suivantes : - détermination si le premier lien est libre de transmission ; - dans le cas d'une détermination positive, transmission du paquet en attente 20 du second lien vers le premier lien. Ainsi, dès que le premier lien, par lequel doit transiter le paquet en attente, est libre, alors le paquet en attente est transmis sur ce second lien. Selon une caractéristique avantageuse de l'invention, le procédé comprend en outre les étapes suivantes : 25 - détermination si le premier lien est libre de transmission ; - dans le cas d'une détermination positive, transmission du paquet stocké de la mémoire de délestage vers le premier lien. Ainsi, dès que le premier lien, par lequel doit transiter le paquet en attente, est libre, alors le paquet en attente préalablement stocké dans la mémoire de 30 délestage est transmis sur ce premier lien. 2907628 9 Préférentiellement, le procédé comprend au préalable les étapes suivantes : - réception depuis le second lien de premières données du paquet en attente ; - détermination si le premier lien est libre de transmission ; et, si le premier lien n'est pas libre de transmission, le procédé comprend 5 une étape de détermination de temps d'attente de transmission du paquet en attente. Selon un premier mode de mise en oeuvre de l'invention, la détermination d'une situation de blocage permanent est la détection que le temps d'attente de transmission du paquet en attente a atteint une valeur prédéterminée. 10 Préférentiellement, la valeur prédéterminée est fonction de la priorité du paquet en attente et/ou de la priorité du paquet bloquant. Avantageusement, la détermination si le premier lien est libre de transmission s'effectue par accès à une table de connexion, ladite table de connexion comprenant une description d'un état d'occupation en transmission 15 pour un ensemble de liens connectés au premier commutateur. Selon un second mode de mise en oeuvre de l'invention, la détermination d'une situation de blocage permanent est la réception d'une seconde requête de délestage provenant d'un troisième commutateur sur un desdits premier et second liens, dit lien de réception. 20 Préférentiellement, la réception d'une seconde requête de délestage depuis un troisième commutateur déclenche une étape de détermination si le paquet en cours de transmission sur le lien de réception est aussi en cours de transmission sur un autre lien, dit lien connecté, et, dans le cas d'une détermination positive, une troisième requête de délestage est envoyée sur le lien connecté. 25 L'invention concerne également un produit programme d'ordinateur, comprenant des instructions de code de programme pour l'exécution des étapes du procédé de transmission tel que précédemment décrit, lorsque ledit programme est exécuté sur un ordinateur. L'invention concerne également un moyen de stockage, éventuellement 30 totalement ou partiellement amovible, lisible par un ordinateur, stockant un jeu 2907628 10 d'instructions exécutables par ledit ordinateur pour mettre en oeuvre le procédé de transmission tel que précédemment décrit. L'invention concerne également un premier commutateur d'un réseau de communication à commutation de paquets, comprenant une pluralité de 5 commutateurs interconnectés par une pluralité de liens, ledit premier commutateur comprenant des moyens de transmission de paquets de données dans ledit réseau, à chaque paquet étant associée une priorité, le premier commutateur comprenant : - des moyens de détermination d'une situation de blocage permanent dans la 10 transmission de données ; - des moyens de détermination d'au moins deux paquets participant à ladite situation de blocage permanent, un premier paquet, dit paquet bloquant, étant en cours de transmission sur un premier lien et, au moins un second paquet, dit paquet en attente, étant bloqué sur un second lien en attente de 15 transmission vers le premier lien ; - des moyens de détermination si le paquet en attente a une priorité associée plus élevée que le paquet bloquant ; - des moyens d'envoi sur un desdits premier et second liens d'une première requête de délestage vers un second commutateur, lesdits moyens d'envoi 20 étant activés si le paquet en attente a une priorité associée plus élevée que le paquet bloquant. Les avantages du produit programme d'ordinateur, du moyen de stockage et du premier commutateur étant sensiblement les mêmes que ceux du procédé de transmission, ils ne sont pas repris. 25 Selon une caractéristique avantageuse de l'invention, si le paquet en attente a une priorité associée plus élevée que le paquet bloquant, ladite première requête de délestage commande le stockage, dans une mémoire de délestage, d'un paquet déterminé associé à une priorité moins élevée que la priorité associée au paquet en attente, ledit paquet déterminé participant à ladite situation de blocage. 30 Avantageusement, le premier commutateur comprend également des 2907628 11 moyens de stockage du paquet en attente dans une mémoire de délestage, lesdits moyens de stockage du paquet en attente étant activés si le paquet en attente a une priorité associée plus faible que le paquet bloquant. Avantageusement, le premier commutateur comprend en outre : 5 - des moyens de détermination si le premier lien est libre de transmission ; - des moyens de transmission du paquet en attente du second lien vers le premier lien, lesdits moyens de transmission du paquet en attente étant activés si le premier lien est libre de transmission. Préférentiellement, le premier commutateur comprend en outre : 10 - des moyens de détermination si le premier lien est libre de transmission ; - des moyens de transmission du paquet stocké de la mémoire de délestage vers le premier lien, lesdits moyens de transmission du paquet stocké étant activés si le premier lien est libre de transmission. Préférentiellement, le premier commutateur comprend : 15 - des moyens de réception depuis le second lien de premières données du paquet en attente, - des moyens de détermination si le premier lien est libre de transmission ; et le premier commutateur comprend également des moyens de détermination de temps d'attente de transmission du paquet en attente, lesdits moyens de 20 détermination de temps d'attente de transmission du paquet en attente étant activés si le premier lien n'est pas libre de transmission. Selon un premier mode de mise en oeuvre de l'invention, les moyens de détermination d'une situation de blocage permanent comprennent des moyens de détection que le temps d'attente de transmission du paquet en attente a atteint une 25 valeur prédéterminée. Avantageusement, la valeur prédéterminée est fonction de la priorité du paquet en attente et/ou de la priorité du paquet bloquant. Avantageusement, les moyens de détermination si le premier lien est libre de transmission comprennent des moyens d'accès à une table de connexion, ladite 30 table de connexion comprenant une description d'un état d'occupation en 2907628 12 transmission pour un ensemble de liens connectés au premier commutateur. Selon un second mode de mise en oeuvre de l'invention, les moyens de détermination d'une situation de blocage permanent comprennent des moyens de réception sur un desdits premier et second liens, dit lien de réception, d'une 5 seconde requête de délestage provenant d'un troisième commutateur. Préférentiellement, les moyens de réception d'une seconde requête de délestage depuis un troisième commutateur comprennent des moyens de déclenchement de moyens de détermination si le paquet en cours de transmission sur le lien de réception est aussi en cours de transmission sur un autre lien, dit lien 10 connecté, et ledit premier commutateur comprend des moyens d'envoi d'une troisième requête de délestage sur le lien connecté, lesdits moyens d'envoi d'une troisième requête étant activés si le paquet en cours de transmission sur le lien de réception est aussi en cours de transmission sur un autre lien. 15 5. Liste des figures D'autres caractéristiques et avantages de l'invention apparaîtront plus clairement à la lecture de la description suivante d'un mode de réalisation préférentiel, donné à titre de simple exemple illustratif et non limitatif, et des dessins annexés, parmi lesquels : 20 - la figure 1 présente un schéma d'un réseau de communication classique à commutation de paquets mettant en oeuvre un routage de type ver ; la figure 2 est une représentation de la structure d'un paquet à entête de routage source par exemple en transit dans le réseau de la figure 1 ; la figure 3 présente le schéma d'une implémentation d'un commutateur 25 compatible avec le procédé de transmission de données selon le mode de réalisation précité de l'invention ; la figure 4 présente une matrice de connexion implémentée dans le commutateur de la figure 3 selon le mode de réalisation précité de l'invention ; 30 - la figure 5 présente les étapes principales d'un algorithme de gestion d'un 2907628 13 paquet de données provenant d'un port d'entrée donné d'un premier commutateur et requérant une connexion vers un port de sortie donné de ce premier commutateur ; la figure 6 présente les étapes principales d'un algorithme de gestion d'une 5 requête de mise en attente, sous la forme d'un signal Delay_Req, envoyée par un premier commutateur et reçu par un second commutateur ; les figures 7 à 9 illustrent la mise en oeuvre du procédé de transmission selon le mode de réalisation précité de l'invention dans le cadre de l'exemple de situation de blocage permanent due à une boucle de 10 congestion décrit dans le cadre du dispositif de commutation de la figure 1. 6. Description d'un mode de réalisation de l'invention On se place, dans la suite, dans le cadre du réseau de communication à commutation de paquets 2000 de la figure 1. Il est clair, que l'invention peut être mise en oeuvre dans tout réseau de communication à commutation de paquets, 15 comprenant un nombre quelconque de commutateurs interconnectés par un nombre quelconque de liens et auxquels sont reliés un nombre quelconque de terminaux au moyen d'un nombre quelconque de liens. Par ailleurs, on considère dans la suite qu'un procédé de transmission de paquets de données selon un mode de réalisation de l'invention est mis en oeuvre 20 dans les commutateurs du dispositif de commutation 200. Dans la suite, les paquets de données possèdent la structure du paquet 100 décrit en relation avec la figure 2 et son transmis selon un routage de type ver . Le procédé de transmission selon l'invention (ci-après décrits en relation avec les figures 5 à 9) est mis en oeuvre sous la forme d'un logiciel et/ou d'une 25 pluralité de sous logiciels (comprenant une pluralité d'algorithmes décrits ci-après) qui est (sont) exécuté(s) dans une ou plusieurs machines du réseau à commutation de paquets 2000, par exemple dans des commutateurs tels que le commutateur 3000 décrit ci-après en relation avec la figure 3. On présente, en relation avec la figure 3, le schéma d'une implémentation 30 d'un commutateur 3000 compatible avec le procédé de transmission de données 2907628 14 selon le mode de réalisation précité de l'invention. On ne décrit, par soucis de simplicité, que ce commutateur générique 3000. On comprend qu'il peut représenter par exemple l'un des commutateurs 212 à 219 du dispositif de commutation 200 de la figure 1. 5 Le commutateur 3000 comprend notamment : - un moyen 308 d'arbitrage ; - un moyen 320 de génération de cycle ; - des moyens chargés de la réception et de l'émission des données en provenance d'un premier lien interne 344, 351, 353, 354 ou respectivement 10 à destination d'un second lien interne 340, 341, 342, 343, les liens internes permettant l'interconnexion des commutateurs entre eux, tel que présenté sur la figure 1 ; et - des moyens chargés de la réception et de l'émission des données en provenance ou respectivement à destination d'un terminal auquel est 15 connecté le commutateur 3000 via un lien bidirectionnel externe 345, 355, 356. Par ailleurs, le commutateur 3000 comprend également une matrice de connexion (ci-après décrite en relation avec la figure 4) permettant de mettre à jour dynamiquement la liste des connexions en attente, la liste des connexions en 20 cours ainsi que la priorité des paquets associés aux connexions. Les moyens chargés de la réception et de l'émission des données en provenance de ou vers respectivement les premier et second liens bidirectionnels internes comprennent notamment : - un moyen 318 de modification d'en-tête ; 25 - un moyen 319 d'analyse d'en-tête en réception ; - deux modules de trois mémoires volatiles 315 et 316 de réception agencées en FIFOs ; - un module de trois mémoires volatiles 3007 de réception (chacune étant associée à un port interne du commutateur 3000 lui même connecté à un 2907628 15 lien interne bidirectionnel) agencées en FIFOs (les FIFOs étant implémentées au moyens de tranches de RAM) ; - un moyen 317 de contrôle des modules de réception 315, 316 et 3007. Le module de trois mémoires volatiles 3007, ci-après désigné par mémoire 5 de délestage, est dédié à la gestion des boucles de congestion à l'origine des situations de blocage permanent. Pour ce faire, il permet de stocker temporairement des paquets concernés par les boucles de congestion en transit dans le commutateur 3000. Ce processus de stockage est décrit ci-après en relation avec les figures 5 et 6. 10 Les moyens chargés de la réception des données en provenance du terminal comprennent notamment : -trois FIFOs d'entrée 309, 310 et 311 ; et - un moyen 330 de contrôle des FIFOs d'entrée. Les moyens chargés de l'émission des données vers le terminal 15 comprennent notamment : - trois FIFOs de sortie 325, 326 et 327 ; et - un moyen de contrôle 384 des FIFOs de sortie. Ces éléments faisant partie du commutateur 3000 sont reliés par des éléments de liaisons décrits ci-après. On note néanmoins que la plupart des 20 échanges se font autour du moyen d'arbitrage 308 avec utilisation de deux bus de données principaux, TxBus 370 et RxBux 380 dont les accès sontgérés par le moyen d'arbitrage 308. L'utilisation des deux bus internes, les bus de transmission TxBus 370 et de réception RxBus 380, qui permettent de traiter les transferts de données est par 25 exemple détaillée dans la demande de brevet US 2002/0,126,657. Le bus TxBus 370 sert à la transmission de paquets de données depuis un port d'entrée vers un port de sortie du commutateur 3000, lesdits ports correspondant à des liens internes servant à l'interconnexion des commutateurs, ainsi qu'à la transmission de paquets de données depuis le terminal auquel est 30 connecté le commutateur 3000 et un desdits ports de sortie. 2907628 16 Le bus RxBus 380 sert à la transmission de paquets de données depuis un port d'entrée du commutateur 3000 vers le terminal auquel est connecté le commutateur. Le moyen d'arbitrage 308 est en charge de la gestion des accès en écriture 5 sur le bus TxBus 370 contrôlant l'ouverture : - de registres à trois états 301, 302 et 303 grâce à des signaux 304 pour les données issues des FIFO d'entrée 309, 310 et 311 ;et - de registres à trois états 313 et 314, grâce à des signaux de contrôle 329 et 333 respectivement, pour les données issues des mémoires 316 et 3007. 10 Les opérations de lecture du bus TxBus 370 vers un port de sortie d'une interface (non représentée) avec les liens bidirectionnels internes sont gérées par le moyen d'arbitrage 308 en fonction du signal de contrôle Write[0:2] 342 et Status[0:2] 343 vers les FIFO associées à chacun des ports bidirectionnels du commutateur, référencés de 0 à 2. 15 Le moyen d'arbitrage 308 gère aussi les accès en écriture vers le bus RxBus 380 en contrôlant l'ouverture : - d'un registre à trois états 321 à travers des signaux de contrôle 334 pour les données issues de la mémoire 315. Le moyen d'arbitrage 308 effectue aussi les opérations de lecture de 20 données sur le bus RxBus 380 pour une écriture vers l'une des FIFO O_FIFOs 325, 326 et 327, respectivement dédiées à la transmission de données depuis l'un des ports d'entrée, référencés de 0 à 2, vers le terminal auquel est connecté le commutateur 3000 . Le moyen d'arbitrage 308 pour le multiplexage des données sur les bus 25 370 de transmission TxBus et 380 de réception RxBus utilise des signaux 346 de cadencement. C'est le moyen 320 de génération de cycle, par exemple un compteur de Johnson, qui génère ces signaux 346. Le traitement des données entrantes va maintenant être détaillé en fonction de l'origine de ces données : 30 - un port d'entrée avec les signaux 344, 351, 353 et 354 ; 2907628 17 - le lien bidirectionnel externe avec les signaux 345, 355 et 356. Les données entrantes 344 RxDI[15:0] en provenance d'un lien interne seront routées vers le commutateur pour aller : - vers l'un des 3 ports de sortie avec le signal 341 TxDO[17 :0], c'est-à-dire 5 en direction de l'un des liens bidirectionnels internes ; ou - vers le lien externe avec le signal 345 IntRx_Tx[15:0], c'est-à-dire en direction du terminal. Les données entrantes 345 IntRx_Tx[15:0] en provenance d'un lien externe seront routées vers le commutateur pour aller : 10 - vers l'un des 3 ports de sortie avec le signal 341 TxDO[17 :0], c'est-à-dire en direction de l'un des liens bidirectionnels internes Le traitement des données entrantes en provenance d'un lien interne avec les signaux 344 RxDI[15 :0] va maintenant être exposé. La réception de données 344 RxDI[15:0] est gérée à travers le moyen 318 15 de modification d'en-tête et un moyen 317 de contrôle de FIFO, grâce aux signaux de contrôle 351 et 353. Les signaux de contrôle 351 comprennent un signal d'écriture vers le moyen 318 de modification d'en-tête et des signaux de contrôle de flux du module 318, correspondant chacun à des ports d'entrées de l'interface avec les liens bidirectionnels internes. 20 Les morceaux de paquets entrant en provenance du bus 344 parviennent d'abord au moyen de modification d'en-tête 318 pour un traitement relatif aux en-têtes de paquet. Les morceaux de paquets sont ensuite stockés : - dans la mémoire 315 lorsqu'ils sont adressés au bus de réception 380 25 RxBus ; - dans la mémoire 316 lorsqu'ils sont adressés au bus de transmission 370 TxBus ; - dans la mémoire 3007 lorsqu'ils sont destinés à être stockés temporairement du fait qu'ils ont concernés par une boucle de congestion. 2907628 18 Lorsqu'ils sont adressés vers les deux bus, les morceaux de paquets sont stockés dans les deux moyens de stockage 315 et 316 simultanément. De même, le moyen 317 de contrôle de FIFO de réception contrôle les opérations de stockage dans les mémoires 315, 316 et 3007. 5 Les mémoires 315, 316 et 3007 sont des mémoires à double port, découpées en trois zones indépendantes, chacune étant gérée comme une FIFO. On note que le moyen 318 de modification d'en-tête émet un signal représentatif d'une information de routage à destination du moyen 319 d'analyse d'en-tête en réception. Ainsi e moyen 319 d'analyse d'en-tête de paquets reçus 10 commande la forme d'un signal 347 vers le moyen 308 d'arbitrage, ce qui permet d'informer le moyen d'arbitrage sur les connexions à établir au moyen des bus 370 TxBus et 380 RxBus.. Lorsque la fin du paquet est détectée dans le moyen 318 de modification d'en-tête, le signal 347 informe le moyen d'arbitrage 308 de la fin d'une 15 connexion. De même, le moyen d'arbitrage 308 gère les signaux 337 vers le moyen 330 de contrôle des FIFO d'entrée 309, 310 et 311 pour les données en provenance du terminal, en fonction des signaux 338 reçus du moyen 330 de contrôle des FIFO d'entrée 309, 310 et 311. Chacune des FIFO d'entrée 309, 310 20 et 311 est destinée à être connectée à un des trois ports de sortie du commutateur 3000 par le biais du bus TxBus 370, selon les signaux 304 d'ouverture des registres trois états 301, 302 et 303. Les données 345 IntRx_Tx[15 :0] échangées avec le terminal sont gérées : - par le moyen 384 de contrôle des FIFO de sortie 0_FIFO ; et 25 - par le moyen 313 de contrôle des FIFO d'entrée I_FIFO et le module de contrôle par l'intermédiaire des signaux 355 et 356. Le multiplexeur 328 autorise la sélection d'une FIFO de sortie 0_FIFO parmi les trois FIFO 325, 326 ou 327 pour des opérations de lecture de FIFO de données destinées au terminal. Cette opération de sélection est gérée par le moyen 30 384 de contrôle de FIFO de sortie 0_FIFO grâce à un signal 385. 2907628 19 Par ailleurs, les moyens 330 de contrôle de FIFO d'entrées I_FIFO contrôlent des opérations d'écriture du terminal vers l'une des trois FIFO I_FIFO d'entrée 309, 310 ou 311 grâce aux signaux 390. Le traitement des données entrantes en provenance du bus 345 va 5 maintenant être détaillé. Les données 345 IntRx_Tx[15:0] sont reçues par l'une des FIFO d'entrée 309, 310 ou 311 en fonction du port de sortie du commutateur 3000 auquel ces données sont destinées. Ainsi, trois paquets (un par FIFO d'entrée) peuvent être traités simultanément. 10 Chaque FIFO d'entrée est connectée au bus interne TxBus 370 à travers les registres à trois états 301 à 303. Le moyen d'arbitrage 308 est en charge de gérer les accès en écriture sur le bus TxBus 370 contrôlant alternativement l'ouverture des registres trois états, 301 à 303 grâce aux signaux 304 de contrôle d'ouverture des registres trois états, 15 chacun des registres 301 à 303 étant affecté à une FIFO d'entrée 309 à 312. Le moyen d'arbitrage 308 génère aussi des signaux de contrôle 337, qui autorisent la lecture sur l'une des FIFO d'entrées 309 à 311, grâce aux moyens de contrôle des FIFO d'entrée 330. Le moyen 330 de contrôle des FIFO d'entrée informe le moyen d'arbitrage 20 308 de la réussite dune opération de lecture, effectuée par l'une des FIFO d'entrée, grâce au signal de contrôle 338. Lorsque la fin du paquet est détectée dans l'une des FIFO d'entrée 309 à 311, le signal 338 permet d'informer le moyen d'arbitrage 308 d'une fin de connexion. 25 L'utilisation des signaux 354 et 340 Delay_Req[0:2] va maintenant être détaillée. Ces signaux sont spécifiquement utilisés lors des situations de congestion entraînant un blocage permanent de transmissions de données. Lorsqu'un nouveau paquet est reçu par le commutateur 3000, l'en-tête est modifiée par le moyen 318 de modification de l'en-tête. Une information est 30 transmise au moyen 319 d'analyse d'en-tête afin qu'il puisse informer le moyen 2907628 20 308 d'arbitration de la connexion à effectuer pour transférer le paquet reçu. Une matrice de connexion 406 est alors mise à jour, afin de répertorier la connexion à effectuer. La gestion cle la matrice de connexion 406 sera décrite ultérieurement, en relation avec les figures 4, 5 et 6. La matrice de connexion 406 peut par 5 exemple être localisée dans le moyen 317 de contrôle des FIFO 315, 316 et 3007. Elle peut aussi être localisée dans le moyen 308 d'arbitration. Lorsqu'une situation de blocage permanent survient, elle est détectée par l'un des commutateurs 3000 du réseau 200 (passage de l'étape 508 à 509 de l'algorithme présenté à la figure 5). Dans ce cas, cela signifie qu'un paquet n'a 10 pas obtenu dans un lapse de temps prédéterminé la connexion avec le port de sortie du commutateur 3000 auquel le paquet est destiné. Un signal 340 Delay_Req est alors envoyé en direction du port de sortie concerné par la situation de blocage, c'est-à-dire le port de sortie auquel le paquet en attente est destiné. Ainsi le commutateur connecté sur le port de sortie pour lequel le 15 commutateur 3000 a généré le signal 340 Delay_Req, reçoit un signal 354 Delay_Req. Selon le déroulement de l'algorithme présenté à la figure 6 le commutateur 3000 peut alors : stocker le paquet en attente de transfert dans la FIFO de délestage 3007 20 comme indiquer à l'étape 604 de l'algorithme présenté à la figure 6 -émettre un signal 340 Delay_Req à destination d'un autre commutateur 3000 du réseau 200. Une fois passée la situation de blocage permanent et libéré le port de sortie auquel le paquet stocké dans la FIFO de délestage 3007 est destiné, le moyen 308 25 d'arbitration et le moyen 317 de contrôle des FIFO 315, 316 et 3007 échangent des informations par les signaux 332 et 381 afin de permettre la connexion de la FIFO de délestage 3007 sur le bus 370 TxBus par l'ouverture du registre trois états 314 au moyen du signal 333. 2907628 21 On présente, en relation avec la figure 4, une matrice de connexion 406 implémentée dans le commutateur 3000 de la figure 3 selon le mode de réalisation précité de l'invention. Cette matrice de connexion 406 indique les connexions courantes entre les 5 premier 401 (numéro 0), second 402 (numéro 1) et troisième 403 (numéro 2) ports de sortie et les ports d'entrée du commutateur 3000. Cette matrice est dynamiquement remplie et comprend pour chaque port de sortie 401, 402, 403 : un champ In 4011, 4021, 4031 affichant, si une connexion impliquant le port de sortie est en cours afin de transmettre au moins un paquet, le 10 numéro du port d'entrée auquel le port de sortie est connecté. Si le champ In est vide, cela signifie que le port de sortie est libre afin d'établir une nouvelle connexion ; un champ priorité P 4012, 4022, 4032 affichant le niveau de priorité (dont la valeur est une copie de celle du champ priorité 102 de l'entête du 15 paquet) du paquet en transmission à travers le port de sortie. Ce champ P n'est actif que lorsque le champ In n'est pas vide. Une connexion avec un port de sortie du commutateur 3000 ne peut être attribué à un paquet en provenance d'un port d'entrée du commutateur 3000 seulement si le champ In de ce port de sortie est vide. Une fois que le champ 20 In est rempli, il se vide ensuite dès que le champ EOP (défini en relation avec la figure 2) du paquet est sorti du port de sortie. On présente, en relation avec la figure 5, les étapes principales d'un algorithme de gestion d'un paquet de données provenant d'un port d'entrée donné d'un premier commutateur (tel que le commutateur 3000) et requérant une 25 connexion vers un port de sortie donné de ce premier commutateur. Cet algorithme, faisant partie du procédé de transmission selon le mode de réalisation précité de l'invention, est mis en oeuvre par le premier commutateur. Dans une étape 500, l'algorithme de gestion est initialisé lors de la réception, par le premier commutateur sur un port d'entrée donné, de l'entête de 30 paquet provenant du paquet donné. 2907628 22 Puis, dans une étape 501, il est vérifié, dans la matrice de connexion (illustrée en relation avec la figure 4), si le champ In du port de sortie donné est vide. Si le champ ln est vide (ce qui signifie qu'aucun paquet n'est en train 5 d'être transmis vers le port de sortie donné), alors dans une étape 504, le champ In est rempli avec le numéro du port d'entrée et le champ P est rempli avec le niveau de priorité du paquet requérant compris dans l'entête du paquet requérant. Puis, dans une étape 505, le paquet requérant est transmis du port d'entrée 10 donné vers le port de sortie donnée. Ensuite, dans une étape 506, il est vérifié si le paquet requérant est complètement transmis. Si le paquet requérant n'est pas complètement transmis, alors l'étape 506 est à nouveau mise en oeuvre. Si le paquet requérant est complètement transmis (c'est-à-dire que son 15 champ EOP est sorti du port de sortie donné), alors, dans une étape 507, la matrice de connexion est mise à jour en vidant le champ In du port de sortie donné avant que l'étape 500 ne soit remise en oeuvre. Si le champ In n'est pas vide, ce qui signifie qu'un paquet courant est en train d'être transmis par le port de sortie donné, alors dans une étape 502, le 20 niveau de priorité
du paquet requérant (en attente) est comparé avec le niveau de priorité du paquet courant. Si le niveau de priorité du paquet requérant est inférieur au niveau de priorité du paquet courant, alors le premier commutateur met temporairement le paquet requérant en attente. Puis, l'étape 500 est remise en oeuvre.
25 Si le niveau de priorité du paquet requérant est supérieur au niveau de priorité du paquet courant, alors une temporisation est mise en oeuvre dans une étape référencée 510. Dans une étape 508, il est vérifié si la temporisation est écoulée, si la temporisation n'est pas écoulée, alors il est vérifié si champ In du port de 30 sortie donné est vide. Dans ce cas, ce qui signifie que le port de sortie a été libéré, 2907628 23 l'étape 504 est mise en oeuvre, sinon l'étape 508 est remise en oeuvre. Si la temporisation est écoulée, alors cela signifie que le paquet courant est compris dans une boucle de congestion et donne lieu à une situation de blocage permanent du dispositif de commutation 200.
5 Il est à noter que selon un mode préférentiel de l'invention, tel que décrit par l'algorithme présenté à la figure 5, une temporisation n'est mise en oeuvre que si le paquet requérant a un niveau de priorité supérieur au paquet courant. En effet, mettre en oeuvre une temporisation que si le paquet requérant a un niveau de priorité supérieur au paquet courant permet de réduire le nombre de paquets mis 10 en attente dans des FIFO de délestage de commutateurs du réseau 200, comme décrit ci-après en relation avec la figure 6. En prenant par exemple la situation de blocage permanent de la figure 1 ci-après détaillée en relation avec les figures 7 à 9, la mise en oeuvre d'une temporisation que si le paquet requérant a un niveau de priorité supérieur au 15 paquet courant fait que seul le paquet B sera stocké temporairement dans la FIFO de délestage 801 du commutateur 215. Une mise en oeuvre de temporisation dès qu'un paquet est en attente sur un port d'entrée d'un commutateur, sans prendre en compte la différence de priorités entre le paquet en attente (requérant) et le paquet courant, conduirait à la mise en attente des paquets A et B, ce qui permet 20 de résoudre la situation de blocage permanent mais qui présente l'inconvénient de faire subir au paquet A en plus du paquet B la latence supplémentaire liée à la mise en attente dans une FIFO de délestage. Alors, dans une étape 503, une requête de mise en attente, sous la forme d'un signal Delay._Req, est envoyée à un second commutateur, adjacent au 25 premier commutateur, et qui est relié au port de sortie donné. Cette requête de mise en attente indique au second commutateur qu'il faut mettre en attente le paquet courant bloqué par la boucle de congestion. Dans le cadre de présent mode de réalisation de l'invention, le second commutateur est le commutateur rencontré immédiatement après le premier 30 commutateur sur le chemin de transmission du paquet bloqué. Cependant, selon 2907628 24 une variante de ce mode de réalisation, le second commutateur peut être le commutateur rencontré immédiatement avant le premier commutateur sur le chemin de transmission du paquet bloqué. La durée de la temporisation mise en oeuvre à l'étape 510 peut différer 5 d'un commutateur à l'autre et peut notamment être dépendante de la priorité du paquet requérant et/ou de la priorité du paquet courant. On peut éviter ainsi que plusieurs commutateurs du réseau 200 détectent la situation de blocage permanent au même moment et génèrent simultanément une multitude de requêtes de mise en attente, sous la forme de signaux Delay_Req, dont un sous-ensemble ne serait pas 10 utile pour résoudre la situation de blocage permanent. Il est alors possible de résoudre la situation de blocage permanent en ne stockant que les paquets de plus faible priorité intervenant dans la boucle de congestion entraînant la situation de blocage permanent, en mettant en oeuvre une temporisation dont la valeur serait dépendante des niveaux de priorité du paquet 15 requérant et/ou du niveau de priorité du paquet courant. En effet, si l'on applique une temporisation de durée proportionnelle à la priorité du paquet courant et inversement proportionnelle à la différence entre la priorité du paquet requérant et la priorité du paquet courant, cette durée sera d'autant plus courte que le paquet courant a une faible priorité et que le paquet 20 requérant a une forte priorité. Ceci permet de stocker les paquets de faible priorité et de débloquer plus rapidement les paquets de forte priorité. On présente, en relation avec la figure 6, les étapes principales d'un algorithme de gestion d'une requête de mise en attente, sous la forme d'un signal Delay_Req, envoyée par un premier commutateur, et reçu par un second 25 commutateur, adjacent au premier commutateur, le premier commutateur étant connecté à un port d'entrée donné du second commutateur. Cet algorithme, faisant partie du procédé de transmission selon le mode de réalisation précité de l'invention, est mis en oeuvre par le second commutateur. La requête de mise en attente indique au second commutateur qu'il faut mettre en 30 attente un paquet donné bloqué par une boucle de congestion.
2907628 25 Dans une étape 600, l'algorithme de gestion est initialisé. Puis, dans une étape 601, il est vérifié si une requête de mise en attente Delay_Req, envoyée par le premier commutateur connecté au port d'entrée donné du second commutateur est reçu par le second commutateur sur ce port d'entrée 5 donné. Si aucune telle requête n'est reçue, alors l'étape 600 est remise en oeuvre. Si un signal de mise en attente Delay_Req est reçu par le second commutateur, alors, dans une étape 602, il est vérifié si ce port d'entrée donné est lui-même connecté à un port de sortie donné du second commutateur (c'est-à-dire 10 que le champ In de la matrice de connexion correspondant au port de sortie donné est rempli). Si le port d'entrée donné est lui-même connecté à un port de sortie donné, ce qui signifie que la tête du paquet bloqué est sortie du second commutateur, alors dans une étape 603, le signal de mise en attente Delay_Req est transmis à un 15 troisième commutateur, adjacent au second commutateur, et qui est connecté au port de sortie donné du second commutateur. Puis l'étape 600 est à nouveau mise en oeuvre. Si le port d'entrée donné n'est connecté à aucun port de sortie, ce qui signifie que la tête du paquet bloqué est en attente (du fait du blocage permanent) 20 de la libération du port de sortie du second commutateur par lequel doit transiter le paquet bloqué (ce qui signifie qu'un paquet courant est en train d'être transmis par ce port de sortie de transit), alors dans une étape 606, le niveau de priorité du paquet bloqué est comparé avec le niveau de priorité du paquet courant. Si le niveau de priorité du paquet bloqué est supérieur au niveau de priorité 25 du paquet courant, alors, dans l'étape 603, le signal de mise en attente Delay_Req est transmis à un quatrième commutateur, adjacent au second commutateur, et qui est connecté au port de sortie de transit du second commutateur (qui sert à transmettre le paquet courant), afin de s'assurer que la requête de mise en attente concerne le paquet de priorité la plus faible.
2907628 26 Si le niveau de priorité du paquet bloqué est inférieur au niveau de priorité du paquet courant, alors dans une étape 604, le paquet bloqué est stocké dans la FIFO de délestage du second commutateur, dans la tranche RAM associée au port d'entrée donné.
5 Grâce au stockage intermédiaire de ce paquet bloqué et participant donc à la boucle de congestion, la boucle de congestion (et donc la situation de blocage permanent) est supprirnée au niveau du paquet présentant le niveau de priorité le plus faible. Dans une étape 605, il est attendu que le port de sortie de transit du second 10 commutateur soit libéré. Une fois que le port de sortie de transit est libéré, dans une étape 607, la prochaine connexion avec ce port de sortie de transit est accordée au paquet stocké dans la FIFO de délestage, le moyen d'arbitrage du second commutateur peut établir une connexion entre la mémoire FIFO de délestage et ce port de sortie donné. Le champ In correspondant dans la table 15 de connexion est rempli en conséquence. Ainsi, il est assuré qu'aucune perte de paquet n'est intervenue pendant la suppression de la situation de blocage permanent et que les paquets accusant la latence maximale lors de leur routage sont les paquets de faible priorité (ceux qui auront été stockés temporairement dans une mémoire de délestage).
20 On illustre, en relation avec les figures 7 à 9, la mise en oeuvre du procédé de transmission selon le mode de réalisation précité de l'invention dans le cadre de l'exemple de situation de blocage permanent due à la boucle de congestion précédemment décrit dans le cadre du dispositif de commutation 200 de la figure 1.
25 Cette boucle de congestion est formée par le premier paquet A dont le chemin est référencé 211, le second paquet B dont le chemin est référencé 210 et le troisième paquet C dont le chemin est référencé 209. On suppose que le niveau de priorité du paquet A est supérieur aux niveaux de priorité des paquets B et C et que le niveau de priorité du paquet C est supérieur au niveau de priorité du paquet 30 B.
2907628 27 La figure 7 présente un exemple de contenu de la matrice de connexion de chacun des commutateurs 212 à 219 du dispositif de commutation 200 au moment de la situation de blocage permanent. La matrice de connexion 701 correspond au commutateur 212, la matrice de connexion 702 correspond au commutateur 216, 5 la matrice de connexion 703 correspond au commutateur 217, la matrice de connexion 704 correspond au commutateur 213, la matrice de connexion 708 correspond au commutateur 214, la matrice de connexion 707 correspond au commutateur 218, la matrice de connexion 705 correspond au commutateur 215 et la matrice de connexion 706 correspond au commutateur 219. Ces tables de 10 connexion 701 à 708 représentent l'ensemble des connexions actives dans les commutateurs 212 à 219 du dispositif de commutation 200. Ainsi, au niveau du sixième commutateur 217, le troisième paquet C attend que le port de sortie numéro 0 du sixième commutateur 217 soit libéré de la transmission du premier paquet A.
15 Au niveau du quatrième commutateur 215, le second paquet B attend que le port de sortie numéro 2 du quatrième commutateur 215 soit libéré de la transmission du troisième paquet C. Au niveau du second commutateur 213, le premier paquet A attend l'occurrence de la première des deux conditions suivantes : 20 - une temporisation (décrite en relation avec l'étape 508 précitée de la figure 5) arrive à expiration ; le port de sortie numéro 2 du second commutateur 213 est libéré de la transmission du second paquet B. En effet, du fait que le niveau de priorité du paquet A est supérieur au 25 niveau de priorité du paquet B, une temporisation est armée comme indiqué à l'étape 508 précitée de la figure 5. Il pourra par ailleurs être noté que, selon l'algorithme décrit en relation avec la figure 5, du fait que le niveau de priorité du paquet B est inférieur au niveau de priorité du paquet C et que, du fait que le niveau de priorité du paquet C est inférieur au niveau de priorité du paquet A, une 30 telle temporisation n'est pas armée par les commutateurs 215 et 217.
2907628 28 Du fait de la boucle de congestion provoquant la situation de blocage permanent, la temporisation expire alors que le port de sortie numéro 2 du second commutateur 213 n'est toujours pas libéré de la transmission du second paquet B. Ainsi, conformément à l'étape 503 précitée de la figure 5, un signal Delay_Req de 5 mise en attente est généré et envoyé par le second commutateur 213 sur son port de sortie numéro 2 au troisième commutateur 214. Lorsque le troisième commutateur 214 reçoit le signal Delay_Req de mise en attente par son port d'entrée 0, du fait qu'une connexion existe déjà entre le port d'entrée numéro 2 et le port de sortie numéro 0 du troisième commutateur 10 214 pour la transmission du paquet B, conformément à l'étape 603 précitée de la figure 6, le signal de mise en attente est transmis depuis le port de sortie numéro 0 du troisième commutateur 214 au quatrième commutateur 215. Lorsque le quatrième commutateur 215 reçoit le signal Delay_Req de mise en attente, du fait qu'aucune connexion dans le matrice de connexion 705 existe 15 entre le port d'entrée numéro 0 et les ports de sortie du quatrième commutateur 215 (ce qui signifie que le second paquet B est en attente au niveau du port d'entrée numéro 0 du quatrième commutateur 215), conformément à l'étape 604 précitée de la figure 6, le second paquet B est stocké dans la mémoire FIFO de délestage 801 du quatrième commutateur 215, dans la tranche RAM associée au 20 port d'entrée numéro O. Ainsi, la boucle de congestion à l'origine de la situation de blocage est supprimée et les premier A et troisième C paquets ne sont donc plus bloqués et peuvent donc poursuivre leur routage 210 et 211 de type ver respectivement vers les terminaux 204 et 201.
25 Ensuite, le second paquet B, devant être routé par le port de sortie numéro 2 du quatrième commutateur 215, est routé vers ce port dès qu'il devient libre (conformément à l'étape 605 précitée en relation avec la figure 6) et peut donc poursuivre son routage 209 de type ver vers le terminal 205. Les figures 8 et 9 illustrent, dans le réseau de communication à 30 commutation de paquets 2000 de la figure 1, respectivement, la transmission des

Claims (24)

REVENDICATIONS
1. Procédé de transmission de paquets de données dans un réseau de communication (2000) à commutation de paquets, comprenant une pluralité de commutateurs (212, 213, 214, 215, 216, 218, 219) interconnectés par une pluralité de liens, à chaque paquet étant associée une priorité, caractérisé en ce que ledit procédé comprend les étapes suivantes effectuées par un premier commutateur (212, 213, 214, 215, 216, 218, 219) du réseau : - détermination d'une situation de blocage permanent dans la transmission de données ; - détermination d'au moins deux paquets participant à ladite situation de blocage permanent, un premier paquet, dit paquet bloquant, étant en cours de transmission sur un premier lien et, au moins un second paquet, dit paquet en attente, étant bloqué sur un second lien en attente de transmission vers le premier lien ; -détermination (502) si le paquet en attente a une priorité associée plus élevée que le paquet bloquant ; - si le paquet en attente a une priorité associée plus élevée que le paquet bloquant, envoi (503) sur un desdits premier et second liens d'une première requête de délestage vers un second commutateur (212, 213, 214, 215, 216, 218, 219).
2. Procédé selon la revendication 1, caractérisé en ce que, si le paquet en attente a une priorité associée plus élevée que le paquet bloquant, ladite première requête de délestage commande le stockage, dans une mémoire de délestage, d'un paquet déterminé associé à une priorité moins élevée que la priorité associée au paquet en attente, ledit paquet déterminé participant à ladite situation de blocage.
3. Procédé selon la revendication 1, caractérisé en ce que si le paquet en attente a une priorité associée plus faible que le paquet bloquant, le procédé de transmission comprend également une étape de stockage (604) du paquet en attente dans une mémoire de délestage.
4. Procédé selon l'une quelconque des revendications 1 et 2, caractérisé en ce 2907628 31 qu'il comprend en outre les étapes suivantes : détermination si le premier lien est libre de transmission ; - dans le cas d'une détermination positive, transmission du paquet en attente du second lien vers le premier lien. 5
5. Procédé selon la revendication 3, caractérisé en ce qu'il comprend en outre les étapes suivantes : - détermination si le premier lien est libre de transmission ; - dans le cas d'une détermination positive, transmission du paquet stocké de la mémoire de délestage vers le premier lien. 10
6. Procédé selon l'une quelconque des revendications 1 à 5, caractérisé en ce qu'il comprend au préalable les étapes suivantes : - réception depuis le second lien de premières données du paquet en attente ; - détermination si le premier lien est libre de transmission ; et en ce que, si le premier lien n'est pas libre de transmission, il comprend une 15 étape de détermination de temps d'attente de transmission du paquet en attente.
7. Procédé selon la revendication 6, caractérisé en ce que la détermination d'une situation de blocage permanent est la détection que le temps d'attente de transmission du paquet en attente a atteint une valeur prédéterminée.
8. Procédé selon la revendication 7, caractérisé en ce que la valeur 20 prédéterminée est fonction de la priorité du paquet en attente et/ou de la priorité du paquet bloquant.
9. Procédé selon l'une quelconque des revendications 4 à 8, caractérisé en ce que la détermination si le premier lien est libre de transmission s'effectue par accès à une table de connexion, ladite table de connexion comprenant une 25 description d'un état d'occupation en transmission pour un ensemble de liens connectés au premier commutateur.
10. Procédé selon l'une quelconque des revendications 1 à 6, caractérisé en ce que la détermination d'une situation de blocage permanent est la réception d'une seconde requête de délestage provenant d'un troisième commutateur sur un 30 desdits premier et second liens, dit lien de réception. 2907628 32
11. Procédé selon la revendication 10, caractérisé en ce que la réception d'une seconde requête de délestage depuis un troisième commutateur (212, 213, 214, 215, 216, 218, 219) déclenche une étape de détermination si le paquet en cours de transmission sur le lien de réception est aussi en cours de transmission sur un 5 autre lien, dit lien connecté, et en ce que, dans le cas d'une détermination positive, une troisième requête de délestage est envoyée sur le lien connecté.
12. Produit programme d'ordinateur, caractérisé en ce qu'il comprend des instructions de code de programme pour l'exécution des étapes du procédé de transmission selon l'une quelconque des revendications 1 à 11, lorsque ledit 10 programme est exécuté sur un ordinateur.
13. Moyen de stockage, éventuellement totalement ou partiellement amovible, lisible par un ordinateur, stockant un jeu d'instructions exécutables par ledit ordinateur pour mettre en oeuvre le procédé de transmission selon l'une quelconque des revendications 1 à 11. 15
14. Premier commutateur d'un réseau de communication (2000) à commutation de paquets, comprenant une pluralité de commutateurs (212, 213, 214, 215, 216, 218, 219) interconnectés par une pluralité de liens, ledit premier commutateur comprenant des moyens de transmission de paquets de données dans ledit réseau, à chaque paquet étant associée une priorité, 20 caractérisé en ce qu'il comprend : - des moyens de détermination d'une situation de blocage permanent dans la transmission de données ; - des moyens de détermination d'au moins deux paquets participant à ladite situation de blocage permanent, un premier paquet, dit paquet bloquant, 25 étant en cours de transmission sur un premier lien et, au moins un second paquet, dit paquet en attente, étant bloqué sur un second lien en attente de transmission vers le premier lien ; - des moyens de détermination si le paquet en attente a une priorité associée plus élevée que le paquet bloquant ; 30 - des moyens d'envoi sur un desdits premier et second liens d'une première 2907628 33 requête de délestage vers un second commutateur (212, 213, 214, 215, 216, 218, 219), lesdits moyens d'envoi étant activés si le paquet en attente a une priorité associée plus élevée que le paquet bloquant.
15. Premier commutateur selon la revendication 14, caractérisé en ce que, si le 5 paquet en attente a une priorité associée plus élevée que le paquet bloquant, ladite première requête de délestage commande le stockage, dans une mémoire de délestage, d'un paquet déterminé associé à une priorité moins élevée que la priorité associée au paquet en attente, ledit paquet déterminé participant à ladite situation de blocage. 10
16. Premier commutateur selon la revendication 14, caractérisé en ce qu'il comprend également des moyens de stockage du paquet en attente dans une mémoire de délestage, lesdits moyens de stockage du paquet en attente étant activés si le paquet en attente a une priorité associée plus faible que le paquet bloquant. 15
17. Premier commutateur selon l'une quelconque des revendications 14 et 15, caractérisé en ce qu'il comprend en outre : - des moyens de détermination si le premier lien est libre de transmission ; - des moyens de transmission du paquet en attente du second lien vers le premier lien, lesdits moyens de transmission du paquet en attente étant 20 activés si le premier lien est libre de transmission.
18. Premier commutateur selon la revendication 16, caractérisé en ce qu'il comprend en outre : - des moyens de détermination si le premier lien est libre de transmission ; - des moyens de transmission du paquet stocké de la mémoire de délestage 25 vers le premier lien, lesdits moyens de transmission du paquet stocké étant activés si le premier lien est libre de transmission.
19. Premier commutateur selon l'une quelconque des revendications 14 à 18, caractérisé en ce qu'il comprend : - des moyens de réception depuis le second lien de premières données du 30 paquet en attente ; 2907628 34 -des moyens de détermination si le premier lien est libre de transmission ; et en ce que ledit premier commutateur comprend également des moyens de détermination de temps d'attente de transmission du paquet en attente, lesdits moyens de détermination de temps d'attente de transmission du paquet en attente 5 étant activés si le premier lien n'est pas libre de transmission.
20. Premier commutateur selon la revendication 19, caractérisé en ce que les moyens de détermination d'une situation de blocage permanent comprennent des moyens de détection que le temps d'attente de transmission du paquet en attente a atteint une valeur prédéterminée. 10
21. Premier commutateur selon la revendication 20, caractérisé en ce que la valeur prédéterminée est fonction de la priorité du paquet en attente et/ou de la priorité du paquet bloquant.
22. Premier commutateur selon l'une quelconque des revendications 17 à 21, caractérisé en ce que les moyens de détermination si le premier lien est libre de 15 transmission comprennent des moyens d'accès à une table de connexion, ladite table de connexion comprenant une description d'un état d'occupation en transmission pour un ensemble de liens connectés au premier commutateur.
23. Premier commutateur selon l'une quelconque des revendications 14 à 19, caractérisé en ce que les moyens de détermination d'une situation de blocage 20 permanent comprennent des moyens de réception d'une seconde requête de délestage provenant d'un troisième commutateur (212, 213, 214, 215, 216, 218, 219) sur un desdits premier et second liens, dit lien de réception.
24. Premier commutateur selon la revendication 23, caractérisé en ce que les moyens de réception d'une seconde requête de délestage depuis un troisième 25 commutateur comprennent des moyens de déclenchement de moyens de détermination si le paquet en cours de transmission sur le lien de réception est aussi en cours de transmission sur un autre lien, dit lien connecté, et en ce que ledit premier commutateur comprend des moyens d'envoi d'une troisième requête de délestage sur le lien connecté, lesdits moyens d'envoi d'une 2907628 troisième requête étant activés si le paquet en cours de transmission sur le lien de réception est aussi en cours de transmission sur un autre lien.
FR0609319A 2006-10-24 2006-10-24 Procede de transmission de paquets de donnees, produit programme d'ordinateur, moyen de stockage et commutateur correspondants Expired - Fee Related FR2907628B1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR0609319A FR2907628B1 (fr) 2006-10-24 2006-10-24 Procede de transmission de paquets de donnees, produit programme d'ordinateur, moyen de stockage et commutateur correspondants

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0609319A FR2907628B1 (fr) 2006-10-24 2006-10-24 Procede de transmission de paquets de donnees, produit programme d'ordinateur, moyen de stockage et commutateur correspondants

Publications (2)

Publication Number Publication Date
FR2907628A1 true FR2907628A1 (fr) 2008-04-25
FR2907628B1 FR2907628B1 (fr) 2008-12-19

Family

ID=38110590

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0609319A Expired - Fee Related FR2907628B1 (fr) 2006-10-24 2006-10-24 Procede de transmission de paquets de donnees, produit programme d'ordinateur, moyen de stockage et commutateur correspondants

Country Status (1)

Country Link
FR (1) FR2907628B1 (fr)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6859435B1 (en) * 1999-10-13 2005-02-22 Lucent Technologies Inc. Prevention of deadlocks and livelocks in lossless, backpressured packet networks

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6859435B1 (en) * 1999-10-13 2005-02-22 Lucent Technologies Inc. Prevention of deadlocks and livelocks in lossless, backpressured packet networks

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HYOJEONG SONG ET AL: "Throttle and preempt: a new flow control for real-time communications in wormhole networks", PARALLEL PROCESSING, 1997., PROCEEDINGS OF THE 1997 INTERNATIONAL CONFERENCE ON BLOOMINGTON, IL, USA 11-15 AUG. 1997, LOS ALAMITOS, CA, USA,IEEE COMPUT. SOC, US, 11 August 1997 (1997-08-11), pages 198 - 202, XP010245216, ISBN: 0-8186-8108-X *
ROCHE C ET AL: "Performance of congestion control mechanisms in wormhole routing networks", INFOCOM '97. SIXTEENTH ANNUAL JOINT CONFERENCE OF THE IEEE COMPUTER AND COMMUNICATIONS SOCIETIES. DRIVING THE INFORMATION REVOLUTION., PROCEEDINGS IEEE KOBE, JAPAN 7-11 APRIL 1997, LOS ALAMITOS, CA, USA,IEEE COMPUT. SOC, US, vol. 3, 7 April 1997 (1997-04-07), pages 1365 - 1372, XP010251959, ISBN: 0-8186-7780-5 *

Also Published As

Publication number Publication date
FR2907628B1 (fr) 2008-12-19

Similar Documents

Publication Publication Date Title
EP0431438B1 (fr) Procédé de gestion des flux dans un réseau numérique de télécommunication à intégration de services, à large bande, et réseau pour la mise en oeuvre de ce procédé
EP0858193B1 (fr) Procédé et dispositif d'allocation de ressources dans un réseau numerique de transmission par paquets
EP2064853B1 (fr) Procédé d'optimisation du contrôle du trafic dans un réseau de télécommunication par paquets
FR2820921A1 (fr) Dispositif et procede de transmission dans un commutateur
CA2215486A1 (fr) Systeme de gestion de trafic et de controle d'encombrement pour reseaux a base de paquets
EP1507374A1 (fr) Procédé et dispositif de gestion de priorité lors de la transmission d'un message.
FR2758036A1 (fr) Commutateur a mode de transfert asynchrone de cellule de plusieurs canaux d'entree a plusieurs canaux de sortie
FR2948840A1 (fr) Reseau de communication sur puce avec garantie de service
FR2883116A1 (fr) Architecture de communication globalement asynchrone pour systeme sur puce.
FR2883117A1 (fr) Architecture de noeud de communication dans un systeme de reseau sur puce globalement asynchrone.
EP1884875A1 (fr) Système de gestion de messages transmis dans un réseau d'interconnexions sur puce
FR2758035A1 (fr) Commutateur a mode de transfert asynchrone
FR2804812A1 (fr) Procede et dispositif de communication entre un premier et un deuxieme reseau
FR2801455A1 (fr) Procede de transmission de flux de donnees sur un reseau atm, et dispositif pour la mise en oeuvre du procede
FR2865334A1 (fr) Procede et systeme de transmission de messages dans un reseau d'interconnexions.
EP1770927B1 (fr) Système de commutation de paquets pour noeud de réseau de communication
EP0183592A1 (fr) Commutateur de paquets asynchrone
EP0587468A2 (fr) Réseau de connexion photonique permettant une diffusion
EP0410860B1 (fr) Dispositif passerelle de connexion d'un bus d'ordinateur à un réseau fibre optique en forme d'anneau
EP0961446B1 (fr) Contrôle de congestion dans un noeud ATM
EP1212879B1 (fr) Procede et systeme de transmission d'une chaine de messages pour base de donnees
FR2907628A1 (fr) Procede de transmission de paquets de donnees, produit programme d'ordinateur, moyen de stockage et commutateur correspondants
FR3001310A1 (fr) Interface de reseau sur puce dotee d'un systeme adaptatif de declenchement d'envoi de donnees
EP0470875B1 (fr) Contrôleur de communication entre un ordinateur et une pluralité de terminaux de type RNIS
EP1401156B1 (fr) Procédé de contrôle d'accès dans un réseau à ressources partagées, noeud et réseau correspondants

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20140630