Brevet FR3039341A1 — publié le 20170127

La présente invention concerne un procédé de détermination, par un routeur, d'une route entre lui et un autre routeur d'un réseau de communication par courants porteurs en ligne ainsi qu'un tel routeur pourvu de moyens pour déterminer une route entre lui et un autre routeur dudit réseau. La présente invention trouve application dans un réseau de communication maillé dont chaque noeud est constitué d'un routeur pouvant transmettre des données à au moins un autre routeur en utilisant pour ce faire une route. Dans le cas de la présente invention, un tel réseau de communication utilise, en tant que vecteurs physiques, des lignes d'un réseau de distribution électrique en superposant aux courants de distribution électrique des courants porteurs de données à transmettre d'un routeur à un autre. La technologie utilisée est dite CPL (Courants Porteurs en Ligne). Un tel réseau de communication maillé est par exemple décrit dans le standard dit G3-PLC Alliance, notamment celui d'avril 2015. L'application principale est par exemple la transmission de données entre un compteur électrique donné lié à un routeur donné et un concentrateur de données lié à un autre routeur du réseau. Cette transmission de données est assurée par un certain nombre de routeurs du réseau de communication qui forment entre eux une route entre le fournisseur des données (par exemple, un compteur électrique) et le collecteur desdites données (par exemple, un concentrateur de données). La transmission en chaque segment de route entre deux routeurs voisins peut être fortement perturbée, voire interrompue, si bien que, dans ce type de réseau de communication par courants porteurs en ligne, il est nécessaire de prévoir un protocole de routage efficace permettant de déterminer dès que le besoin s'en fait ressentir une nouvelle route entre deux routeurs communiquant entre eux. Le standard G3-PLC Alliance mentionné ci-dessus préconise l'utilisation d'un protocole de routage qui est appelé LOADng (Lightweight On-demand Ad hoc Distance-vector Routing Protocol - Next Generation). On rappelle le principe d'un tel protocole de routage, en relation avec la Fig. 1. Cette Fig. 1 montre un réseau de communication maillé comportant d'un ensemble de noeuds constitués de routeurs R1 à RN. Par exemple, certains routeurs sont liés à des compteurs électriques alors que les autres routeurs sont liés à des concentrateurs de données. L'objet de ce réseau de communication est l'échange de données entre compteurs électriques et concentrateurs de données. 3039341 2 Lorsqu'un routeur, dit routeur initiateur, tel que le routeur R1 de la Fig. 1, a besoin d'une route vers un routeur destinataire, tel que le routeur RN, parce qu'il a à lui délivrer un paquet de données et que, pour lui, cette route n'existe pas déjà, il diffuse (broadcast en anglais) un message de requête de route RREQ codant le routeur 5 destinataire RN. Ce dernier reçoit donc à des temps différents plusieurs messages de requête de route RREQ ayant respectivement transités par des routes différentes, certaines plus longues que d'autres (les nombres de sauts (hop en anglais) d'un routeur à un autre sont différents) et certaines de meilleure qualité que les autres. Par exemple, à la Fig. 1, il reçoit un message RREQ qui a transité par le routeur R2, un autre par les 10 routeurs R3 et Ri, un autre par les routeurs R3 et Rj et un autre par les routeurs R4 et Rj. Supposons, à titre d'exemple illustratif, qu'à un instant tl, il n'ait reçu que le message RREQ ayant transité par le routeur R2 ainsi que celui ayant transité par les routeurs R3 et Ri. Compte tenu d'une métrique prédéterminée, par exemple le nombre 15 de sauts (hop) de chacune des routes parcourues par ces messages, il peut décider de choisir la route transitant par les routeurs R3 et Ri. Il émet alors en point à point (unicast en anglais) à destination du routeur initiateur R1, un message de réponse RREP1. La route suivie par ce message RREP1 est en trait fort à la Fig. 1. Supposons encore qu'à un temps t2, il ait reçu l'ensemble des messages de 20 requête RREQ représente à la Fig.1 et, notamment, celui qui a transité par les routeurs R3 et Rj. Il peut considérer que, toujours compte tenu de la métrique à appliquer, cette dernière route est encore meilleure que la route qu'il avait précédemment choisie (celle transitant par les routeurs R3 et Ri) si bien qu'il choisit maintenant la route transitant par les routeurs R3 et Rj. Il émet alors en point à point (unicast en anglais) à 25 destination du routeur initiateur R1, un message de réponse RREP2. La route suivie par ce message RREP2 est également en trait fort à la Fig. 1. L'émission d'un nouveau message de réponse RREP2 peut également être consécutif à la réception d'un nouveau message de requête RREQ diffusé par le même routeur initiateur R1 alors qu'il n'avait pas encore reçu de réponse à son premier message de requête RREQ. 30 Dans cet exemple, le routeur initiateur R1 reçoit à un temps t'l le message de réponse RREP1 et établit la route suivie par ce message RREP1 comme étant la route vers le routeur destinataire RN. Au t'2, il reçoit le message de réponse RREP2 et établit alors la route suivie par ce message RREP2 comme étant la route vers le routeur destinataire RN. 3039341 3 Néanmoins, il peut arriver que le routeur initiateur R1 reçoive le message de réponse RREP2 avant le message de réponse RREP1. Ainsi, au temps t"1, il reçoit le message de réponse RREP2 et établit la route suivie par ce message RREP2 comme étant la route vers le routeur destinataire RN. Au temps t"2, il reçoit le message de 5 réponse RREP1 mais s'aperçoit que ce message RREP1 a été émis à un temps tl antérieur au temps t2 d'émission du message RREP2. Il favorise le message de réponse qui a été émis le plus récemment et ne modifie donc pas la route qu'il a établie avec le routeur destinataire RN. Pour que le routeur initiateur R1 puisse contrôler que tel message de réponse est 10 plus récent que celui qu'il a pris en compte pour établir la route vers le routeur destinataire RN, le routeur destinataire RN dispose d'un compteur qu'il incrémente à chaque message de réponse qu'il émet, quel qu'en soit d'ailleurs son destinataire. Au moment de l'émission d'un message de réponse, il inclut la valeur du compte prise à ce moment dans le message de réponse en tant que numéro de séquence. Dans l'exemple 15 donné ci-dessus, le message de réponse RREP1 porte un numéro de séquence Si correspondant à la valeur du compte du routeur destinataire RN au moment tl d'émission dudit message de réponse RREP1. De même, le message de réponse RREP2 porte un numéro de séquence S2 correspondant à la valeur du compte du routeur destinataire RN au moment t2 d'émission dudit message de réponse RREP2. 20 Par comparaison des numéros de séquence Si et S2, le routeur initiateur R1 peut déterminer quel message de réponse, RREP1 ou RREP2, est le plus récent. La valeur du compte prise par le compteur du routeur destinataire est un chiffre binaire à n bits, par exemple 16 bits. Il arrive assez souvent que lors d'une incrémentation, cette valeur passe de la valeur maximale 211 à 0 si bien, sans 25 mécanisme spécial, l'ordre des messages de réponse est perturbé. Dans l'exemple donné ci-dessus, la valeur Si pourrait être, par exemple, de 52122 et la valeur S2 pourrait être 10 car la valeur de compte est passée par 0 entre temps. Deux mécanismes sont généralement prévus pour résoudre le problème soulevé ci-dessus. L'un est une réinitialisation des routes déjà établies et l'autre est un 30 mécanisme dit "rollover", recommandé par le standard G3 PLC, qui établit la règle suivante pour la comparaison effectuée par le routeur initiateur Ri. Un numéro de séquence Si est plus grand qu'un autre numéro de séquence S2 si : - S2 REVENDICATIONS1) Procédé de détermination, par un routeur, dit routeur initiateur, d'une route entre lui et un routeur destinataire d'un réseau de communication par courants porteurs en ligne, ledit procédé comportant les étapes suivantes : - une étape El de diffusion dans ledit réseau par ledit routeur initiateur (R1) d'au moins un message de requête de route (RREQ), ledit routeur destinataire (RI) répondant audit ou à chaque message de requête de route (RREQ) par la transmission point à point au routeur initiateur (R1) d'au moins un message de réponse (RREP) 10 identifiant une route entre ledit routeur initiateur (R1) et ledit routeur destinataire (RN), et - une étape E2 de réception d'un message de réponse, dite message de réponse courante (RREPc), caractérisé en ce qu'il comporte en outre 15 - une étape E3 d'attache d'un délai (TO) à un message de réponse (RREPc) suite à un message de requête (RREQ) pour une route vers ledit routeur destinataire (Rn) mise en oeuvre à la réception dudit message de réponse (RREPc), - une étape E4 de vérification qu'à la réception d'un message de réponse courante (RREPc), le délai (TO) attaché à un message de réponse (RREP-) suite à un 20 message de requête (RREQ) pour une route vers ledit routeur destinataire antérieurement reçu n'est pas expiré, - une étape E5 de retenue, en tant que route entre ledit routeur initiateur et ledit routeur destinataire, de la route identifiée par le message de réponse (RREPc ou RREP-) le plus récemment transmis par ledit routeur destinataire (RN) si le délai 25 attaché à ladite réponse précédemment reçue n'est pas expiré, et - une étape E6 de retenue de la route identifiée par le message de réponse courante (RREPc) même si un message de réponse à une requête pour une route vers ledit routeur destinataire a été précédemment reçu dès lors que le délai (TO) attaché à ladite réponse précédemment reçue est expiré. 30 2) Procédé de détermination selon la revendication 1, caractérisé en ce que la durée du délai TO est sensiblement de même grandeur que le temps maximum estimé mis par un message de requête RREQ pour transiter, dans ledit réseau de communication, d'un routeur à un autre routeur dudit réseau. 3039341 13 3) Procédé de détermination selon la revendication 1 ou 2, caractérisé en ce que l'étape E5 de retenue du message de réponse le plus récemment transmis comporte une étape E51 de vérification que le message de réponse courante (RREPc) a été transmis par le routeur destinataire RN postérieurement au message de réponse antérieurement reçue (RREP-), une étape E52 de retenue en tant que route entre ledit routeur initiateur RI et ledit routeur destinataire RN, de la route identifiée par le message de réponse courante (RREPc), ladite étape E52 étant mise en oeuvre si l'étape de vérification E51 a constaté que le message de réponse courante (RREP) a été transmis par le routeur destinataire RN postérieurement au message de réponse antérieurement reçu (RREP-) et une étape E53 de retenue de la route identifiée par le message de réponse antérieurement reçu (RREP-) qui est mise en oeuvre dans le cas contraire. 4) Procédé de détermination selon une des revendications précédentes, chaque route entre un routeur initiateur et un routeur destinataire étant identifiée par un numéro.de séquence attribué séquentiellement par ledit routeur destinataire et inclus dans chaque message de réponse de route, caractérisé en ce que l'étape de retenue de la route la plus récente consiste à retenir la route identifiée par le message de réponse incluant le numéro de séquence le plus grand. 5) Routeur d'un réseau de communication par courants porteurs en ligne, ledit routeur comportant une unité de détermination d'une route entre lui et un routeur destinataire, ladite unité comportant: - des moyens de diffusion (10) pour diffuser dans ledit réseau d'au moins un 25 message de requête de route (RREQ), et - des moyens de réception (20) pour recevoir un message de réponse (RREP) identifiant une route entre ledit routeur et ledit routeur destinataire, caractérisé en ce qu'il comporte en outre - des moyens de temps (30) pour attacher un délai (TO) à un message de réponse 30 suite à un message de requête (RREQ) pour une route vers ledit routeur destinataire reçu par lesdits moyens de réception (20), et - des moyens de vérification (40) pour vérifier qu'a la réception d'un message de réponse (RREPc) par lesdits moyens de réception (20), le délai (TO) attaché par lesdits 3039341 14 moyens de temps (30) à un message de réponse suite à une requête pour une route vers ledit routeur destinataire antérieurement reçue n'est pas expiré, - des moyens de retenue (50) pour retenir en tant que route entre ledit routeur initiateur et ledit routeur destinataire, la route identifiée par le message de réponse le 5 plus récemment transmis par ledit routeur destinataire si le délai (TO) attaché audit message de réponse précédemment reçu n'est pas expiré, et - des moyens de retenue (60) pour retenir la route identifiée par le message de réponse courante (RREPc) même si un message de réponse suite à un message de requête pour une route vers ledit routeur destinataire a été précédemment reçue dès 10 lors que le délai attaché à ladite réponse précédemment reçue est expiré. 6) Routeur selon la revendication 5, caractérisé en ce que la durée du délai 'TO est sensiblement de même grandeur que le temps maximum estimé mis par un message de requête RREQ pour transiter, dans ledit réseau de communication, d'un 15 routeur à un autre routeur dudit réseau. 7) Routeur selon une des revendications précédentes 5 ou 6, caractérisé en ce que lesdits moyens de retenue (50) comportent des moyens de vérification (51) pour vérifier que le message de réponse courante (RREPc) a été transmis par le routeur 20 destinataire (RN) postérieurement au message de réponse antérieurement reçu (RREP-), lesdits moyens de retenue (50) incluant des moyens de retenue (51) pour retenir en tant que route entre ledit routeur initiateur RI et ledit routeur destinataire RN, la route identifiée par le message de réponse courante (RREPc) si lesdits moyens de vérification (51) ont constaté que le message de réponse courante (RREPc) a été transmis par le routeur destinataire RN postérieurement au message de réponse antérieurement reçu (RREP-), et des moyens de retenue (52) pour retenir la route identifiée par le message de réponse antérieurement reçu (RREP") dans le cas contraire. 8) Programme d'ordinateur chargé dans une mémoire (111) d'une unité de traitement (11) d'un équipement (10) comprenant des instructions pour mettre en oeuvre, par un processeur (110) de ladite unité de traitement (11), un procédé de test selon une des revendications 1 à 4. 3039341 9) Moyens de stockage, caractérisés en ce qu'ils stockent un programme d'ordinateur comprenant des instructions pour mettre en oeuvre, lorsqu'il est chargé dans une mémoire (111) d'une unité de traitement (10) d'un équipement (10) et qu'il est exécuté par un processeur (110) de ladite unité de traitement (10), un procédé 5 selon l'une quelconque des revendications 1 à 4.