FR2908575A1 - Methode et appareil pour fournir un equilibrage de charge base sur le flux - Google Patents

Methode et appareil pour fournir un equilibrage de charge base sur le flux Download PDF

Info

Publication number
FR2908575A1
FR2908575A1 FR0609786A FR0609786A FR2908575A1 FR 2908575 A1 FR2908575 A1 FR 2908575A1 FR 0609786 A FR0609786 A FR 0609786A FR 0609786 A FR0609786 A FR 0609786A FR 2908575 A1 FR2908575 A1 FR 2908575A1
Authority
FR
France
Prior art keywords
stream
path
parameter
compatible resource
packet
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR0609786A
Other languages
English (en)
Other versions
FR2908575B1 (fr
Inventor
Nicolas Grisi
Aurelien Bruno
Richard Duwiquet
Pennec Jean Francois Le
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
AT&T Corp
Original Assignee
AT&T Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by AT&T Corp filed Critical AT&T Corp
Priority to FR0609786A priority Critical patent/FR2908575B1/fr
Priority to US11/648,082 priority patent/US8601126B2/en
Priority to PCT/FR2007/001724 priority patent/WO2008056041A1/fr
Publication of FR2908575A1 publication Critical patent/FR2908575A1/fr
Application granted granted Critical
Publication of FR2908575B1 publication Critical patent/FR2908575B1/fr
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/125Shortest path evaluation based on throughput or bandwidth
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/38Flow based routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Une méthode et un appareil pour un équilibrage de charge basé sur le flux sont divulgués. Par exemple, la présente méthode reçoit au moins un paquet provenant d'un flux. Si le flux n'a pas été classifié précédemment, alors le flux est classifié sur la base des caractéristiques du flux. Une fois classifié, la présente méthode apparie le flux avec au moins un chemin compatible provenant d'une pluralité de chemins disponibles conformément aux caractéristiques du flux et aux caractéristiques du au moins un chemin compatible. Une fois appariés, la présente méthode achemine le paquet provenant du flux jusqu'au au moins un chemin compatible pour traitement.

Description

METHODE ET APPAREIL POUR FOURNIR UN EQUILIBRAGE DE CHARGE BASE SUR LE FLUX
La présente invention a trait généralement à l'utilisation optimale de ressources groupées, par ex. des chemins, ordinateurs, serveurs, réseaux, systèmes de stockage, pare-feux, services informatiques, services réseau, et services de stockage et, en particulier, à des méthodes et appareils pour fournir un équilibrage de charge basé sur le flux.
CONTEXTE DE L'INVENTION Toutes les applications entreprise et consommateur importantes d'aujourd'hui reposent sur des infrastructures de communications telles qu'Internet. Les entreprises et les consommateurs peuvent avoir des serveurs multiples pour communiquer entre divers endroits, pour gérer les requêtes des clients, les transactions etc. Un équilibreur de charge frontal peut être utilisé pour équilibrer les requêtes entre les divers serveurs et déterminer quel serveur devrait gérer la prochaine requête.
II y a une diversité de méthodes d'équilibrage de charge qui équilibrent une charge offerte sur la base de la topologie du réseau et des informations de routage. Par exemple, circuit cyclique, circuit cyclique pondéré, basée sur entête HTTP (protocole de transfert hypertexte), temps de réponse, hachage d'adresses IP (Protocole Internet), hachage de localisateurs URL (localisateur de ressources uniformes), etc. Toutefois, ces méthodes d'équilibrage de charge sont basées uniquement sur la topologie du réseau et les informations de routage. L'état réel du réseau n'est pas pris en compte et tous les chemins existants ne sont pas mis à disposition dans la table de routage. Qui plus est, s'il est permis 2908575 2 une préférence dans la méthode d'équilibrage de charge, le chemin préféré ne peut pas être choisi sur une base par flux mais au contraire, est assigné au hasard en calculant le hachage. Le calcul du hachage ne prend pas en compte l'état réel du réseau (par ex., un statut courant) pour 5 les différents chemins. Ainsi, les méthodes d'équilibrage de charge existantes impliquent que la métrologie de route sur les différents chemins est identique et que les flux doivent être répartis au hasard. Par conséquent, il est besoin d'une méthode d'équilibrage de charge 10 basée sur le flux qui répartit la charge non seulement conformément à la topologie et aux informations de routage mais rend également compte d'un statut courant des divers chemins. Dans un mode de réalisation préféré, ladite au moins une ressource 15 compatible comprend au moins un élément parmi : un chemin, un ordinateur, un serveur, un réseau, un système de stockage, un pare-feu, un routeur, un commutateur, un service réseau ou un dispositif réseau. Dans un mode de réalisation préféré, lesdites caractéristiques dudit flux 20 comprennent au moins un élément parmi : un paramètre de débit, un paramètre de classe de service, un paramètre de gigue, un paramètre de temps d'attente, un paramètre de largeur de bande, ou un paramètre de perte de paquets. 25 Dans un mode de réalisation préféré, lesdites caractéristiques de ladite ressource compatible comprennent au moins un élément parmi : un paramètre de débit, un paramètre de classe de service, un paramètre de gigue, un paramètre de temps d'attente, un paramètre de largeur de bande, ou un paramètre de perte de paquets. 30 2908575 3 Dans un mode de réalisation préféré, ladite au moins une ressource compatible comprend au moins un chemin, et dans laquelle ledit appariement comprend calculer une différence entre lesdites caractéristiques dudit flux et les caractéristiques de chaque chemin parmi 5 une pluralité de chemins disponibles, où ledit au moins un chemin est sélectionné sur la base d'une différence la plus faible. Dans un mode de réalisation préféré, ladite différence entre lesdites caractéristiques dudit flux et les caractéristiques de chaque chemin parmi 10 une pluralité de chemins disponibles ne rend compte que des critères de chemin qui sont inférieurs aux critères de flux. Dans un mode de réalisation préféré, ladite classification dudit flux est effectuée de façon périodique. Dans un mode de réalisation préféré, la méthode comprend de plus la mise à jour desdites caractéristiques, Dans un mode de réalisation préféré, la méthode comprend de plus la 20 mise à jour desdites caractéristiques de ladite au moins une ressource compatible en réponse à une mise à jour réseau. Dans un mode de réalisation préféré, la méthode comprend de plus : apparier ledit flux de façon dynamique avec une autre ressource 25 compatible si lesdites caractéristiques dudit flux s'apparient mieux avec les caractéristiques de ladite autre ressource compatible lorsque comparées aux caractéristiques de ladite au moins une ressource compatible. 15 30 2908575 4 RESUME DE L'INVENTION Dans un mode de réalisation, la présente invention divulgue une méthode et un appareil pour équilibrer une charge sur la base du flux sur une 5 pluralité de ressources. Par exemple, la présente méthode reçoit au moins un paquet provenant d'un flux. Si le flux n'a pas été classifié précédemment, alors le flux est classifié sur la base des caractéristiques du flux. Une fois classifié, la présente méthode apparie le flux avec au moins un chemin compatible provenant d'une pluralité de chemins 10 disponibles conformément aux caractéristiques du flux et aux caractéristiques de ce au moins un chemin compatible. Une fois appariés, la présente méthode achemine le paquet provenant du flux jusqu'à ce au moins un chemin compatible pour traitement. 15 Dans un deuxième temps, l'invention concerne Un moyen lisible par un ordinateur sur lequel est stockée une pluralité d'instructions, la pluralité d'instructions incluant des instructions qui, lorsqu'elles sont exécutées par un processeur, amènent le processeur à effectuer les étapes d'une méthode pour traiter un flux de paquets, comprenant : 20 - recevoir au moins un paquet provenant dudit flux ; - classifier ledit flux sur la base des caractéristiques dudit flux ; 25 - apparier ledit flux avec au moins une ressource compatible provenant d'une pluralité de ressources disponibles conformément auxdites caractéristiques dudit flux et aux caractéristiques de ladite au moins une ressource compatible ; et 30 - acheminer ledit au moins un paquet provenant dudit flux 2908575 5 jusqu'à ladite au moins une ressource compatible pour traitement. Dans un mode de réalisation préféré, Le moyen lisible par un ordinateur 5 de la revendication 11, dans lequel ladite au moins ressource compatible comprend au moins un élément parmi : un chemin, un ordinateur, un serveur, un réseau, un système de stockage, un pare-feu, un routeur, un commutateur, un service réseau ou un dispositif réseau. 10 Dans un mode de réalisation préféré, lesdites caractéristiques dudit flux comprennent au moins un élément parmi : un paramètre de débit, un paramètre de classe de service, un paramètre de gigue, un paramètre de temps d'attente, un paramètre de largeur de bande, ou un paramètre de perte de paquets. 15 Dans un mode de réalisation préféré, lesdites caractéristiques de ladite ressource compatible comprennent au moins un élément parmi : un paramètre de débit, un paramètre de classe de service, un paramètre de gigue, un paramètre de temps d'attente, un paramètre de largeur de 20 bande, ou un paramètre de perte de paquets. Dans un mode de réalisation préféré, ladite au moins une ressource compatible comprend au moins un chemin, et dans lequel ledit appariement comprend calculer une différence entre lesdites 25 caractéristiques dudit flux et les caractéristiques de chaque chemin parmi une pluralité de chemins disponibles, où ledit au moins un chemin est sélectionné sur la base d'une différence la plus faible. Dans un mode de réalisation préféré, ladite différence entre lesdites 30 caractéristiques dudit flux et les caractéristiques de chaque chemin parmi 2908575 6 une pluralité de chemins disponibles ne rend compte que des critères de chemin qui sont inférieurs aux critères de flux. Dans un mode de réalisation préféré, ladite classification dudit flux est 5 effectuée de façon périodique. Dans un mode de réalisation préféré, le moyen comprend de plus : mettre à jour lesdites caractéristiques de ladite au moins une ressource compatible de façon périodique. Dans un mode de réalisation préféré, le moyen comprend de plus : 10 apparier ledit flux de façon dynamique avec une autre ressource compatible si lesdites caractéristiques dudit flux s'apparient mieux avec les caractéristiques de ladite autre ressource compatible lorsque comparées aux caractéristiques de ladite au moins une ressource compatible. 15 Dans un troisième temps, l'invention concerne un appareil pour traiter un flux de paquets, comprenant : - un moyen pour recevoir au moins un paquet provenant dudit 20 flux ; un moyen pour classifier ledit flux sur la base des caractéristiques dudit flux ; 25 un moyen pour apparier ledit flux avec au moins une ressource compatible provenant d'une pluralité de ressources disponibles conformément auxdites caractéristiques dudit flux et aux caractéristiques de ladite au moins une ressource compatible ; et 30 2908575 un moyen pour acheminer ledit au moins un paquet provenant dudit flux jusqu'à ladite au moins une ressource compatible pour traitement. Dans un mode de réalisation, des flux classifiés sont stockés dans une 5 base de données de flux et des chemins disponibles sont stockés dans une base de données de chemins de telle sorte que l'on puisse effectuer des opérations de recherche en utilisant ces deux bases de données. Dans un mode de réalisation, si le paquet ne fait pas partie d'un flux classifié, alors la méthode peut déterminer si les caractéristiques du 10 paquet correspondent ou non à un flux similaire classifié. Dans un mode de réalisation, les caractéristiques du flux et/ou des chemins sont mises à jour périodiquement. Ainsi, la présente invention fournit une méthode d'équilibrage de charge 15 ayant l'avantage de répartir la charge sur une base par flux conformément à l'appariement des caractéristiques du flux avec les caractéristiques d'un chemin. Comme les caractéristiques du flux et les caractéristiques du chemin assigné ou sélectionné sont changées au fil du temps, la présente invention permet l'assignation dynamique d'un nouveau chemin 20 pour le flux. BREVE DESCRIPTION DES DESSINS 25 L'enseignement de la présente invention peut être facilement compris en prenant en considération la description détaillée qui suit conjointement avec les dessins ci-joints, sur lesquels : 2908575 8 la figure 1 illustre un réseau exemplaire avec des routeurs ; la figure 2 illustre un organigramme d'une méthode pour équilibrer une 5 charge sur la base du flux de la présente invention ; la figure 3 illustre un mode de réalisation exemplaire d'une méthode pour mettre à jour ou créer une base de données de chemins ; 10 la figure 4 illustre un mode de réalisation exemplaire d'une méthode pour mettre à jour ou créer les caractéristiques d'un chemin ; la figure 5 illustre un mode de réalisation exemplaire d'une méthode pour sélectionner un chemin pour un flux ; et la figure 6 illustre un schéma fonctionnel de haut niveau d'un ordinateur universel convenant à l'utilisation pour effectuer les fonctions décrites ici. 20 Pour faciliter la compréhension, des numéros de référence identiques ont été utilisés, là où c'était possible, pour designer des éléments identiques qui sont communs aux figures. DESCRIPTION DETAILLEE 25 La présente invention divulgue dans ses grandes lignes une méthode et un appareil pour équilibrer une charge sur la base du flux. Bien que la présente invention soit examinée ci-dessous dans le contexte de chemins ou de routes, la présente invention n'est pas limitée de la sorte. A savoir, 30 la présente invention peut être appliquée à n'importe quel groupe ou 15 2908575 9 ensemble de deux ressources ou plus, par ex. deux ordinateurs ou serveurs ou plus, deux dispositifs ou systèmes de stockage ou plus, deux pare-feux ou plus, deux réseaux ou plus, deux routeurs ou plus, deux commutateurs ou plus, deux services réseau ou plus, ou deux 5 dispositifs réseau ou plus, etc. Aux fins de la portée, le terme paquet est censé inclure dans ses grandes lignes un enregistrement et peut s'appliquer à n'importe quel type de ressource. Puisque les services internet deviennent ubiquistes, de plus en plus 10 d'entreprises et de consommateurs comptent sur internet pour nombre d'applications. Dans un exemple, une grande entreprise peut avoir des serveurs multiples pour gérer les requêtes des clients, les transactions etc. Dans un autre exemple, une entreprise peut avoir des serveurs multiples pour communiquer entre divers endroits. Un équilibreur de 15 charge frontal peut être utilisé pour équilibrer les requêtes entre les divers serveurs (ou dispositifs de communication) et pour déterminer quel serveur (ou dispositif de communication) devrait gérer la requête sur la base de la charge du réseau. 20 Il y a une diversité de méthodes d'équilibrage de charge qui équilibrent une charge offerte sur la base de la topologie du réseau et des informations de routage. Par exemple, de telles méthodes peuvent inclure circuit cyclique, basée sur entête HTTP (protocole de transfert hypertexte), hachage d'adresses IP (Protocole Internet), hachage de 25 localisateurs URL (localisateur de ressources uniformes), etc. Toutefois, ces méthodes d'équilibrage de charge sont basées uniquement sur la topologie du réseau et les informations de routage. En d'autres termes, l'état réel du réseau n'est pas pris en compte et tous les chemins existants ne sont pas mis à disposition dans la table de routage 30 appropriée. Les méthodes d'équilibrage de charge existantes traitent 2908575 10 simplement les différents chemins comme des chemins identiques quelles que soient les variations de la métrologie de route. Ainsi, les flux sont répartis au hasard sur les chemins quel que soit le type des flux. Par exemple, une application de stockage de données (qui est typiquement 5 tolérante d'un délai) peut être envoyée sur un chemin qui a moins de délai, tandis qu'un autre flux qui est sensible à un délai est envoyé sur un chemin ayant un délai significatif. Par conséquent, il est besoin d'une méthode d'équilibrage de charge basé sur le flux qui répartit de façon dynamique la charge en fonction des informations de routage et d'un 10 statut courant de divers chemins disponibles. Afin de mieux décrire l'invention, les terminologies suivantes seront tout d'abord fournies : 15 • Equilibrage de charge ; • Flux ; et • Flux similaire. 20 L'équilibrage de charge fait référence à une méthode pour répartir des charges. Dans un mode de réalisation dans le contexte d'un routeur, l'équilibrage de charge fait référence à une méthode pour répartir des charges par le biais d'au moins deux chemins différents (par ex., tels que 25 listés sur une table de routage) jusqu'à une destination. Le processus ou le module dans le routeur qui effectue la fonction d'équilibrage de charge est appelé équilibreur de charge . L'équilibrage de charge entre des chemins multiples peut être basé sur des protocoles de routage standard tels que OSPF (Open Shortest Path First), route statique, etc. Les 30 chemins multiples peuvent avoir différentes distances, frais de routage, 2908575 11 etc. Il s'agit là d'une amélioration par comparaison avec des méthodes d'équilibrage de charge courantes qui peuvent seulement utiliser des chemins ayant le même frais de routage. L'équilibrage de charge peut être effectué par destination ou par paquet. Un équilibrage de charge par 5 destination fait référence au fait que le routeur répartit les paquets sur la base des adresses destination. Un équilibrage de charge par paquet fait référence au fait que le routeur envoie un paquet pour une destination spécifique sur le premier chemin, le deuxième paquet pour la même destination sur le deuxième chemin, et ainsi de suite. 10 Un flux peut faire référence à une séquence de paquets ayant les mêmes adresses source et destination, les mêmes types de protocole de plus haut niveau communs (par ex., UDP, TCP, etc.), le même type de service (TOS) commun, et/ou la même précédence de Protocole Internet (IP) 15 commune comme indiqué dans l'entête de paquet IP. Dans un mode de réalisation, un flux peut être classifié conformément à plusieurs critères et règles. Par exemple, chaque critère peut être associé à une caractéristique telle que le débit, la classe de service, la gigue, le délai ou le temps d'attente, la largeur de bande disponible, la perte de paquets, 20 etc. Dans un mode de réalisation, le débit fait référence à une mesure de la quantité de données transférées dans une quantité de temps spécifique. Dans un mode de réalisation, la classe de service fait référence à un niveau de service pour un flux ou un ensemble de flux. Dans un mode de réalisation, le temps d'attente fait référence au délai 25 dans le routage de paquets. Dans un mode de réalisation, la gigue fait référence à une mesure de la variabilité par rapport au temps du temps d'attente sur un réseau. Dans un mode de réalisation, la largeur de bande fait référence à une mesure de la capacité d'un canal ou d'une liaison de communication. Dans un mode de réalisation, la perte de paquets est une 30 mesure du nombre de paquets perdus, par ex. du fait d'une congestion. Il 2908575 12 convient de noter que la présente invention n'est pas limitée à cette liste de critères. Les règles peuvent être définies par un administrateur de réseau. Par exemple, un administrateur de réseau peut fixer des niveaux 0 à 4 pour 5 chaque critère (par ex., 4 étant le niveau le plus haut). La gamme de niveaux peut être modifiée pour concorder avec les spécifications du client ou de l'administrateur de réseau. Dans un mode de réalisation, des routeurs peuvent maintenir une base de 10 données de flux (FDB) qui contient une pluralité de flux classifiés ainsi que les caractéristiques des flux. Par exemple, un flux à 3 critères et 5 niveaux peut obtenir la table (matrice) suivante dans la base de données : Flux Niveau pour le critère Niveau pour le critè Niveau pour le critère B Flux 1 0 2 1 15 Un flux similaire fait référence à un flux ayant la même adresse destination et les mêmes critères mais les adresses source et les types de protocole peuvent être différents par rapport à un flux de référencement. 20 La figure 1 illustre un réseau exemplaire 100 avec des routeurs 101 à 110. Le trafic depuis le routeur 101 (par ex., un routeur source) s'écoulant en direction du routeur 110 (par ex., un routeur destination) peut emprunter n'importe lesquels des arcs 120 à 135 en fonction du poids de chaque arc. Par exemple, le trafic en provenance du routeur source 101 peut 25 s'écouler sur les arcs 121, 124, 130 et 135 afin d'atteindre le routeur destination 110. Par souci de clarté dans la description ci-dessous, le routeur source 101 sera appelé routeur set le routeur destination 110 2908575 13 sera appelé routeur t. Dans un mode de réalisation, les routeurs utilisent des protocoles de routage pour choisir un chemin pour transmettre les données. Par exemple, les routeurs peuvent utiliser le protocole OSPF. En OSPF, un 5 poids entier peut être assigné à chaque arc de telle sorte que chaque routeur dans le réseau soit averti des assignations de poids. Chaque routeur calcule un graphe des chemins les plus courts en poids entre lui et chaque autre routeur dans le réseau pour une demande donnée. Le trafic peut alors être routé sur les chemins les plus courts en poids. Pour 10 le réseau ci-dessus, le trafic quittant le routeur s avec le routeur destination tempruntera le chemin le plus court allant du routeur sau routeur t. II convient de noter qu'un routeur continuera typiquement d'acheminer le trafic sur le chemin le plus court quels que soient les niveaux de congestions, statuts, etc. 15 Les informations que le protocole de routage (OSPF) utilise pour déterminer le chemin le plus court peuvent provenir des trois couches les plus basses de la pile de protocoles OSI (interconnexion de systèmes ouverts). Notons que le protocole Internet et la couche qui définissent la 20 livraison du paquet se trouvent dans la troisième couche de la pile OSI. Les couches supérieures de la pile OSI qui constituent la couche 4/5 dans les procédures de réseau ne sont pas utilisées pour construire la table de routage en OSPF. Ces couches supérieures définissent les applications telles que le protocole TCP (protocole de contrôle de transmission) ou 25 UDP (protocole de datagramme utilisateur). Rappelons que la table de routage est mise à jour par des protocoles de routage dynamiques tels que OSPF, BGP (Border Gateway Protocol), etc. Pour chaque destination, le protocole de routage définit au moins une 30 route. Toutefois, un aspect de la présente invention est de définir 2908575 14 plusieurs routes afin de sélectionner la route la plus appropriée pour un flux particulier. De surcroît, plusieurs protocoles peuvent être utilisés pour générer différentes routes disponibles puisque chaque protocole peut utiliser sa propre métrique pour construire des routes. Par exemple, 5 un mélange de plusieurs routes fournies par OSPF et BGP peut être fusionné dans la table de routage globale ainsi que des routes statiques. Une fois que toutes les routes ont été déterminées, il peut être généré une table de routage (RT) qui représente un surensemble de toutes les informations de routage. Il convient de noter que la route la plus 10 appropriée pour un flux n'est pas nécessairement la meilleure route du point de vue où seul le poids ou le frais de routage est pris en considération. De surcroît, dans certains cas, il est possible d'obtenir plus d'une route préférée pour une destination. 15 Dans un mode de réalisation, l'équilibreur de charge maintient une base de données de chemins (PDB) qui suit les caractéristiques de chacune des routes listées sur la table de route. Par exemple, les caractéristiques peuvent être fondées sur des critères tels que le débit, la classe de service, le temps d'attente, la perte de paquets, la largeur de bande, la 20 gigue, etc. Il convient de noter que ces critères ne sont que des exemples, et la présente invention n'est pas limitée à ces seuls critères. Dans un mode de réalisation, la base de données de chemins est remplie en analysant chaque route sur la table de routage. Par exemple, les critères comprenant le débit, la classe de service, le temps d'attente, la 25 perte de paquets, la largeur de bande, la gigue, peuvent être analysés pour le chemin comprenant les arcs de 121, 124, 130 et 135 et ainsi de suite pour les autres chemins. Une fois l'analyse achevée, les caractéristiques de chaque route sont alors stockées dans la base de données de chemins. 30 Dans un mode de réalisation, la présente invention vérifie régulièrement 2908575 15 les caractéristiques du chemin pour mettre à jour à la base de données. Par exemple, les critères ou la métrologie du chemin peuvent être mis à jour de façon périodique, par ex. toutes les 15 minutes, toutes les heures, tous les jours et ainsi de suite. 5 Dans un mode de réalisation, la base de données de chemins sert à la fois à l'assignation de nouveaux flux et à la réassignation de flux existants sur des chemins. Le processus de réassigner des flux existants sur de nouveaux chemins est appelé assignation dynamique . Dans 10 une assignation dynamique, un flux peut d'abord utiliser un chemin par défaut, puis il peut s'ensuivre une analyse de tous les chemins possibles de bout en bout. Le processus vérifie ensuite si le flux devrait être commuté ou non vers un nouveau chemin. La commutation sur le nouveau chemin peut être effectuée lorsque nécessaire (avec un certain 15 délai entre les paquets au moment de la commutation pour éviter des erreurs de séquence). Un chemin ou une route est classifié en suivant des règles similaires à celles utilisées pour classifier un flux. Une fois classifié, la présente 20 méthode peut alors sélectionner un chemin (par ex., défini au sens large comme une ressource compatible) dont les caractéristiques se rapprochent le plus de celles qui conviendront le mieux pour un flux particulier. Si tous les critères d'un ou de plusieurs chemins sont compatibles avec un flux, par ex. s'ils ont les mêmes valeurs, alors le 25 premier chemin parmi les chemins compatibles est sélectionné. S'il n'y a pas un seul chemin qui soit parfaitement compatible avec un flux particulier, alors la méthode détermine quel chemin a les caractéristiques qui se rapprochent le plus du flux. Dans un mode de réalisation, la présente méthode identifie tout d'abord 30 les chemins qui ont une meilleure valeur sur tous les champs, puis 2908575 16 identifie le chemin qui a la plus petite différence lorsque comparé à un flux particulier. S'il n'en est trouvé aucun, il est alors identifié un chemin de qualité inférieure avec ici encore la plus faible différence possible lorsque comparé à un flux particulier. Les règles qui sont utilisées pour 5 associer un chemin particulier avec une route sont définies par un administrateur de réseau conformément à des exigences spécifiques d'implémentation. Par exemple, la gamme de niveaux peut être modifiée pour concorder avec les spécifications des clients ou du réseau. 10 Pour illustrer, une matrice ayant une pluralité de chemins et un flux peut être illustrée dans le tableau 1 ci-dessous : Chemin Niveau pour le Niveau pour le cria Niveau pour le cri• critère A B C P1 1 0 1 P2 2 1 2 P3 1 2 1 F1 1 2 1 Tableau 1 L'analyse de chemins calcule le meilleur chemin, PMax, pour un flux F1. 15 Dans un mode de réalisation, pour chaque chemin, la méthode détermine la différence entre le chemin et le flux tout en ne prenant en considération que les critères de chemin qui sont inférieurs aux critères de flux. En d'autres termes, dans un mode de réalisation, il peut ne pas être nécessaire de considérer de combien un chemin dépasse un ou plusieurs 20 critères d'un flux. Par contraste, le fait qu'un chemin particulier ne parvienne pas à satisfaire à un ou plusieurs critères d'un flux particulier est plus pertinent et importe plus dans le processus de sélection de chemin. Dans un mode de réalisation, la différence Chemin/Flux D est 2908575 17 calculée en utilisant une soustraction un à un basique et en prenant la valeur absolue. Si l'on utilise l'exemple montré dans le Tableau 1, la différence D pour le Chemin 1 est 2 ; la différence D pour le Chemin 2 est 1 ; et la différence D pour le Chemin 3 est O. Puisque le Chemin 3 a la 5 différence D la plus faible, il sera sélectionné pour le flux F1. II convient de noter que bien que le chemin P2 semble avoir deux critères qui sont supérieurs à ceux du chemin P3 lorsque comparé au flux F1, le chemin P3 s'apparie toujours mieux pour le flux F1. La raison en est que 10 le fait que le chemin P2 ne parvienne pas à satisfaire à un des critères du flux F1 importe plus que le fait que le chemin P2 dépasse deux des critères du flux F1. Toutefois, dans une variante de mode de réalisation, le fait de dépasser les critères d'un flux peut être utilisé comme un paramètre de sélection complémentaire. 15 Dans la pratique, des chemins multiples peuvent avoir la même différence Chemin/Flux D pour un flux particulier. Dans une telle situation, la méthode peut sélectionner l'un des chemins en se basant sur d'autres critères, par ex., un chemin ayant le meilleur débit (T) pour la même 20 différence D calculée. Dans un mode de réalisation, le chemin ayant le débit le plus élevé est préféré et il est ensuite défini comme PMax pour un flux. Dans un mode de réalisation, la base de données de flux (FDB) stocke les 25 définitions des flux actifspour une période spécifique. Les informations associées au flux telles que les critères, le Chemin PMax, etc. sont également stockées. Dans un mode de réalisation, une variable statistique est également associée aux flux afin d'obtenir le débit réel. La variable statistique est calculée de façon périodique (par exemple entre 1 30 et 5 minutes). Pour des mises à jour de chemin dynamiques de flux, la 2908575 18 présente méthode peut également sélectionner lesquels des flux devraient avoir une réassignation sur chemin. Dans un mode de réalisation, un mécanisme à double étape est utilisé 5 pour classifier tout d'abord les flux en circulation en fonction de l'usage réel de largeur de bande par rapport à l'usage planifié (largeur de bande requise au début du flux). Les flux ayant une différence significative entre l'usage réel et attendu de largeur de bande sont identifiés et ré-entrés dans le processus de classification. De surcroît, pour des flux en cours 10 dont les critères ne concordent pas avec le flux initial, les statistiques sont mesurées et il est effectué un recalcul de chemin afin qu'il y ait conformité. Lorsqu'un paquet d'un flux arrive au processus d'équilibrage de charge 15 (LB), le processus vérifie si le flux ou un flux similaire est déjà défini dans la BD de Flux (FDB). Si c'est le cas, alors les informations d'acheminement (par ex., des informations quant à quel chemin utiliser pour acheminer le flux) sont envoyées au processus LB. Si le flux n'est pas défini, le processus d'équilibrage de charge demande les meilleurs 20 chemins pour le flux et envoie ensuite le flux sur le chemin approprié. En parallèle, le processus LB peut mettre à jour la base de données de flux (FDB) et la table d'acheminement (FWT). Dans un mode de réalisation, la table d'acheminement (FWT) contient des informations quant à la façon dont un flux doit être acheminé, à savoir 25 quel(s) chemin(s) sera utilisé pour acheminer un flux. De façon spécifique, la table d'acheminement contient une liste de tous les flux classifiés et de leur assignation de chemin courantes. II convient de noter que bien que la présente invention divulgue l'utilisation de diverses tables (par ex., table de routage et table d'acheminement) et bases de 2908575 19 données (par ex., base de données de chemins et base de données de flux), la présente invention n'est pas limitée de la sorte. A savoir, l'on peut utiliser des tables additionnelles ou l'on peut fusionner diverses tables et bases de données. 5 La figure 2 illustre un organigramme d'une méthode 200 destinée à un équilibrage de charge basé sur le flux. Dans un mode de réalisation, la méthode 200 peut avoir plusieurs entrées à mesure qu'elle reçoit et classifie des paquets entrants. Classifier ou définir un flux comprend 10 évaluer les caractéristiques du flux, par ex., déduire les caractéristiques réelles du flux ou assigner simplement une caractéristique prédite ou par défaut jusqu'à ce qu'il puisse être fait une mesure réelle sur le flux. La méthode met également à jour les informations d'acheminement de flux y compris le chemin à utiliser pour un flux classifié. La mise à jour des 15 informations d'acheminement de flux peut être effectuée ou bien à la détection initiale d'un nouveau flux, ou bien après un temps prédéfini choisi pour rafraîchir les chemins qui sont utilisés, ou à chaque fois qu'il y a un changement dans le réseau qui peut avoir une incidence sur les caractéristiques des chemins. 20 La méthode 200 débute à l'étape 202 et passe à l'étape 205. A l'étape 205, la méthode 200 reçoit un ou plusieurs paquets à analyser et à acheminer via un équilibreur de charge basé sur le flux. Le paquet peut appartenir à un flux existant ou il peut être le début d'un nouveau flux de paquets. La 25 méthode 200 passe à l'étape 210 pour déterminer si le paquet a ou non un flux défini et au moins un chemin assigné. A l'étape 210, la méthode 200 détermine si le paquet a ou non un flux défini dans la base de données de flux (FDB) et s'il existe un chemin pour 30 le flux défini. Si le paquet reçu fait partie d'un flux classifié dans la base 2908575 20 de données de flux et s'il existe un chemin associé pour le flux classifié, alors la méthode passe à l'étape 215. Autrement, la méthode passe à l'étape 220. 5 A l'étape 215, la méthode 200 recherche dans la table d'acheminement de flux (FWT) le ou les chemins sélectionnés qui ont été définis pour le flux classifié et le paquet reçu est ensuite acheminé conformément au(x) chemin(s) défini(s). La méthode revient alors à l'étape 205 pour recevoir plus de paquets. 10 A l'étape 220, la méthode 200 détermine si la caractéristique du paquet correspond ou non à un flux classifié. A savoir, lorsque le paquet n'est pas associé à un flux défini dans la base de données de flux, la méthode vérifie pour déterminer si les caractéristiques du paquet correspondent à 15 un autre flux pré-classifié. Autrement dit, il peut y avoir des informations afférentes au paquet reçu qui permettront à la méthode de faire une prédiction quant à ses caractéristiques, par ex., prédire que le flux se comportera ou a des exigences qui sont similaires à un autre flux classifié précédemment. Un exemple illustratif peut être que des flux 20 provenant de la même entreprise client peuvent se comporter de façon similaire. Dans un mode de réalisation, un flux peut être caractérisé par plusieurs champs d'informations dans le paquet IP. Par exemple, un flux peut être caractérisé par des adresses IP source/destination, par un type de port tel que UDP (Protocole de datagramme utilisateur), TCP 25 (Protocole de contrôle de transmission) etc., par un type de protocole tel que FTP (protocole de transfert de fichier), HTTP (protocole de transfert hypertexte), etc. Ainsi, la préclassification fait référence à une méthode de raccourci qui 30 définit rapidement les exigences de flux sur la base d'un seul paquet reçu 2908575 21 parce que le comportement du flux est présumé être connu sur la base de sa similarité avec un flux existant. Dans un exemple, le comportement du flux peut être connu car il s'agit d'une application client connue qui requiert des caractéristiques définies précédemment pour le temps 5 d'attente, la largeur de bande ou la gigue. Dans un autre exemple, le comportement du flux peut être connu car le paquet utilise un protocole ayant des caractéristiques statiques fixées. Le protocole ICMP (protocole de message de contrôle internet) est un exemple pour lequel soit il existe un chemin de données pour un autre type de flux, et le mécanisme oblige 10 à utiliser le même chemin, soit il n'existe pas de chemin et la route par défaut est utilisée. La raison en est que les ICMP utilisés par des commandes telles que ping sont utilisés pour évaluer le chemin pour d'autres flux de données et doivent utiliser le même chemin. Ainsi, il n'est pas besoin de définir de chemin spécifique pour l'ICMP, à moins que ce 15 ne soit défini de façon spécifique par d'autres règles de pré-classification. Si les caractéristiques de paquet correspondent à un flux classifié, la méthode passe à l'étape 250. Autrement, la méthode passe à l'étape 225. A l'étape 225, la méthode 200 analyse et classifie le flux. De façon spécifique, sur la base des informations associées au paquet reçu, le flux 20 est classifié. Par exemple, un flux peut être classifié sur la base de son adresse IP source, de son adresse IP destination, de son protocole et analogue. A l'étape 230, le paquet peut de façon facultative être acheminé en 25 utilisant un mode d'acheminement par défaut. Par exemple, le mode par défaut peut simplement utiliser la table de routage IP active sans règles d'acheminement spécifiques. La méthode passe alors à l'étape 235. Notons qu'à la fin de l'étape 230, les caractéristiques du flux 30 nouvellement reçu ne sont pas pleinement comprises. Dans un mode de 2908575 22 réalisation, afin d'évaluer les exigences en termes de largeur de bande, gigue, etc., la présente méthode permet au flux de circuler pendant une période de temps. Les caractéristiques du flux, par ex., la gigue, le temps d'attente, et le débit, peuvent ensuite être calculées après que des 5 statistiques sur la façon dont les paquets sont acheminés ont été collectées. Certaines caractéristiques telles que le temps d'attente peuvent être difficiles à évaluer de façon précise en n'utilisant que quelques paquets seulement, mais ces critères peuvent être initialement assignés sur la base de règles associées avec des protocoles. Dans un 10 mode de réalisation, la méthode effectue une préclassification partielle afin de déterminer certaines caractéristiques telles que le temps d'attente. Lorsque les caractéristiques du flux ne sont pas pleinement comprises, le flux est stocké dans la base de données de flux conjointement avec un temps d'expiration pour refaire la classification. Ce processus de 15 reclassification fournira un profil de caractéristiques plus précis pour le flux. A l'étape 235, la méthode 200 fixe un drapeau pour la reclassification. Par exemple, le drapeau de classification (CF) peut être fixé à 1 pour 20 indiquer le besoin d'effectuer la reclassification et à 0 autrement. Le processus de reclassification peut être une reclassification complète (par ex., mesurer tous les critères pour le flux), ou il peut n'être qu'une reclassification partielle (par ex., ne mesurer qu'un sous-ensemble de tous les critères pour le flux). A mesure qu'il est analysé un volume de 25 paquets de plus en plus grand, la classification du flux sera mieux définie. Le prestataire de service ou opérateur de réseau détermine le volume de paquets à analyser pour la classification initiale, la pré-classification partielle, la classification complète, etc. La méthode passe alors à l'étape 240. 30 2908575 23 A l'étape 240, la méthode 200 entre le flux dans la base de données de flux. A savoir, tous les critères associés au flux nouvellement reçu sont entrés dans la base de données de flux. Dans un mode de réalisation, le flux peut être entré conjointement avec le drapeau de classification pour 5 indiquer si une reclassification pour le flux sera nécessaire dans le futur. La méthode passe alors à l'étape 275. Si l'on revient à l'étape 250, la méthode 200 obtient des informations de chemin pour le flux de la base de données de chemins. Par exemple, s'il 10 est détecté un nouveau flux, et s'il est déterminé que le nouveau flux est similaire à un autre flux défini précédemment, alors les informations de chemin associées au flux similaire seront obtenues pour le nouveau flux. Comme variante, si l'étape 250 est déclenchée pour un flux existant, alors il est probable qu'une reclassification a été demandée. Dans ce scénario, 15 une pluralité de chemins disponibles qui peuvent être utilisés pour le flux existant sont obtenus. A savoir, il sera effectué un recalcul contre chacun des chemins disponibles. A l'étape 260, la méthode 200 sélectionne un chemin ou met à jour une 20 sélection de chemins. La sélection de chemins est basée sur l'appariement des caractéristiques de flux avec les caractéristiques d'au moins un chemin stocké dans la base de données de chemins. Par exemple, un calcul de différence chemin/flux D peut être effectué comme examiné ci-dessus. Par exemple, si la reclassification a été déclenchée, 25 alors des statistiques (par ex., le temps d'attente, la vitesse de débit, la gigue mesurés) pour un flux peuvent maintenant être disponibles pour mieux évaluer les caractéristiques du flux. Qui plus est, la figure 5 illustre un mode de réalisation d'une méthode afin d'implémenter l'étape 260 ci-dessous. 30 2908575 24 A l'étape 265, la méthode 200 met à jour la table d'acheminement (FWT). De façon spécifique, un chemin sélectionné ou un chemin mis à jour pour le flux est enregistré dans la table d'acheminement. En tant que tel, des paquets subséquents pour le même flux peuvent être acheminés 5 correctement via l'étape 215 en recherchant le chemin assigné dans la FWT. La méthode passe alors à l'étape 270. A l'étape 270, la méthode 200 met à jour la base de données de chemins (PDB) pour enregistrer l'incidence de l'association du flux avec un 10 chemin sélectionné. Par exemple, le fait d'assigner un flux sur un chemin aura une incidence sur des caractéristiques du chemin sélectionné, par ex., cela peut avoir une incidence négative sur la largeur de bande ou le débit du chemin. D'une façon similaire, le fait de retirer un flux classifié précédemment d'un chemin aura une incidence sur des caractéristiques 15 du chemin désélectionné, par ex., cela peut avoir une incidence positive sur la largeur de bande ou le débit du chemin et ainsi de suite. La mise à jour cohérente et opportune de la base de données de chemins permettra au processus de réagir rapidement si ou quand il y a un changement crucial ou majeur dans le comportement du chemin. 20 A l'étape 275, la méthode 200 détermine si le drapeau pour obliger à la reclassification est fixé ou non. Pour l'exemple ci-dessus, la méthode détermine si la valeur de drapeau CF pour le flux est fixée à 1 . Si
le
drapeau n'est pas fixé à 1 , la méthode finit à l'étape 299. Autrement, la 25 méthode passe à l'étape 280. A l'étape 280, la méthode instaure un minuteur ou un compteur pour la reclassification du flux. Par exemple, la méthode peut instaurer un déclenchement basé sur le temps ou basé sur un compteur pour 30 implémenter une reclassification partielle ou complète. Par exemple, le 2908575 25 minuteur peut être basé sur une période de temps prédéfinie, par ex. 30 secondes, une minute et ainsi de suite, ou il peut être basé sur le nombre de paquets reçus pour un flux particulier, par ex., 20 paquets, 50 paquets et ainsi de suite.
5 A l'étape 285, la méthode 200 détermine si le minuteur a expiré ou si un compte a été atteint. Si le minuteur a expiré ou si le compte a été atteint, alors la méthode passe à l'étape 250 pour obtenir les informations de chemin de la PDB. Autrement, elle continue à surveiller le temps ou le 10 compte. Il convient de noter que la méthode 200 peut avoir de multiples points d'entrée, par ex., la méthode 300 telle qu'examinée ci-dessous peut déclencher un événement de mise à jour. A savoir, il peut y avoir des cas 15 où il y a des changements significatifs dans le réseau qui auront une incidence sur la façon dont les flux seront assignés sur différents chemins. Par exemple, des changements peuvent inclure, sans y être toutefois limités, l'adjonction d'un nouvel arc, l'adjonction d'un nouveau routeur, le passage de la capacité d'un arc à un niveau supérieur, le 20 passage de la capacité d'un arc à un niveau inférieur, la détection de la défaillance d'un routeur, la détection de la défaillance d'un arc, la détection que des travaux d'entretien sont effectués sur un arc ou sur un routeur, la détection d'une congestion sévère, la détection d'une attaque sur le réseau, et ainsi de suite. Ainsi, à l'étape 245, la méthode 200 25 détermine s'il est détecté ou non un événement de mise à jour qui peut affecter un ou plusieurs chemins stockés dans la base de données de chemins. Par exemple, il peut y avoir une activité sur le réseau qui retire ou dégrade la performance de certaines routes, etc. Si une mise à jour est détectée, alors la méthode passe à l'étape 265. Autrement, la méthode 30 continue de vérifier s'il y a des mises à jour.
2908575 26 La figure 3 illustre un mode de réalisation exemplaire d'une méthode 300 pour mettre à jour ou créer la base de données de chemins. Par exemple, la base de données de chemins peut être mise à jour lorsque de 5 nouveaux flux se voient assigner de nouveaux chemins ou lorsqu'il se produit des événements sur le réseau, par ex., des défaillances ou des nouveaux déploiements d'arcs et ainsi de suite. II convient de noter qu'il est envisagé que le réseau puisse supporter une pluralité de protocoles différents simultanément. En tant que tel, des mises à jour de route sont 10 reçues par chaque protocole de routage de façon périodique et également lorsqu'il se produit un événement sur le réseau. Dans un exemple, il y a N tables de routage réfléchissant les différents protocoles de routage qui peuvent être utilisés.
15 A l'étape 305, la méthode 300 reçoit des mises à jour de route et détermine le nombre de tables de routage N qui sont utilisées. A l'étape 310, la méthode 300 met à jour les données dans les tables de routage conformément à des mises à jour de route reçues.
20 A l'étape 312, la méthode fixe n = 1 en tant qu'étape d'initialisation. A l'étape 315, la méthode 300 est ensuite en mesure de récupérer les tables de routage une à une. A l'étape 320, la méthode 300 met à jour ou crée une liste de routes pour 25 chaque destination. A savoir, la mise à jour peut avoir modifié les chemins vers une destination particulière, par ex., la défaillance d'un arc peut réduire le nombre de chemins vers une destination, tandis que l'adjonction d'un nouvel arc ou routeur peut augmenter le nombre de chemins vers une destination.
30 2908575 27 A l'étape 325, la méthode marque ensuite des routes supplémentaires, par ex., dans une table de routage commune. Cette étape maintient les informations appartenant à des routes supplémentaires vers une destination, permettant de ce fait à la présente invention d'apparier de 5 façon dynamique les caractéristiques d'un flux avec les caractéristiques d'un chemin du fait de changements soit dans le flux, soit dans le chemin assigné. Si elle n'a pas connaissance des chemins supplémentaires disponibles, une méthode d'acheminement ne sera pas en mesure de commuter rapidement vers un autre chemin même si des changements 10 sur le flux ou le chemin assigné sont détectés. A l'étape 330, la méthode détermine si le nombre maximum de tables de routage (N) est atteint ou non. S'il a été atteint, toutes les tables de routage ont été récupérées et la méthode passe à l'étape 340. Autrement, la méthode passe à l'étape 335 pour mettre à jour n de telle sorte que la 15 table de routage suivante puisse être récupérée. Lorsque toutes les tables de routage ont été récupérées, la méthode passe à l'étape 340. A l'étape 340, la méthode 300 détermine si la base de données de chemins est vide. Si la base de données n'est pas vide, la méthode passe 20 à l'étape 345 afin d'insérer les nouvelles routes dans la base de données de chemins. Autrement, la méthode passe à l'étape 350 afin d'insérer toutes les routes y compris les routes supplémentaires (telles que marquées à l'étape 325) dans la base de données de chemins. La méthode passe alors à l'étape 360.
25 A l'étape 360, une fois que toutes les routes ou que tous les chemins ont été identifiés, une ou plusieurs des caractéristiques des chemins peuvent être mesurées ou mises à jour dans la base de données de chemins.
30 2908575 28 La figure 4 illustre une méthode exemplaire 400 (par ex., telle que déployée à l'étape 360 de la figure 3) pour créer ou mettre à jour les caractéristiques des chemins. Par exemple, pour chaque entrée de route dans la base de données de chemins, la méthode définira ou mettra à jour 5 les caractéristiques associées au chemin telles que le temps d'attente, la gigue, la perte de paquets, le débit, la largeur de bande, etc. A l'étape 405, la méthode 400 place toutes les nouvelles routes ou toutes les routes mises à jour dans une file d'attente afin d'obtenir des mises à 10 jour de caractéristiques. Chaque route a au moins les attributs suivants : SRC (source), DEST (destination), référence temporelle, protocole et métrique. La méthode passe alors à l'étape 420. A l'étape 420, la méthode 400 détermine s'il y a une route qui attend dans 15 une file d'attente la mise à jour des caractéristiques. Si la file d'attente est vide, la méthode passe à l'étape 425. Autrement, la méthode passe à l'étape 435. A l'étape 425, la méthode 400 réinitialise l'indice pour indiquer le fait que 20 la file d'attente est vide. La méthode passe alors à l'étape 430 afin d'enclencher le minuteur pour vérifier la file d'attente. La méthode passe alors à l'étape 432 pour déterminer si le minuteur a expiré ou non. Lorsque le temps expire, la méthode revient à l'étape 420 pour revérifier la file d'attente, et ainsi de suite.
25 A l'étape 435, la méthode 400 obtient des caractéristiques de route. Par exemple, une requête peut être envoyée à un serveur global qui gère une base de données contenant toutes ces statistiques, par ex., les mesures du temps d'attente, les données de perte de paquets, les données de 30 débit, et ainsi de suite. Dans un mode de réalisation, le serveur global 2908575 29 peut être conçu pour effectuer les fonctions de signalisation et peut avoir les valeurs à disposition et stockées localement. Dans une variante de mode de réalisation, si un outil de signalisation centralisé n'est pas mis à disposition, alors il se peut que le serveur ait à interroger 5 individuellement les dispositifs dans chacun des chemins pour acquérir de façon dynamique les valeurs pour les caractéristiques de chemins. La méthode passe alors à l'étape 440 et calcule les nouvelles caractéristiques de route ou de chemin. La méthode met alors à jour la base de données de chemins avec les caractéristiques nouvellement 10 mises à jour à l'étape 445. L'indice de mise à jour est ensuite incrémenté à l'étape 450 de telle sorte que la route suivante dans la file d'attente puisse être récupérée. La méthode revient alors à l'étape 420 afin de déterminer s'il y a ou non 15 plus de routes dans la file d'attente qui attendent des mises à jour de caractéristiques. La figure 5 illustre une méthode exemplaire 500 (par ex., telle que déployée à l'étape 260 de la figure 3) pour sélectionner un chemin pour 20 un flux. La base de données de chemins (PDB) contient les informations de chemin telles qu'une liste de chemins et leurs caractéristiques. La sélection d'un chemin peut être déclenchée par un certain nombre de scénarios différents, par ex., par la détection de changements dans un chemin qui est actuellement utilisé pour un flux classifié, la détection de 25 changements dans des caractéristiques d'un flux classifié, la détection d'un nouveau flux, etc. Par exemple, la modification de l'un des paramètres suivants dans un chemin : changement de route, délai, largeur de bande ou mise à jour des frais peut générer une alerte. Sur la base de cette alerte, il se peut qu'il y ait besoin d'évaluer des flux qui sont 30 supportés par le chemin affecté afin de déterminer si les changements 2908575 30 sur les caractéristiques du chemin affecté justifieront de nouvelles assignations de chemins. A l'étape 505, la méthode 500 reçoit une alerte l'informant d'une ou de 5 mise(s) à jour d'un chemin, d'une caractéristique d'un chemin etc. qui peuvent affecter la sélection de chemins pour des flux. La méthode passe alors à l'étape 510 et crée une liste de flux pour lesquels il peut y avoir une incidence sur la base de cette alerte. Par exemple, la méthode détermine le nombre de flux N, et assigne des numéros de flux de façon 10 séquentielle (par ex. 1, 2, 3, ..., N). A l'étape 515, l'indice pour sélectionner un chemin pour un flux est initialisé. Par exemple, l'indice n est fixé à un pour commencer la sélection d'un chemin pour le premier flux. A l'étape 520, la méthode 500 15 sélectionne un flux pour sélectionner un chemin. Par exemple, le flux numéro n peut être sélectionné. A l'étape 525, la méthode 500 met à jour le chemin pour le flux sélectionné (par ex., le flux numéro n ). Par exemple, cette étape peut 20 exécuter le recalcul de la différence chemin/flux D pour le flux contre tous les chemins disponibles. Puisqu'il se peut que les caractéristiques du chemin assigné aient changé, il est possible qu'une variante de chemin convienne maintenant mieux aux caractéristiques du flux.
25 A l'étape 530, la méthode 500 détermine si n = N, à savoir si le dernier flux est atteint. Si le nombre maximum de flux N n'est pas atteint, alors l'indice n est incrémenté de un à l'étape 535 en fixant n = n + 1 . La méthode revient alors à l'étape 520 pour sélectionner le flux suivant.
30 2908575 31 II convient de noter que, à mesure que de nouvelles assignations de chemins sont faites, il est possible que la liste de flux sur lesquels il y a une incidence puisse continuer de croître. Par exemple, si un chemin, par ex., P1, a échoué, alors il est probable que des flux supportés par le 5 chemin ayant échoué P1 seront réassignés sur d'autres chemins, par ex., P2 et P3. Toutefois, de telles réassignations peuvent avoir une incidence sur les caractéristiques des chemins P2 et P3, déclenchant de ce fait une reclassification des flux qui sont actuellement supportés par les chemins P2 et P3. Cela peut potentiellement créer un effet en cascade. En tant que 10 tel, dans un mode de réalisation, la méthode peut verrouiller la liste de flux afin d'éviter de nouvelles entrées s'il est détecté un effet en cascade. Par exemple, durant des pannes de système majeures, il peut être nécessaire de traiter les mises à jour pour les chemins ayant échoué du fait des pannes avant de gérer des changements de chemin individuels 15 pour des améliorations minimes. A l'étape 540, la méthode 500 efface la liste de flux pour retirer les flux traités. Par exemple, lorsque des chemins sont assignés à l'ensemble des N flux dans la liste, alors la liste est effacée. De nouvelles entrées peuvent 20 alors débuter à partir de 1 lorsque de nouvelles alertes sont reçues à l'étape 505. La méthode 500 passe alors à l'étape 505 pour recevoir de nouvelles alertes ou à l'étape 560 pour mettre fin au processus courant de sélection de chemins pour des flux.
25 La figure 6 dépeint un schéma fonctionnel de haut niveau d'un ordinateur universel convenant pour servir à effectuer les fonctions décrites ici. Comme dépeint sur la figure 6, le système 600 comprend une unité processeur 602 (par ex., une UC), une mémoire 604, par ex., une mémoire vive (RAM) et/ou une mémoire morte (ROM), un module équilibreur de 30 charge basé sur le flux 605, et divers dispositifs d'entrée/de sortie 606 2908575 32 (par ex., des cartes d'interface réseau (NIC), telles que des cartes NIC ethernet 10/100 ou gigabit ethernet, des adaptateurs de bus hôte Fibre Channel, des adaptateurs Infiniband, des dispositifs de stockage, y compris sans toutefois y être limités, un lecteur de bande, un lecteur de 5 disquette, un lecteur de disque dur ou un lecteur de disque compact, un récepteur, un émetteur, un haut-parleur, un écran, un synthétiseur de parole, un port de sortie, et un dispositif d'entrée utilisateur (tel qu'un clavier, un pavé numérique, une souris, et analogue)).
10 Il convient de noter que la présente invention peut être implémentée dans du logiciel et/ou dans une combinaison de logiciel et de matériel, ou entièrement dans du matériel, par ex., en utilisant des circuits intégrés à application spécifique (ASIC), un ordinateur universel ou tout autre équivalent matériel. Dans un mode de réalisation, le présent module ou 15 processus équilibreur de charge basé sur le flux 605 peut être chargé dans la mémoire 604 et exécuté par le processeur 602 afin d'implémenter les fonctions tel qu'examiné ci-dessus. En tant que tel, la présente méthode d'équilibreur de charge basé sur le flux 605 (y compris les structures de données associées) de la présente invention peut être 20 stockée sur un moyen ou support lisible par un ordinateur, par ex., une mémoire RAM, une disquette ou un lecteur magnétique ou optique, et analogue. Bien que divers modes de réalisation aient été décritsci-dessus, il 25 convient d'entendre qu'ils ont été présentés à titre d'exemple uniquement, et non de limitation. Ainsi, l'étendue et la portée d'un mode de réalisation préféré ne devraient pas être limitées par les modes de réalisation exemplaires décrits ci-dessus, quels qu'ils soient, mais devraient être définies seulement conformément aux revendications qui 30 suivent et à leurs équivalents.

Claims (20)

REVENDICATIONS
1. Une méthode pour traiter un flux de paquets, comprenant : recevoir au moins un paquet provenant dudit flux (205) ; classifier ledit flux sur la base des caractéristiques dudit flux (225) ; apparier ledit flux avec au moins une ressource compatible provenant d'une pluralité de ressources disponibles conformément auxdites caractéristiques dudit flux et aux caractéristiques de ladite au moins une ressource compatible ; et acheminer ledit au moins un paquet provenant dudit flux jusqu'à ladite au moins une ressource compatible pour traitement (215).
2. La méthode de la revendication 1, dans laquelle ladite au moins une ressource compatible comprend au moins un élément parmi : un chemin, un ordinateur, un serveur, un réseau (100), un système de stockage, un pare-feu, un routeur (101-110), un commutateur, un service réseau ou un dispositif réseau.
3. La méthode de la revendication 1, dans laquelle lesdites caractéristiques dudit flux comprennent au moins un élément parmi : un paramètre de débit, un paramètre de classe de service, un paramètre de gigue, un paramètre de temps d'attente, un paramètre de largeur de bande, ou un paramètre de perte de paquets.
4. La méthode de la revendication 1, dans laquelle lesdites caractéristiques de ladite ressource compatible comprennent au moins un élément parmi : un paramètre de débit, un paramètre de 33 2908575 34 classe de service, un paramètre de gigue, un paramètre de temps d'attente, un paramètre de largeur de bande, ou un paramètre de perte de paquets. 5
5. La méthode de la revendication 1, dans laquelle ladite au moins une ressource compatible comprend au moins un chemin, et dans laquelle ledit appariement comprend calculer une différence entre lesdites caractéristiques dudit flux et les caractéristiques de chaque chemin parmi une pluralité de chemins disponibles, où ledit 10 au moins un chemin est sélectionné sur la base d'une différence la plus faible (525).
6. La méthode de la revendication 5, dans laquelle ladite différence entre lesdites caractéristiques dudit flux et les caractéristiques de 15 chaque chemin parmi une pluralité de chemins disponibles ne rend compte que des critères de chemin qui sont inférieurs aux critères de flux.
7. La méthode de la revendication 1, dans laquelle ladite classification 20 dudit flux est effectuée de façon périodique.
8. La méthode de la revendication 1, comprenant de plus : mettre à jour lesdites caractéristiques de ladite au moins une 25 ressource compatible de façon périodique (400).
9. La méthode de la revendication 1, comprenant de plus : mettre à jour lesdites caractéristiques de ladite au moins une ressource compatible en réponse à une mise à jour réseau. 30 2908575 35
10. La méthode de la revendication 1, comprenant de plus : apparier ledit flux de façon dynamique avec une autre ressource compatible si lesdites caractéristiques dudit flux s'apparient mieux 5 avec les caractéristiques de ladite autre ressource compatible lorsque comparées aux caractéristiques de ladite au moins une ressource compatible.
11. Un moyen lisible par un ordinateur sur lequel est stockée une 10 pluralité d'instructions, la pluralité d'instructions incluant des instructions qui, lorsqu'elles sont exécutées par un processeur, amènent le processeur à effectuer les étapes d'une méthode pour traiter un flux de paquets, comprenant : 15 recevoir au moins un paquet provenant dudit flux (205) ; classifier ledit flux sur la base des caractéristiques dudit flux (225) ; apparier ledit flux avec au moins une ressource compatible --20 provenant d'une pluralité de ressources disponibles conformément auxdites caractéristiques dudit flux et aux caractéristiques de ladite au moins une ressource compatible ; et acheminer ledit au moins un paquet provenant dudit flux jusqu'à 25 ladite au moins une ressource compatible pour traitement (215).
12. Le moyen lisible par un ordinateur de la revendication 11, dans lequel ladite au moins ressource compatible comprend au moins un élément parmi : un chemin, un ordinateur, un serveur, un réseau 30 (100), un système de stockage, un pare-feu, un routeur (101-110), 2908575 36 un commutateur, un service réseau ou un dispositif réseau.
13. Le moyen lisible par un ordinateur de la revendication 11, dans lequel lesdites caractéristiques dudit flux comprennent au moins 5 un élément parmi : un paramètre de débit, un paramètre de classe de service, un paramètre de gigue, un paramètre de temps d'attente, un paramètre de largeur de bande, ou un paramètre de perte de paquets. 10
14. Le moyen lisible par un ordinateur de la revendication 11, dans lequel lesdites caractéristiques de ladite ressource compatible comprennent au moins un élément parmi : un paramètre de débit, un paramètre de classe de service, un paramètre de gigue, un paramètre de temps d'attente, un paramètre de largeur de bande, 15 ou un paramètre de perte de paquets.
15. Le moyen lisible par un ordinateur de la revendication 11, dans lequel ladite au moins une ressource compatible comprend au moins un chemin, et dans lequel ledit appariement comprend 20 calculer une différence entre lesdites caractéristiques dudit flux et les caractéristiques de chaque chemin parmi une pluralité de chemins disponibles, où ledit au moins un chemin est sélectionné sur la base d'une différence la plus faible 525). 25
16. Le moyen lisible par un ordinateur de la revendication 15, dans lequel ladite différence entre lesdites caractéristiques dudit flux et les caractéristiques de chaque chemin parmi une pluralité de chemins disponibles ne rend compte que des critères de chemin qui sont inférieurs aux critères de flux. 30 2908575 37
17. Le moyen lisible par un ordinateur de la revendication 11, dans lequel ladite classification dudit flux est effectuée de façon périodique. 5
18. Le moyen lisible par un ordinateur de la revendication 11, comprenant de plus : mettre à jour lesdites caractéristiques de ladite au moins une ressource compatible de façon périodique (400).
19. Le moyen lisible par un ordinateur de la revendication 11, comprenant de plus : apparier ledit flux de façon dynamique avec une autre ressource 15 compatible si lesdites caractéristiques dudit flux s'apparient mieux avec les caractéristiques de ladite autre ressource compatible lorsque comparées aux caractéristiques de ladite au moins une ressource compatible. 20
20. Un appareil pour traiter un flux de paquets (600), comprenant : un moyen (606) pour recevoir au moins un paquet provenant dudit flux ; 25 un moyen (604) pour classifier ledit flux sur la base des caractéristiques dudit flux ; un moyen (602) pour apparier ledit flux avec au moins une ressource compatible provenant d'une pluralité de ressources 30 disponibles conformément auxdites caractéristiques dudit flux et 10 2908575 38 aux caractéristiques de ladite au moins une ressource compatible ; et un moyen pour acheminer (605) ledit au moins un paquet provenant 5 dudit flux jusqu'à ladite au moins une ressource compatible pour traitement.
FR0609786A 2006-11-09 2006-11-09 Methode et appareil pour fournir un equilibrage de charge base sur le flux Expired - Fee Related FR2908575B1 (fr)

Priority Applications (3)

Application Number Priority Date Filing Date Title
FR0609786A FR2908575B1 (fr) 2006-11-09 2006-11-09 Methode et appareil pour fournir un equilibrage de charge base sur le flux
US11/648,082 US8601126B2 (en) 2006-11-09 2006-12-29 Method and apparatus for providing flow based load balancing
PCT/FR2007/001724 WO2008056041A1 (fr) 2006-11-09 2007-10-19 Methode et appareil pour fournir un equilibrage de charge base sur le flux

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0609786A FR2908575B1 (fr) 2006-11-09 2006-11-09 Methode et appareil pour fournir un equilibrage de charge base sur le flux

Publications (2)

Publication Number Publication Date
FR2908575A1 true FR2908575A1 (fr) 2008-05-16
FR2908575B1 FR2908575B1 (fr) 2009-03-20

Family

ID=38462435

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0609786A Expired - Fee Related FR2908575B1 (fr) 2006-11-09 2006-11-09 Methode et appareil pour fournir un equilibrage de charge base sur le flux

Country Status (3)

Country Link
US (1) US8601126B2 (fr)
FR (1) FR2908575B1 (fr)
WO (1) WO2008056041A1 (fr)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8189489B2 (en) * 2007-09-26 2012-05-29 Microsoft Corporation Characterization of network path quality for network applications and services
US7636789B2 (en) * 2007-11-27 2009-12-22 Microsoft Corporation Rate-controllable peer-to-peer data stream routing
US7983163B2 (en) * 2008-12-11 2011-07-19 International Business Machines Corporation System and method for implementing adaptive load sharing to balance network traffic
US20110063986A1 (en) * 2009-09-14 2011-03-17 International Business Machines Corporation System and method for load balancing traffic in a mpls network
CN102025609A (zh) * 2009-09-18 2011-04-20 浙江省电力公司 一种基于可分组报文的负载均衡分发***及其方法
US20110117886A1 (en) 2009-11-18 2011-05-19 International Business Machines Corporation Method and system for controlling delivery of notifications in real-time communications based on communication channel state
EP2514171A1 (fr) * 2009-12-14 2012-10-24 Telefonaktiebolaget L M Ericsson (PUBL) Procédé et système de sélection de cache dynamique
ES2491616T3 (es) * 2010-04-19 2014-09-08 Telefonaktiebolaget Lm Ericsson (Publ) Método para generar un vector de compartición de carga
US8243598B2 (en) 2010-04-26 2012-08-14 International Business Machines Corporation Load-balancing via modulus distribution and TCP flow redirection due to server overload
EP2849074A4 (fr) * 2012-05-08 2015-12-09 Fujitsu Ltd Système de réseau, procédé de gestion de travaux de maintenance, dispositif de traitement et programme associé
US10135732B2 (en) * 2012-12-31 2018-11-20 Juniper Networks, Inc. Remotely updating routing tables
US9413668B2 (en) 2014-04-23 2016-08-09 Dell Products L.P. Systems and methods for load-balancing in a data center
US9529531B2 (en) 2014-10-06 2016-12-27 Barefoot Networks, Inc. Proxy hash table
US10178008B2 (en) * 2014-11-14 2019-01-08 Bigleaf Networks, Inc. Circuit-aware load balancing with dynamic quality of service
US9800507B2 (en) * 2015-02-10 2017-10-24 Verizon Patent And Licensing Inc. Application-based path computation
US9954799B2 (en) 2015-05-14 2018-04-24 International Business Machines Corporation Adaptive service chain management
US9723106B2 (en) 2015-08-28 2017-08-01 Cisco Technology, Inc. Service function chaining branching
US10313231B1 (en) * 2016-02-08 2019-06-04 Barefoot Networks, Inc. Resilient hashing for forwarding packets
US10063407B1 (en) 2016-02-08 2018-08-28 Barefoot Networks, Inc. Identifying and marking failed egress links in data plane
US10404619B1 (en) 2017-03-05 2019-09-03 Barefoot Networks, Inc. Link aggregation group failover for multicast
US10237206B1 (en) 2017-03-05 2019-03-19 Barefoot Networks, Inc. Equal cost multiple path group failover for multicast
US10158573B1 (en) 2017-05-01 2018-12-18 Barefoot Networks, Inc. Forwarding element with a data plane load balancer
JP7003873B2 (ja) * 2018-08-07 2022-01-21 日本電信電話株式会社 負荷分散システム及び負荷分散方法
CN109041262B (zh) * 2018-08-23 2020-06-16 Oppo广东移动通信有限公司 数据传输方法及相关装置
CN110858810B (zh) * 2018-08-24 2021-07-30 ***通信集团四川有限公司 网络链路状态监测方法、设备、***及介质
US10798005B2 (en) 2018-09-13 2020-10-06 International Business Machines Corporation Optimizing application throughput
US20240022514A1 (en) * 2022-07-18 2024-01-18 Microsoft Technology Licensing, Llc Dynamic load balancing based on flow characteristics

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030063611A1 (en) * 2001-09-28 2003-04-03 Marc Schaub Flexible application of mapping algorithms within a packet distributor
US20030202511A1 (en) * 2002-04-26 2003-10-30 Samsung Electronics Co., Ltd. Router using measurement-based adaptable load traffic balancing system and method of operation
US20050007954A1 (en) * 2003-07-11 2005-01-13 Nokia Corporation Network device and method for categorizing packet data flows and loading balancing for packet data flows

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7154858B1 (en) * 1999-06-30 2006-12-26 Cisco Technology, Inc. System and method for measuring latency of a selected path of a computer network
US20020065907A1 (en) * 2000-11-29 2002-05-30 Cloonan Thomas J. Method and apparatus for dynamically modifying service level agreements in cable modem termination system equipment
US6532212B1 (en) * 2001-09-25 2003-03-11 Mcdata Corporation Trunking inter-switch links
US8520520B2 (en) * 2002-11-06 2013-08-27 Avaya, Inc. System and method for per flow guaranteed throughput, multiple TCP flow bandwidth provisioning, and elimination of packet drops for transmission control protocol (TCP) and TCP-friendly protocols
US7508764B2 (en) * 2005-09-12 2009-03-24 Zeugma Systems Inc. Packet flow bifurcation and analysis

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030063611A1 (en) * 2001-09-28 2003-04-03 Marc Schaub Flexible application of mapping algorithms within a packet distributor
US20030202511A1 (en) * 2002-04-26 2003-10-30 Samsung Electronics Co., Ltd. Router using measurement-based adaptable load traffic balancing system and method of operation
US20050007954A1 (en) * 2003-07-11 2005-01-13 Nokia Corporation Network device and method for categorizing packet data flows and loading balancing for packet data flows

Also Published As

Publication number Publication date
WO2008056041A1 (fr) 2008-05-15
US20080114892A1 (en) 2008-05-15
FR2908575B1 (fr) 2009-03-20
US8601126B2 (en) 2013-12-03

Similar Documents

Publication Publication Date Title
FR2908575A1 (fr) Methode et appareil pour fournir un equilibrage de charge base sur le flux
US20220006726A1 (en) High performance software-defined core network
US11252079B2 (en) High performance software-defined core network
US20210006490A1 (en) High performance software-defined core network
US20190372888A1 (en) High performance software-defined core network
US20190280962A1 (en) High performance software-defined core network
US20200296026A1 (en) High performance software-defined core network
US7562355B2 (en) Systems and methods for optimal component composition in a stream processing system
US7706291B2 (en) Monitoring quality of experience on a per subscriber, per session basis
US7457870B1 (en) Methods, apparatuses and systems facilitating classification of web services network traffic
US7089294B1 (en) Methods, systems and computer program products for server based type of service classification of a communication request
US20170171050A1 (en) A system and method for integrating legacy flow-monitoring systems with sdn networks
EP3087701A1 (fr) Procede de diagnostic de fonctions service dans un reseau ip
US20130294449A1 (en) Efficient application recognition in network traffic
US8271656B2 (en) Decreasing latency in anonymity networks
US10171423B1 (en) Services offloading for application layer services
FR3020734A1 (fr) Procede de traitement d'un paquet de donnees relatif a un service
EP1387538B1 (fr) Dispositif et procédé de détermination de chemins de routage dans un réseau de communications, en présence d'attributs de sélection
US20140086185A1 (en) System For and Method of Dynamic Home Agent Allocation
EP3624402A1 (fr) Procédé de détection de sources illégitimes responsables d'une attaque distribuée par déni de service par inondation de lien et installation associée
JP4871775B2 (ja) 統計情報収集装置
EP2955887B1 (fr) Procédé de répartition de charge dynamique dans un réseau privé
WO2020221779A1 (fr) Procedes et dispositifs de mesure de reputation dans un reseau de communication
Oztoprak et al. A hybrid asymmetric traffic classifier for deep packet inspection systems with route asymmetry
WO2023047068A1 (fr) Procede de controle d'un acces a un service applicatif mis en œuvre dans un reseau de telecommunications, procede de traitement d'un message de controle d'un acces audit service applicatif, dispositifs, equipement de controle, equipement client, systeme et programmes d'ordinateur correspondants

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20120731