Brevet FR2845544A1 — publié le 20040409

SUPPORT ACTIF DE RESERVATION DE RESSOURCES DANS UN RESEAU DE COMMUNICATION L'invention concerne la réservation de ressources dans des routeurs d'un réseau de communication par paquets, notamment un réseau au protocole IP. On appelle réseau actif un réseau comprenant des noeuds ou routeurs actifs, capables de réaliser des traitements spécifiques sur les données traversant le réseau. Les routeurs reçoivent dans ce cas des paquets comprenant des commandes, des informations, un code ou un programme à traiter par le routeur. Ces paquets 10 transportant ces commandes, informations, code ou programme sont ici appelés " paquets actifs ", par opposition aux autres paquets, qui sont appelés " paquets passifs " Il existe différentes méthodes pour rendre un paquet actif. S'agissant d'un réseau au protocole IP, une première méthode consiste à rendre le paquet actif en 1 5 incluant un marqueur dans son entête. On peut pour cela définir une option réservée du paquet IP. Selon une autre méthode, on utilise un des champs FLOW LABEL du protocole lPv6 pour marquer le paquet comme actif. On peut notamment donner une valeur prédéterminée à un tel champ du paquet actif contenant une requête en réservation de ressources. Selon encore une autre méthode, un marqueur d'un label 20 MPLS du paquet indique que le paquet est actif. L'utilisation d'un marqueur inclus dans un label MPLS permet au routeur de déterminer plus rapidement si le paquet est actif. Le même marqueur peut être utilisé dans des labels MPLS des paquets du flux à ressources réservées. Par conséquent, un routeur actif détermine le caractère actif d'un paquet qu'il reçoit en vérifiant la présence du marqueur dans le paquet. Généralement, le routage des paquets actifs est différent du routage des paquets passifs à travers le réseau. Notamment, il est bien connu de router les paquets actifs en priorité vers les routeurs actifs, de façon à optimiser le traitement des paquets actifs dans le réseau. Ce type de routage est par exemple décrit dans l'article " Optimised Routing in Hybrid Active Networks " présenté lors de la 30 conférence internationale " OPENARCH 2002 ". On appelle flux de données actif ou flux actif un flux de paquets requérant un traitement spécifique par les routeurs qu'il traverse. Un flux actif est identifié par le fait que les paquets constituant ce flux sont des paquets rendus actifs par l'une ou l'autre des méthodes mentionnées précédemment, ou par tout autre méthode appropriée. Un flux de données actif est classiquement traité par une même instance d'un programme lancé dans un routeur traversé par le flux. La même instance de 5 programme est utilisée afin d'obtenir un traitement cohérent des différents paquets du flux actif. Le traitement peut notamment consister à transcoder un flux de vidéo sur IP d'un format vers un autre par la même instance de programme. La même instance de programme est utilisée pour réaliser le transcodage des trames du fait que le traitement des trames vidéo du flux peut varier en fonction du contexte imposé par 1 0 des trames précédentes. Il est encore connu d'établir une qualité de service -aussi appelée QoS- des transmissions sur un réseau de communication en réservant des ressources pour des flux de données spécifiques traversant un réseau. Un protocole de réservation de ressource dénommé " Beagle " est décrit dans le document " Technical Report CMU-CS-98-150 " publié en Juillet 1998 par la 15 Carneggie Mellon University aux Etats-Unis. Ce protocole est utilisé pour réserver des ressources pour des flux actifs. La réservation de ressources est effectuée par émission d'un paquet suivant ce protocole et contient des commandes de réservation de ressources placées dans sa zone utile (appelée " payload " en anglais). Lorsqu'ils sont traversés par un paquet de réservation au protocole Beagle, les routeurs actifs le 20 reconnaissent en raison du numéro de protocole inscrit dans celui-ci. Des ressources sont alors réservées dans les routeurs actifs recevant ces commandes, pour le routage des paquets actifs définis dans ces commandes. Ce procédé présente cependant des inconvénients. En effet, les paquets au protocole Beagle contenant les commandes de réservation sont routés dans le réseau 25 en qualité de paquet passif et sont donc routés à travers le réseau comme un paquet passif. Ils passent donc indifféremment par des routeurs actifs et des routeurs passifs. Par conséquent, les paquets contenant les commandes de réservation peuvent éventuellement ne traverser que des routeurs passifs, et par voie de conséquence, ils ne sont traités par aucun routeur actif du réseau. La réservation de ressources 30 souhaitée n'a donc pas lieu dans ce cas. De plus, les paquets contenant les commandes de réservation peuvent emprunter un trajet dans le réseau différent du trajet emprunté par les paquets des flux actif pour lesquels ils sont sensés effectuer la réservation de ressources. En effet, le routage des paquets actifs est généralement différent du routage des paquets passifs à travers le réseau. Ainsi, les commandes de réservation peuvent être inutilement mis en oeuvre par des routeurs actifs non traversés par les paquets du flux actif correspondant et au contraire ils peuvent ne pas être fournies aux routeurs actifs effectivement traversés par les paquets du flux actif correspondant. L'invention a pour but de palier au moins partiellement ces inconvénients. A cette fin, l'invention propose un procédé de réservation de ressources dans un réseau de communication par paquets, de préférence un réseau au protocole IP, comprenant les étapes de: - a) émission sur le réseau d'un paquet actif contenant une requête en réservation de ressources pour un flux de données actif; - b) réception dudit paquet par un noeud actif du réseau; et - c) réservation de ressources du noeud en fonction de ladite requête. Dans un mode de réalisation préféré, ledit paquet est au format du 15 protocole RSVP. Ledit paquet peut être avantageusement du type PATH du protocole RSVP. Dans un autre mode de réalisation préféré, la requête comprend un identifiant dudit flux de données actif. Dans encore un autre mode de réalisation préféré, le procédé comprend 20 après l'étape b), les étapes de: - bl) chargement par ledit noeud actif d'un code à exécuter; et - b2) exécution dudit code par ledit noeud actif. Le code à exécuter peut être fourni audit noeud actif dans ledit paquet ou dans ledit flux de données actif. Selon une variante, ledit noeud télécharge le code à 25 exécuter sur un serveur. Ledit paquet peut avantageusement contenir une identification dudit serveur, ledit noeud téléchargeant le code à exécuter sur le serveur défini par ladite identification. Dans un mode de réalisation préféré, le procédé comprend après l'étape bl) , une étape de: - b3) envoi sur le réseau par ledit noeud d'une confirmation du chargement dudit code. Dans encore un autre mode de réalisation, ledit paquet comprend en outre des paramètres de traitement dudit flux de données actif, le procédé comprenant après l'étape b), une étape de: - b4) mise en oeuvre desdits paramètres par ledit noeud. Par ailleurs, il est avantageux que dans le réseau, les paquets de type actif soient routés en priorité vers des noeuds actifs du réseau. L'invention propose aussi un noeud actif de réseau de communication par paquets, notamment un routeur actif IP, réservant des ressources pour le traitement des données d'un flux de données actif en fonction d'une requête en réservation de 1 0 ressources pour ledit flux de données actif contenue dans un paquet actif reçu par le noeud. Dans un mode de réalisation préféré, le noeud effectue ladite réservation en fonction d'une requête en réservation de ressources pour ledit flux de données actif contenue dans un paquet actif au format du protocole RSVP. Le noeud peut 15 avantageusement effectuer ladite réservation en fonction d'une requête en réservation de ressources pour ledit flux de données actif contenue dans un paquet actif du type PATH du protocole RSVP. Dans un autre mode de réalisation préféré, le noeud charge un code après réception dudit paquet, puis exécute ledit code. Le noeud peut avantageusement lire 20 une identification de serveur dans ledit paquet et télécharge ledit code depuis le serveur identifié. Par ailleurs, après chargement dudit code, il est avantageux que le noeud envoie une confirmation du chargement dudit code sur le réseau. Dans encore un autre mode de réalisation préféré, le noeud met en oeuvre des paramètres de traitement dudit flux de données actif, contenus dans ledit paquet 25 actif contenant la requête en réservation de ressources pour ledit flux de données actif. L'invention est maintenant décrite plus en détails dans la description qui suit. Selon l'invention, on émet sur un réseau de communication par paquets, un paquet actif contenant une requête en réservation de ressources pour un flux de 30 données actif. Lorsque le paquet est reçu par un noeud actif du réseau, ce noeud réserve les ressources en fonction de la requête, du moins si la requête en réservation concerne ce noeud. L'invention s'applique avantageusement aux réseaux de communication au protocole IP (" Internet Protocol ") auquel cas les noeuds sont appelés routeurs. Dans ce cas, on émet un paquet IP actif contenant une requête en réservation de ressources pour un flux de données actif. Lorsque ce paquet est reçu par un routeur 5 actif du réseau, ce routeur réserve les ressources en fonction de la requête, du moins si la requête en réservation concerne ce noeud. Ainsi, lorsque un terminal émetteur émet un flux de données vers un terminal destinataire via le réseau, il peut préalablement envoyé un paquet actif contenant la requête en réservation de ressources. Bien entendu, le paquet actif 10 contenant la requête en réservation peut aussi être émis par un routeur du réseau agissant alors pour le compte de ce terminal. Le paquet contenant la requête en réservation de ressources étant actif, il emprunte le même trajet dans le réseau que les paquets du flux actif émis ultérieurement pour lequel la requête en réservation est émise. Ainsi, les paquets du flux actif concerné passent par des routeurs actifs ayant 15 interprété préalablement la requête en réservation et ayant donc réservé les ressources souhaitées pour ces paquets. Le paquet contenant la requête en réservation comprend un identifiant des paquets du flux actif pour lequel des ressources doivent être réservées. L'identifiant peut notamment comprendre une référence: - à un protocole utilisé par ces paquets actifs, - à un émetteur ou à un destinataire des paquets du flux actif étant précisé qu'il peut s'agir d'un terminal, mais aussi par exemple d'un routeur du réseau, ou - à tout autre paramètre approprié. Les ressources à réserver par le routeur peuvent avantageusement 25 comprendre un espace mémoire alloué dans le routeur pour le flux actif correspondant ou encore une taille de bande passante pour ce flux actif. Elles peuvent aussi comprendre - alternativement ou en plus - l'allocation d'un temps de traitement de l'unité de traitement du routeur ou encore l'affectation d'un coprocesseur donné du routeur au traitement du flux actif concerné lorsque le routeur 30 comprend plusieurs processeurs. Le paquet contenant la requête peut contenir des paramètres de réservation de ressources tels que des spécifications des routeurs pour que seuls les routeurs actifs présentant ces spécifications mettent en oeuvre la requête en réservation. Ainsi, le paquet contenant la requête peut spécifier que la réservation de ressources n'est à effectuer que par les routeurs actifs d'un type déterminé. A côté de la définition des ressources à réserver, le paquet contenant la requête peut également présenter des paramètres de traitement des données du flux 5 actif tels qu'une commande définissant des conditions d'utilisation des ressources par un routeur actif. Ainsi, la commande peut spécifier une durée maximale pour effectuer le traitement du flux actif par le routeur actif. Au delà de cette durée, le routeur considère qu'une erreur s'est produite durant le traitement ou la transmission du flux actif et effectue en conséquence des tâches de traitement d'erreur telle que 1 0 l'émission d'un message d'erreur vers un émetteur du flux. Un autre exemple de paramètre de traitement des données du flux actif est une commande définissant les traitements des paquets actifs à effectuer par un routeur actif, autrement dit la commande identifie le code à exécuter par le routeur actif. Le code à exécuter peut être présent en permanence dans le routeur. Une 15 variante avantageuse consiste à faire télécharger le code par le routeur comme nous le décrirons plus loin. Plus généralement, le paquet contenant la requête peut comprendre toute sorte d'information ou de commande utile concernant les codes de traitement des routeurs ou autre qui peuvent par exemple être placées dans des extensions des 20 champs RSPEC et TSPEC d'un paquet PATH au format du protocole RSVP. La requête en réservation avec les éventuels paramètres précités, contenu dans un paquet actif selon l'invention peut être une requête commune à l'ensemble des routeurs actifs du réseau, c'est-à-dire que chacun des routeurs actifs met en oeuvre la même réservation de ressources. En variante, la requête en réservation et/ou ces paramètres précités contenus dans un paquet actif selon l'invention peut aussi être destinée à un ou plusieurs routeurs actifs spécifiques du réseau. Dans ce cas, il peut être prévu des requêtes en réservation et/ou des paramètres différents pour différents routeurs actifs. Ainsi, le paquet actif contenant la requête en réservation de ressources peut contenir 30 différents types et/ou valeurs de ressources à réserver, chacune étant mis en oeuvre par d'autres routeurs actifs du réseau. Une telle distinction des ressources à réserver peut notamment être liée à la localisation des routeurs actifs dans le réseau. A titre d'exemple, le traitement des paquets du flux actif pour lequel la réservation de ressources est faite, peut comprendre l'encryptage des paquets par le routeur actif à l'entrée du réseau et le décryptage par le routeur actif à la sortie du réseau. Par conséquent, il est avantageux de réaliser des requêtes en réservation de ressources comprenant des types de ressources et des paramètres de ressources et/ou de 5 traitement en fonction du type de routeur, de sa localisation dans le réseau ou du chemin traversé dans le réseau, ou de tout autre paramètre dépendant du routeur. Le paquet contenant la requête est de préférence au format du protocole RSVP. Ainsi, le paquet contenant la requête peut être interprété par les routeurs interprétant ce protocole. Il n'est alors pas indispensable de changer l'ensemble des 10 routeurs pour effectuer une réservation de ressources sur le réseau. Les applications de traitement de protocoles RSVP doivent éventuellement être mises à jour pour prendre en compte de nouveaux champs définis dans des extensions de protocole RSVP. Les paquets actifs émis dans un protocole RSVP sont routés normalement par les routeurs passifs. L'utilisation de routeurs passifs ne perturbe donc pas leur 15 transmission sur le réseau de communication. Le paquet contenant la requête est de préférence un paquet de type PATH du protocole RSVP choisi. Dans le protocole RSVP, un paquet PATH est un paquet contenant une requête en réservation de ressources. Le routage du paquet contenant la requête et des paquets actifs 20 correspondants est de préférence modifié pour traverser des routeurs actifs en priorité. On peut ainsi prévoir que les rouleurs actifs présentent une table de routage spécifique aux paquets actifs et une autre table de routage spécifique aux paquets passifs. La table de routage des paquets actifs peut alors avantageusement être prévue pour router ces paquets uniquement - ou du moins en priorité - vers des 25 routeurs actifs. Le traitement des paquets actifs est ainsi optimisé car les paquets actifs traversent en priorité des routeurs actifs susceptibles de les traiter de manière spécifique. Le traitement des paquets peut par exemple être modifié en fonction des conditions de transmission du réseau. Le traitement d'un flux de vidéo sur IP peut notamment consister à transcoder les paquets pour réduire la qualité d'image 30 lorsque les conditions de transmission sur le réseau se détériorent. On peut également prévoir que suite à la réception d'un paquet actif contenant une requête en réservation de ressources, le routeur actif du réseau charge un ou plusieurs codes que le routeur exécutera. Un tel code à exécuter peut notamment servir à traiter spécifiquement le flux de données pour lequel des ressources sont réservées dans le routeur. Le chargement d'un tel code peut être effectué suivant plusieurs alternatives. Le code peut soit être inclus dans le paquet contenant la requête, soit être inclus dans des paquets du flux de données à 5 ressources réservées, soit être mis à disposition sur un serveur en communication avec le routeur actif. Dans le cas o le code est mis à disposition sur un serveur, le paquet contenant la requête ou un paquet du flux de données à ressources réservées peut contenir l'adresse du serveur et un identifiant du code à charger. Le routeur actif peut alors envoyer une requête en émission du code au serveur. Il est avantageux 10 que le routeur envoie à l'émetteur du paquet actif contenant la requête en réservation un message de confirmation après qu'il ait complètement téléchargé le code à exécuter. Ainsi, l'émetteur sait que le routeur actif est prêt à exécuter le code pour le flux actif concerné et donc l'émetteur peut en réponse lui envoyer les paquets du flux actif correspondant. Bien entendu, la présente invention n'est pas limitée aux exemples et modes de réalisation décrits et représentés, mais elle est susceptible de nombreuses variantes accessibles à l'homme de l'art. REVENDICATIONS 1. Un procédé de réservation de ressources dans un réseau de communication par paquets, de préférence un réseau au protocole IP, comprenant les étapes de: - a) émission sur le réseau d'un paquet actif contenant une requête en réservation de ressources pour un flux de données actif; - b) réception dudit paquet par un noeud actif du réseau; et - c) réservation de ressources du noeud en fonction de ladite 1 0 requête. 2. Le procédé de la revendication 1, caractérisé en ce que ledit paquet est au format du protocole RSVP. 1 5 3. Le procédé de la revendication 1 ou 2, caractérisé en ce que ledit paquet est du type PATH du protocole RSVP. 4. Le procédé de l'une des revendications précédentes, caractérisé en ce que la requête comprend un identifiant dudit flux de données actif. 20 5. Le procédé de l'une des revendications précédentes, caractérisé en ce qu'il comprend après l'étape b), les étapes de; - bl) chargement par ledit noeud actif d'un code à exécuter; et - b2) exécution dudit code par ledit noeud actif. 25 6. Le procédé de la revendication 5, caractérisé en ce que le code à exécuter est fourni audit noeud actif dans ledit paquet ou dans ledit flux de données actif. 7. Le procédé de la revendication 5, caractérisé en ce que ledit noeud télécharge le code à exécuter sur un serveur. 8. Le procédé selon la revendication 7, caractérisé en ce que ledit paquet contient une identification dudit serveur, ledit noeud téléchargeant le code à exécuter sur le serveur défini par ladite identification. 9. Le procédé de l'une quelconque des revendications 5 à 8, caractérisé en ce qu'il comprend après l'étape bl), une étape de: - b3) envoi sur le réseau par ledit noeud d'une confirmation du chargement dudit code. 10. Le procédé de l'une quelconque des revendications précédentes, caractérisé en ce que ledit paquet comprend en outre des paramètres de traitement dudit flux de données actif, le procédé comprenant après l'étape b), une étape de: b4) mise en oeuvre desdits paramètres par ledit noeud. 15 1i1. Le procédé de l'une quelconque des revendications précédentes, caractérisé en ce que dans le réseau, les paquets de type actif sont routés en priorité vers des noeuds actifs du réseau. 12. Un noeud actif de réseau de communication par paquets, notamment un routeur actif IP, réservant des ressources pour le traitement des données d'un flux de données actif en fonction d'une requête en réservation de ressources pour ledit flux de données actif contenue dans un paquet actif reçu par le noeud. 13. Le noeud selon la revendication 1 2, caractérisé en ce qu'il effectue ladite réservation en fonction d'une requête en réservation de ressources pour ledit flux de données actif contenue dans un paquet actif au format du protocole RSVP. 14. Le noeud de la revendication 12 ou 13, caractérisé en ce que qu'il effectue ladite réservation en fonction d'une requête en réservation de ressources pour ledit flux de données actif contenue dans un paquet actif du type PATH du protocole RSVP. 15. Le noeud d'une des revendications 12 à 14, caractérisé en ce qu'il charge un code après réception dudit paquet, puis exécute ledit code. 1 6. Le noeud de la revendication 15, caractérisé en ce qu'il lit une identification de serveur dans ledit paquet et télécharge ledit code depuis le serveur identifié. 1 7. Le noeud de la revendication 1 5 ou 1 6, caractérisé en ce que, après chargement dudit code, il envoie une confirmation du chargement dudit code sur le réseau. 1 8.. Le noeud de l'une des revendications 1 2 à 1 7, caractérisé en ce qu'il met en oeuvre des paramètres de traitement dudit flux de données actif, contenus dans ledit paquet actif contenant la requête en réservation de ressources pour ledit flux de données actif