FR 2871972 A1 20051223 FR 0406544 A 20040617 La présente invention concerne un procédé pour la réalisation de traitements de paquets réseaux, c'est-à-dire de paquets de données résultant du découpage de messages émis sur un réseau, dans une pile réseau chargée de les acheminer entre différentes interfaces d'un dispositif de télécommunication. D'une manière générale, on sait qu'une pile réseau consiste en un ensemble de traitements contenu dans un dispositif de télécommunication en vue de l'acheminement des paquets réseaux, le rôle du dispositif de télécommunication (ou équipement réseau) étant d'effectuer ces traitements sur les paquets réseaux qu'il reçoit en entrée avant de les transmettre éventuellement en sortie. La version traditionnelle d'une pile réseau est monolithique. Elle exige que tous les cas de traitement soient prévus à l'avance. Ainsi, par exemple, selon cette version, il n'est pas possible d'ajouter, dynamiquement, un nouveau protocole de transport pour traiter une nouvelle combinaison de traitement. Des versions plus récentes de piles existent depuis peu. Elles utilisent la notion de modules virtuels appelés VNB ("Virtual Network Block"). L'avantage d'une pile à base de modules virtuels VNB est que l'ensemble des traitements est modulaire et donc de nouvelles combinaisons de traitement peuvent être ajoutées dynamiquement. 2871972 2 Un module virtuel VNB est constitué d'une unité de traitement (UT) et d'unités d'interconnexion (UI) vers d'autres modules virtuels VNB. Les modules virtuels VNB ne réalisent que des traitements simples. Les traitements complexes nécessaires dans une architecture réseau sont réalisés de manière globale à l'aide de la combinaison résultant de l'interconnexion de plusieurs modules virtuels VNB. Ainsi, les modules virtuels VNB sont réutilisables pour effectuer différents types de traitement dans différents environnements et différentes architectures. Les unités d'interconnexion UI sont indépendantes des modules virtuels VNB qui pourront être connectés. Les modules virtuels VNB relient leurs unités de traitement UT à l'aide de leurs unités d'interconnexion UI. Les unités de traitement UT présentent les propriétés suivantes: É Elles sont à accès élémentaire, une instance de module virtuel VNB ne peut traiter qu'un paquet réseau à la fois, l'ensemble des paquets réseaux 20 étant traités les uns à la suite des autres. É Les paramètres de l'unité de traitement UT sont locaux à l'instance (séquence d'utilisation d'un même module) du module virtuel VNB. É Le comportement du module virtuel VNB est caractérisé par les paramètres de l'unité de traitement UT. É L'unité de traitement UT réalise des actions simples consistant par exemple à ajouter ou à supprimer un en-tête réseau à une trame, à prendre des décisions de traitement en fonction de tables, etc. É L'unité de traitement UT n'est active que si au moins une des unités d'interconnexion UI du module virtuel VNB est reliée à un autre réseau virtuel VNB. En effet, si aucune unité d'interconnexion UI n'est utilisée, l'unité de traitement UT fonctionnerait à vide. Les propriétés des unités d'interconnexion UI sont, quant à elles, les suivantes: É La connexion d'au moins une des unités d'interconnexion UI est nécessaire pour activer l'unité de traitement UT. É Les unités d'interconnexion UI sont indépendantes des modules virtuels VNB qui l'utilisent pour se connecter à leurs modules virtuels VNB. É Les unités d'interconnexion UI assurent que l'unité de traitement UT ne traite qu'un seul paquet réseau à la fois. Vis-à-vis des piles réseaux traditionnelles, les modules virtuels VNB présentent les avantages synthétisés sur le Tableau suivant: Tableau Pile réseau traditionnelle Module virtuel VNB Traitements Statiques Dynamiques Tous les cas possibles de Les unités de traitement traitement sont prévus. peuvent être réutilisées et Forte dépendance des interconnectées pour tous les traitements qui ont précédé ou nouveaux cas. qui vont suivre. Indépendants des traitements qui ont précédé ou qui vont suivre. Paramètres Ils sont globaux. Ils sont locaux à chaque VNB. Par ailleurs, les méthodes classiques utilisées pour la réalisation de traitement par une pile réseau sont de type arborescent. Elles consistent à définir une fonction unique de traitement exploitant les éléments d'une base de données (par exemple en parcourant les noeuds d'un arbre) les uns après les autres de manière séquentielle. Les modules virtuels VNB de type standard sont de gros modules implémentant cette fonction unique. 2871972 -4 Vis-à-vis de ce contexte, l'invention a plus particulièrement pour objet un dispositif de télécommunication chargé de traiter des paquets réseaux en exploitant, au maximum de ses possibilités, au moins une pile réseau modulaire basée sur le concept des modules virtuels VNB. Selon l'invention, les traitements effectués par cette pile réseau sont réalisés sous forme de tout-petits modules, nommés nanomodules, permettant de répartir l'ensemble de ces traitements sur un ensemble de composants travaillant en mode distribué (mode similaire à une parallélisation des traitements). Ces traitements sont effectués selon un mode dual consistant à instancier la fonction de traitement sur une base de données de manière à la représenter sous forme d'heuristique (processus de recherche) couvrant de manière exhaustive tous les cas possibles rencontrés dans cette base de données, l'information étant stockée dans l'heuristique elle-même et non plus dans une base de données. Le procédé selon l'invention comprend donc la réalisation de l'heuristique considérée au moyen d'un assemblage dynamique de nanomodules qui crée le processus de recherche, chaque nanomodule ne comprenant que les traitements nécessaires à un noeud et présentant en conséquence une très petite taille (module atomique associé à un noeud et comprenant exclusivement les opérations élémentaires réalisées au niveau de ce noeud). Le fait que la structure de la pile soit modulaire et qu'en outre ces modules soient très petits, augmente la capacité du système global à distribuer les modules vers des composants de traitement qui sont répartis et peuvent travailler en parallèle. Chaque nanomodule ayant une tâche dédiée et spécifique, une combinaison optimisée de ces modules virtuels (VNB) présente l'avantage de réaliser les 2871972 5 traitements en conjuguant l'utilisation optimale d'ASIC, de composants FPGA, de processeurs de réseaux ("Network Processor"), de modules logiciels, voire même une combinaison hybride de ces différents éléments. Avantageusement: les traitements réalisés par les modules réseaux virtuels pourront optimiser le couplage entre le mécanisme de filtrage et d'autres mécanismes de sécurité tels que la détection d'intrusion, le contrôle anti-virus ou l'analyse de contenu, à un module réseau virtuel initial pourra correspondre une règle de filtrage qui oriente dynamiquement le paquet réseau reçu vers un autre module correspondant à un traitement de sécurité complémentaire (détection d'intrusion, anti-virus, analyse de contenu...) en fonction du contenu ou du type de ce paquet, les traitements réalisés par les modules réseaux virtuels pourront assurer l'implantation d'une fonction qualité de service. Un mode de mise en oeuvre du procédé selon l'invention sera décrit ciaprès, à titre d'exemple non limitatif, avec référence aux dessins annexés dans 20 lesquels: La figure 1 est un schéma synoptique illustrant le principe du procédé selon l'invention; La figure 2 est une représentation schématique d'un routeur Ethernet à commutation d'étiquette (LSR) traitant deux étiquettes; La figure 3 montre un routeur de bordure à commutation d'étiquettes d'un réseau à commutation d'étiquettes multiprotocole (MPLS) 30 combinant les fonctions d"'ingress LSR" et d"'egress LSR". Dans l'exemple illustré sur la figure 1, on a utilisé les techniques du procédé selon l'invention pour réaliser un dispositif de télécommunication chargé des traitements au sein d'une architecture de réseau à commutation d'étiquettes (MPLS). Comme illustré sur la figure 1, pour chaque interface (physique ou logique) du dispositif de l'équipement réseau, le procédé est instancié de la façon suivante: Dans l'instance 1, un module réseau virtuel VNB désigné (split(a)) de cette instance 1 est relié à deux autres modules réseaux virtuels, à savoir: un module VNB désigné (ILM(b)) et un module désigné "one2many"(c). Par ailleurs, le module réseau virtuel VNB ILM(b) est connecté à un ou 15 plusieurs modules réseaux virtuels VNB NHLFE(dl) à ... NHLFE(dn) ou VNB ILM(el) à ILM(en). Cette instance 1 comprend l'itération de 0 à N fois les opérations A et B suivantes: A = Un module VNB ILM(ei) (liaisons en pointillés) est connecté à un ou plusieurs modules VNB NHLFE(d), ici les modules NHLFE(d1, d2, di) ou à un ou plusieurs modules VNB ILM(e), ici le module (ILM(e2) B = Un module VNB NHLFE(di) est connecté à un module réseau virtuel VNB qui est soit, un module NHLFE(dl), soit un module ILM(e), ici le module ILM(e2) Ce processus se poursuit de deux manières suivantes: 1) Certains modules réseaux virtuels VNB NHLFE(d), ici NHLFE(d2) conduisent à un module VNB qui est, soit un module VNB split(f), soit un module VNB(g) qui ajoute un en-tête de transport (g), soit le module VNB "one2many"(c) de la même instance ou d'une autre instance du procédé. 2) Certains modules VNB ILM(e) conduisent à un ou plusieurs modules VNB qui sont, soit un module VNB split(f), soit un module VNB qui ajoute un en-tête de transport (g), soit le module VNB "one2many"(c) de la même instance 1 ou bien le module VNB "one2many"c' de l'instance 2, soit deux modules parmi ces trois modules, soit les trois modules. Le module VNB(g) qui ajoute l'en-tête de transport (g) conduit au module VNB "one2many"(c) de la même instance ou d'un module "one2many"(c)' d'une autre instance, ici l'instance 2 du procédé. Le module VNB split(f) renvoie vers des nouvelles itérations A et B et conduit à un module VNB d'interface (h). On notera que le procédé précédemment illustré fait intervenir dans chaque 15 instance un unique module virtuel VNB split(a), un unique module VNB ILM(b) et un unique module virtuel VNB "one2many"(c). Par ailleurs, le module virtuel VNB(g) qui ajoute l'en-tête de transport est utilisé dans le cas d'un réseau à commutation d'étiquettes multiprotocole MPLS sur le réseau Ethernet. Toutefois, ce module virtuel n'est pas nécessaire dans le cas d'un système MPLS utilisant un protocole multiliaison à largeur de bande variable à la demande (MLPPP), ou d'un système CHDLC. La figure 2 illustre un cas possible d'algorithme associé à l'implantation du procédé selon l'invention dans un réseau MPLS. Elle concerne plus particulièrement un réseau à commutation d'étiquettes comprenant au moins un routeur à commutation d'étiquettes LSR pouvant consister en un routeur de bordure. Ce routeur présente une couche physique Ethernet (interface e) qui doit réaliser une action de commutation SWAP de deux étiquettes différentes lorsqu'un paquet réseau arrive dans l'interface e. 2871972 8 D'une façon plus précise, dans cet exemple, le module réseau virtuel split(a) est relié, d'une part, à un module VNB ILM(b) et, d'autre part, à un module "one2many"(c). Le module ILM(b) est, quant à lui, relié à deux modules réseaux virtuels VNB nhlfe(dl) et nhlfe(di), lesquels effectuent une action de commutation (SWAP) de deux étiquettes différentes. Ces modules nhlfe(d1 et di) sont rebouclés sur le module "one2many"(c) par l'intermédiaire de deux modules Ethernet respectifs m-ether(g 1) et m-ether(gi). Par ailleurs, le module split(a) est connecté à l'interface Ethernet(e) par l'intermédiaire d'une liaison bidirectionnelle incluant un module etf et un module Ethernet ether. L'exemple illustré sur la figure 3 concerne un routeur de bordure à commutation d'étiquettes d'un réseau MPLS qui combine la fonction d"'ingress LSR" (entrée) et la fonction d"'egress LSR" (sortie). La fonction "ingress LSR" consiste à chercher l'adresse de destination des 20 paquets dans une table de routage et à lui affecter une étiquette appropriée qui spécifie un parcours d'étiquette commuté (LSP). La fonction "egress LSR" consiste à ôter les étiquettes et à transmettre les paquets selon un processus de routage traditionnel. La structure de ce routeur fait intervenir des modules ilm(b) - split(a) etf - ether - nhlfe(dl= - nhlfe(di) - m-ether(gl) - m-ether(gi) "one2many"(c) connectés d'une façon similaire à celle précédemment décrite, avec cependant un module ilm(p) et nhlfe(p) intercalés entre le module split(a) et le module ilm(b). Le module nhlfe(p) permet d'effectuer l'extraction d'une étiquette au paquet réseau qui le traverse (fonction POP). 2871972 9 Par ailleurs, le module nhlfe(dl) est connecté au module mether(gl) par l'intermédiaire d'un module split(1) et de deux modules nhlfe(dl') et nhlfe(dl") successifs. Le module nhlfe(dl) permet d'effectuer une extraction d'étiquette (fonction POP). Le module split(l) est connecté à un port d'entrée/sortie ng0 par une liaison bidirectionnelle. Le module nhlfe(di) est, quant à lui, connecté au module m-ether(gi) par l'intermédiaire d'un module split(i) et de deux modules nhlfe(d'i) et nhlfe(d"i). 10 Les deux modules m-ether(gl) et m-ether(gi) sont connectés au module "one2many"c). Les modules nhlfe(d'l) et nhlfe(d'i) effectuent l'ajout d'une première étiquette (fonctions PUSH 18 et PUSH 31), tandis que les modules nhlfe(d'i) et nhlfe(d"i) effectuent l'ajout d'une seconde étiquette (fonction PUSH 12) aux paquets qui les traversent. Le procédé selon l'invention ne se limite pas à un seul type d'application. Ainsi, de même que pour le protocole MPLS, ce procédé est également bien adapté dans le cas de l'implantation d'autres fonctionnalités relatives à la sécurité ou à la qualité de service. Par exemple, pour la sécurité, ce procédé peut s'appliquer pour l'optimisation du couplage entre le mécanisme de filtrage et d'autres mécanismes de sécurité tels que la détection d'intrusion, le contrôle anti-virus ou l'analyse de contenu. Le nanomodule (VNB) initial peut correspondre à une règle de filtrage qui oriente dynamiquement le paquet reçu vers le VNB suivant correspondant à tel ou tel traitement (détection d'intrusion, anti-virus...) selon le contenu ou le type de ce paquet. Ce mécanisme présente de nombreux avantages. En particulier: 2871972 -10É Il peut être utilisé afin de déployer plus aisément un service ajoutant, supprimant et commutant des labels à l'aide d'ASIC, de FGPA, de "Network Processor" ou de blocs logiciels dans un dispositif de télécommunication. É Il est indépendant de la couche physique. C'est-à-dire qu'il peut être utilisé pour supporter les architectures MPLS dans des environnements de type ATM, PDH, SDH, "Frame Relay", Ethernet, etc. ainsi que pour faire du MPLS sur IP. É Il permet de supporter tous les standards connus de MPLS comme les architectures de BGP/VPN décrits par l'IETF (RFC 2547), comme les L2 VPN, les L3 VPN qui sont en cours de standardisation à l'IETF. É Il permet également de supporter les architectures originales fondées sur des matrices d'interconnexion ("fabric") à très haut débit des dispositifs de télécommunication qui utilisent des circuits entre les différentes unités de traitement. Certains de ces dispositifs de commutation numériques peuvent être non bloquants comme décrit par l'architecture à trois niveaux de Clos. 2871972 -11- Revendications 1. Procédé pour la réalisation technique de traitements de paquets réseaux dans une pile réseau, caractérisé en ce que les traitements effectués par cette pile réseau: sont réalisés sous forme de tout-petits modules, nommés nanomodules, permettant de répartir l'ensemble de ces traitements sur un ensemble de composants travaillant en mode distribué, sont effectués selon un mode dual consistant à instancier la fonction de traitement sur une base de données de manière à la représenter sous forme d'heuristique (processus de recherche) couvrant de manière exhaustive tous les cas possibles rencontrés dans cette base de données, l'information étant stockée dans l'heuristique elle-même et non plus dans une base de données. 2. Procédé selon la revendication 1, caractérisé en ce qu'il comprend la réalisation de la susdite heuristique au moyen d'un assemblage dynamique de nanomodules, chaque nanomodule ne comprenant que les traitements nécessaires à un noeud et présentant en conséquence une très petite taille. 3. Procédé selon l'une des revendications 1 et 2, caractérisé en ce que les susdits modules sont distribués vers des composants de traitement qui sont répartis et peuvent travailler en parallèle. 4. Procédé selon l'une des revendications précédentes, caractérisé en ce qu'au moins l'un des modules réseaux virtuels conduit à un 30 autre module pouvant être un module qui ajoute un en-tête de transport. 2871972 - 12 - 5. Procédé selon l'une des revendications précédentes, caractérisé en ce que l'un des modules réseaux virtuels VNB nhlfe(di) conduit à un module VNB "one2many"(c) de la même instance ou d'une autre instance du procédé. 6. Procédé selon l'une des revendications précédentes, caractérisé en ce que l'un des modules réseaux virtuels conduit à un module VNB(g) qui ajoute un en-tête de transport. 7. Procédé selon la revendication 6, caractérisé en ce que le module VNB(g) qui ajoute l'en-tête de transport (g) conduit à un module VNB "one2many"(c) de la même instance ou d'un module "one2many"(c') d'une autre instance 2 du procédé. 8. Procédé selon l'une des revendications précédentes, caractérisé en ce qu'il comprend un module VNB split(f) qui renvoie vers de nouvelles itérations A et B et conduit à un module VNB d'interface (h). 9. Procédé selon l'une des revendications précédentes s'appliquant à un 20 réseau à commutation d'étiquettes comprenant au moins un routeur à commutation d'étiquettes LSR, caractérisé en ce qu'il présente une couche physique Ethernet (interface e) qui réalise une action de commutation SWAP de deux étiquettes différentes lorsqu'un paquet réseau arrive dans l'interface. 10. Procédé selon la revendication 9, caractérisé en ce que le susdit routeur est un routeur de bordure à commutation d'étiquettes qui combine la fonction d"'ingress LSR" et la fonction d"'egress LSR". 2871972 - 13 - 11. Procédé selon l'une des revendications 1 et 2, caractérisé en ce que les traitements réalisés par les modules réseaux virtuels optimisent le couplage entre le mécanisme de filtrage et d'autres mécanismes de sécurité tels que la détection d'intrusion, le contrôle anti-virus ou l'analyse de contenu. 12. Procédé selon l'une des revendications précédentes, caractérisé en ce qu'à un module réseau virtuel initial correspond une règle de filtrage qui oriente dynamiquement le paquet réseau reçu vers un autre module correspondant à un traitement de sécurité complémentaire (détection d'intrusion, anti-virus, analyse de contenu...) en fonction du contenu ou du type de ce paquet. 13. Procédé selon l'une des revendications 1 et 2, 15 caractérisé en ce que les traitements réalisés par les modules réseaux virtuels assurent l'implantation d'une fonction de qualité de service.