Brevet FR3105680A1 — publié le 20210625

L’invention concerne un dispositif et un procédé mis en œuvre par ordinateur pour router des flux de données au sein d’un réseau déployant une pluralité de routeurs, dont au moins un routeur a un accès à un réseau IP, le procédé opéré de manière cyclique comprend les étapes suivantes : - analyser les performances de connectivité d’un routeur source au réseau IP ; - générer un score correspondant au coût d’utilisation dudit routeur source pour transmettre un flux de données au réseau IP, le score étant fonction des performances de connectivité du routeur source au réseau IP; - déterminer parmi la pluralité de routeurs, le routeur présentant le meilleur score ; - déterminer si le routeur présentant le meilleur score est ledit routeur source ou un routeur distant ; et - si le routeur présentant le meilleur score est ledit routeur source, transmettre directement au réseau IP tout prochain flux de données arrivant sur ledit routeur source ; ou - si le routeur présentant le meilleur score est un routeur distant, établir un tunnel bidirectionnel entre ledit routeur source et le routeur distant, et acheminer tout prochain flux de données arrivant sur ledit routeur source vers le routeur distant pour transmission au réseau IP. Figure pour l’abrégé : Fig.2. Procédé et dispositif de routage de flux de données L’invention se situe dans le domaine des communications des réseaux IP, et concerne plus particulièrement un procédé et un dispositif de routage de flux de données vers des routeurs d’accès à un réseau IP tel que l’Internet. L’invention adresse la problématique de l’acheminement de flux de données générés dans un réseau de routeurs interconnectés entre eux et n’ayant que peu de routeurs ayant un accès direct à un réseau IP comme l’Internet, i.e. des routeurs nommés dans le cadre de la description « routeurs de sortie » qui disposent d’une connectivité directe vers l’Internet, par exemple à travers un modem cellulaire ou un lien Ethernet filaire vers une infrastructure ayant la connectivité à l’Internet. Ce type de situation se rencontre par exemple sur des chantiers lors de la construction d’édifices ou de plateformes navales où il y a la nécessité de mettre en place un réseau interne de chantier ayant des routeurs de sortie. Des routeurs sont déployés sur le chantier pour fournir aux employés l’accès à l’Internet (ou à un réseau d’entreprise ou un réseau privé) afin d’accéder à des applications métiers. Au fur et à mesure de l’avancée du chantier, tout ou partie de ces routeurs sont déplacés en fonction des besoins. Or, il arrive fréquemment que dans certaines zones du chantier, un routeur de sortie ne puisse plus capter les réseaux cellulaires. Une autre situation exposée à cette problématique concerne les réseaux de véhicules ou de drones ou de robots. En effet, si un routeur est déployé dans chaque véhicule, le déploiement devient opportuniste et les conditions de connectivité entre les routeurs sont très variables. Le passage sous un tunnel peut empêcher certains routeurs d’avoir un accès direct à l’Internet, n’ayant alors pas de couverture cellulaire. Certain des véhicules du réseau peuvent donc avoir besoin d’acheminer des données vers un ou plusieurs autres véhicules qui sont encore sous couverture cellulaire. Ainsi, au travers de deux exemples non limitatifs, il ressort qu’il existe le besoin pour une solution pour gérer des flux de données vers un réseau IP comme l’Internet, dans un réseau composé d’une pluralité de routeurs interconnectés entre eux dont au moins un routeur, dit routeur de sortie, possède des moyens de connexion directe au réseau IP. L’invention répond à ce besoin et apporte une solution de routage par flux qui permet d’analyser, à chaque instant, les performances de la connectivité vers l’Internet de chaque routeur de sortie et d’acheminer, en conséquence, chaque flux indépendamment des autres vers le meilleur routeur de sortie. Les réseaux tirant bénéfice de l’invention sont les réseaux concernés par les caractéristiques suivantes : - Le déploiement des routeurs peut être : réfléchi avec une étude de déploiement faite a priori, ou opportuniste car le déploiement doit répondre à des contraintes techniques, comme par exemple la position des prises électriques, ou le fait que les routeurs sont positionnés sur des plateformes mobiles dont la mobilité n’est pas contrôlée, ou le fait que le positionnement des routeurs est fait sur la base de zones à couvrir et non au regard de la qualité d’interconnexion entre les routeurs. - Les routeurs sont interconnectés entre eux par exemple à travers une connexion WiFi Mesh, qui permet de lier les routeurs entre eux de proche en proche jusqu’à former un grand réseau « multi-sauts » où chaque routeur peut aider à l’acheminement de données en les relayant. L’interconnexion entre les routeurs peut également être en filaire Ethernet ou être un mix entre plusieurs technologies (ex. WiFi, Ethernet, CPL, etc.). - Un certain nombre de routeurs ou la totalité, dits routeurs de sortie, possède un/des moyens d’interconnexion directe vers l’Internet à travers par exemple un ou plusieurs modems cellulaires, une connexion filaire Ethernet, ou toute autre technologie de télécommunications, ou un mix de celles-ci. - En fonction du temps, de l’évolution de l’environnement et de la disponibilité d’un accès direct vers l’Internet, un routeur de sortie peut soit ne plus avoir de connectivité vers l’Internet (par exemple un modem cellulaire dans un mode qui ne permet pas le transfert de données), soit avoir une qualité de connectivité moyenne (par exemple, il y a beaucoup d’utilisateurs sur une cellule radio 3G/4G, ou il y a une latence très élevée vers l’Internet ou une qualité de signal dégradée), soit avoir une très bonne qualité de connectivité. - Le seul moyen d’acheminer un flux vers l’Internet est de le faire parvenir à un routeur de sortie qui dispose d’un moyen de transfert de données vers l’Internet. - Chaque routeur peut offrir de la connectivité à des terminaux mobiles et/ou fixes. Par exemple, un routeur peut mettre en œuvre un hotspot WiFi, une connexion filaire Ethernet, un lien LiFi, une femtocell cellulaire, etc. pour fournir l’accès aux terminaux. -L’invention par sa mise en œuvre permet d’identifier les routeurs de sortie qui ont un accès Internet et qualifier ceux-ci quant à la pertinence de leur utilisation à un moment donné (par exemple sur la base de la qualité de leurs connexions à l’Internet). De manière générique, quand on traite d’un réseau composé de routeurs interconnectés en WiFi Mesh, les protocoles de routage dans ce type de réseau offrent la possibilité à un routeur de sortie d’injecter dans le réseau une ou plusieurs routes vers l’extérieur. Par exemple, le protocole OLSR (pour « Optimized Link-State Routing » en anglais) défini dans sa spécification RFC3626 propose le mécanisme HNA (pour « Host and Network Association » en anglais) qui permet d’informer les routeurs de la possibilité de joindre un réseau en particulier (l’Internet par exemple) à travers un routeur spécifique. Si chaque routeur de sortie génère ce type de message, l’ensemble des routeurs a alors connaissance de l’ensemble des routeurs de sortie. Néanmoins, cette méthode pose les problèmes suivants : - Le message ne fournit pas d’information sur la capacité disponible (de/des interfaces vers l’Internet) sur un routeur de sortie, donc un routeur utilisera le routeur de sortie le plus proche en termes de coût d’acheminement vers ce routeur de sortie. - Aucun mécanisme n’est mis en œuvre pour s’assurer que l’ensemble d’un flux « affecté » à un routeur de sortie restera affecté à ce routeur pendant toute la durée du flux. En effet, si un autre routeur de sortie proche devient plus intéressant (le coût d’acheminement vers ce routeur de sortie est moins élevé), alors le trafic en cours sera redirigé vers ce nouveau routeur de sortie. Si la connectivité vers l’Internet est cellulaire et qu’une translation d’adresse (NAT) est nécessaire, alors le flux peut s’interrompre à cause d’une modification d’adresse IP. - Il n’est pas possible avec ce mécanisme, depuis un routeur spécifique, d’acheminer du trafic vers plusieurs routeurs de sortie en parallèle. Aussi, la capacité de pouvoir annoncer aux autres routeurs la connectivité vers l’Internet est un élément nécessaire mais non suffisant pour réaliser une solution qui réponde au besoin précité. Une étude décrite dans l’article de Prashanth A. K. Acharya, David L. Johnson, Elizabeth M. Belding, « Gateway-aware Routing for Wireless Mesh Networks », IEEE 7 th International Conference on Mobile Adhoc and Sensor Systems (MASS), Novembre 2010, évoque l’intégration d’une valeur de capacité d’un routeur de sortie dans la métrique de routage multi-sauts Mesh. Par ce biais, le meilleur routeur de sortie (i.e. le coût d’acheminement en Mesh) est le routeur qui a la meilleure combinaison coût d’acheminement et capacité. Néanmoins, cette solution ne prend pas en compte l’évolution de la capacité, car une métrique qui évoluerait poserait un problème d’instabilité des routes (problème connu comme effet YoYo). De même, les flux transitant vers un routeur de sortie à un moment donné peuvent se voir basculer vers un autre routeur de sortie de manière rapide, générant alors une instabilité dans les performances d’acheminement de l’infrastructure. Aussi, cette solution n’est pas envisageable dans des environnements, tels que ceux adressés par l’invention, où les conditions seraient amenées à changer au fil du temps. La présente invention permet de pallier les inconvénients des approches connues et de répondre aux besoins précités. Ainsi, un objet de l’invention est de fournir une solution de routage de flux de données, dans un réseau composé d’une pluralité de routeurs interconnectés entre eux et où au moins un routeur, dit routeur de sortie, possède des moyens de connexion directe vers un réseau IP comme l’Internet. Avantageusement, l’invention permet d’accroitre significativement la bande passante disponible pour les communications d’un terminal client vers son/ses correspondant(s), dans un réseau IP ayant des routeurs de sortie. Le procédé revendiqué introduit un routage intelligent des flux de communications sortant vers l’Internet dans une infrastructure de communication IP avec un ou plusieurs routeurs de sortie (routeur ayant une connectivité directe vers l’Internet à travers par exemple un ou plusieurs modems cellulaires). Dans une infrastructure à plusieurs routeurs de sortie, le trafic de données d’un client peut se retrouver acheminé vers différents routeurs de sortie profitant in fine, d’une parallélisation de l’acheminement du trafic. Ainsi, le procédé revendiqué permet d’optimiser l’utilisation de la bande passante totale disponible vers l’Internet, en acheminant des flux vers plusieurs routeurs de sortie en parallèle. Le principe général de l’invention est basé sur la mise en œuvre d’un protocole de routage interne à un réseau qui est déployé, et qui permet d’assurer la publication des routes vers chaque routeur du réseau. De manière cyclique, un routeur évalue son niveau de performance global de connectivité directe vers l’Internet, ce qui définit un score appliqué à son interface virtuelle. Ce score est propagé régulièrement aux autres routeurs grâce au protocole de routage interne au réseau déployé. Une fois ce score calculé, le routeur le compare au score des autres routeurs dans le réseau (qui calculent chacun régulièrement leur niveau de performance global de connectivité vers l’Internet), et il peut sélectionner le meilleur routeur de sortie à un moment donné. Le meilleur routeur de sortie (celui qui a le meilleur score) peut être lui-même ou un routeur distant. S’il s’agit d’un routeur distant, le procédé permet d’établir un tunnel réseau bidirectionnel entre lui et ce routeur de sortie distant, afin de fixer le point de sortie des flux qui seront acheminés. Au cours de la vie du routeur, il peut y avoir plusieurs tunnels établis en parallèle. A l’arrivée d’un flux généré par un terminal client ou par le routeur lui-même, le routeur établit une règle de routage fixant l’acheminement de ce flux au point de sortie sélectionné, i.e. vers une interface interne ayant un accès direct au réseau IP (Internet) sur le routeur lui-même ou vers une interface de tunnel vers un routeur distant. Ce flux reste fixé à ce point de sortie pendant toute la vie du point de sortie (interface interne vers l’Internet ou interface de tunnel). Si dans le temps, le meilleur point de sortie n’est plus le même, seuls les nouveaux flux sont affectés au nouveau point de sortie, permettant ainsi la parallélisation de l’acheminement des flux. Ainsi, les avantages du procédé de l’invention sont au moins que : - La publication de la valeur de performance globale de la connectivité vers l’Internet d’un routeur est faite d’une manière qui évite de créer de l’instabilité dans le réseau ; - La capacité de faire un traitement par flux permet de faire une distribution fine du routage ; - L’utilisation de tunnels bidirectionnels réseau permet de garder une parallélisation même si le meilleur routeur de sortie change au cours du temps. Dans un mode de réalisation avantageux, le protocole de routage revendiqué est combiné avec un mécanisme d’agrégation de bande passante sur les interfaces de connectivité vers l’Internet d’un routeur de sortie. Ce mécanisme peut s’assurer de l’équilibrage de charge sur les différentes interfaces en attribuant un flux à une interface sous-utilisée ou à une interface qui offre plus de capacité par exemple. Avantageusement, le procédé revendiqué permet de déployer une infrastructure de communication de taille variable très rapidement sans étude de déploiement préalable. L’ajout de nouveaux moyens de connectivité vers l’Internet au niveau d’un routeur est pris en charge automatiquement permettant ainsi au réseau de tirer pleinement parti de cette nouvelle connexion. Par exemple, si une nouvelle connexion est ajoutée sur un routeur, la performance globale de la connectivité Internet de ce routeur est améliorée et le procédé de routage de l’invention permet d’en tirer profit en acheminement potentiellement de nouveaux flux vers ce routeur. Toujours avantageusement, le niveau de connaissance requis pour configurer un tel système est très limité puisque les routeurs vont automatiquement utiliser les routeurs de sortie les plus pertinents pour eux et qui offrent le plus de bande passante, tout au long de la vie du réseau, et ce même si les conditions changent. Par ailleurs, la capacité d’utilisation de plusieurs routeurs de sortie en simultané permet de maximiser l’utilisation de la capacité globale du réseau. L’information de capacité sur la connectivité vers l’Internet n’étant pas incluse dans le calcul de coût des interfaces réseau constituant le réseau Mesh, cette information influe alors peu sur la probabilité d’instabilité de routes dans le réseau. Pour obtenir les résultats recherchés, il est proposé un procédé mis en œuvre par ordinateur pour router des flux de données au sein d’un réseau déployant une pluralité de routeurs, dont au moins un routeur a un accès à un réseau IP. Le procédé opéré de manière cyclique comprend les étapes suivantes : - analyser les performances de connectivité d’un routeur source au réseau IP ; - générer un score correspondant au coût d’utilisation dudit routeur source pour transmettre un flux de données au réseau IP, le score étant fonction des performances de connectivité du routeur source au réseau IP; - déterminer parmi la pluralité de routeurs, le routeur présentant le meilleur score ; - déterminer si le routeur présentant le meilleur score est ledit routeur source ou un routeur distant ; et - si le routeur présentant le meilleur score est ledit routeur source, transmettre directement au réseau IP tout prochain flux de données arrivant sur ledit routeur source ; ou - si le routeur présentant le meilleur score est un routeur distant, établir un tunnel bidirectionnel entre ledit routeur source et le routeur distant, et acheminer tout prochain flux de données arrivant sur ledit routeur source vers le routeur distant pour transmission au réseau IP. Selon des modes de réalisation alternatifs ou combinés: - l’étape d’analyser les performances de connectivité d’un routeur source au réseau IP comprend des étapes consistant à déterminer les connexions au réseau IP du routeur source ; à estimer la performance de chacune de ces connexions ; et à agréger ces estimations pour générer une information de performance globale de la connectivité du routeur source au réseau IP. - l’étape de générer un score correspondant au coût d’utilisation dudit routeur source pour transmettre un flux de données au réseau IP comprend des étapes consistant à : - calculer une valeur de capacité théorique en fonction de la technologie utilisée par chacune des interfaces de connexion au réseau IP du routeur source ; - calculer une valeur de capacité restante pour chaque interface en fonction de son utilisation courante ; et - retrancher l’ensemble des valeurs de capacité restante à une valeur maximale prédéterminée, cette valeur maximale signifiant que le routeur source n’a pas de capacité d’acheminement direct de flux vers le réseau IP, pour obtenir une valeur agrégée, ladite valeur agrégée représentant le coût interne du routeur pour transmettre un flux de données au réseau IP. - l’étape de déterminer parmi la pluralité de routeurs, le routeur présentant le meilleur score, consiste à déterminer le routeur présentant le meilleur score parmi les routeurs ayant un score inférieur à une valeur seuil prédéfinie. - l’étape de transmettre directement au réseau IP tout prochain flux de données arrivant sur ledit routeur source comprend une étape pour établir une règle de routage fixant l’acheminement d’un flux de données arrivant vers une interface interne dudit routeur ayant une connexion directe au réseau IP. - l’étape d’établir un tunnel bidirectionnel entre ledit routeur source et le routeur distant consiste à demander au routeur distant sélectionné d’établir son côté du tunnel vers le routeur source, et une fois la requête acceptée par le routeur distant, d’établir son côté du tunnel par le routeur source. - l’étape d’acheminer tout prochain flux de données arrivant sur ledit routeur source vers le routeur distant sélectionné, comprend une étape pour établir une règle de routage fixant l’acheminement d’un flux de données arrivant vers une interface interne dudit routeur assignée au tunnel bidirectionnel. - la règle de routage consiste à attribuer un flux de données arrivant à une interface qui est sous-utilisée ou à une interface qui offre plus de capacité. - l’étape de générer un score correspondant au coût d’utilisation dudit routeur source pour transmettre un flux de données au réseau IP comprend de plus une étape consistant à annoncer le score sur une interface virtuelle du routeur source. L’invention couvre un produit programme d’ordinateur comprenant des instructions de code non transitoire permettant d’effectuer les étapes du procédé revendiqué, lorsque le programme est exécuté sur un ordinateur. L’invention couvre de plus un dispositif pour router des flux de données au sein d’un réseau déployant une pluralité de routeurs, dont au moins un routeur a un accès à un réseau IP, le dispositif comprenant des moyens pour mettre en œuvre les étapes du procédé selon l’une quelconque des revendications. D’autres caractéristiques, détails et avantages de l’invention ressortiront à la lecture de la description faite en référence aux dessins annexés donnés à titre d’exemple et qui représentent, respectivement : une architecture d’interconnexion entre routeurs permettant d’implémenter l’invention dans un mode de réalisation; les interfaces d’un routeur de l’invention selon un mode de réalisation; schématiquement les modules composant un routeur de l’invention selon un mode de réalisation; et des exemples de format d’adresse IPv4 pour réseau ingress et réseau entre routeurs dans un mode de réalisation de l’invention ; et les étapes pour sélectionner un routeur de sortie dans un mode de réalisation de l’invention. La figure 1 illustre une architecture 100 d’interconnexion entre routeurs permettant d’implémenter l’invention dans un mode de réalisation. L’environnement d’interconnexion 100 comprend un réseau de routeurs 102 (102-1, …,102-i, …) interconnectés pouvant opérer des protocoles de communications, tels que sans être limitatif les protocoles IP, UDP, TCP, et des protocoles de routage, tels que sans être limitatif les protocoles Babel ou OLSR. L’exemple illustre une infrastructure cellulaire 104 permettant d’offrir une connectivité (2G, 3G, 4G, Ethernet…) vers l’Internet. Un routeur sous couverture de l’infrastructure cellulaire, par exemple à travers un modem cellulaire, ou connecté via un lien Ethernet filaire vers une infrastructure ayant la connectivité à l’Internet, dispose d’une connectivité dite directe vers l’Internet. Un tel routeur est désigné comme « routeur de sortie » dans le cadre de l’invention. Un routeur de sortie peut aussi être un routeur qui est connecté à l’Internet via une connexion Ethernet vers une infrastructure de réseau disposant elle-même d’une connectivité à l’Internet, comme par exemple via un réseau de type extranet ou intranet d’un réseau d’entreprise) Différents types de terminaux client 106 (ordinateur fixe/portable, smartphone, tablette, …) peuvent solliciter les routeurs pour envoyer/recevoir des flux de données au travers de différents types de connexion (Wifi, 2G/3G/4G/…, LiFi, …). Selon le procédé de l’invention, un flux de données arrivant sur un routeur pour être envoyé sur l’Internet, peut être acheminé (illustré par les chemins 108 de type liaison sans fil WifiMesh ou filaire CPL ou Ethernet) de routeur en routeur pour trouver le routeur qui maximisera les performances du flux. Lors de la mise en œuvre du procédé de l’invention, chaque routeur va : - déterminer de manière dynamique s’il est lui-même un routeur de sortie et identifier tous les routeurs de sortie disponibles dans le réseau ; - sélectionner de manière cyclique s’il est plus intéressant d’utiliser ses interfaces de connexion directe vers l’Internet ou de transférer du trafic vers un routeur de sortie distant ; - déterminer dynamiquement le routeur de sortie le plus intéressant, en termes de capacité disponible pour de l’acheminement de trafic vers l’Internet. Dans un mode de réalisation, un routeur 102 configuré pour mettre en œuvre le procédé de routage de l’invention, comprend plusieurs types d’interface, comme illustré sur la figure 2, qui sont : - des interfaces physiques (202, 204, 206) comprenant : - une ou plusieurs interfaces 202 vers l’Internet (dite interface « egress » en anglais) : ce type d’interface peut par exemple être un ou plusieurs modems cellulaires ou un lien filaire vers un réseau d’entreprise qui donne un accès vers l’Internet ; - une ou plusieurs interfaces 204 de communication entre routeurs : ce type d’interface peut par exemple être une interface WiFi configurée dans un mode Mesh, ou un lien filaire Ethernet entre deux routeurs ; - de manière optionnelle, une ou plusieurs interfaces 206 de communication vers des terminaux clients : ce type d’interface peut par exemple être une interface WiFi configurée en mode Hotspot et/ou une interface filaire Ethernet. Dans une mise en œuvre, un flux de données à transmettre vers le réseau Internet, peut être un flux directement généré par un routeur (et non reçu d’un terminal client), comme par exemple un flux d’information provenant d’un capteur du routeur. - une interface virtuelle 208 configurée pour présenter au cours du processus de sélection d’un routeur de sortie un score représentant le coût d’utilisation (ou sa capacité) du routeur pour transmettre des flux de données à un réseau IP (l’Internet). Dans une implémentation avantageuse du procédé de routage de l’invention, le réseau de routeurs comprend au moins deux routeurs de sortie, i.e. deux routeurs ayant des interfaces réseau 202 vers l’Internet. Pour des raisons de simplicité de description et non de limitation de l’invention, bien que les exemples des figures 1 et 2 ne montrent qu’un nombre fini de routeurs, l’homme du métier peut étendre les principes décrits à une pluralité de routeurs tout en apportant des modifications et/ou des variantes d’implémentation résultant de la généralisation. La figure 3 montre schématiquement les modules composant un routeur 102 de l’invention selon un mode de réalisation. Il est à noter que les mêmes références sont reprises sur les différentes figures pour les éléments identiques. Le routeur 102 comprend : - un module 302 de routage multi-sauts sur l’infrastructure réseau. Ce module permet de définir et mettre à jour les tables de routage de chaque routeur. Ce module repose sur une métrique permettant de déterminer le coût d’acheminement de données entre deux routeurs. Cette métrique peut par exemple intégrer des informations sur le taux de pertes de paquets, la qualité de signal, le type de technologie (WiFi, filaire). - un module 304 de connexion vers l’Internet. Ce module est configuré pour détecter la présence d’une connectivité Internet telle que par exemple à travers un modem cellulaire ou une connexion filaire Ethernet. Ce module permet également de récupérer des informations qui caractérisent cette connectivité Internet par exemple, la technologie, la qualité de signal, le nombre d’octets échangés, etc. - un module 306 d’analyse des performances de la connectivité vers l’Internet. Ce module est configuré pour estimer la performance de chacune des connexions d’un routeur de sortie vers l’Internet et agréger ces informations pour générer une information de performance globale de la connectivité de l’Internet. Par exemple, le module d’analyse des performances de la connectivité vers l’Internet, peut évaluer la bande passante possible sur chaque connexion disponible sur le routeur et, en fonction du trafic transitant, estimer la capacité restante sur chacune des connexions. Cette estimation peut se faire de manière active (test de bande passante) ou sur des informations de modulation/encodage qui définit une bande passante théorique. Le module peut alors agréger ces informations de capacité restante de chacune des connexions pour former une information de capacité restante globale. - un module 308 de routage par flux. Ce module est configuré pour déterminer, pour chaque flux généré par un routeur, vers quel routeur de sortie le flux sera redirigé. La base d’information nécessaire pour décrire un flux repose sur les paramètres définis dans chaque paquet de données, que sont : l’adresse IP source, l’adresse IP destination, le protocole (ex., UDP, TCP), le port source, le port destination, etc. Le module peut être configuré pour prendre en compte tout ou partie de ces informations. - un module 310 d’établissement de tunnels bidirectionnels entre routeurs. Ce module est configuré pour négocier l’ouverture d’un tunnel de communication entre un routeur « source » et un routeur de sortie en vue d’acheminer un ou plusieurs flux de ce routeur source vers ce routeur de sortie. Si un trafic doit être acheminé vers un routeur de sortie précis, alors il est nécessaire de mettre un tunnel en place entre ces deux routeurs au préalable. Un tunnel peut servir à plusieurs flux à la fois. - un module 312 de stockage d’un plan d’adressage IP. Le plan d’adressage est commun à l’ensemble des routeurs. Chaque routeur possède un identifiant qui permet d’élaborer un plan d’adressage local (sur ses interfaces réseau). Cette information peut être retrouvée depuis chaque adresse IP et permettre d’identifier la source des données. Chaque routeur doit être identifié de manière unique. Cet identifiant est un nombre entier qui est inclus dans l’adressage IP des interfaces réseau. Les figures 4a et 4b illustrent des exemples de format d’adresse IPv4 pour les communications clients (réseau « ingress » en anglais) sur la figure 4a, et pour les communications entre routeurs sur la figure 4b, dans un mode de réalisation de l’invention. La première ligne des figures 4a et 4b indique la position du bit, et la deuxième ligne représente l’adresse IPv4. Concernant l’adressage IP pour les communications clients, il est d’usage pour la plupart des logiciels de considérer que la taille du préfixe de l’adresse IP est 24 quand il n’est pas renseigné directement. Dans un mode de réalisation de l’invention, la stratégie d’allocation d’adresse IPv4, est d’utiliser les derniers 8 bits de l’adresse IPv4 pour identifier les interfaces réseau (host ID) qui ne sont pas sous contrôle direct du protocole de l’invention, ce qui offre 254 possibilités. Ainsi, une interface WiFi Hotspot aura par exemple un Host ID 254, et les clients WiFi se verront attribuer des valeurs allant de 1 à 253. L’identification du type de réseau ingress peut donc s’opérer sur 8 bits (une seule valeur est nécessaire). Dans un mode de réalisation (figure 4a), le format suivant d’adressage est utilisé : - les 8 premiers bits servent à indiquer qu’il s’agit d’une interface ingress (Réseau de type Ingress). La plage d’adresse IP privée ayant une taille de préfixe de 8 bits, elle est définie par le préfixe 10.0.0.0. La valeur « 10 » peut donc être sélectionnée. - les 12 bits suivants servent à identifier le routeur (Routeur ID). La valeur est définie de manière unique lors de la configuration du routeur (142 sur l’exemple). - les 4 bits suivants servent à identifier le réseau généré par chaque interface sur la partie ingress (Numéro de réseau de valeur 7 sur l’exemple). - les 8 derniers bits servent à identifier l’interface et les équipements utilisateurs (Host ID de valeur 1 sur l’exemple). Ainsi une adresse IP « 10.8.231.1/24 » peut indiquer qu’elle provient d’un client connecté au réseau 7 de type ingress, sur le routeur numéro 142. Concernant l’adressage IP pour les communications inter-routeurs, contrairement aux interfaces ingress, les interfaces de communication entre routeurs n’allouent pas d’adresses IP à des clients. Aussi, l’identifiant du routeur sur 12 bits suffit pour définir l’adresse IP de l’interface. Il est alors possible d’identifier une interface pour communication entre routeurs sur 4 bits. Dans un mode de réalisation (figure 4b), le format suivant d’adressage est utilisé : - les 16 premiers bits servent à indiquer qu’il s’agit d’une interface inter-routeur (Réseau de type communication entre routeurs, de valeur 192 et 168 sur l’exemple). La plage d’adresse IP privée ayant une taille de préfixe de 16 bits, elle est définie par le préfixe 192.168.0.0. La valeur « 192.168 » peut donc être sélectionnée. - les 4 bits suivants servent à identifier le réseau généré par chaque interface (Numéro de réseau de valeur 1 sur l’exemple). - les 12 bits suivants servent à identifier le routeur (Routeur ID/ Host ID). La valeur est définie de manière unique lors de la configuration du routeur (142 sur l’exemple). Il ne peut y avoir d’identifiant de routeur égale à 255. Ainsi une adresse IP « 192.168.1.142/32 » peut indiquer qu’elle provient d’une interface inter-routeur, qui a généré le réseau numéro 1, sur le routeur numéro 142. Afin d’identifier le routeur en lui-même, notamment pour son interface virtuelle, dans un mode de réalisation, le format d’adresse pour interfaces inter-routeurs est utilisé mais avec un identifiant de réseau ayant une valeur « 0 ». L’adresse IP pour l’interface virtuelle du routeur 142 est alors 192.168.0.142. La stratégie d’adressage décrite en référence aux figures 4a et 4b est un exemple, mais l’homme du métier peut définir une autre stratégie, tout en gardant la capacité d’identification des routeurs. Revenant à la figure 3, les différents modules d’un routeur selon l’invention sont décrits : 302 : Le module de routage multi-sauts sur l’infrastructure réseau. Dans les cas où le déploiement d’un réseau est en WiFi Mesh multi-sauts, la mise en communication IP des routeurs peut se faire sur la base de l’utilisation d’un protocole de routage distribué, tel que par exemple, les protocoles OLSR ou Babel. La plupart de ces solutions permettent d’injecter des routes spécifiques dans le réseau. Une route spécifique nécessaire à publier est l’accès à l’interface virtuelle du routeur. Dans un mode d’implémentation de l’invention, le protocole Babel est mis en œuvre pour annoncer les routes vers les interfaces Mesh (inter-routeurs) ainsi que vers les interfaces virtuelles. La métrique utilisée intègre des informations sur le type de technologie de lien (filaire, WiFi), sur le taux de pertes de paquets ainsi que sur le coût interne de chaque interface. Dans une variante, une valeur de coût est fixée à une interface (physique ou virtuelle) sur un système d’exploitation et est également propagée. Une métrique pour une route est propagée de routeur en routeur qui successivement y intègre un coût d’utilisation/performance de lien. Plus la métrique est relayée, plus la valeur de coût augmente. Au démarrage du procédé de l’invention sur un routeur, l’interface virtuelle du routeur est configurée avec un coût qui représente une valeur la plus élevée selon la configuration du réseau déployé. Celle valeur est de 65534 dans l’exemple illustré. Avec une telle valeur, les autres routeurs considèrent que ce routeur n’a pas de capacité vers l’Internet. Les autres interfaces (physiques) du routeur sont configurées avec un coût d’interface à 0. De ce fait, seuls les autres paramètres de calcul de coût sont intégrés (type de technologie de lien, taux de pertes de paquets) et pris en compte par les autres routeurs. Ainsi, sur l’ensemble des routes publiées par chaque routeur, seule la route vers l’interface virtuelle intègre un coût qui représente la capacité disponible du routeur vers l’Internet. Ces routes sont récupérées régulièrement et stockées dans une table de routage dédiée qui n’a pas vocation à être utilisée pour du routage de flux de données. A tout moment, un routeur a la visibilité sur l’ensemble des routeurs du réseau et de leurs capacités disponibles vers l’Internet. 304 : Le module de connexion vers l’Internet. Ce module est configuré pour détecter dynamiquement des interfaces réseau donnant accès vers l’Internet. Si un modem cellulaire est par exemple branché à chaud sur un port USB du routeur, le module de connexion vers l’Internet le détecte et le configure pour permettre de le connecter au réseau cellulaire. Dans un autre cas, le module de connexion vers l’Internet est apte à détecter un branchement d’un lien filaire Ethernet et de s’assurer de la connectivité vers l’Internet à travers celle-ci. Avantageusement, le module de connexion vers l’Internet apporte la flexibilité dans le déploiement du réseau. Il est ainsi possible au cours de la vie du réseau de déplacer les ressources de connectivité directe vers l’Internet en fonction du positionnement des routeurs, i.e. retirer un modem cellulaire si le routeur se retrouve dans une zone qui n’est pas sous couverture cellulaire, ou ajouter un modem cellulaire sur un routeur qui se retrouve sous couverture cellulaire, ou ajouter plusieurs modems cellulaires pour multiplier la bande passante disponible sur un routeur. Par cette flexibilité, chaque routeur du réseau peut jouer le rôle de routeur de sortie à tout moment. Le coût de son interface virtuelle 208 peut évoluer également en fonction du nombre de possibilités de connectivité vers l’Internet qui lui est fourni. Dans un mode de réalisation, le module de connexion vers l’Internet 304 applique une solution de translation d’adresse NAT (« Network Address Translation » en anglais) sur chaque interface donnant l’accès à l’Internet, permettant ainsi de cacher l’espace d’adressage du réseau déployé. Le module de connexion vers l’Internet 304 est couplé au module d’analyse des performances de la connectivité vers l’Internet 306 pour lui fournir des informations sur chacune des interfaces sous sa gestion. Par exemple, communiquer l’information si une interface cellulaire utilise la 3G ou la 4G, ou une information quant à la qualité de signal en réception, ou encore s’il y a un lien filaire Ethernet. 306 : Le module d’analyse des performances de la connectivité vers l’Internet. Le module d’analyse des performances de la connectivité vers l’Internet, détermine de manière cyclique, le coût interne de l’interface virtuelle du routeur, sur la base des informations reçues du module de communication vers l’Internet relativement à chacune des interfaces de communication vers l’Internet. Dans un mode de réalisation, la valeur de coût interne est définie entre une valeur minimum de 0 et une valeur maximum de 65534. L’algorithme de calcul opère en trois phases. Une première phase consiste à calculer une capacité théorique du routeur. En fonction de la liste des interfaces, une valeur indicative de la capacité disponible en fonction de la technologie utilisée, est définie. Dans une configuration à titre d’exemple : si sur une interface, la connexion est par un lien filaire Ethernet, la valeur de la capacité disponible est définie à 50000 ; si sur une interface, la connexion est par un lien cellulaire 4G, la valeur est définie à 20000 ou à 2600 si le lien est 3G ; si une interface est en technologie EDGE (« Enhanced Data for GSM Evolution » en anglais), la valeur est définie à 1000. L’homme du métier comprend que les valeurs indiquées ne sont qu’à titre d’exemple et sur la base d’une valeur théorique maximale définie à 65534, mais que toute autre variante de plages de valeurs peut être prédéfinie, sans modifier les principes de mise en œuvre de l’invention. Dans une deuxième phase, durant l’analyse de chacune des interfaces de connectivité vers l’Internet, une analyse de l’utilisation courante de chaque interface dans les deux sens de flux montant (upload) et flux descendant (download), est opérée pour déterminer la capacité restante de chaque interface. Dans un mode de réalisation, le débit en Megabit par seconde (Mb/s) est calculé et multiplié par une valeur de pénalité prédéfinie, par exemple à 100. La valeur de débit résultante est retranchée de la valeur indicative de la capacité disponible en fonction de la technologie utilisée. Ainsi, en reprenant les valeurs de l’exemple choisi, si sur un lien filaire, il est utilisé 10 Mb/s en upload et 15 Mb/s en download lors du calcul du débit, alors la valeur (10+15)*100 = 2500 est retranchée à la valeur de capacité disponible de 50000, pour obtenir une valeur de capacité restante de 47500. Selon le même principe de calcul : sur un lien cellulaire 4G, la valeur de capacité disponible est de 17500 ; sur un lien 3G, la valeur de capacité disponible est de 100 ; sur un lien Edge, la valeur de capacité disponible est mise à 0 car la valeur obtenue serait négative. Dans une troisième phase, l’ensemble des valeurs de capacité restante pour les différentes connexions Internet du routeur est retranché à la valeur maximale de coût interne de l’interface virtuelle du routeur (dans l’exemple 65534) pour obtenir une valeur agrégée. La valeur agrégée, correspondant à la valeur de coût interne de l’interface virtuelle du routeur à un instant donné, représente la capacité disponible pour l’acheminement de flux vers l’Internet au niveau du routeur de sortie. Dans un mode de réalisation avantageux, le procédé permet de définir une valeur de visibilité de routeur dans le réseau, afin que la valeur agrégée soit interprétable efficacement par d’autres routeurs du réseau. En effet, il y a lieu de considérer le coût d’acheminement d’un flux vers un routeur de sortie dans le calcul de la capacité disponible du routeur. Le coût d’acheminement venant s’ajouter à la valeur agrégée, il peut arriver des situations telles que, par exemple, si la valeur de capacité agrégée d’un routeur est de 65530, et que le coût d’acheminement d’un flux moyen vers ce routeur est de 3000, alors la valeur de capacité disponible pour ce routeur atteint le plafond fixé à la valeur maximale de 65534. Cela indique alors faussement aux autres routeurs, que ce routeur de sortie n’a pas du tout de capacité d’acheminement de flux vers l’Internet. Pour pallier ce risque, il est retranché à la valeur agrégée, une valeur dite valeur de visibilité qui est prédéfinie à une valeur fixe. Dans l’exemple choisi, la valeur de visibilité est fixée à 10000. En retranchant la valeur de visibilité à 65530, la valeur annoncée par le routeur de sortie et vue par d’autres routeurs est de 55530 et leur indique donc que ce routeur a un peu de capacité d’acheminement de flux vers l’Internet, et est donc un routeur de sortie possible. Ainsi lorsqu’un nouveau flux arrive, il est routé vers le meilleur routeur de sortie au moment ‘t’. Un routeur de sortie présentant un coût de 20000 peut être préféré comme routeur de sortie vis-à-vis d’un routeur présentant un coût de 55530 car il offre plus de capacité. Il est a noté que la valeur de visibilité permet de contrôler la visibilité des routeurs de sortie à différentes profondeurs dans l’infrastructure (positionnement par rapport au routeur source). Une valeur faible permet de limiter la visibilité à une profondeur faible. Une valeur élevée permet d’augmenter la visibilité à plus de routeurs dans l’infrastructure. Les valeurs présentées sont à titre d’exemple, et peuvent varier en fonction de la taille du réseau et de la technologie utilisée. Dans un mode de réalisation, le calcul se base sur des valeurs indicatives de capacité théorique. Une variante peut utiliser de la mesure active pour mieux refléter la capacité disponible sur chaque lien, par exemple en injectant du trafic sur une interface pour détecter les limites de capacité en upload (vers l’Internet) et en coordination avec un serveur distant pour le download. Ainsi, de manière cyclique, l’analyse des performances de la connectivité vers l’Internet de chaque routeur du réseau déployé, génère un score qui est appliqué à l’interface virtuelle du routeur, correspondant au coût interne de l’interface virtuelle du routeur. Selon le score de l’interface virtuelle, i.e. selon la valeur du score par rapport à une valeur seuil prédéfinie, un routeur se positionne comme un routeur de sortie potentiel ou non. 308 : Le module de routage par flux. Chaque routeur définit un traitement de routage par flux dès lors qu’il s’agit d’acheminer des données vers l’Internet. Les flux issus de clients locaux (lien filaire Ethernet client, hotspot WiFi) sont soumis à un traitement spécifique permettant de définir s’ils peuvent être transmis vers l’Internet via une interface locale ou à travers un routeur de sortie distant. Le choix est déterminé par le module de mise en place de tunnels entre routeurs. Pour un routeur de sortie, les flux provenant de tunnels sont attribués à une interface locale au routeur de sortie vers l’Internet. Le premier paquet d’un flux est intercepté et envoyé vers l’interface virtuelle qui est chargée de faire une attribution d’un point de sortie. Une fois l’attribution faite, le reste du flux suit l’attribution préalablement faite. L’attribution est perdue si le point de sortie est supprimé. Dans un mode de réalisation, les éléments d’identification d’un flux suffisants sont des éléments standards comme l’adresse IP source, l’adresse IP destination, le protocole, le port source, le port destination. Selon les besoins et les contraintes de CPU par exemple, il est possible d’utiliser plus ou moins de paramètres. 310 : Le module d’établissement de tunnels entre routeurs. De manière cyclique, chaque routeur opère un algorithme de détermination de mise en place ou non d’un tunnel bidirectionnel vers un routeur selon les étapes suivantes : - Un routeur « source » détermine s’il a lui-même une capacité locale d’acheminement de flux vers l’Internet, c’est-à-dire si son score d’interface virtuelle le positionne comme un routeur de sortie. Si oui, l’attribution des futurs flux se fera en principe à une des interfaces du routeur donnant accès direct à l’Internet sauf s’il perçoit un autre routeur de sortie disposant d’un meilleur score le positionnant donc comme un potentiel meilleur routeur de sortie pour les flux du routeur source. Dans ce cas il y a lieu d’acheminer un futur flux du routeur source vers ce routeur de sortie distant. De la même manière, Si le routeur source n’a pas de capacité locale d’acheminement de flux vers l’Internet, il y a lieu d’acheminer un futur flux à un routeur de sortie distant. - Le routeur source sélectionne le routeur distant optimal et établit un tunnel bidirectionnel avec lui. - Le routeur source attribuera les nouveaux flux arrivants (d’un terminal client ou généré localement) à l’interface correspondant au tunnel créé vers le routeur de sortie distant. Avantageusement, l’établissement d’un tunnel bidirectionnel permet de s’assurer qu’un flux reste associé à un routeur de sortie spécifique et ne bascule pas vers un autre meilleur routeur de sortie qui peut apparaitre au cours du temps. Cela permet d’assurer une continuité vis-à-vis de la translation d’adresse (NAT) opérée par chaque routeur de sortie et ainsi d’éviter une interruption des flux de données ainsi que les instabilités qui pourraient être générées par une évolution rapide des coûts de capacité. L’établissement d’un tunnel bidirectionnel se fait selon un protocole permettant de demander au routeur de sortie qui est sélectionné d’établir un tunnel vers le routeur « source ». Une fois la requête acceptée par le routeur de sortie distant, le routeur source établit son côté du tunnel. L’homme du métier peut considérer qu’à un instant t, plusieurs tunnels peuvent être établis vers différents routeurs de sortie distants. Des flux peuvent donc être répartis vers plusieurs routeurs de sortie en parallèle permettant alors de maximiser l’utilisation des ressources de l’infrastructure. Dans un mode de réalisation, si un routeur de sortie distant qui est sélectionné est vu à un moment donné, par le routeur source comme n’ayant plus de capacité via son score d’interface virtuelle (i.e. qui a atteint la valeur maximale de coût, ex. de 65534 dans notre exemple), le tunnel qui lui était attaché est supprimé. La suppression d’un tunnel fait que les flux qui lui étaient attachés se retrouvent sans attribution. Ils sont alors considérés comme de nouveaux flux qui vont être acheminés vers un nouveau routeur de sortie. Dans une variante de réalisation où un routeur source a la capacité directe d’acheminement des flux vers l’Internet, le procédé permet que le routeur source sélectionne un routeur de sortie distant et établisse un tunnel vers ce routeur de sortie. 312 : Le module de stockage du plan d’adressage IP. A partir de son identifiant unique, chaque routeur établit un plan d’adressage IP vers ses interfaces réseau qui est stocké dans le module correspondant. La figure 5 décrit les étapes du procédé 500 de sélection d’un routeur de sortie opéré par un routeur source, selon un mode de réalisation. Le principe général du protocole de routage est que chaque routeur informe les routeurs voisins, puis les autres routeurs de proche en proche, de la disponibilité de ses interfaces de communications entre routeurs (interfaces Mesh WiFi, Ethernet filaire par exemple), ainsi que son niveau de performance global de connectivité vers l’Internet via son interface interne virtuelle. Avantageusement, cette information n’est pas directement utilisée pour le routage du flux entre les routeurs, et ainsi elle n’induit pas d’effet Yo-Yo ni d’instabilité dans le réseau. Le procédé de sélection 500 est répété de manière cyclique, le choix du cycle pouvant être paramétrable en fonction du contexte applicatif, de la fréquence d’arrivée des flux ou d’autres paramètres. Au début d’un cycle, dans une première étape 502, le procédé permet par le module d’analyse des performances de la connectivité vers l’Internet, d’évaluer le niveau de performance global de connectivité vers l’Internet du routeur source et de calculer son score agrégé. Dans une étape suivante 504, le procédé permet d’appliquer la valeur du score agrégé à l’interface virtuelle du routeur source, afin d’annoncer le coût de son interface et se faire connaitre comme étant un potentiel routeur de sortie ou non. Ce score est propagé régulièrement aux autres routeurs grâce au protocole de routage interne au réseau déployé. Dans une étape suivante 506, le procédé permet au routeur source de comparer son score au score des autres routeurs du réseau, et de sélectionner le meilleur routeur de sortie. Cette étape peut être réalisée uniquement sur les routeurs dont le score les positionne comme routeurs de sortie (i.e. dont le score n’a pas atteint la valeur maximale, ex. 65534, signifiant que le routeur n’a pas de capacité disponible vers l’Internet). L’homme du métier comprend que l’implémentation pourrait être réalisée sur la base d’un calcul de score où les routeurs de sortie potentiels sont des routeurs dont la valeur de score est inférieure à une valeur prédéfinie. Dans une étape suivante 508, le procédé permet de déterminer si le routeur de sortie sélectionné est le routeur source lui-même ou un routeur distant. Si le routeur de sortie sélectionné est le routeur source (branche Oui), le procédé reboucle au début du cycle. Tout nouveau flux vers l’internet (initié par le routeur source ou l’un des terminaux connectés à ses interfaces ingress) est alors acheminé via l’une des interfaces locales (egress) dudit routeur source. Si le routeur de sortie sélectionné est un routeur distant (branche Non), le procédé permet dans une étape suivante 510 de procéder à l’établissement d’un tunnel bidirectionnel entre le routeur source et le routeur de sortie sélectionné. Puis le procédé reboucle au début du cycle. Dans le cas où le routeur source a déjà un tunnel établi vers le routeur de sortie distant sélectionné, le procédé passe l’étape 510 pour ne pas rétablir inutilement un nouveau tunnel vers ce même routeur de sortie, et reboucle au début du cycle. Ainsi, les prochains flux qui arrivent sur le routeur source sont acheminés vers le routeur sélectionné (local ou distant). A l’arrivée d’un flux généré par un client ou par le routeur lui-même, le routeur établit une règle de routage fixant l’acheminement de ce flux au point de sortie sélectionné, i.e., vers une interface interne d’accès direct à l’Internet sur le routeur source ou vers une interface assignée au tunnel bidirectionnel établi vers un routeur distant. Ce flux restera fixé à ce point de sortie pendant toute la vie du point de sortie (tunnel ou interface interne vers l’Internet). La description a été faite sur un mode de réalisation où la sélection du routeur de sortie est un procédé décorrélé de l’arrivée d’un nouveau flux de données. Dans une variante de réalisation, le procédé de sélection du routeur de sortie peut être initié à l’arrivée de chaque nouveau flux. Dans une autre variante de réalisation, les informations de performance de chacune des interfaces de connectivité vers l’Internet d’un routeur source, ne sont pas agrégées, et elles sont annoncées directement aux autres routeurs du réseau. Cette variante permet à chaque routeur d’avoir plus d’informations sur les interfaces de connectivité vers l’Internet de tous les autres routeurs de sortie et ainsi permettre de prendre une décision de sélection plus affinée, par exemple sur la base d’un opérateur cellulaire, sur la base d’une capacité de cryptage, sur la base d’un type de technologie réseau à privilégier. Ainsi dans cette variante, si un flux nécessitant une connectivité 4G doit être acheminé, il est possible de faire un choix de point de sortie sur cette base. L’invention décrite permet d’accroitre significativement la bande passante disponible pour des communications vers l’Internet. Elle peut s’implémenter à partir d’éléments matériel et/ou logiciel. Elle peut être disponible en tant que produit programme d’ordinateur exécuté par un processeur qui comprend des instructions de code pour exécuter les étapes du procédé dans les différents modes de réalisation. Un procédé mis en œuvre par ordinateur pour router des flux de données au sein d’un réseau déployant une pluralité de routeurs, dont au moins un routeur a un accès à un réseau IP, le procédé opéré de manière cyclique comprend les étapes suivantes : - analyser les performances de connectivité d’un routeur source au réseau IP ; - générer un score correspondant au coût d’utilisation dudit routeur source pour transmettre un flux de données au réseau IP, le score étant fonction des performances de connectivité du routeur source au réseau IP; - déterminer parmi la pluralité de routeurs, le routeur présentant le meilleur score ; - déterminer si le routeur présentant le meilleur score est ledit routeur source ou un routeur distant ; et - si le routeur présentant le meilleur score est ledit routeur source, transmettre directement au réseau IP tout prochain flux de données arrivant sur ledit routeur source ; ou - si le routeur présentant le meilleur score est un routeur distant, établir un tunnel bidirectionnel entre ledit routeur source et le routeur distant, et acheminer tout prochain flux de données arrivant sur ledit routeur source vers le routeur distant pour transmission au réseau IP. Le procédé selon la revendication 1 dans lequel l’étape d’analyser les performances de connectivité d’un routeur source au réseau IP comprend des étapes consistant à déterminer les connexions au réseau IP du routeur source ; à estimer la performance de chacune de ces connexions ; et à agréger ces estimations pour générer une information de performance globale de la connectivité du routeur source au réseau IP. Le procédé selon la revendication 1 ou 2 dans lequel l’étape de générer un score correspondant au coût d’utilisation dudit routeur source pour transmettre un flux de données au réseau IP comprend des étapes consistant à : - calculer une valeur de capacité théorique en fonction de la technologie utilisée par chacune des interfaces de connexion au réseau IP du routeur source ; - calculer une valeur de capacité restante pour chaque interface en fonction de son utilisation courante ; et - retrancher l’ensemble des valeurs de capacité restante à une valeur maximale prédéterminée, cette valeur maximale signifiant que le routeur source n’a pas de capacité d’acheminement direct de flux vers le réseau IP, pour obtenir une valeur agrégée, ladite valeur agrégée représentant le coût interne du routeur pour transmettre un flux de données au réseau IP. Le procédé selon l’une quelconque des revendications 1 à 3 dans lequel l’étape de déterminer parmi la pluralité de routeurs, le routeur présentant le meilleur score, consiste à déterminer le routeur présentant le meilleur score parmi les routeurs ayant un score inférieur à une valeur seuil prédéfinie. Le procédé selon l’une quelconque des revendications 1 à 4 dans lequel l’étape de transmettre directement au réseau IP tout prochain flux de données arrivant sur ledit routeur source comprend une étape pour établir une règle de routage fixant l’acheminement d’un flux de données arrivant vers une interface interne dudit routeur ayant une connexion directe au réseau IP. Le procédé selon l’une quelconque des revendications 1 à 5 dans lequel l’étape d’établir un tunnel bidirectionnel entre ledit routeur source et le routeur distant consiste à demander au routeur distant sélectionné d’établir son côté du tunnel vers le routeur source, et une fois la requête acceptée par le routeur distant, d’établir son côté du tunnel par le routeur source. Le procédé selon l’une quelconque des revendications 1 à 6 dans lequel l’étape d’acheminer tout prochain flux de données arrivant sur ledit routeur source vers le routeur distant sélectionné, comprend une étape pour établir une règle de routage fixant l’acheminement d’un flux de données arrivant vers une interface interne dudit routeur assignée au tunnel bidirectionnel. Le procédé selon l’une quelconque des revendications 5 à 7 dans lequel la règle de routage consiste à attribuer un flux de données arrivant à une interface qui est sous-utilisée ou à une interface qui offre plus de capacité. Le procédé selon l’une quelconque des revendications 1 à 8 dans lequel l’étape de générer un score correspondant au coût d’utilisation dudit routeur source pour transmettre un flux de données au réseau IP comprend de plus une étape consistant à annoncer le score sur une interface virtuelle du routeur source. Un produit programme d’ordinateur, ledit programme d’ordinateur comprenant des instructions de code non transitoire permettant d’effectuer les étapes du procédé pour router des flux de données au sein d’un réseau déployant une pluralité de routeurs, dont au moins un routeur a un accès à un réseau IP, selon l’une quelconque des revendications 1 à 9, lorsque ledit programme est exécuté sur un ordinateur. Un dispositif pour router des flux de données au sein d’un réseau déployant une pluralité de routeurs, dont au moins un routeur a un accès à un réseau IP, le dispositif comprenant des moyens pour mettre en œuvre les étapes du procédé selon l’une quelconque des revendications 1 à 9.