Brevet FR2811180A1 — publié le 20020104

Domaine technique La présente invention concerne d'une façon générale des réseaux de transmission de données IP dans lesquels la route est déterminée dans chaque routeur le long du chemin au moyen d'une combinaison de paramètres, et plus particulièrement un réseau de transmission de données IP utilisant un système de sélection de route basé sur des informations de niveau 4/5. Contexte Dans un réseau de transmission de données IP, lorsque des paquets de données sont transmis d'un poste de travail émetteur vers un poste de travail récepteur, ils sont acheminés de noeud en noeud par un mécanisme de routage mis en oeuvre par un routeur intégré dans chacun des noeuds disposés le long du chemin des données. Chaque datagramme IP reçu par un noeud spécifiant une adresse de réception autre que l'adresse du noeud local, est soumis à un algorithme de routage IP par le routeur du noeud afin de sélectionner le noeud suivant. Pour cela, le routeur utilise une table de routage qui contient des informations sur les autres routeurs à l'intérieur de son propre réseau et sur les autres réseaux IP connectés à son propre réseau. Le mécanisme de routage permet de déterminer un chemin de routage optimal. Cette détermination est basée sur une pluralité de paramètres ou sur une combinaison de paramètres, ces paramètres étant des valeurs soit résultant de calculs algorithmiques sur une variable donnée, soit entrées directement par l'administrateur du routeur. La FR9 2000 0008 comparaison des paramètres permet au routeur de déterminer les routes optimales et ainsi d'établir une table de routage. De nombreux paramètres sont utilisés dans les algorithmes de routage. Des algorithmes de routage sophistiqués peuvent baser la sélection de la route sur plusieurs paramètres, en les combinant de manière à obtenir un seul paramètre final. La longueur du chemin est le paramètre le plus communément utilisé. Certains protocoles de routage permettent à l'administrateur du réseau d'affecter des coûts arbitraires à chaque lien de réseau. Dans ce cas, la longueur du chemin est égale à la somme des coûts associés à chaque lien traversé. Un autre paramètres important que l'on peut utiliser est le coût de la communication, dans la mesure ou certaines sociétés ne se soucient guère des performances et sont par contre très sensibles aux coûts d'exploitation. Mais on peut utiliser d'autres paramètres tels que la fiabilité de chaque lien de réseau(généralement décrite en terme de taux d'erreur binaire), le délai (le temps nécessaire pour faire passer un paquet d'une source à une destination), la bande passante (la capacité de trafic disponible d'un lien) ou la charge (le degré d'occupation d'une ressource du réseau telle qu'un routeur). Toutes les informations utilisées par le protocole de routage pour déterminer ces paramètres proviennent des différentes couches du réseaux jusqu'à la couche 3. Il convient de rappeler que, dans le protocole Internet comme dans le modèle Open System Interconnect (OSI), la couche qui définit la livraison des paquets y compris le routage est la couche 3. En revanche, les couches supérieures (couches 4/5 dans la procedure de reseaux) définissent l'application comme le Transmission Control Protocol (TCP) ou le User FR9 2000 0008 Datagram Protocol (UDP). Elles ne sont pas utilisées pour déterminer les paramètres de routage, et ni pour construire la table de routage. Plusieurs tentatives ont été faites pour utiliser des informations de niveau 4/5 dans l'algorithme de routage. Toutes ces approches étaient basées sur l'hypothèse que les postes de travail émetteur et récepteur fournissaient des informations aux routeurs et supportaient un protocole spécifique pour définir les entrées. Ces tentatives qui mettaient l'accent sur le niveau 4/5 (pour le modèle TCP/IP comme pour le modèle OSI) n'ont jamais été poursuivies de manière continue et durable et ont été finalement abandonnées. Une tentative a également été faite dans OSPF avec des paramètres de configuration particuliers appelés "Type De Service" ou "TDS" ("Type Of Service" ou "TOS" en anglais). Dans ce mécanisme, l'application doit définir le champ TDS (TOS en anglais) pour toutes les données IP générées par le poste de travail émetteur. Le support de TDS dans le routage nécessite une modification de l'application. A l'heure actuelle, aucune application n'est utilisée de cette manière. C'est pourquoi l'utilisation du champ TDS a été abandonnée dans les versions OSPF récentes, conformément aux dernières recommandations RFC. D'autres tentatives utilisent une file d'attente par ordre de priorité dans les routeurs: le routeur tente d'examiner un champ significatif de la couche d'application du niveau 4/5 lorsqu'il reçoit des paquets de données IP afin de déterminer un ordre de priorité dans la mémoire tampon d'entrée/sortie. Ce genre de mécanisme agit sur la vitesse de transmission des données, mais ne modifie pas le chemin de routage. FR9 2000 0008 Résumé de l'invention La présente invention a pour objet principal de proposer un système de sélection de route à l'algorithme de routage d'un réseau de transmission de données IP, basé sur le type d'application utilisé dans une communication entre un poste de travail émetteur et un poste de travail récepteur. La présente invention a aussi pour objet de proposer un système de sélection de route au protocole de routage OSPF selon le port TCP ou UDP nécessaire dans chaque routeur disposé le long du chemin de transmission dans un réseau de transmission de données IP. Par conséquent, la présente invention concerne un système de transmission de données pour transmettre des paquets de données entre un poste de travail émetteur et un poste de travail récepteur. Les paquets de données sont transmis sur au moins un réseau IP, entre un noeud d'entrée connecté au poste de travail émetteur et un noeud de sortie connecté au poste de travail récepteur. Chacun des routeurs dans les noeuds intermédiaires disposés le long du chemin de données entre le noeud d'entrée et le noeud de sortie détermine la meilleure route grâce à une table de routage selon le contenu d'un champ transmis dans chaque paquet de données reçu. Pour cela, le routeur du noeud d'entrée comprend une table de configuration qui définit le contenu du champ - le champ TDS ("TOS" en anglais) dans la version préférée - en fonction d'informations associées à un protocole d'un niveau supérieur au niveau IP, généralement d'un niveau 4/5 tel que TCP ou UDP. FR9 2000 0008 Brève description des dessins On comprendra mieux les objectifs, caractéristiques et avantage susmentionnés, entre autres, de l'invention à la lecture de sa description détaillée ci-après, accompagnée des dessins suivants: -La figure 1 est un schéma fonctionnel représentant un réseau de transmission de données dans lequel l'invention peut être mise en oeuvre. -La figure 2 est la représentation schématique d'un datagramme IP avec les différents champs composant l'en-tête IP. -La figure 3 montre le contenu du champ "Type de Service" ("Type of Service" en anglais) du datagramme IP avec les bits "TDS" ("TOS" en anglais). -La figure 4 est une représentation schématique du datagramme IP montrant l'en-tête TCP/UDP à la suite de l'en-tête IP. -La figure 5 montre les différentes étapes exécutées dans un noeud d'entrée selon la présente invention. -La figure 6 est la représentation schématique d'une table de configuration utilisée dans le système de transmission de données selon la présente invention. -La figure 7 est un schéma fonctionnel représentant le routeur du noeud d'entrée selon la présente invention. Description détaillée de l'invention La figure 1 montre un système de transmission de données conforme à l'invention. Ce système de transmission donné à titre d'exemple, comprend un poste de travail émetteur ("Source Workstation" en anglais) 10 relié à un LAN 12, et pouvant accéder à un réseau IP 14 via un noeud d'entrée 16 FR9 2000 0008 afin de transmettre des paquets de données à un poste de travail récepteur ("Destination Workstation" en anglais) 18 connecté au réseau 14 par un noeud de sortie 20. La route optimale, qui est calculée à partir d'une combinaison de paramètres, est définie dans le noeud d'entrée en fonction des informations du niveau 4/5, comme il est précisé plus bas. Ainsi, une route optimale peut passer par un noeud intermédiaire 22 avec une première application, tandis que la route optimale peut passer par un noeud intermédiaire 24 avec une seconde application. Par exemple, on peut imaginer que la première application est une session vocale VoIP nécessitant un faible délai mais pas une grande largeur de bande et que la seconde application est un transfert de données avec le protocole File Transfer Protocol (FTP) ne nécessitant pas de délai précis mais un fort débit. Ainsi, le chemin passant pas le noeud intermédiaire 22 offre un meilleur delai que celui du chemin passant par le noeud intermédiaire 24, mais la largeur de bande totale de ce chemin est limitée. Le délai du chemin passant par le noeud intermédiaire 24 est plus long, mais une grande largeur de bande est disponible sur ce second chemin. On notera que, la route passant par le noeud 22 offrant un délai plus court, les deux sessions, vocale et de transmission de données, emprunteraient celle-ci si on utilisait le protocole classique OSPF, tandis que l'invention basée sur les informations de niveau 4/5 permet d'établir deux routes optimales, et d'équilibrer ainsi la charge entre toutes les routes du réseau. Comme le montre la figure 2, un datagramme IP comprend un en-tête IP contenant des informations nécessaires pour émettre le paquet sous une forme correcte avec l'adresse IP FR9 2000 0008 de la source ("Source IP Address" en anglais) ou l'adresse IP de la destination ("Destination IP Address" en anglais) et le champ de données IP ("data" en anglais) 26. L'en-tête 24 comprend un champ "Service Type" 28 comme le montre la figure 3. Le champ "Service Type" contient deux bits pour la mesure du niveau de priorité du datagramme ("Precedence" en anglais), un bit MBZ (Must Be Zero - doit être à zéro) réservé à un usage futur et des bits "Type de Service" ("Type of Service" ou "TOS" en anglais) 3 à 6 qui caractérisent certains paramètres de l'application tels que le temps de propagation, le débit et la fiabilité. Dans un datagramme IP, en plus de l'en-tête IP ("IP Header" en anglais) 24, le champ de données IP 26 est composé d'un en-tête TCP/UDP ("TCP/UDP Header" en anglais) et de données comme le montre la figure 4. On notera que, dans les protocoles TCP et UDP ainsi que dans d'autres protocoles de niveau 4/5, l'en-tête comprend un champ contenant le numéro du port émetteur ainsi qu'un champ contenant le numéro du port récepteur. Dans le noeud d'entrée 16 (voir figure 1), lorsqu'un bloc est reçu (étape 30), l'ordre des étapes représentées à la figure est le suivant. Tout d'abord, le protocole est identifié en extrayant (étape 32) le champ associé contenu dans l'en-tête IP du datagramme IP (voir figure 2). Le numéro du port émetteur et/ou récepteur est également extrait (étape 34) de l'en-tête de niveau 4/5. Ensuite, la table de configuration représentée à la figure 6 est consultée (étape 36). Cette table de configuration donne le champ TDS ("TOS" en anglais) correspondant à un protocole donné ("Protocol" en anglais) et à un numéro de port donné (émetteur et/ou récepteur) ("Port Number" en anglais). Il faut noter que, du fait qu'il peut y avoir un grand nombre de numéros de port FR9 2000 0008 pour chaque protocole identifié, ce genre de table ne peut pas contenir tous les cas possibles. La consultation de la table de configuration permet de déterminer si une entrée de la table est associée avec le protocole identifié (étape 38). Si c'est le cas, le système détermine ensuite si le numéro de port extrait de l'en-tête de niveau 4/5 est identifié dans la table de configuration (étape 40). Si c'est le cas, les bits TDS (TOS en anglais) du datagramme IP sont remplacés (étape 40) par les bits correspondants dans la table de configuration. Il faut noter que les bits TDS sont tous préalablement forcés à zéro conformément à la route par défaut. Enfin, la tâche de routage est exécutée par le protocole OSPF ou un protocole équivalent (étape 44) avant la transmission du bloc sur le réseau. Si le protocole identifié dans le datagramme IP ne correspond à aucune entrée du tableau de configuration ou s'il n'y a pas de numéro de port pour ce protocole dans la table de configuration qui corresponde au numéro de port identifié dans l'en-tête de niveau 4/5, les bits TDS sont forcés à zéro ou ne changent pas s'ils étaient déjà à zéro (étape 46). Ensuite, la tâche de routage OSPF (ou protocole équivalent) est exécutée par le routeur (étape 44). On notera que, dans ce dernier cas, le TDS "tout à zéro" définit uniquement la route pas défaut. Comme le montre la figure 7, le routeur du neud d'entrée 20 (voir figure 1) comprend une unité de traitement de protocole ("Protocol Processing" en anglais) 50 qui identifie le protocole associé à l'application dans le bloc reçu. Ainsi, ce protocole peut être UDP plus Real Time Protocol (RTP) pour la transmission vocale ou TCP plus FTP FR9 2000 0008 pour la transmission de données. On notera que l'unité de traitement de protocole 50 cherche aussi le numéro de port associé au protocole dans l'en-tête du bloc, comme nous l'avons déjà vu. Lorsque le protocole et le numéro du port sont identifiés par l'unité de traitement de protocole 50, le bloc est transmis avec ces informations à l'unité de traitement 52 pour être envoyé. Le protocole et le numéro de port permettent à l'unité de traitement d'envoi ("Forwarding Processing" en anglais) 52 d'explorer la table de configuration 54 pour déterminer la valeur des bits TDS correspondant à ce protocole et à ce numéro de port. Ensuite, l'unité de traitement d'envoi 52 remplace dans le bloc les bits TDS précédents (généralement des bits forcés à zéro) par la valeur déterminée dans la table de configuration 54 et enregistre le bloc dans la mémoire tampon ("Frame Buffer" en anglais) 56. La valeur TDS permet aussi à l'unité de traitement d'envoi 52 de sélectionner une table de routage ("Routing Table" en anglais) appropriée qui identifie la route à utiliser. Par exemple, la table de routage 58 contient des informations de routage pour le protocole UDP. La table de routage 60 contient quant à elle des informations de routage pour le protocole TCP. Ensuite, l'unité de traitement d'envoi 52 utilise ces informations de routage pour sélectionner une file d'attente de sortie ("Output Queue" en anglais) avant de transmettre le bloc sur le réseau. Dans l'exemple précédent, le bloc vocal qui utilise UDP recevra des informations de routage qui lui permettront d'être transféré de la mémoire tampon 56 vers la file d'attente de sortie 62 pour être ensuite envoyé vers le noeud intermédiaire 22, tandis que le bloc de données qui utilise TCP recevra des informations de routage qui lui permettront d'être transféré de la mémoire tampon 56 vers la FR9 2000 0008 file d'attente de sortie 64 pour etre ensuite envoyé vers le noeud intermédiaire 24. Les routeurs de tous les autres noeuds disposés sur la route, tels que les noeuds intermédiaires 22 ou 24, contiennent les mêmes éléments, à l'exception de la table de configuration puisqu'ils n'ont pas besoin de déterminer et de changer la valeur du champ TDS dans le bloc. Comme dans le noeud d'entrée, la valeur TDS permet à chaque routeur de sélectionner la table de routage appropriée pour connaître les informations de routage et transmettre le bloc au noeud suivant sur la route. FR9 2000 0008 REVENDICATIONS 1. Un système de transmission de données pour transmettre des paquets de données d'un poste de travail émetteur (10) à un poste de travail récepteur (18), lesdits paquets de données étant transmis sur au moins un réseau IP (14) entre un noeud d'entrée (16) connecté audit poste de travail émetteur et un noeud de sortie (20) connecté audit poste de travail récepteur, chaque routeur des noeuds intermédiaires disposés le long du chemin de données entre ledit noeud d'entrée et ledit noeud de sortie déterminant la meilleure route grâce à une table de routage selon le contenu d'un champ transmis dans chaque paquet de données reçu, ledit système étant caractérisé par le fait que le routeur dudit noeud d'entrée comprend une table de configuration (54) qui définit le contenu dudit champ en fonction d'informations associées avec un protocole doté d'un niveau supérieur au niveau IP. 2. Un système de transmission de données conforme à la revendication 1, ledit champ défini par ladite table de configuration (54) déterminant le contenu du champ Type de Service (TDS) à inclure dans l'en-tête IP dudit paquet de données reçu. 3. Un système de transmission de données conforme à la revendication 2, ledit champ défini par ladite table de configuration (54) étant déterminé dans cette dernière par le code d'identification de protocole et par le numéro du port émetteur et/ou récepteur. FR9 2000 0008 4. Un système de transmission de données conforme à la revendication 1, 2 ou 3, chaque routeur des noeuds intermédiaires (22 ou 24) disposés le long du chemin de données entre ledit noeud d'entrée (16) et ledit noeud de sortie (20) comprenant plusieurs tables de routage (58, 60) correspondant chacune aux différents contenus dudit champ. 5. Un procédé pour transmettre des paquets de données sur un réseau IP d'un poste de travail émetteur (10) à un poste de travail récepteur (18), entre un noeud d'entrée (16) connecté audit poste de travail émetteur et un noeud de sortie connecté audit poste de travail récepteur, chaque routeur des noeuds intermédiaires disposés le long du chemin de données entre ledit noeud d'entrée et ledit noeud de sortie déterminant la meilleure route dans une table de routage, ledit procédé étant caractérisé par le fait qu'il comprend les opérations suivantes: - extraction de chaque paquet de données reçu dans ledit routeur d'informations associées avec un protocole d'un niveau supérieur au niveau IP, et - utilisation desdites informations pour déterminer la meilleure route en sélectionnant une table de routage parmi plusieurs. 6. Un procédé conforme à la revendication 5, lesdites informations associées avec un protocole d'un niveau supérieur au niveau IP étant le code d'identification de protocole et le numéro des ports émetteur et/ou récepteur. 7. Un procédé conforme à la revendication 6, ladite étape d'utilisation des dites informations FR9 2000 0008 consistant à déterminer la valeur d'un champ dans ledit paquet de données qui dépend dudit code d'identification de protocole et desdits numéros de port émetteur et/ou récepteur. 8. Un procédé conforme à la revendication 7, ledit champ étant le champ Type de Service (TDS) de l'en-tête IP dudit paquet de données. 9. Un procédé conforme à la revendication 8, la valeur dudit champ TDS étant modifiée en fonction dudit code d'identification de protocole et desdits numéros de port émetteur et/ou récepteur dans le routeur dudit noeud d'entrée. 10. Un système comprenant des moyens pour mettre en oeuvre les étapes du processus selon l'une des revendications 5 à 9. FR9 2000 0008