Brevet FR2826215A1 — publié le 20021220

03602/SYC/NSRD F:\Salle\F1 03602\PREMDEP\FIT\projelbr.doc 1 2826215 Procédé de transmission d'un message actif dans un circuit virtuel La présente invention est relative aux réscaux de télécommunication dont les n_ubs sont capables de traiter de façon spécifique, les messages d'information qu'ils reçoivent. L'invention s'applique particulièrement aux réseaux actifs. Ce concept de réssau actif a été introduit par les travaux du DARPA en 1994 et a fait l'objet de plusieurs conférences internationales, par exemple IWAN 99 (Internaflonal Workshop on Active Networks) ou IWAN 2000. Un réseau actif est un réseau dans lequel les n_uSs, ou certains d'entre eux, sont capables de traiter d'une façon spécifique, certains messages véhiculés par le réseau. Autrement dit, cela signifie que ces n_uds doivent étre capables de dérouler un algoritUme autre que ceux qu'ils connaissaient lors de leur conception. Au sein d'un réseau actif, tous les n_uds ne sont pas oblipatoirement pourvus de cette capacité de traitement: on distingue donc des n_uds actifs de n_ubs non actifs (c'est-à-dire normaux). De la même façon, tous les messages ne nécessitent pas forcément un traitement spécifique: on distingue donc les messages (ou paquets) actifs des messages non-actifs (ou normaux). Cette technologie pose un problème lorsqu'on veut l'utiliser confointement au protocole MPLS (Multi-Protocol Label Switching), tel que décrit dans le RFC (Request for Comments) 3031 de l'IETF (Internet Engineering Task Force). Le protocole MPLS consiste à donner la possibilité de créer des circuits virtuels au sein d'un réseau de données fonctionnant normalement en commutation de paquets, tels les réseaux utilisant les protocoles de la pile FIOLOS \\klefilOl\DPl$\Salle\F103792\PREbADEP\Fll\projelbr.doc 2 2826215 TCP/IP (Transmission Control Protocol / Internet Protocol) dont Internet est un exemple. Dans le cadre d'un réscau internet, les n_uds sont habitueilement appelés routeurs et les messages, paquets. Le principe du protocole MPLS repose sur l'adionction aux paquets d'un entête contenant une étiquette (label en anglais), ou une pile d'étiquettes, permettant de délinir un circuit. A la réception d'un tel paquet, les routeurs peuvent, à la simple lecture de ces étiquettes, déterminer au moyen d'une table de correspondance, le routeur vers lequel il doit être transmis. Cette table de correspondance est négociée au préclable par les routeurs devant faire partie de ce circuit virtuel. Ce procédé permet de réserver un circuit virtuel au sein duquel les paquets seront rapidement transmis, sur la simple analyse d'une ou de plusieurs étiquettes et d'une table de correspondance, et non plus en mettant en _uvre les algorithmes classiques de routage. Le temps de transmission d'un paquet par un routeur est donc considérablement plus court, et il en est de méme pour le temps de transmission de bout en bout. Ce procédé permet de surcro'^t d'avoir l'assurance que tous les paquets prendront le même chemin. Toutefois, dans le cadre d'un réseau actif, I'établissement d'un circuit virtuel pose un problème technique important. En effet, dans la mesure o la transmission se base uniquement sur la lecture de l'entête ad jointe à cet effet, le contenu du paquet n'est pas analysé. Il ne peut alors pas étre déterminé si ce contenu est celui d'un paquet actif ou non. L'invention a pour but de pallier ce problème en proposant un procédé permettant de concilier les contraintes de la transmission dans un circuit virtuel et celles des réseaux actifs. FIOLOS \\klefi l0 1 \DPI$\5alle\F103 792\PREMD EP\FIT\projeibr.doc 3 2826215 Pour ce faire, I'invention a pour objet un procédé de transmission d'un message au travers d'un réssau de donnces, comportant une première étape consistant à établir un circuit virtuel entre un premier n_ud et un second n_ud, les n_ubs appartenant au circuit virtuel transmettant le message en fonction d'un entête. Ce procédé se caractérise en ce qu'il comporte de surcro^'t une étape d'insertion d'informations dans l'entête, et en ce que chaque n_ud du circuit virtuel détermine si le message est un message actif en fonction de ces informations. 11 devient alors possible pour chaque n_ud faisant partie d'un circuit virtuel, par exemple MPLS, de déterminer qu'un message reçu est un message actif et, auquel cas, de prendre les mesures adéquates (par exemple, déclencher le code contenu dans ce message). Selon une mise en _uvre particulière de l'invention, lorsqu'un n_ud du circuit virtuel recoit un message actif, il duplique au préclable le message reçu, en transmet un exemplaire au n_ud suivant et déclenche le traitement associé au message actif sur le deuxième exemplaire. Ce mécanisme de duplication peut par exemple être déclenché en fonction d'un identificateur spécifique contenu dans ces informations. Selon une mise en _uvre de l'invention, ces informations contiennent des don nées relatives à l 'environ nement d 'exécution nécessaire pour le traitement du message actif. Selon une mise en _uvre particulière, le circuit virtuel est conforme au protocole MPLS (Mulfi-protocol Label Switching) défini dans le RFC 3031 de l'IETF. FIOLOS \\klefilO 1 \DPI$\5alle\F1 03792\PREMDEP\FIT\projelEr. doc Enfin, les informations peuvent, selon un premier mode de réalisation, être insérces sous la forme d'une étiquette da ns la pi le d 'étiq uette du message, ou, selon un deuxième mode de réclisation, être insérses dans le champ > d'une étiquette de la pile d'étiquettes du message. D'autres modes de réclisation sont, bien entendu, possibles. L'invention a pour autre objet un routeur possédant des moyens pour mettre en _uvre ces procédés. L'invention et ses avantages appara^'tront de fac,on plus claire dans la description qui va suivre, en liaison avec les figures jointes. La figure 1 illustre un message selon une mise en _uvre de l'invention utilisant le protocole MPLS. La figure 2 représente le contenu de l'entête d'un message selon cette même mise en _uvre. Typiquement, un message (ou paquet) d'un réseau de donnces est constitué d'une suite d'entêtes et d'un corps de message. Cette suite d'entêtes est représentative des différents couches du modèle de réscau. Les entêtes les plus proches du corps de message sont celles correspondant aux couches les plus hautes, tandis que les entêtes les plus éloignés du corps de message (et donc les plus proches du début du message) correspondent aux couches les plus basses. Si l'on reprend le modèle OSI (Open Systems Interconnection) en 7 couches promus par l'ISO (International Standards Organization), cela signifie que les entêtes de niveaux situés avant les entêtes de niveaux FIOLOS \\klefilol\Dpl$\sclle\Flo3792\pREMDEp\FlT\proielbr doc 2826215 La figure 1 illustre un paquet conforme au protocole MPLS. Ce paquet contient une pile d'étiquette LS situce en début de paquet, c'est-à-dire avant l'entête de niveau Cette pile d'étiquette peut former un entête indépendant ou bien être comprise dans des champs adéquats d'un entête de niveau inférieur au niveau >. Autrement dit, cette pile d'étiquette LS doit se situer avant l'entête IP (Internet Protocol). La pile d'étiquette LS est composce d'un ensemble, éventuellement réduit à un singleton, d'étiquettes LSEl, LSE2, LSE3... LSEn. La structure d'une étiquette (ou LSE pour Label Stack Enfry, en anglais) est illustrée par la figure 2. Selon le RFC 3032 de l'IETF, une étiquette comporte 4 champs. Le champ > représente l'étiquette proprement dite, c'est-à-dire un identificateur permettant le routage du paquet. Le champ expérimenta les. Le champ exemple l'entête IP. Enfin, le champ " TTL " (pour Time To Live) est un champ classique codant l'age de l'étiquette. Il permet de limiter la propagation d'un paquet à un nombre délini de sauts. Selon une première mise en _uvre de l'invention, on insère des informations dans le champ > d'une des étiquettes de la pile d'étiquette du paquet. Ces informations permettent, entre autres, de repérer que le paquet concerné est un paquet actif. FIOLOS \\klefilOl\DPl$\Salle\F103792\PREDEP\FIT\projeibr.doc 6 2826215 Selon une seconde mise en _uvre, préférentielle, on réserve une étiquette complète pour stocker ces informations, par exemple la dernière de la pile. Une (ou plusieurs) valeur du champ > peut alors être définie par l'IANA (Internet Assigned Number Authority) afin de signifier que I'étiquette en question contient de telles informations. Ces informations doivent contenir au moins des donnéss permettant de déterminer que le paquet est un paquet actif. Ces données peuvent prendre la forme d'un identificateur binaire. Selon une mise en _uvre de l'invention, ces informations peuvent aussi contenir un identificateur spécifique, permettant d'indiquer au n_ud (ou routeur) recevant ce paquet qu'il doit le dupliquer avant de le transmettre au routeur suivant. Il peut alors déclencher le traitement associé à ce paquet, sans retarder la transmission. Cette façon de faire permet d'accélérer l'acheminement d'un paquet actif au sein d'un réseau. Ce comportement peut être le comportement ' du routeur, toutefois il n'est pas toujours adapté (notamment, si l'on veut faire dépendre l'algorithme de routage du code actif associé au paquet). Il est donc préférable d'indiquer, pour chaque paquet, si ce mécanisme doit étre mis en _uvre ou pas. Selon une mise en _uvre de l'invention, ces informations peuvent aussi contenir des donnces relatives à i'environnement d'exécution nécessaire au traitement associé au paquet. Cette option est particulièrement intéressante dans le cas o le paquet actif contient du code actif (par opposition au cas o le paquet actif fait appel à un code non contenu dans ce paquet, mais soit dans le routeur, soit sur un serveur de codes actifs). Il est en effet inutile que le routeur traite un paquet actif, s'il n'est pas en mesure d'exécuter le code associé. FIOLOS \\klefilOl\DPl$\Salle\F103792\PREA4DEP\Fll\projelbr.doc 7 2826215 L'environnement d'exécution peut comprend le système d'exploitation nacessa ire à l'exécution du code (Unix, plate-forme CO RBA etc.) mais aussi les librairies nécessaires etc. Typiquement, I'insertion de ces informations est mise en _uvre par le routeur situé en début de chemin virtual. Selon la terminologie MPLS, un tel routeur est appelé un ALSR, pour Active Label Switch Router. FIOLOS \\klefilOl\DPl$\Salle\F103792\PREMDEP\FIT\projelEr.doc 8 2826215 REVENDICATIONS 1. Procédé de transmission d'un message au travers d'un réseau de données, comportant une première étape consistant à établir un circuit virtuel entre un premier n_ud et un second n_ud, les n_uds appartenant audit circuit virtuel transmettant ledit message en fonction d'un entête, caractérisé en ce qu'il comporte de surcro^'t une étape d'insertion d'informations dans ledit entête, et en ce que chaque n_ud dudit circuit virtuel détermine si ledit message est un message actif en fonction desUites informations. 2. Procédé selon la revendication précédente, dans lequel lorsqu'un n_ud dudit circuit virtuel recoit un message actif, il duplique au préclable le message rec,u, en transmet un exemplaire au n_ud suivant et déclenche le traitement associé au message actif sur le deuxième exemplaire. 3. Procédé selon la revendication précédente, dans lequel le mécanisme de duplication est déclenché en fonction d'un identificateur spécifique contenu dans lesdites informations. 4. Procédé selon l'une des revendications précédentes, dans lequel lesUites informations contiennent des donnéss relatives à l'environnement d'exécution nocessaire pour le traitement du message actif. 5. Procédé selon l'une des revendications précédentes, dans lequel ledit circuit virtuel est établi conformément au protocole MPLS. 6. Procédé selon la revendication précédente, dans lequel lesUites informations sont insérées sous la forme d'une étiquette {LSE3, LSE2, LSE3 LSEn) dans la pile d'étiquettes (LS) dudit message. FIOLOS \\klefilOl\DPl$\Salle\F103792\PREMDEP\FIT\projeibr.doc 9 2826215 7. Procédé salon la revendication 5, dons lequel lesdites informations sont insérées dons le champ > d'une étiquette de la pile d'étiquettes dudit message. 8. Routeur posséJant des moyens pour mettre en _uvre le procédé selon l'une des revendications précédentes.