Brevet FR3098366A1 — publié le 20210108

Description Titre de l'invention : Procédé et dispositif de codage du chemin d'un paquet de données Domaine technique de l'invention [0001] La présente invention concerne de manière générale le domaine technique des réseaux informatiques et de la transmission des données à travers ces réseaux. [0002] Elle concerne en particulier un procédé et un dispositif de codage d'un chemin à emprunter par un paquet de données au sein d'un réseau informatique. Etat de la technique [0003] Il a été proposé, notamment dans le cadre du groupe de travail SPRING de l'IETF (" Internet Engineering Task Force"), d'écrire, dans les en-têtes de chaque paquet de données transporté, le chemin que celui-ci doit emprunter jusqu'à sa destination. [0004] Le codage de ce chemin au moyen de la liste des noeuds du réseau successivement rencontrés peut toutefois s'avérer trop volumineux en pratique. On prévoit d'ailleurs généralement une limitation du nombre de noeuds de passage qu'il est possible d'inscrire dans l'en-tête du paquet de données concerné. (Cette limitation est connue sous le nom de profondeur maximale d'identifiants de segment ou MSD pour" Maximum Segment identifier Depth".) [0005] Au vu de ceci, l'article "Label encoding algorithm for MPLS segment routing" de R. Guedrez, O. Dugeon, S. Lahoud et G. Texier, in 2016 IEEE 15th International Symposium on Network Computing and Applications (pp. 113-117) propose un codage particulier permettant de réduire le nombre de noeuds de passage à inscrire dans l'en-tête pour définir un chemin particulier. Présentation de l'invention [0006] Dans cc contexte, l'invention propose un procédé de codage d'un chemin à emprunter par un paquet de données au sein d'un réseau informatique comprenant des noeuds dont au moins un module fonctionnel apte à traiter le paquet de données, le chemin passant par le module fonctionnel et se terminant sur un noeud de fin, le procédé comprenant les étapes suivantes : - découpage du chemin en sous-chemins successifs comprenant un sous-chemin se terminant sur le module fonctionnel et un sous-chemin se terminant sur le noeud de fin ; - pour chaque sous-chemin parmi les sous-chemins successifs, détermination d'un élément de codage comprenant au moins un identifiant désignant le dernier noeud du sous-chemin concerné en association avec un algorithme d'optimisation de trajet dont l'application produit un trajet coïncidant au moins partiellement avec le sous-chemin 2 concerné ; - codage du chemin en juxtaposant les éléments de codage respectivement associés aux sous-chemins successifs. [0007] Selon cc procédé, l'identifiant du module fonctionnel fait partie du code obtenu (puisqu'il forme un dernier noeud d'un sous-chemin) et on s'assure ainsi que le paquet de données passera effectivement par ce module fonctionnel. [0008] On peut en outre réduire le nombre d'identifiants utilisés pour le codage puisque l'identifiant contenu dans un élément de codage permet de coder toute la partie du sous-chemin concerné qui coïncide avec le trajet produit par l'algorithme d'optimisation de trajet associé à cet identifiant. [0009] D'autres caractéristiques non limitatives et avantageuses du procédé conforme à l'invention, prises individuellement ou selon toutes les combinaisons techniquement possibles, sont les suivantes : [0010] - pour chaque identifiant contenu dans un élément de codage associé à un sous- chemin, ce sous-chemin coïncide au moins en partie avec le trajet obtenu par application de l'algorithme d'optimisation de trajet associé à cet identifiant ; [0011] - pour chaque sous-chemin, l'élément de codage est déterminé de manière à minimiser le nombre d'identifiant dans l'élément de codage ; [0012] - le procédé comprend une étape d'écriture du chemin codé dans un en-tête du paquet ; [0013] - un client émetteur du paquet est connecté au réseau au moyen d'un noeud d'entrée ; [0014] - l'étape d'écriture est réalisée par ce noeud d'entrée ; [0015] - un client récepteur du paquet est connecté au réseau au moyen du noeud de fin ; [0016] - l'identifiant est une étiquette utilisée par un mécanisme de type commutation d'étiquettes (par exemple un mécanisme de type MPLS pour "MultiProtocol Label Switching") ; [0017] - l'identifiant est une adresse utilisée par un protocole internet (par exemple dans le cadre du protocole IPv6). [0018] L'invention propose également un dispositif de codage d'un chemin à emprunter par un paquet de données au sein d'un réseau informatique comprenant des noeuds dont au moins un module fonctionnel apte à traiter le paquet de données, le chemin passant par le module fonctionnel et se terminant sur un noeud de fin, le dispositif comprenant : [0019] - un module conçu pour découper le chemin en sous-chemins successifs comprenant un sous-chemin se terminant sur le module fonctionnel et un sous-chemin se terminant sur le noeud de fin ; [0020] - un module conçu pour déterminer, pour chaque sous-chemin parmi les sous- chemins successifs, un élément de codage comprenant au moins un identifiant désignant le dernier noeud du sous-chemin concerné en association avec un algorithme 3 d'optimisation de trajet dont l'application produit un trajet coïncidant au moins partiellement avec le sous-chemin concerné ; [0021] - un module conçu pour coder le chemin en juxtaposant les éléments de codage res- pectivement associés aux sous-chemins successifs. [0022] Ces modules sont par exemple mis en oeuvre au moyen d'instructions de programme d'ordinateur exécutables par un processeur du dispositif de codage. [0023] Dans les exemples décrits plus loin, le dispositif de codage est par exemple un contrôleur de réseau. En variante, le dispositif de codage pourrait être un routcur. [0024] Le dispositif de codage comprend par exemple un moteur de codage qui regroupe les différents modules présentés ci-dessus. [0025] L'invention propose en outre un procédé de codage d'un chemin à emprunter par un paquet de données au sein d'un réseau informatique comprenant des noeuds dont au moins un module fonctionnel apte à traiter le paquet de données, le chemin passant par le module fonctionnel et se terminant sur un noeud de fin, plusieurs arbres de chemins de coût minimal étant respectivement associés à plusieurs algorithmes d'optimisation de trajet, le procédé comprenant les étapes suivantes : - découpage du chemin en sous-chemins successifs comprenant un sous-chemin se terminant sur le module fonctionnel et un sous-chemin se terminant sur le noeud de fin ; - pour chaque sous-chemin parmi les sous-chemins successifs, détermination d'un élément de codage comprenant au moins un identifiant désignant le dernier noeud du sous-chemin concerné en association avec un algorithme d'optimisation de trajet (parmi lesdits algorithmes d'optimisation de trajet) associé à un arbre des chemins de coût minimal coïncidant au moins partiellement avec le sous-chemin concerné ; - codage du chemin en juxtaposant les éléments de codage respectivement associés aux sous-chemins successifs. [0026] L'invention propose enfin un dispositif de codage d'un chemin à emprunter par un paquet de données au sein d'un réseau informatique comprenant des noeuds dont au moins un module fonctionnel apte à traiter le paquet de données, le chemin passant par le module fonctionnel et se terminant sur un noeud de fin, le dispositif comprenant : - un module conçu pour déterminer, pour chacun d'une pluralité d'algorithmes d'optimisation de trajet, un arbre de chemins de coût minimal ; - un module conçu pour découper le chemin en sous-chemins successifs comprenant un sous-chemin se terminant sur le module fonctionnel et un sous-chemin se terminant sur le noeud de fin ; - un module conçu pour déterminer, pour chaque sous-chemin parmi les sous-chemins successifs, un élément de codage comprenant au moins un identifiant désignant le dernier noeud du sous-chemin concerné en association avec un algorithme d'optimisation de trajet pour lequel l'arbre de chemins de coût minimal dételminé coïncide au moins partiellement avec le sous-chemin concerné ; - un module conçu pour coder le chemin en juxtaposant les éléments de codage respectivement associés aux sous-chemins successifs. [0027] Bien entendu, les différentes caractéristiques, variantes et formes de réalisation de l'invention peuvent être associées les unes avec les autres selon diverses combinaisons dans la mesure où elles ne sont pas incompatibles ou exclusives les unes des autres. Description détaillée de l'invention [0028] De plus, diverses autres caractéristiques de l'invention ressortent de la description annexée effectuée en référence aux dessins qui illustrent des formes, non limitatives, de réalisation de l'invention et : [0029] [fig.1] représente un premier exemple de réseau informatique dans lequel est mise en oeuvre l'invention ; [0030] [fig.2] représente deux arbres de chemins utilisés dans le contexte de la figure 1 ; [0031] [fig.3] représente un second exemple de réseau informatique dans lequel est mise en oeuvre l'invention ; [0032] [fig.4] représente deux arbres de chemins utilisés dans le contexte de la figure 3 ; et [0033] [fig.5] est un logigramme illustrant un exemple de procédé de codage conforme à l' invention. [0034] On décrit ci-dessous, en référence aux figures 1 à 4, deux exemples de mise en oeuvre de l'invention au sein d'un réseau informatique N, N'. [0035] Dans chacun de ces deux exemples, le réseau informatique N ; N' comprend une pluralité de routeurs PEI, P2, P3, P4, PE5, P6, P7, P8; PE1', P2', P3', P4', PE5', P6', P7', P8'. [0036] Comme visible sur les figures I et 3, certains de ces routeurs sont reliés (deux à deux) par une liaison informatique et peuvent ainsi échanger entre deux des paquets de données. Par exemple, sur la figure 1, les routcurs P2 et P8 sont reliés par une liaison informatique ; de même, sur la figure 3, les routeurs P4' et PE5' sont reliés par une liaison informatique. [0037] Le réseau informatique N ; N' comprend également au moins un module fonctionnel, ici deux modules fonctionnels VNF1, VNF2 ; VNF1' VNF2'. (Le réseau informatique N ; N' pourrait bien sûr comprendre en pratique un nombre supéiieur de modules fonctionnels.) Chaque module fonctionnel VNF1 ; VNF2 ; VNF1' ; VNF2' est conçu pour traiter certaines des données contenues dans les paquets de données reçus par ce module fonctionnel VNF1 ; VNF2 ; VNF1' ; VNF2'. [0038] Les modules fonctionnels VNF1 ; VNF2 ; VNF1' ; VNF2' sont ici des fonctions de réseau virtuelles (ou VNF pour "Virtual Network Function"). [0039] Chacun des modules fonctionnels VNF1 ; VNF2 ; VNF1' ; VNF2' peut réaliser par exemple l'une au moins des fonctions suivantes (c'est-à-dire appliquer l'une au moins des fonctions suivantes à certaines au moins des données contenues dans les paquets de données traités) : pare-feu, inspection approfondie des paquets, équilibrage de charge, codage, décodage. [0040] Dans les modes de réalisation décrits, chaque module fonctionnel VNF1 ; VNF2; VNF1' ; VNF2' est associé à un routeur du réseau informatique N ; N', c'est-à-dire en pratique mis en oeuvre sur le routeur concerné. [0041] Ainsi, dans le premier exemple représenté à la figure 1, le module fonctionnel VNF1 est associé au routeur P3 et le module fonctionnel VNF2 est associé au routeur P6. [0042] De même, dans le second exemple représenté à la figure 3, le module fonctionnel VNF1' est associé au mineur P7' et le module fonctionnel VNF2' est associé au mineur P4'. [0043] Dans le réseau informatique N ; N', on utilise des identifiants pour désigner les mineurs PE1, P2, P3, P4, PE5, P6, P7, P8 ; PE1', P2', P3', P4', PE5', P6', P7', P8' comme les modules fonctionnels VNF1 ; VNF2 ; VNF1' ; VNF2', en association avec un algorithme d'optimisation de trajet donné, comme expliqué plus en détail plus loin. [0044] On considère donc dans la suite que les routeurs PE1, P2, P3, P4, PE5, P6, P7, P8 ; PE1', P2', P3', P4', PE5', P6', P7', P8' et les modules fonctionnels VNF1 ; VNF2; VNF1' ; VNF2' sont des noeuds du réseau informatique N ; N'. [0045] Lorsque l'invention est mise en oeuvre au moyen d'un mécanisme de type com- mutation d'étiquettes (par exemple MPLS pour "MultiProtocol Label Switching"), l'identifiant est une étiquette (en anglais : "label") utilisée dans le cadre d'un tel mécanisme. [0046] Lorsque l'invention est mise en oeuvre au moyen d'un protocole internet (par exemple IPv6 pour "Internet Protocol version 6"), l'identifiant est une adresse intemet. [0047] Comme visible sur les figures 1 et 3, les noeuds du réseau informatique N ; N' com- prennent un noeud d'entrée PE1 ; PE I' (ici un routeur) au moyen duquel un premier dispositif client CE1 ; CE I' (par exemple en pratique un ordinateur) est connecté au réseau informatique N; N'. [0048] On considère dans la suite le transport au sein du réseau informatique N ; N' de paquets de données émis par ce premier dispositif client CE1 ; CE1'. On dénomme de ce fait "client émetteur" ce premier dispositif client CE1 CE1'. [0049] Les noeuds du réseau informatique N ; N' comprennent également un noeud de sortie PE5 ; PE5' (ici un routeur) au moyen duquel un second dispositif client CE2 ; CE2' (par exemple un autre ordinateur) est connecté au réseau informatique. Ce second dispositif client est par exemple le destinataire du ou des paquet(s) de données émis par le premier dispositif client, ou client émetteur, CE1 ; CE1'. 6 [0050] Le réseau informatique N ; N' est ici géré par un contrôleur de réseau SDNC ; SDNC', par exemple un contrôleur de réseau défini par logiciel (en anglais : "Software Defitzed Network controller"). [0051] Ce contrôleur de réseau SDNC ; SDNC' comprend une interface ascendante NBI ; NBF (en anglais : "Northbound interface") conçue pour recevoir des instructions (notamment un chemin P ; P' comme décrit plus loin) et une interface descendante SBI ; SBI' (en anglais : "Southboutzd interface") conçue pour transmettre des instructions aux noeuds du réseau informatique N ; N' (ici aux routeurs PE1, P2, P3, P4, PE5, P6, P7, P8 ; PE1', P2', P3', P4', PE5', P6', P7', P8'). [0052] Le contrôleur de réseau SDNC ; SDNC' comprend également un moteur de calcul de trajet COMP ; COMP' (en anglais : "path computation engitze"), un moteur de codage ENC ; ENC' (en anglais : "etzcoding engitze") et une base de données DB, DB' mémorisant les identifiants de noeud relatifs aux différents noeuds du réseau N ; N'. [0053] Le moteur de calcul de trajet COMP ; COMP' et le moteur de codage ENC ; ENC' sont par exemple chacun mis en oeuvre au moyen d'un module logiciel exécutable par un processeur du contrôleur de réseau SDNC, SDNC'. [0054] Le contrôleur de réseau SDNC ; SDNC' est ici conçu pour travailler avec plusieurs algorithmes d'optimisation de trajet. Chaque algorithme d'optimisation de trajet vise à déterminer le chemin optimal de paquet de données concerné à travers le réseau informatique N ; N' conformément à des critères propres à cet algorithme d'optimisation de trajet. Ces critères comprennent par exemple une métrique relative aux échanges de données sur le réseau, tel que le retard de transmission, la fluctuation (en anglais fluer") ou la bande passante disponible. [0055] Le moteur de calcul de trajet COMP ; COMP' est conçu pour déterminer, pour chaque algorithme d'optimisation de trajet utilisé, un trajet optimal, représenté ici par un arbre de chemins Ti ; T2 ; Tl' ; T2' de coût minimal (ou arbre couvrant de poids minimal) pour cet algorithme d'optimisation de trajet (c'est-à-dire précisément au sens de la métrique utilisée par cet algorithme d'optimisation de trajet). [0056] On a représenté sur la figure 2 un premier arbre de chemins de coût minimal Tl et un second arbre de chemins de coût minimal T2 produits (ici par le moteur de calcul de trajet COMP) respectivement pour deux algorithmes d'optimisation de trajet distincts dans le cadre du réseau informatique N représenté à la figure 1. [0057] De même, on a représenté sur la figure 4 un premier arbre de chemins de coût minimal Ti' et un second arbre de chemins de coût minimal T2' produits (ici par le moteur de calcul de trajet COMP) respectivement pour deux algorithmes d'optimisation de trajet distincts dans le cadre du réseau informatique N' représenté à la figure 3. [0058] On note dans la suite Nj-x l'identifiant du noeud Nj à atteindre via un chemin 7 optimisé au moyen de l'algorithme d'optimisation de trajet x. (On rappelle que, selon les modes de réalisation, cet identifiant est par exemple en pratique une étiquette ou une adresse internet.) On note par ailleurs a l'algorithme d'optimisation de trajet produisant le premier arbre de chemins de coût minimal Ti, Ti' et b l'algorithme d'optimisation de trajet produisant le second arbre de chemins de coût minimal T2, T2'. [0059] Le contrôleur de réseau SDNC ; SDNC' transmet des données de routage à chaque routeur PE1 , P2, P3, P4, PE5, P6, P7, P8 ; PEI', P2', P3', P4', PE5', P6', P7', P8' (via l'interface descendante SBI ; SBF), ces données de routage étant mémorisées dans le routeur concerné. [0060] Ces données de routage permettent au routeur concerné de déterminer, sur la base d'un identifiant, à quel autre routeur transmettre un paquet de données destiné au noeud désigné par cet identifiant, en utilisant le chemin optimisé au moyen de l'algorithme d'optimisation de trajet associé à cet identifiant (cc chemin optimisé étant représenté dans l'arbre de chemins de coût minimal obtenu par utilisation de cet algorithme d'optimisation de trajet). [0061] Par exemple, dans le cadre du réseau informatique N représenté à la figure 1, les données de routage transmises au routeur P2 (par le contrôleur de réseau SDNC) et mémorisées dans cc routeur P2: [0062] - indiquent de transmettre au routcur PE1 un paquet de données portant l'identifiant P6-a (identifiant du noeud P6 en association avec l'algorithme d'optimisation de trajet a, c'est-à-dire à atteindre selon un chemin optimisé au moyen de l'algorithme d'optimisation de trajet a, chemin optimisé représenté par le premier arbre de chemins de coût minimal Tl). [0063] - indiquent de transmettre au routeur P3 un paquet de données portant l'identifiant P6-b (identifiant du noeud P6 en association avec l'algorithme d'optimisation de trajet b, c'est-à-dire à atteindre selon un chemin optimisé au moyen de l'algorithme d'optimisation de trajet b, chemin optimisé représenté par le second arbre de chemins de coût minimal T2). [0064] De même, dans le cadre du réseau informatique N' représenté à la figure 3, les données de routage transmises au routeur PE1' (par le contrôleur de réseau SDNC') et mémorisées dans ce routeur PE1' : [0065] - indiquent par exemple de transmettre au routeur P8' un paquet de données portant l'identifiant P7'-a (identifiant du noeud P7' en association avec l'algorithme d'optimisation de trajet a, c'est-à-dire à atteindre selon un chemin optimisé au moyen de l'algorithme d'optimisation de trajet a, chemin optimisé représenté par le premier arbre de chemins de coût minimal Ti') ; [0066] - indiquent par exemple de transmettre au routeur P2' un paquet de données portant 8 l'identifiant (identifiant du noeud P7' en association avec l'algorithme d'optimisation de trajet b, c'est-à-dire à atteindre selon un chemin optimisé au moyen de l'algorithme d'optimisation de trajet b, chemin optimisé représenté par le second arbre de chemins de coût minimal T2'). [0067] Le moteur de codage ENC ; ENC' est conçu pour coder un chemin P ; P' que doit emprunter un certain paquet de données à travers le réseau informatique N ; N'. [0068] Ce chemin P ; P' à emprunter par le paquet de données est par exemple fixé par une application (ici une application exécutée sur le client émetteur CE] ; CEP). Le chemin P ; P' à emprunter est par exemple transmis de cette application au contrôleur de réseau SDNC ; SDNC' via l'interface ascendante NBI ; NBE, comme schématiquement représenté sur les figures 1 et 3. [0069] On décrit ci-dessous en référence à la figure 5 le procédé mis en oeuvre par le moteur de codage ENC ; ENC' pour coder le chemin P ; P'. [0070] Tout au long du procédé de codage, on indiquera à titre d'exemple les données ma- nipulées d'une part dans le cas de la figure 1 (données mentionnées à gauche sur la figure 5) et d'autre part dans le cas de la figure 3 (données mentionnées à droite sur la figure 5). [0071] On remarque par ailleurs que le moteur de codage ENC ; ENC' est situé au sein du contrôleur de réseau SDNC ; SDNC' mais qu'il pourrait en variante être réalisé (en tout ou partie) sur un autre dispositif électronique, par exemple le noeud d'entrée PEI ; PEI'. [0072] Dans le cas de la figure 1 (comme schématiquement représenté sur cette figure), on souhaite par exemple que le paquet de données emprunte le chemin P défini par les noeuds suivants : PEI, P2, P3, VNF1, P7, P6, VNF2, PE5. [0073] Dans le cas de la figure 3 (comme schématiquement représenté sur cette figure), on souhaite par exemple que le paquet de données emprunte le chemin P' défini par les noeuds suivants : PEI', P8', P7', VNFE, P3', P4', VNF2', PE5'. [0074] Le chemin à emprunter P P' comprend dans ces deux cas au moins un module fonctionnel (ici deux modules fonctionnels VNFI. VNF2 VNFI', VNF2'). Le chemin à emprunter P ; P' se termine par un noeud de fin, ici le noeud de sortie PE5 ; PE5' (relié en outre au dispositif client CE2 ; CET destinataire du paquet de données). Le noeud de fin pourrait toutefois en variante être un noeud intermédiaire (en particulier un noeud non directement relié au dispositif destinataire du paquet de données). [0075] Le procédé de codage débute par le découpage du chemin P P' en sous-chemins successifs SPI, SP2, SP3 ; SPI', 5P2', 5P3' comprenant des sous-chemins SPI. SP2 ; SPI', SP2' se terminant respectivement sur les différents modules fonctionnels VNFI, VNF2 ; VNFI'. VNF2' et un sous-chemin SPI SP3' se terminant sur le noeud de fin PE5 ; PE5'. 9 [0076] Pour ce faire, le procédé de la figure 5 boucle sur l'ensemble des modules fonc- tionnels VNF1, VNF2; VNFV, VNF2' du chemin P ; P' (étape E2) et, pour chaque module fonctionnel VNF1 ; VNF2 ; VNF1' ; VNF2' du chemin P ; P': [0077] - découpe à l'étape E21 le chemin P ; P' au niveau du module fonctionnel concerné (précisément après ce module fonctionnel) ; [0078] - ajoute à l'étape E22 le sous-chemin SP1 ; SP2 ; SP1' ; SP2' obtenu par ce découpage (c'est-à-dire le sous-chemin allant jusqu'au module fonctionnel concerné) à la liste L ; L' des sous-chemins. [0079] Lorsque tous les modules fonctionnels VNE1, VNF2 ; VNF1', VNF2' du chemin P; P' sont traités, le sous-chemin restant SP3 ; SP3' (sous-chemin allant jusqu'au noeud de fin) est également ajouté à la liste L ; L' des sous-chemins (étape E23). [0080] Dans le cas de la figure 1, la liste L des sous-chemins est la suivante : SPI = [PE1, P2, P3, VNF1], SP2 = [P7, P6, VNF2], SP3 = [PE5]. [0081] Dans le cas de la figure 3, la liste L' des sous-chemins est la suivante : SPI' = [PE1', P8', P7', VNF1'], SP2' = [P3', P4', VNF2'], SP3' = [PE5']. [0082] Le procédé de codage boucle alors sur tous les sous-chemins de la liste L ; L' (étape E4) et, pour chaque sous-chemin de la liste L ; L' : [0083] - détermine à l'étape E41 un élément de codage comprenant un ou plusieurs identifiant(s) en nombre minimum mais permettant de coder le sous-chemin concerné jusqu'au dernier noeud de ce sous-chemin ; [0084] - ajouter à l'étape E42 cet élément de codage au code C ; C' ainsi construit. [0085] Pour minimiser le nombre d'identifiant(s) à l'étape E41, on choisit un ou plusieurs identifiant(,$) associé(s) à un algorithme d'optimisation de trajet pour lequel l'arbre de chemins de poids minimal Ti ; T2 ; Ti' ; T2' (c'est-à-dire le trajet produit par cet algorithme d'optimisation de trajet) coïncide au mieux avec le sous-chemin concerné. [0086] Ainsi, un identifiant qui désigne un noeud en association avec un algorithme d'optimisation de trajet permet de coder une partie du sous-chemin concerné qui coïncide avec l'arbre de chemins de poids minimal (c'est-à-dire le trajet) associé à cet algorithme d'optimisation de trajet. [0087] Un élément de codage relatif à un sous-chemin comprend donc au moins l'identifiant désignant le dernier noeud du sous-chemin concerné en association avec un algorithme d'optimisation de trajet associé à un arbre des chemins de coût minimal (c'est-à-dire à un trajet optimisé) qui coïncide au moins partiellement avec le sous-chemin concerné. [0088] Lorsque cet identifiant ne suffit pas à coder l'ensemble du sous-chemin concerné (c'est-à-dire lorsque le trajet optimisé, obtenu au moyen dudit algorithme d'optimisation de trajet et représenté par l'arbre de chemins de coût minimal, ne coïncide pas avec le sous-chemin sur l'ensemble du sous-chemin), l'élément de codage comprend alors un (ou plusieurs) autre(s) identifiant(s), cet autre identifiant désignant un autre noeud du sous-chemin concerné en association avec un autre algorithme d'optimisation de trajet pour lequel l'arbre des chemins de coût minimal (c'est-à-dire le trajet produit par cet autre algorithme d'optimisation) coïncide avec une autre partie du sous-chemin concerné. [0089] On décrit à présent l'application de l'étape E41 aux exemples des figures 1 et 3. [0090] Dans le cadre de la figure 1, on code successivement les trois sous-chemins SP1, SP2, SP3 comme quit. [0091] L'élément de codage relatif au sous-chemin SP1 comprend l'identifiant VNE1-11 désignant le noeud VNE1 en association avec l'algorithme d'optimisation de trajet b. [0092] En effet, le sous-chemin SPI = [PE1, P2, P3, VNE1] coïncide avec le trajet produit par l'algorithme d'optimisation de trajet b, représenté par l'arbre de chemins de coût minimal T2. [0093] On remarque qu'un codage par l'identifiant VNE1-a étant aussi envisageable dans ce cas (le moteur de codage ENC pouvant dans ce cas par exemple choisir un algorithme d'optimisation de trajet par défaut). [0094] L'élément de codage relatif au sous-chemin SP2 (représenté en pointillés en figure 2) comprend quant à lui l'identifiant VNF2-b. En effet, le sous-chemin 5P2 = [P7, P6, VNF2] coïncide avec le trajet produit par l'algorithme d'optimisation de trajet b, représenté par l'arbre de chemins de coût minimal T2. [0095] Enfin, l'élément de codage relatif au sous-chemin SP3 comprend l'identifiant PE5-b. [0096] Le code C obtenu au moyen du procédé de codage est donc dans ce cas : [0097] [VNF1-b, VNF2-b, PE5-b] [0098] (les différents éléments de codage étant juxtaposés par les passages successifs à l'étape E42, dans l'ordre des sous-chemins SPI, SP2, SP3). [0099] Dans le cadre de la figure 3, on code successivement les trois sous-chemins SPI', SP2', SP3' comme suit. [0100] Le sous-chemin SPI' = [PEI', P8', P7', VNFI'] coïncide avec le trajet produit par l'algorithme d'optimisation de trajet a (trajet représenté par l'arbre de chemins de coût minimal Tl') et l'élément de codage relatif au sous-chemin SPI' peut ainsi comprendre l'identifiant VNFI'-a. [0101] Le sous-chemin SP2' = [P3', P4', VNF2'] coïncide avec le trajet produit par l'algorithme d'optimisation de trajet b (trajet représenté par l'arbre de chemins de coût minimal T2') et l'élément de codage relatif au sous-chemin 5P2' peut ainsi comprendre l'identifiant VNF2'-b. [0102] Enfin, l'élément de codage relatif au sous-chemin 5P3' = [PE5'] comprend l'identifiant PE5'-a du noeud de fin PE5' en association avec l'algorithme d'optimisation de trajet a. [0103] Le code C' obtenu au moyen du procédé de codage est donc dans ce cas : 11 [0104] [VNFP -a, VNF2'-b, PE5'-a] [0105] (les différents éléments de codage étant juxtaposés par les passages successifs à l'étape E42, dans l'ordre des sous-chemins SPI'. SP2', SP3'). [0106] Le code C ; C' obtenu par le procédé de codage est écrit dans un en-tête dédié du paquet de données. Cette étape d'écriture du code C ; C' au sein du paquet de données (ici dans l'en-tête dédié) est par exemple réalisée par le noeud d'entrée PE1, PE1', ici sur commande du contrôleur de réseau SDNC ; SDNC'. [0107] Les routcurs peuvent alors consulter (et éventuellement traiter) les identifiants présents dans le code C ; C' de sorte que le paquet de données emprunte ainsi le chemin P ; P' prévu. [0108] Précisément, lorsque le noeud courant n'est pas le noeud défini par l'identifiant courant (l'identifiant courant étant le premier identifiant du code C ; C' à r initialisation du processus), le noeud courant détermine, par lecture des données de routage mémorisées dans ce noeud courant, vers quel autre noeud le paquet de données doit être transmis. Cet autre noeud est en effet indiqué dans les données de routage comme noeud de transmission en association avec l'identifiant courant. [0109] Lorsque le noeud courant est le noeud défini par l'identifiant courant, le routeur lit l'identifiant suivant et effectue le traitement qui vient d'être mentionné, mais en utilisant l'identifiant suivant en tant que nouvel identifiant courant. (Dans certains modes de réalisation, comme par exemple dans le cas déjà mentionné d'un mécanisme à commutation d'étiquettes de type MPLS, l'identifiant du noeud courant est dans ce cas supprimé de la pile comprenant les identifiants et mémorisée dans l'en-tête du paquet de données.) [0110] Dans le cas de la figure 1 par exemple, le routeur PEI consulte le premier identifiant du code C, à savoir ici VNF1-b, puis détermine, par lecture dans sa table de routage, le noeud auquel le paquet de données doit être transmis : la table de routage indique une transmission au noeud P2 en association avec l'identifiant VNF1-b (voir le second arbre de chemins de coût minimal T2). [0111] Le routeur PEI transmet donc le paquet de données au noeud P2. [0112] De même, le routeur P2 consulte l'identifiant courant (ici toujours le premier identifiant VNF1-b) et détermine, par lecture du noeud associé à l'identifiant VNF1-b dans sa table de routage, que le paquet de données doit être transmis au noeud P3. [0113] Le routeur P2 transmet donc le paquet de données au noeud P3. [0114] Selon le même processus, le routeur P3 transmet le paquet de données au module fonctionnel VNF1. [0115] Le module fonctionnel VNF1 reçoit le paquet de données et traite ce paquet de données (conformément à la fonctionnalité réalisée par ce module fonctionnel VNF1). [0116] Par ailleurs, le module fonctionnel VNF1 étant le noeud désigné par l'identifiant 12 courant VNFI-b, il modifie l'en-tête du paquet de données de sorte que l'identifiant suivant dans le code C soit traité en tant que nouvel identifiant courant. [0117] Dans le cadre d'un mécanisme à commutation d'étiquettes de type MPLS, le premier identifiant VNF1-11 est supprimé de la pile des identifiants. [0118] Dans le cadre d'un protocole internct tel qu'IPv6, un pointeur vers l'identifiant courant est modifié pour pointer vers l'identifiant suivant. [0119] Dans l'exemple décrit, le nouvel identifiant courant est VNF2-b. [0120] Le routeur P3 détermine donc par lecture dans sa table de routage que le noeud associé à l'identifiant VNF2-b est le noeud P7 (voir le second arbre de chemins de coût minimal T2), et transmet par conséquent le paquet de données au noeud P7. [0121] Selon le même processus, le noeud P7 transmet le paquet de données au noeud P6 (noeud indiqué en association à l'identifiant VNF2-11 dans la table de routage du noeud P7), puis le noeud P6 transmet le paquet de données au module fonctionnel VNF2. [0122] Le module fonctionnel VNF2 reçoit le paquet de données et traite ce paquet de données (conformément à la fonctionnalité réalisée parce module fonctionnel VNF2). [0123] Par ailleurs, le module fonctionnel VNF2 étant le noeud désigné par l'identifiant courant VNF2-b, il modifie l'en-tête du paquet de données de sorte que l'identifiant suivant dans le code C soit traité en tant que nouvel identifiant courant (comme expliqué ci-dessus à propos du module fonctionnel VNF1). [0124] L'identifiant courant est alors l'identifiant PE5-b et le routeur P6 transmet par conséquent le paquet de données au noeud PE5. [0125] Le paquet de données a ainsi emprunté le chemin P codé par le code C. [0126] Dans le cas de la figure 2, le routeur PLIS' consulte le premier identifiant du code C', à savoir ici VNFI'-a, puis détermine, par lecture dans sa table de routage, le noeud auquel le paquet de données doit être transmis : la table de routage indique une transmission au noeud P8' en association avec l'identifiant VNF1'-a (voir le premier arbre de chemins de coût minimal Ti'). [0127] Le routeur PLIS' transmet donc le paquet de données au noeud P8'. [0128] De même, le routeur P8' consulte l'identifiant courant (ici toujours le premier identifiant VNF1'-a) et détermine, par lecture du noeud associé à l'identifiant VNFI '-a dans sa table de routage, que le paquet de données doit être transmis au noeud P7'. [0129] Le routeur P8' transmet donc le paquet de données au noeud P7'. [0130] Selon le même processus, le routeur P7' transmet le paquet de données au module fonctionnel VNF1'. [0131] Le module fonctionnel VNF1' reçoit le paquet de données et traite ce paquet de données (conformément à la fonctionnalité réalisée par ce module fonctionnel VNF1'). [0132] Par ailleurs, le module fonctionnel VNF1' étant le noeud désigné par l'identifiant courant VNFI'-a, il modifie l'en-tête du paquet de données de sorte que l'identifiant 13 suivant dans le code C' soit traité en tant que nouvel identifiant courant. [0133] Dans le cadre d'un mécanisme à commutation d'étiquettes de type MPLS, le premier identifiant VNF1'-a est supprimé de la pile des identifiants. [0134] Dans le cadre d'un protocole internct tel qu'IPv6, un pointeur vers l'identifiant courant est modifié pour pointer vers l'identifiant suivant (ici l'identifiant VNF2'-b). [0135] Dans l'exemple décrit, le nouvel identifiant courant est VNF2'-b. [0136] Le routcur P7' détermine donc par lecture dans sa table de routage que le noeud associé à l'identifiant VNF2'-b est le noeud P3' (voir le second arbre de chemins de coût minimal T2'), et transmet par conséquent le paquet de données au noeud P3'. [0137] Selon le même processus, le noeud P3' transmet le paquet de données au noeud P4' (noeud indiqué en association à l'identifiant VNF2'-li dans la table de routage du noeud P3'), puis le noeud P4' transmet le paquet de données au module fonctionnel VNF2'. [0138] Le module fonctionnel VNF2' reçoit le paquet de données et traite ce paquet de données (conformément à la fonctionnalité réalisée parce module fonctionnel VNF2'). [0139] Par ailleurs, le module fonctionnel VNF2' étant le noeud désigné par l'identifiant courant VNF2'-h, il modifie l'en-tête du paquet de données de sorte que l'identifiant suivant dans le code C' soit traité en tant que nouvel identifiant courant (comme expliqué ci-dessus à propos du module fonctionnel VNF1'). [0140] L'identifiant courant est alors l'identifiant PE5'-a et le routeur P4' transmet par conséquent le paquet de données au noeud PE5'. [0141] Le paquet de données a ainsi emprunté le chemin P' codé par le code C'. [0142] Bien entendu, diverses autres modifications peuvent être apportées à l'invention dans le cadre des revendications annexées. 14 [Revendication I] [Revendication 2] [Revendication 3] [Revendication 4] [Revendication 5] REVENDICATIONSProcédé de codage d'un chemin (P; P') à emprunter par un paquet de données au sein d'un réseau informatique (N ; N') comprenant des noeuds dont au moins un module fonctionnel (VNF I ; VNF2 ; VNFI ' ; VNF2') apte à traiter le paquet de données, le chemin (P ; P') passant par le module fonctionnel (VNF I ; VNF2 ; VNF I ' ; VNF2') et se terminant sur un noeud de fin (PE5; PE5'), le procédé comprenant les étapes suivantes : - découpage du chemin (P; P') en sous-chemins successifs (SPI, SP2, SP3 ; SPI!, SP2', SP3') comprenant un sous-chemin (SP1 ; SP2; SP1' ; 5P2') se terminant sur le module fonctionnel (VNF1 ; VNF2 ; VNF1' ; VNF2') et un sous-chemin (5P3 ; 5P3') se terminant sur le noeud de fin (PE5 ; PE5') ; - pour chaque sous-chemin parmi les sous-chemins successifs (SPI, 5P2, 5P3 ; SPF, SP2', SP3'), détermination d'un élément de codage comprenant au moins un identifiant (VNF1-b ; VNF2-b ; PE5-b ; VNF1'-a ; VNF2'-b ; PE5'-a) désignant le dernier noeud (VNF1 ; VNF2 PE5 ; VNF1', VNF2', PE5') du sous-chemin concerné (SP1 ; 5P2; 5P3 ; SP1' ; SP2' ; SP3') en association avec un algorithme d'optimisation de trajet dont l'application produit un trajet (Ti ; T2 ; Ti' ; T2') coïncidant au moins partiellement avec le sous-chemin concerné (SP1 ; SP2 ; SP3 ; SP1' ; SP2' ; SP3') ; - codage du chemin (P P') en juxtaposant les éléments de codage respectivement associés aux sous-chemins successifs (SP1, SP2, 5P3 ; SPI!, 5P2', 5P3'). Procédé selon la revendication 1, dans lequel, pour chaque identifiant contenu dans un élément de codage associé à un sous-chemin, ce sous-chemin coïncide au moins en partie avec le trajet obtenu par application de l'algorithme d'optimisation de trajet associé à cet identifiant. Procédé selon la revendication 2, dans lequel, pour chaque sous-chemin, l'élément de codage est déterminé de manière à minimiser le nombre d'identifiant dans l'élément de codage. Procédé selon l'une des revendications 1 à 3, comprenant une étape d'écriture du chemin codé (C ; C') dans un en-tête du paquet. Procédé selon la revendication 4, dans lequel un client émetteur (CE1 ; CE I') du paquet est connecté au réseau au moyen d'un noeud d'entrée (PEI PE1') et dans lequel l'étape d'écriture est réalisée par ce noeud 15 [Revendication 6] [Revendication 7] [Revendication 8] [Revendication 9] d'entrée (PE1 ; PE1'). Procédé selon l'une des revendications 1 à 5, dans lequel un client récepteur (CE2 ; CE2') du paquet est connecté au réseau au moyen du noeud de fin (PE5 ; PE5'). Procédé selon l'une des revendications 1 à 6, dans lequel l'identifiant (VNF1-11 ; VNF2-b ; PESA, ; VNF1 '-a ; VNF2'-b ; PE5'-a) est une étiquette utilisée par un mécanisme de type commutation d'étiquettes. Procédé selon l'une des revendications 1 à 6, dans lequel l'identifiant (VNF1-11 ; VNF2-b ; PESA, ; VNF1 '-a ; VNF2'-b ; PE5'-a) est une adresse utilisée par un protocole internet. Dispositif de codage d'un chemin (P; P') à emprunter par un paquet de données au sein d'un réseau informatique (N ; N') comprenant des noeuds dont au moins un module fonctionnel (VNF1 ; VNF2 ; VNF1' ; VNF2') apte à traiter le paquet de données, le chemin (P ; P') passant par le module fonctionnel (VNF1 ; VNF2 ; VNF1' ; VNF2') et se terminant sur un noeud de fin (PE5 ; PE5'), le dispositif comprenant : - un module conçu pour découper le chemin (P; P') en sous-chemins successifs (SPI, SP2, SP3 ; SPI', 5P2', 5P3') comprenant un sous-chemin (SP1 ; SP2 ; SPI' ; SP2') se terminant sur le module fonctionnel (VNF1 ; VNF2 ; VNF1' ; VNF2') et un sous-chemin (SP3 ; SP3') se terminant sur le noeud de fin (PE5 ; PE5') ; - un module conçu pour déterminer, pour chaque sous-chemin parmi les sous-chemins successifs (SPI, SP2, SP3 ; SPI', SP2', SP3'), un élément de codage comprenant au moins un identifiant (VNF1-b VNF2-b ; PE5-b VNFI'-a VNF2'-b ; PE5'-a) désignant le dernier noeud (VNFI ; VNF2 ; PE5 ; VNF1' ; VNF2' ; PE5') du sous-chemin concerné (SPI ; SP2 ; SP3 ; SPI' ; SP2' ;SP3') en association avec un algorithme d'optimisation de trajet dont l'application produit un trajet (Ti ; T2 ; TI' ; T2') coïncidant au moins partiellement avec le sous-chemin concerné (SPI ; SP2; SP3 ; SPI' ; SP2' ;SP3') ; - un module conçu pour coder le chemin (P P') en juxtaposant les éléments de codage respectivement associés aux sous-chemins successifs (SPI, SP2, SP3 ; SPI', SP2', SPI).