Brevet FR3069400A1 — publié le 20190125

Adressage pour réseau de télécommunications utilisant la multidiffusion Domaine technique de l'invention L'invention concerne les réseaux de télécommunication permettant le routage automatique de commande ou d'événements entre des micro-services informatiques (producteur/consommateur) sans que les producteurs n'aient besoin de connaître explicitement les consommateurs. L'invention concerne plus particulièrement les réseaux du type ci-dessus qui sont soumis à de grandes contraintes de disponibilité : nécessité de ne pas avoir à modifier la configuration ou à redémarrer le système pour supporter de nouvelles commandes/évènements. Art antérieur Les architectures en micro-services permettent : - Le déploiement immédiat d'une fonctionnalité unique - Différents niveaux d'élasticité adaptés à l'usage de chaque sous-ensemble de fonctionnalités - L'isolation d'un service défaillant avec un impact limité et maîtrisé sur le reste des services - L'utilisation de technologies récentes et variées pour répondre au mieux à l'évolution technologique. Néanmoins, l'un des challenges de ce type d'architecture est de faire communiquer ces micro-services. Pour ce faire, aujourd'hui, deux principales approches sont utilisées : - La communication synchrone point à point entre les micro-services, qui pose généralement les problèmes suivants : 0 Blocage du fil d'exécution du client O Pannes en cascade en cas d'appels imbriqués O Couplage temporel entre les services - La communication asynchrone point à point en utilisant des systèmes de file de messages, qui pose, en ce qui la concerne les autres problèmes suivants : 0 Augmentations de la latence des échanges due au fonctionnement en file de messages O Diminution de la résilience des communications, induite par un point de passage central. Il serait donc souhaitable d'échanger des « commandes » ou événements portées par des communications asynchrones pour permettre : - Un découplage temporel entre les micro-services 2 - Une forte résilience à la perte d'une partie du système - La mise en place de flux de données complexes faisant interagir plusieurs sources d'information. Toutefois, aucune des solutions de l'art antérieur ne permet d'obtenir le résultat 5 précédent. Cela est dû notamment pour les solutions envisageables, à la nécessité pratique, d'utiliser des réseaux IP (« internet protocol ») utilisant la multidiffusion. Les réseaux utilisant la multidiffusion ne sont pas auto-configurables, il n'existe pas d'outils permettant d'attribuer automatiquement un IP multidiffusion unique à une commande. 10 Aujourd'hui ce sont des routeurs applicatifs qui permettent à une commande d'être dirigée vers un groupe de multidiffusion particulier. Par conséquent, lorsqu'une nouvelle commande doit être supportée par un routeur, une intervention sur la configuration est nécessaire (statique ou dynamique) pouvant entraîner un redémarrage et donc une interruption de service. 15 II existe donc un problème difficile concernant l'attribution d'une adresse IP de multidiffusion unique dans l'art antérieur, pour les machines d'un réseau de télécommunications IP, par exemple utilisant UDP au travers d'un bus de communication asynchrone pour l'envoi de commandes ou événements. Bien que le système de multidiffusion (« multicast ») soit plus efficace donc plus 20 économique en énergie que la monodiffusion (« unicast »), il n'est ainsi pas utilisé, en pratique, pour les architectures à base de micro-services. Exposé de l'invention Dans ce contexte, l'invention concerne un procédé d'attribution d'une adresse IP de multidiffusion à partir d'un nom d'espace de longueur en bits variable et d'un nom de 25 commande de longueur en bits variable, dans un réseau de télécommunications IP utilisant UDP, comprenant les étapes suivantes : - Hacher sur une première longueur fixe en bits le nom d'espace pour obtenir un nom d'espace haché - Hacher sur une seconde longueur fixe en bits le nom de commande pour obtenir un 30 nom de commande haché - Former un identificateur de groupe haché d'une troisième longueur fixe en bits, par juxtaposition des bits du nom d'espace haché et du nom de commande haché, la troisième longueur fixe en bits de l'identificateur de groupe haché étant la somme de la première longueur fixe en bits et de la seconde longueur fixe en bits, 35 - Former une adresse par juxtaposition des bits d'un préfixe de multidiffusion et de l'identificateur de groupe haché. Dans des variantes du procédé : - l'adresse IP formée est une adresse IP version 4 et la troisième longueur fixe en bits de l'identificateur de groupe haché est inférieure ou égale à 28 bits. 5 - l'adresse IP formée est une adresse IP version 6 et la troisième longueur fixe en bits de l'identificateur de groupe haché est inférieure ou égale à 112 bits. - la première longueur en bits du nom d'espace haché est de 32 bits - la première longueur en bits du nom de commande haché est de 32 bits - le nom d'espace est haché par un algorithme choisi dans l'ensemble des algorithmes 10 suivants : Cyclic redundancy checking, Merkle-Damgard, Miyaguchi-Preneel, Skein, RadioGatùn and Keccak . - le nom de commande est haché par un algorithme choisi dans l'ensemble des algorithmes suivants : Cyclic redundancy checking, Merkle-Damgard, Miyaguchi-Preneel, Skein, RadioGatùn and Keccak . 15 - le nom d'espace est un nom d'hôte URI (identifiant uniforme de ressource ou « Uniform Resource Identifier » en anglais) et le nom de commande est une méthode supportée par le protocole HTTP (protocole de transfert hypertexte ou « HyperText Transfer Protocol » en anglais). L'invention concerne aussi une utilisation du procédé ci-dessus pour l'attribution d'une 20 adresse IP de multidiffusion à un paquet IP dans une passerelle entre un réseau de télécommunications IP utilisant la monodiffusion et un réseau de télécommunications IP utilisant la multidiffusion. Dans une variante, l'utilisation a lieu pour l'émission du paquet IP vers le réseau de télécommunications IP utilisant la multidiffusion. 25 Liste des figures L'invention sera décrite en lien avec la liste des figures ci-dessous et en référence avec les numéros entre parenthèses représentés sur ces figures. La figure 1 représente la structure d'un ensemble de micro-services émettant des 30 messages(DATA) vers un réseau de télécommunications via un routeur ou passerelle , nommé «routeur applicatif ». Un routeur applicatif, selon la présente demande, transmet un message au réseau de télécommunications, à une adresse de multidiffusion calculée par 3 4 hachage, au moyen d'un algorithme normalisé, à une longueur en bits fixe, d'une partie normalisée du message, située à une position en bits fixe dans le message et constituée de façon non limitative dans les exemples choisis, par un nom d'espace et un nom de commande, transmis dans chaque message. 5 Le terme normalisé signifie, ci-dessus, que l'ensemble des machines du réseau de télécommunications utilise le même algorithme que le routeur applicatif et applique cet algorithme à la même partie des messages acheminés sur le réseau, pour le calcul de l'adresse de multidiffusion associée aux messages sur le réseau. La figure 2 explicite la structure d'un message multi-diffusé mono-trame, c'est-à-dire qui 10 est transmis en une seule fois par le protocole de multidiffusion, qui est le type de message auquel s'applique l'invention, le message comprenant un nom d'espace, suivi d'une commande et de données. La figure 3 représente un schéma de formation de l'adresse IP d'un message mono-trame selon l'invention dans lequel la fonction de hachage « H » est appliquée à un nom d'espace 15 et à une commande puis les résultats hachés sont ajoutés, au sens de mis bout à bout ou juxtaposés, par une opération symbolisée par un « + » pour obtenir un groupe qui est ensuite ajouté à un préfixe pour obtenir une adresse IPv6. L'IP est donc formée dans cet ordre du préfixe, suivi du nom d'espace haché et du nom de commande haché. Le hachage permettant de diminuer la probabilité de collision pour un nom de domaine ou d'espace et 20 un nom de commande nouveau arbitraire, il est possible de définir des adresses de multidiffusion d'un paquet IP à partir d'information données dans le paquet IP lui-même ou associée au paquet par un protocole de plus haut niveau. Lorsque ce protocole est http ou HTTP (« Hypertext transfer protocol ») au moins 1.1, un couple nom d'espace plus nom de commande, particulièrement simple est de prendre la valeur hôte (« host ») de l'en-tête 25 http comme nom d'espace et le nom de la méthode http extraite de la ligne de commande http comme nom de commande. L'invention permet alors à une passerelle entre un réseau utilisant le protocole HTTP en monodiffusion (TCP/IP) et un réseau utilisant la multidiffusion UDP de déterminer avec un temps de latence minimum, une adresse de multidiffusion UDP d'un paquet IP mono-trame, à partir d'information transmise avec le paquet IP à la 30 passerelle. Il est à noter que de cette manière la passerelle peut prendre en charge de nouvelle commande sans modification de sa configuration ni redémarrage. La figure 4 représente un exemple de la composition d'une adresse IPv6 résultant des opérations de la figure 1 dans lequel le préfixe est un préfixe de multidiffusion f005 ::/8 sur 64 bits, le « Groupe » est à sa suite et composé du nom d'espace haché sur 32 bits suivi 35 du nom de commande haché sur 32 bits, résultant en une adresse IP sur 128 bits. Description détaillée d'un mode de réalisation L'invention est décrite dans un premier mode de réalisation pour des micro-services 5 informatiques qui sont des programmes d'ordinateur, dédiés à une tâche particulière et réalisent sur un ordinateur muni d'une carte réseau connecté à un réseau de télécommunication, des fonctions permettant de transformer l'ordinateur exécutant le micro-service, notamment en émetteur de message ou en récepteur de message ou en 5 réémetteur de message ou en passerelle(« Gateway »). Ce type d'architecture est notamment utile dans le domaine de l'informatique de service en nuage (Cloud computing») pour acheminer des commandes ou messages ou événements pour des fournisseurs du service, chaque fournisseur étant identifié par un nom d'espace ou un nom de domaine sur le réseau de télécommunication, au niveau d'une 10 passerelle vers le service. L'invention ne se limite toutefois pas à ce mode de réalisation, des matériels dédiés pouvant être construits pour l'émission, la réception ou la retransmission ou réémission de messages sur le réseau de télécommunications envisagé. Les termes d'émetteur, récepteur ou réémetteur (retransmetteur) ou passerelle seront 15 ainsi considérés comme des synonymes sur le réseau de micro-service d'émission, de réception ou de réémission (retransmission) ou d'interface vers le réseau, au sens de la présente demande, pour laquelle le terme de procédé sera aussi synonyme de méthode. La description ci-dessous fait référence aux figures 1, 2 ,3 et 4 et pour les numéros entre parenthèses, chaque numéro commençant par le numéro de figure où apparaît l'élément. 20 Architecture Globale Dans le cas de l'acheminement d'une commande DATA (106) avec un contenu normalisé (201) à destination d'un type micro-service MS-A (102) ou MS-B (104), l'architecture comporte les éléments suivants : un routeur applicatif (101) capable de rediriger la commande (106) et des instances de micro-service MS-A.1/2/.../N (103) et MS-B.1/2/.../N 25 (105) en mesure de traiter une commande. Le routeur applicatif (101) communique avec les micro-services (102 et 104) au travers d'un canal UDP (111) en envoyant des commandes DATA mono-trame (107 et 108) vers des groupe de multidiffusion ou groupe de communication GRP1 (109) et GRP2 (110) du réseau de télécommunication (100) constitué par l'ensemble des élément ci-dessus. 30 Chaque instance de micro-service récepteur du type A s'abonne au (se met en écoute du) groupe de communication GRP1 (109), associé à l'adresse de multidiffusion correspondant à la commande qu'ils doivent traiter. Chaque instance de micro-service récepteur du type B s'abonne au (se met en écoute du) groupe de communication GRP2 (110), associé à l'adresse de multidiffusion correspondant 35 à la commande qu'ils doivent traiter. 6 Le message source (106) qui transit vers le routeur applicatif (101), de même que Les messages (107 et 108), mono-trames, qui transitent vers les groupes GRP1(109) et GRP2 (110) ont un contenu normalisé (211) composé de deux parties principales : le nom d'espace ciblé par la commande (202) 5 le nom de la commande du message (203) et les données portées par le message (204). Calcul des adresses réseau : Pour que le routeur applicatif soit, par exemple, en mesure de rediriger un message (106) à 10 destination du groupe de communication GRP2 (110), il doit en calculer l'adresse IPv6 (305) et son contenu (401). Il en est de même pour les instances de micro-services de type B (105) qui doivent identifier l'adresse du groupe de communication GRP2 (110) où écouter les commandes qui y transitent. Les adresses IP version 6 ou IPv6 (305) et leur contenu (401) sont composés de trois sous- 15 ensembles : 1. Le préfixe ou donnée « préfix » de multidiffusion (304) et son contenu (402) qui occupe les 64 premiers bits de l'adresse. 2. Le nom de l'espace de travail (301) qui est encodé sur une longueur fixe de 32 bits au travers d'une fonction de hachage (306) pour obtenir la première partie hachée 20 (403) de l'identifiant de groupe (405) 3. Enfin le nom de commande (302) qui est encodé sur 32 bits au travers d'une fonction de hachage (306), par exemple la même fonction de hachage sur 32 bits que celle utilisée pour le nom d'espace de travail, pour obtenir la deuxième partie hachée (404) de l'identifiant du groupe (405). 25 Selon le mode de réalisation, la fonction de hachage (306) peut être un algorithme connu dans l'art antérieur et choisi parmi CRC-32, fletcher-32, Adler-32, ou sum-32. Le même algorithme de hachage sera uniformément appliqué dans toutes les machines du 30 réseau. La même longueur de hachage sera appliquée uniformément dans toutes les machines ou passerelles du réseau, à la fois pour l'espace de travail haché pouvant jouer le rôle de sous-réseau afin d'alléger le routage et à la fois pour la commande hachée, pouvant jouer le rôle 35 d'adresse de multidiffusion dans le sous-réseau. L'ordre préfixe puis espace de travail haché puis commande hachée sera aussi préférentiellement utilisé pour la constitution des adresses IP, ce mode constituant le 7 meilleur mode de réalisation de l'invention. Le choix de l'algorithme sera fait pour éviter au mieux les collisions, c'est-à-dire le conflit d'adresse IP, en fonction du nombre de bits disponible pour le hachage de longueur fixe, 5 dans ce but, une IPv6 qui permet 112 bits pour l'identificateur de groupe sera préférée à une adresse IP version 4 ou IPv4 et donc des réseaux IPv6 à des réseaux IPv4. L'invention peut toutefois être mise en oeuvre avec toute longueur d'adresse IP, la plus grande longueur de groupe d'identification étant souhaitable pour l'invention. 10 L'invention est particulièrement adaptée à l'émission, par une passerelle, de paquets IP vers une adresse de multidiffusion d'un réseau UDP à partir de paquets IP reçus par la passerelle sur une adresse de monodiffusion. Tout particulièrement lorsque le protocole au niveau de la couche application, utilisé en monodiffusion, pour la transmission des messages, sous forme de paquets mono-trame est http. Dans ce cas, l'utilisation de 15 l'invention permet de déterminer en temps réel, c'est-à-dire avec une latence minimale, à partir de l'en-tête http, le nom de l'espace de travail, par exemple à partir du champ « host » de l'en-tête http et le nom de commande à partir du début de la première ligne de l'en-tête http par la commande http. La détermination de l'adresse de multidiffusion d'un paquet est alors particulièrement rapide et transparente et universelle. 20 Le procédé de l'invention, son utilisation et les produits qui mettent en oeuvre son procédé comme une passerelle inter-réseaux, sont susceptibles d'application industrielle dans la communication interne d'une application distribuée sur plusieurs machines physiques ou virtuelles. Dans tous les modes de réalisation de la présente demande, la longueur en bits du nom 25 d'espace et la longueur en bits du nom de commande pourront être différentes sans sortir de l'enseignement de la présente demande. Dans tous les modes de réalisation de la présente demande, la longueur de hachage en bits du nom d'espace et la longueur en bits du nom de commande pourra être fixée uniquement en considération du type de version du réseau IP et de la longueur en bits de 30 son identificateur de groupe( « group ID »), tout spécialement à des valeurs différentes de cet identificateur à 32 bits pour IP version 4 (IPv4) ou 112 bits pour IP version 6(IPv6), sans sortir de l'enseignement de la présente invention. Dans tous les modes de réalisation de de la présente demande, la première longueur hachée du nom d'espace ajoutée à la seconde longueur hachée du nom de commande sera 35 inférieure à la longueur d'identificateur de groupe de la version de réseau utilisé et ces première et seconde longueurs pourront être inégales sans sortir de l'enseignement de la présente invention. 8 Au sens de la présente demande, un algorithme de hachage est un algorithme permettant d'obtenir de façon déterministe, i.e. reproductible, une séquence de bits de longueur fixe (« hash » ou hachage) à partir d'une séquence de bits de longueur arbitrairement grande 5 ou variable, finie en pratique. Pour la présente demande, tous les algorithmes de hachage de l'art antérieur sont utilisables, il sera donc possible d'utiliser des fonctions de hachage parmi les familles d'algorithmes suivantes : Cyclic redundancy checking (CRC32, CRC64), Merkle-Damgàrd (MD5), Miyaguchi-Preneel (Whirlpool), Skein and RadioGatun (SHA-3 candidats) and Keccak (SHA-3, lauréat) ou encore tout autre méthode de hachage de l'art 10 antérieur, pour réaliser les modes ci-dessus. De préférence, on choisira toutefois pour réaliser les modes de la présente demande des algorithmes de hachage minimisant le nombre de collisions qu'ils produisent pour des entrées données en termes de noms d'espaces de travail et de commandes, c'est-à-dire le nombre de cas où ils produisent en sortie deux séquences de longueur fixe qui sont 15 identiques, à partir de deux séquences de longueur arbitraire distinctes, en entrée. Il est aussi à noter que les algorithmes de hachage sont à sens unique et ne permettent pas ou pas facilement de remonter aux données avant hachage. Il n'est donc pas naturel d'utiliser de tels algorithmes, dans lesquels la signification de l'espace de travail et de la commande est définitivement perdue, pour un adressage, alors que justement l'homme du 20 métier serait tenté de conserver un moyen mnémotechnique ou une relation pour relier l'information en entrée à l'adresse de multidiffusion en sortie, dans un schéma d'adressage. Un critère de présence d'un des modes de réalisation de la présente demande et notamment de sa mise en oeuvre dans un produit comme un routeur ou « gateway » pourra s'inspirer des remarques ci-dessus. Ainsi, si une variation d'un seul bit sur le nom de 25 l'espace de travail ou de commande, produit deux adresses IP non consécutives de destination des messages transmis par le routeur, la présence de l'invention sera probable. Il en sera de même si un message avec un nom d'espace de travail et de commande issu d'un générateur aléatoire est retransmis par le routeur, alors qu'une telle combinaison de nom d'espace et de commande n'ayant pu être anticipée par configuration, serait bloquée 30 avec une probabilité très élevée par un routeur de l'art antérieur. Il est entendu que la présente demande concerne aussi un routeur « applicatif » ou dispositif ou produit spécialement pour la mise en oeuvre du procédé décrit dans les modes de réalisation ci-dessus, ainsi que l'utilisation dans un tel routeur dudit procédé. Il est entendu que dans la présente demande, les termes « le protocole HTTP » désignent 35 toute version ou variante du protocole de communication HTTP, et notamment la variante sécurisée dite « HTTPS » du protocole HTTP. 9