FR 3144476 A1 20240628 FR 2214496 A 20221226 La présente divulgation concerne un procédé de routage pour l’acheminement d’un message (3) via des nœuds (2) d’un réseau (1), dans lequel le message (3) comporte une donnée de destination géographique, et le procédé, mis en œuvre par un nœud courant du réseau (1), comprend : - sur réception d’un message comprenant ladite donnée de destination géographique, et issu d’un nœud émetteur, - décider de transmettre ou de ne pas transmettre le message en fonction d’une direction désirée de transmission du message déterminée en fonction de la donnée de destination géographique et d’une direction prise par le message entre le nœud émetteur et le nœud courant. Figure de l’abrégé : Figure 1 Procédé de routage de messages dans un réseau maillé La présente divulgation relève du domaine du routage de messages dans un réseau, et en particulier du routage des messages dans un réseau maillé mettant en œuvre un mode de transmission par inondation. Dans les réseaux IOT (« Internet of Things »), il est connu d’utiliser des réseaux maillés, également désigné réseau de type « mesh » en langue anglaise. Dans le réseau maillé, les nœuds sont connectés pair à pair sans hiérarchie centrale, chacun des nœuds pouvant recevoir, envoyer et retransmettre un message. La mise en œuvre d’un réseau maillé permet d’augmenter la robustesse du réseau en évitant d’avoir des points névralgiques, qui en cas de panne, peuvent gêner le fonctionnement du réseau. En effet, dans un réseau maillé, si un nœud tombe en panne, le message peut être transmis via une route alternative. Au sein d’un tel réseau maillé, les messages peuvent être transmis selon un mode inondation, couramment désigné « flooding » en langue anglaise. L’inondation consiste à inonder le réseau avec les messages en espérant que ceux-ci arrivent à destination. Cette technique peut être utilisée pour le routage de message, ou encore pour la découverte de routes dans le réseau, par exemple selon le protocole AODV (« Ad hoc On Demand Distance Vector »). Cette technique d’inondation du réseau permet de ne pas avoir à entretenir de tables de routage et d’être réactif à un changement d’architecture du réseau, par exemple dans le cas d’un ajout d’un nouveau nœud, de la mise en œuvre de nœuds mobile, ou encore en cas de panne et/ou d’attaque. Toutefois, le mode de transmission par inondation dans un réseau maillé présente l’inconvénient de favoriser la congestion du réseau et peut présenter un impact énergétique non-négligeable. Il est recherché des méthodes de routage qui soient moins énergivores et qui permettent de limiter les risques de saturation du réseau. Résumé La présente divulgation vient améliorer la situation. Il est proposé un procédé de routage pour l’acheminement d’un message via des nœuds d’un réseau, dans lequel le message comporte une donnée de destination géographique, et le procédé, mis en œuvre par un nœud courant du réseau, comprend : - sur réception d’un message comprenant ladite donnée de destination géographique, et issu d’un nœud émetteur, - décider de transmettre ou de ne pas transmettre le message en fonction d’une direction désirée de transmission du message déterminée en fonction de la donnée de destination géographique et d’une direction prise par le message entre le nœud émetteur et le nœud courant. On entend par « donnée de destination géographique », une donnée permettant de localiser dans l’espace une destination du message. On entend par « direction », une direction dans l’espace entre les localisations géographiques concernées. L’utilisation de la donnée de destination géographique permet avantageusement d’effectuer un routage géographique des messages. Le procédé selon la présente divulgation permet avantageusement de ne retransmettre que les messages orientés spatialement vers la destination. Ceci permet d’améliorer la sécurisation de la transmission des messages car les messages sont transmis de manière plus sélective vers la destination. En effet, le fait de ne pas diffuser des messages inutilement, notamment vers des mauvaises directions permet d’améliorer la sécurité de la transmission des messages. De plus, le procédé permet de limiter le nombre de retransmission des messages avant l’arrivée à destination. Ceci permet d’une part de limiter la saturation du réseau en réduisant l’effet de vague, et d’autre part, de limiter la consommation des différents éléments du réseau et donc de réduire l’impact énergétique de la transmission de messages. Une localisation géographique est associée à chacun des nœuds. Chacun des nœuds du réseau a notamment connaissance de sa localisation géographique déterminée par le nœud lui-même ou transmis par le réseau. La localisation géographique de chacun des nœuds peut notamment comprendre des coordonnées spatiales d’un point associé au nœud, par exemple un jeu de coordonnées tridimensionnelles dudit point. A chacun des jeux de coordonnées tridimensionnelles peut être associé un rayon d’incertitude autour de ce point. Chacun des nœuds peut comprendre des moyens pour déterminer sa localisation, par exemple des moyens de géolocalisation tel que la triangulation. Les caractéristiques exposées dans les paragraphes suivants peuvent, optionnellement, être mises en œuvre, indépendamment les unes des autres ou en combinaison les unes avec les autres : La donnée de destination géographique peut comprendre un point de destination présentant des coordonnées spatiales, auquel peut être associé un rayon de tolérance. Le ou les nœuds destinataires correspondent alors aux nœuds situés dans le rayon de tolérance autour du point de destination. De manière avantageuse, le procédé comprend : - déterminer la direction désirée de transmission du message comportant la détermination d’un vecteur de destination colinéaire à la direction reliant la localisation géographique du nœud courant et la destination géographique, - déterminer la direction prise par le message comportant l’obtention d’un vecteur d’arrivée colinéaire à la direction reliant la localisation géographique du nœud courant et la localisation géographique du nœud émetteur. Avantageusement, décider de transmettre ou de ne pas transmettre le message comprend la comparaison d’un angle de réémission, déterminé en fonction du vecteur d’arrivée et du vecteur de destination, avec un angle de routage. L’angle de routage peut être fixé ou adapté en fonction de la topologie du réseau, par exemple en fonction de l’étendue et/ou de la densité du réseau. Optionnellement, l’angle de routage est une donnée constante. Optionnellement, l’angle de routage est une donnée déterminable en fonction d’au moins un paramètre de routage porté par le message. Cette caractéristique permet de contraindre davantage la transmission du message au fur et à mesure que ce dernier avance dans le réseau. Autrement dit, le message est transmis de manière de plus en plus sélective lorsqu’il se rapproche de la destination. Optionnellement, le message peut porter la localisation géographique du nœud émetteur. Optionnellement, le message porte une adresse du nœud émetteur et le nœud courant comprend une table, dite table des voisins, listant des nœuds voisins au nœud courant, chaque nœud voisin étant identifié par une adresse et à chaque nœud voisin étant associée une donnée relative à la localisation géographique du nœud voisin respectif. On entend par « nœuds voisins » les nœuds pouvant entrer directement en communication avec le nœud courant. Le vecteur d’arrivée est obtenu en fonction de la table des voisins lorsque l’adresse du nœud émetteur est présente dans la table des voisins. La table des voisins permet avantageusement de construire une topologie de routage des messages par un nœud courant en fonction des nœuds voisins à ce nœud courant. On entend notamment par topologie de routage, l’ensemble des directions admissibles de retransmission d’un message par le nœud courant en fonction de la position géographique des nœuds voisins au nœud courant. La donnée relative à la localisation géographique du nœud voisin respectif peut consister en une localisation géographique du nœud voisin ou alternativement peut correspondre à un vecteur colinéaire à la direction reliant la localisation géographique du nœud courant et la localisation géographique du nœud voisin. Le stockage dudit vecteur associé au nœud voisin permet avantageusement d’éviter de calculer le vecteur entre le nœud émetteur et le nœud courant à chaque nouvelle transmission d’un message. Avantageusement, le nœud émetteur est le dernier nœud ayant transmis le message au nœud courant. On entend par le dernier nœud ayant transmis le message au nœud courant, le nœud ayant transmis le message au nœud courant en dernier dans une chaîne de transmission du message. De manière avantageuse, le message comprend un nombre de sauts et la décision de transmettre ou de ne pas transmettre le message est réalisée en outre en fonction du nombre de sauts. Lorsque le message comprend un nombre de sauts, le procédé peut avantageusement être mis en œuvre dès lors que le nombre de sauts du message atteint un nombre de sauts prédéterminé depuis la première émission du message, par exemple deux sauts. Autrement dit, le procédé comporte en outre, à réception du message et préalablement à la mise en œuvre de la transmission du message, la vérification du nombre de sauts réalisés par le message préalablement à la réception du message par le nœud courant. Lorsque le nombre de sauts réalisés est égale à un nombre de sauts prédéterminé, la transmission du message selon le procédé de la présente divulgation est mise en œuvre. Ceci permet d’éviter d’être trop restrictif dès l’émission initiale du message et de pouvoir par exemple contourner de potentiels obstacles. Le message peut avantageusement comprendre un âge et la décision de transmettre ou de ne pas transmettre le message est réalisée en fonction de l’âge du message. Selon un autre aspect, il est proposé un nœud d’un réseau pour le procédé tel que précédemment décrit. Selon un autre aspect, il est proposé un programme informatique comportant des instructions pour la mise en œuvre de tout ou partie d’un procédé tel que défini dans les présentes lorsque ce programme est exécuté par un processeur. Selon un autre aspect, il est proposé un support d’enregistrement non transitoire, lisible par un ordinateur, sur lequel est enregistré un tel programme. D’autres caractéristiques, détails et avantages apparaîtront à la lecture de la description détaillée ci-après, et à l’analyse des dessins annexés, sur lesquels : Fig. 1 montre un exemple de réseau de nœuds pour la mise en œuvre du procédé ci-avant, selon un mode de réalisation. Fig. 2 montre un exemple d’étapes du procédé tel que défini ci-avant, selon un mode de réalisation. Fig. 3 montre un exemple d’étapes du procédé tel que défini ci-avant, selon un mode de réalisation. Fig. 4 illustre deux exemples A et B de topologie de routage d’un nœud courant pour la mise en œuvre du procédé ci-avant, selon un mode de réalisation. Fig. 5 montre un exemple d’étapes du procédé tel que défini ci-avant, selon un mode de réalisation. Fig. 6 illustre schématiquement un nœud selon un mode de réalisation. Il est maintenant fait référence à la représentant schématiquement un réseau 1 ayant des nœuds 2, également classiquement désignés « hôtes ». On s’intéresse en particulier au routage de messages dans un tel réseau 1. Une localisation géographique est associée à chacun des nœuds. Chacun des nœuds du réseau a notamment connaissance de sa localisation géographique. La localisation géographique de chacun des nœuds peut notamment comprendre des coordonnées spatiales d’un point associé au nœud, par exemple un jeu de coordonnées tridimensionnelles dudit point. A chacun des jeux de coordonnées tridimensionnelles peut être associé un rayon d’incertitude autour de ce point. Chacun des nœuds peut comprendre des moyens pour déterminer sa localisation, par exemple des moyens de géolocalisation tel que la triangulation. Selon un aspect, la présente divulgation concerne un procédé de routage pour l’acheminement d’un message, aussi désigné paquet, via des nœuds du réseau. Le message comporte une donnée de destination géographique LocDest. Le message est classiquement formé de données, désignées « payload » en langue anglaise et correspondant au contenu du message à transmettre, et de données de routage, désignées « routing data » en langue anglaise, permettant la gestion de l’acheminement du message dans le réseau. On s’intéresse ici plus particulièrement aux données de routage du message comprenant ladite donnée de destination géographique LocDest. Plus précisément, le message est acheminé depuis une source S vers une destination D. La « source » du message peut correspondre à un nœud du réseau, à une entité connectée à l’un des nœuds du réseau et lui demandant de transmettre le message. Par exemple, un utilisateur peut se connecter à un nœud à travers une interface d’un smartphone. On entend par « destination », une destination géographique qui est représentée par la donnée de destination géographique, et qui peut couvrir un ou plusieurs nœuds destinataires. La donnée de destination géographique peut comprendre un point de destination présentant des coordonnées spatiales, auquel peut être associé un rayon de tolérance. Le ou les nœuds destinataires correspondent alors aux nœuds situés dans le rayon de tolérance autour du point de destination. L’utilisation de la donnée de destination géographique permet avantageusement d’effectuer un routage géographique des messages. On entend par « routage géographique », un routage dans l’espace des messages. La représente un diagramme schématique du procédé mis en œuvre par un nœud courant du réseau. Le procédé comprend : - sur réception E1 d’un message comprenant ladite donnée de destination géographique LocDest, et issu d’un nœud émetteur, - décider E4 de transmettre ou de ne pas transmettre le message en fonction d’une direction désirée de transmission du message déterminée en fonction de la donnée de destination géographique LocDest et d’une direction prise par le message entre le nœud émetteur et le nœud courant. On entend par « direction », une direction dans l’espace entre les localisations géographiques concernées. Le procédé selon la présente divulgation permet avantageusement de ne retransmettre que les messages orientés spatialement vers la destination. Ceci permet d’améliorer la sécurisation de la transmission des messages car les messages sont transmis de manière plus sélective vers la destination. En effet, le fait de ne pas diffuser des messages inutilement, notamment vers des mauvaises directions permet d’améliorer la sécurité de la transmission des messages. De plus, le procédé permet de limiter le nombre de retransmission des messages avant l’arrivée à destination. Ceci permet d’une part de limiter la saturation du réseau en réduisant l’effet de vague, et d’autre part, de limiter la consommation des différents éléments du réseau et donc de réduire l’impact énergétique de la transmission de messages. La détermination de la direction prise et de la direction désirée peut être réalisée directement par le nœud courant, ou alternativement par un calculateur avec lequel le nœud courant est en communication par exemple. Le nœud émetteur est de préférence le dernier nœud ayant transmis le message au nœud courant. On entend par le dernier nœud ayant transmis le message au nœud courant, le nœud ayant transmis le message au nœud courant en dernier dans une chaîne de transmission du message. Alternativement, le nœud émetteur peut correspondre à un nœud ayant émis le message au nœud courant via au moins un autre nœud. Le nœud émetteur peut par exemple correspondre à un nœud source du message. On peut noter que plus le nœud émetteur est pris en amont de la chaîne de transmission des messages, plus l’estimation de la direction prise sera précise. Cependant, utiliser le dernier nœud ayant transmis le message comme nœud émetteur est une solution pragmatique et simple à implémenter. En outre, en référence à la , le procédé comprend avantageusement : - déterminer E2 la direction désirée de transmission du message, - déterminer E3 la direction prise par le message. En référence à la , la détermination de la direction désirée de transmission du message peut comprendre la détermination d’un vecteur de destination VecDest en fonction de la localisation géographique LocNode du nœud courant et de la destination géographique LocDest. Le vecteur de destination VecDest est notamment déterminé de sorte à être colinéaire à la direction reliant la localisation géographique LocNode du nœud courant et la destination géographique LocDest. La direction prise par le message entre le nœud émetteur et le nœud courant est notamment déterminée en fonction de la localisation géographique LocSender du nœud émetteur et de la localisation géographique LocNode du nœud courant. Plus précisément, la détermination de la direction prise par le message peut comprendre l’obtention d’un vecteur d’arrivée VecArr colinéaire à la direction reliant la localisation géographique LocNode du nœud courant et la localisation géographique LocSender du nœud émetteur. A cette fin, le message peut porter la localisation géographique LocSender du nœud émetteur. Ledit vecteur d’arrivée VecArr peut être calculé à chaque fois qu’un message est transmis au nœud courant par un nœud émetteur. Alternativement, en référence aux figures 4A et 4B, le message peut comprendre une adresse du nœud émetteur et le nœud courant peut comprendre une table listant des nœuds voisins au nœud courant, dite table des voisins ListNdDist. On entend par « nœud voisin » les nœuds pouvant entrer directement en communication avec le nœud courant. Chacun des nœuds de la table des voisins peut être identifié par une adresse NdDist. A chaque nœud voisin est associée une donnée relative à la localisation géographique du nœud voisin respectif. Si l’adresse du nœud émetteur est présente dans la table des voisins, alors le vecteur d’arrivée VecArr est obtenu en fonction de la table des voisins ListNdDist. Plus précisément, le vecteur d’arrivée VecArr est obtenu en fonction de la donnée relative à la localisation géographique du nœud voisin correspondant au nœud émetteur. La table des voisins permet ainsi de construire une topologie de routage des messages par un nœud courant en fonction des nœuds voisins à ce nœud courant. On entend notamment par topologie de routage, l’ensemble des directions admissibles de retransmission d’un message par le nœud courant en fonction de la position géographique des nœuds voisins au nœud courant. Les parties A et B de la représentent deux exemples de parties d’un réseau comprenant des nœuds 2 dont un nœud courant et des nœuds voisins, à savoir trois nœuds voisins pour la -A et deux nœuds voisins pour la -B. Sont représentées en zones hachurées 4 ledit ensemble des directions admissibles. En référence à la -A, la direction désirée de transmission du message est compatible avec la topologie de routage du nœud courant, le message peut être transmis au nœud voisin concerné. En référence à la -B, la direction désirée de transmission du message est incompatible avec la topologie de routage du nœud courant, le message n’est pas retransmis. De plus, la donnée relative à la localisation géographique du nœud voisin respectif peut consister en une localisation géographique du nœud voisin LocDist ou peut correspondre à un vecteur VecToDist colinéaire à la direction reliant la localisation géographique LocNode du nœud courant et la localisation géographique du nœud voisin. Le stockage dudit vecteur VecToDist associé au nœud voisin est préféré car cette solution permet d’éviter de calculer le vecteur entre le nœud émetteur et le nœud courant à chaque nouvelle transmission d’un message. En effet, si l’adresse du nœud émetteur est présente dans la table des voisins, alors le vecteur d’arrivée VecArr est pris égal au vecteur VecToDist associé au nœud voisin correspondant au nœud émetteur. La table des voisins peut être construite et mise à jour progressivement, au fur et à mesure de la réception de messages par le nœud courant provenant de nœuds voisins. La table des voisins peut être directement utilisée, ou n’être utilisée qu’après qu’un certain nombre de nœuds voisins sont répertoriés dans la table des voisins du nœud courant. Par ailleurs, la représente un exemple d’étapes pour la mise en œuvre de l’étape de décision E4. Le nœud courant détermine à l’étape E41 un angle de réémission AngleVec en fonction du vecteur d’arrivée VecArr et du vecteur de destination VecDest. A l’étape E42, le nœud courant compare ensuite cet angle de réémission AngleVec avec un angle de routage AngleRouting, et en fonction de cette comparaison, il est décidé de transmettre ou de ne pas transmettre le message (en particulier si l’angle de réémission est supérieur à l’angle de routage comme détaillé plus loin). Le vecteur d’arrivée VecArr peut être obtenu par le nœud courant en fonction de la localisation géographique LocNode du nœud courant et la localisation géographique LocSender du nœud émetteur, lorsque le message porte la localisation géographique LocSender du nœud émetteur. Lorsque le nœud courant comprend la table des voisins ListNdDist et que le message porte l’adresse NdDist du nœud émetteur, le vecteur d’arrivée VecArr est obtenu en fonction de la donnée relative à la localisation géographique du nœud voisin NdDist correspondant. Pour rappel, cette donnée peut correspondre à la localisation géographique du nœud voisin LocDist ou peut correspondre au vecteur VecToDist colinéaire à la direction reliant la localisation géographique LocNode du nœud courant et la localisation géographique du nœud voisin LocDist. L’angle de réémission AngleVec peut en particulier consister en un angle entre le vecteur d’arrivée VecArr et le vecteur de destination VecDest, le vecteur d’arrivée VecArr étant obtenu selon l’un des moyens décrits précédemment. La détermination de l’angle de réémission AngleVec peut être réalisée par un produit scalaire qui est une opération simple est peu coûteuse à réaliser. En particulier, si l’angle de réémission AngleVec est supérieur ou égal à l’angle de routage AngleRouting, le message est retransmis par le nœud courant. A l’inverse, si l’angle de réémission AngleVec est inférieur à l’angle de routage AngleRouting, le message n’est pas retransmis par le nœud courant. Ceci permet d’éviter de transmettre le message vers des nœuds qui ne sont pas localisés dans la direction de la destination par rapport au nœud courant et donc de limiter voire de ne pas du tout saturer le réseau. De plus, cette solution offre l’avantage de permettre des économies énergétiques et d’assure une disponibilité du réseau. Lorsque le nœud courant comprend la table des voisins ListNdDist, l’angle de réémission AngleVec peut être déterminé pour chaque nœud voisin NdDist listé dans la table des voisins ListNdDist. Lorsque, pour l’un des nœuds voisins NdDist, le nœud courant décide de transmettre le message suite à la comparaison de l’angle de réémission AngleVec avec l’angle de routage AngleRouting, ledit nœud voisin NdDist est ajouté à une liste de nœuds sélectionnés ListNdSel. Plus précisément, lorsque l’angle de réémission AngleVec est supérieur ou égal à l’angle de routage AngleRouting pour le nœud voisin respectif, ce nœud voisin NdDist est ajouté à une liste de nœuds sélectionnés ListNdSel. Ensuite, le message est transmis pour tous les nœuds voisins de la liste de nœuds sélectionnés ListNdSel. Cette caractéristique permet d’améliorer l’efficacité du traitement des messages, en effectuant, lorsque cela est approprié, dans un premier temps, la sélection des nœuds voisins auxquels le message sera transmis, puis dans un second temps, l’envoi des messages aux nœuds voisins sélectionnés. L’angle de routage AngleRouting est notamment fixé ou adapté en fonction de la topologie du réseau, par exemple en fonction de l’étendue et/ou de la densité du réseau. L’angle de routage AngleRouting peut présenter une valeur différente pour des nœuds différents du réseau, ou alternativement avoir une même valeur pour tous les nœuds du réseau. De plus, l’angle de routage AngleRouting peut notamment être une donnée constante au niveau de chaque nœud ou peut être une donnée déterminable en fonction d’au moins un paramètre de routage, notamment porté par le message. A cette fin, le nœud courant peut comprendre une fonction FctAngleRouting apte à déterminer l’angle de routage AngleRouting. A titre d’exemple, l’angle de routage AngleRouting peut être déterminé en fonction d’un nombre de sauts NbHop du message. A cette fin, le message peut porter le paramètre du nombre de sauts NbHop. Le nombre de saut NbHop peut être initialisé à 0 ou alternativement à un nombre de sauts maximal. Alors, le nombre de sauts NbHop peut être respectivement incrémenté de 1, ou décrémenté de 1 à chaque retransmission du message par un nœud. En particulier, plus le nombre de sauts NbHop est grand, ou petit selon le cas, plus l’angle de routage AngleRouting peut être réduit en conséquence. Cette caractéristique permet de contraindre davantage la transmission du message au fur et à mesure que ce dernier avance dans le réseau. Autrement dit, le message est transmis de manière de plus en plus sélective lorsqu’il se rapproche de la destination. L’angle de routage AngleRouting peut par exemple être initialement fixé à 90°. De plus, des paramètres de contrainte supplémentaires peuvent être implémentés afin d’influer sur le pilotage de la transmission dudit message. Lorsque le message comprend un nombre de sauts NbHop, le nœud peut décider de transmettre ou de ne pas transmettre le message en outre en fonction du nombre de sauts. Par exemple, lorsque le nombre de sauts NbHop est initialisé à 0, le nombre de sauts peut être comparé à un nombre maximal de sauts NbHopMax, par exemple porté par le nœud ou directement dans le message. Tant que le nombre de sauts NbHop associé au message est inférieur au nombre de sauts maximal NbHopMax, le message peut être retransmis par le nœud courant, sinon le message est ignoré. Alternativement, lorsque le nombre de sauts NbHop est initialisé à un nombre de sauts maximal, tant que le nombre de sauts NbHop n’est pas nul le message peut être retransmis par le nœud courant, sinon le message est ignoré. Lorsque le message comprend un nombre de sauts NbHop, le procédé selon la présente divulgation peut avantageusement être mis en œuvre dès lors que le nombre de sauts NbHop du message atteint un nombre de sauts prédéterminé depuis la première émission du message, par exemple deux sauts. Autrement dit, le procédé comporte en outre, à réception du message et préalablement à la mise en œuvre de la transmission du message, la vérification du nombre de sauts réalisés par le message préalablement à la réception du message par le nœud courant. Lorsque le nombre de sauts réalisés est égale à un nombre de sauts prédéterminé, la transmission du message selon le procédé de la présente divulgation est mise en œuvre Ceci permet d’éviter d’être trop restrictif dès l’émission initiale du message et de pouvoir par exemple contourner de potentiels obstacles. Chacun des nœuds peut avantageusement comprendre une horloge, en particulier une horloge synchronisée. L’horloge permet d’implémenter un paramètre contraignant la durée de vie du message. En particulier, le message peut comprendre un âge AgeMsg. La décision de transmettre ou de ne pas transmettre le message est notamment réalisée en fonction de l’âge du message AgeMsg. Plus précisément, on définit une durée de vie AgeLimit portée par le message ou spécifiée dans le nœud courant. L’âge du message AgeMsg est alors comparé à la durée de vie AgeLimit. Tant que l’âge du message AgeMsg est inférieur à la durée de vie AgeLimit, le message peut être retransmis par le nœud courant, sinon le message est ignoré. Le message peut aussi comprendre un paramètre relatif à l’urgence du message. Si le message est indiqué comme étant urgent, il pourra être traité par le nœud courant selon un protocole de priorité des messages. Ces paramètres, à savoir le nombre de sauts NbHop, l’âge du message AgeMsg et/ou le paramètre d’urgence du message, peuvent être initialisés par l’émetteur du message, ou par le premier nœud émettant le message dans le réseau. De plus, le nœud peut comprendre une table des messages traités TabMsg. Ainsi, lorsqu’un message est transmis au nœud courant, si ce message est identifié comment faisant partie des messages traités, le message sera ignoré par le nœud, sinon il sera traité par le nœud courant. Cette étape préalable permet d’éviter à un nœud de traiter plusieurs fois le même message. La table des messages traités peut de préférence présenter une taille fixe, et implémenter un fonctionnement de type FIFO (« First In First Out »). Alternativement, la table des messages traités peut être nettoyée en fonction de l’âge des messages traités, lorsque l’âge du message est une donnée accessible. D’autres fonctionnements de la table des messages traités peuvent être envisagés. Dans le cas où le nœud courant décide de transmettre le message, avant la réémission du message, la localisation géographique LocSender du nœud émetteur est mise à jour à la localisation géographique LocNode du nœud courant. Le réseau est de préférence un réseau maillé, également désigné réseau de type « mesh » en langue anglaise, en particulier un réseau collaboratif (« crowd network ») ou résiliant (« disaster network »). Dans le réseau maillé, les nœuds sont connectés pair à pair sans hiérarchie centrale, chacun des nœuds pouvant recevoir, envoyer et retransmettre un message. Dans un tel réseau, un message est ainsi transmis par une source pour arriver à une destination en pouvant passer par des nœuds intermédiaires qui reçoivent et retransmettent le message. Autrement dit, le message peut être transmis à partir de la source vers la destination par l’intermédiaire de nœuds n’ayant pas de lien de communication direct entre eux. La mise en œuvre d’un réseau maillé permet d’augmenter la robustesse du réseau en évitant d’avoir des points névralgiques, qui en cas de panne, peuvent gêner le fonctionnement du réseau. En effet, dans un réseau maillé, si un nœud tombe en panne, le message peut être transmis via une route alternative. Au sein du réseau, les messages peuvent être transmis selon un mode inondation, couramment désigné « flooding » en langue anglaise. Dans ce mode de transmission, un message est émis par un nœud émetteur sans spécification du nœud récepteur. Ainsi, tout nœud qui écoute peut recevoir le message et doit le traiter. Le message peut alors être réémis de façon similaire. La retransmission du message s’arrête lorsque le nœud récepteur correspond au nœud ou aux nœuds destinataires spécifié(s), ou si d’autres paramètres de contrainte sont atteints, par exemple si un nombre de sauts maximal du message est atteint. Alternativement, les messages peuvent être transmis par un mode point à point, couramment désigné « peer-to-peer » en langue anglaise. Dans ce mode de transmission des messages, un message est émis par un nœud émetteur en spécifiant les adresses du ou des nœuds destinataires. Ainsi, tout nœud qui écoute peut ignorer le message s’il ne fait pas partie du ou des nœuds destinataires. Dans le mode point à point, les routes sont prédéfinies. Le réseau doit alors prévoir des connexions sans interruption ou alternativement des routes alternatives peuvent être prévues. Dans la suite de la description, un nœud sera décrit plus en détails, les caractéristiques techniques développées pouvant s’appliquer à l’ensemble des nœuds du réseau. Le nœud est classiquement un petit équipement peu énergivore. La illustre l’un des nœuds du réseau. Le nœud comprend un processeur PROC et une mémoire MEM stockant au moins des instructions d’un programme informatique et accessible par le processeur pour mettre en œuvre le procédé tel que précédemment décrit lorsque le processeur PROC exécute les instructions du programme. La mémoire MEM du nœud comprend notamment une mémoire vive et une mémoire de stockage. La mémoire MEM du nœud stocke la localisation géographique LocNode du nœud respectif et l’angle de routage AngleRouting ou la fonction permettant de déterminer l’angle de routage. Lorsque cela est approprié, la mémoire du nœud peut stocker la table de voisins ListNdDist, la table des messages traités, et/ou des paramètres de contrainte supplémentaires tels que le nombre de sauts maximal NbHopMax, la durée de vie du message AgeLimit, ou encore un paramètre relatif à l’urgence du message. La table des messages traités peut notamment être stockée dans une mémoire non volatile du nœud, à savoir une mémoire flash ou un disque dur, en fonction des besoins du réseau. Par ailleurs, le nœud comprend en particulier une première interface de communication COM1 pilotée par le processeur PROC, afin de recevoir et de transmettre des messages à d’autres nœuds du réseau, en particulier avec les nœuds voisins du nœud considéré. La première interface de communication COM est pilotée par le processeur. Le nœud peut comprendre une deuxième interface de communication COM2 pilotée par le processeur PROC, afin de recevoir et de transmettre des données de routage à d’autres nœuds du réseau. La première et la deuxième interface de communication peuvent notamment être les mêmes. Chacune de la première et de la deuxième interface de communication COM1 et COM2 peut de préférence consister en une interface de communication par radiofréquence RF permettant aux nœuds de communiquer entre eux sans passer par un système central. A titre d’exemple non-limitatif, l’interface de communication peut respecter les normes de type 2G, 3G, 4G ou 5G selon le 3GPP. Des interfaces de communication à basse consommation d’énergie peuvent notamment être privilégiées, tel que Lora, BLE ou encore SigFox. D’autres interfaces de communication de type D2D (« Device to Device ») en 6G pourront également être envisagées à l’avenir, entendu que les contraintes en termes de coût et de consommation d’énergie le permettent. En outre, au moins certains nœuds peuvent comprendre des capteurs externes qui peuvent générer des messages à transmettre sur le réseau (capteurs environnementaux, compteurs). Chaque nœud peut en outre comprendre des moyens d’alimentation électrique, par exemple une batterie, une alimentation filaire, des panneaux solaires, ou une combinaison de ces moyens d’alimentation électrique. Procédé de routage pour l’acheminement d’un message (3) via des nœuds (2) d’un réseau (1), dans lequel le message (3) comporte une donnée de destination géographique (LocDest), et le procédé, mis en œuvre par un nœud courant du réseau (1), comprend : - sur réception (E1) d’un message comprenant ladite donnée de destination géographique, et issu d’un nœud émetteur, - décider (E4) de transmettre ou de ne pas transmettre le message en fonction d’une direction désirée de transmission du message déterminée en fonction de la donnée de destination géographique (LocDest) et d’une direction prise par le message entre le nœud émetteur et le nœud courant. Procédé selon la revendication 1, comprenant : - déterminer (E2) la direction désirée de transmission du message comportant la détermination d’un vecteur de destination (VecDest) colinéaire à la direction reliant une localisation géographique (LocNode) du nœud courant et la destination géographique (LocDest) , - déterminer (E3) la direction prise par le message comportant l’obtention d’un vecteur d’arrivée (VecArr) colinéaire à la direction reliant la localisation géographique (LocNode) du nœud courant et la localisation géographique (LocSender) du nœud émetteur. Procédé selon la revendication précédente, dans lequel décider (E4) de transmettre ou de ne pas transmettre le message comprend la comparaison (E42) d’un angle de réémission (AngleVec), déterminé (E41) en fonction du vecteur d’arrivée (VecArr) et du vecteur de destination (VecDest), avec un angle de routage (AngleRouting). Procédé selon la revendication 3, dans lequel l’angle de routage (AngleRouting) est une donnée constante. Procédé selon la revendication 3, dans lequel l’angle de routage (AngleRouting) est une donnée déterminable en fonction d’au moins un paramètre de routage porté par le message. Procédé selon l’une des revendications précédentes, dans lequel le message porte une localisation géographique (LocSender) du nœud émetteur. Procédé selon l’une des revendications précédentes, dans lequel le message porte une adresse du nœud émetteur et le nœud courant comprend une table, dite table des voisins (ListNdDist), listant les nœuds voisins au nœud courant, chaque nœud voisin étant identifié par une adresse (NdDist) et à chaque nœud voisin étant associée une donnée relative à une localisation géographique du nœud voisin respectif, le vecteur d’arrivée (VecArr) étant obtenu en fonction de la table des voisins (ListNdDist) lorsque l’adresse du nœud émetteur est présente dans la table des voisins (ListNdDist). Procédé selon l’une des revendications précédentes, dans lequel le nœud émetteur est le dernier nœud ayant transmis le message au nœud courant. Procédé selon l’une des revendications précédentes, dans lequel le message comprend un nombre de sauts (NbHop) et la décision (E4) de transmettre ou de ne pas transmettre le message est réalisée en outre en fonction du nombre de sauts (NbHop). Procédé selon la revendication précédente, dans lequel le procédé est mis en œuvre dès lors que le nombre de sauts (NbHop) du message atteint un nombre de sauts prédéterminé depuis la première émission du message. Procédé selon l’une des revendications précédentes, dans lequel le message comprend un âge (AgeMsg) et la décision (E4) de transmettre ou de ne pas transmettre le message est réalisée en fonction de l’âge du message (AgeMsg). Nœud (2) d’un réseau (1) pour le procédé selon l’une quelconque des revendications précédentes. Programme informatique comportant des instructions pour la mise en œuvre du procédé selon l’une des revendications 1 à 11 lorsque ce programme est exécuté par un processeur (PROC).