Brevet FR2770714A1 — publié le 19990430

La présente invention concerne le routage des communications entre les stations d'un réseau de type distribué. Le réseau est par exemple un réseau local sans fil dont les stations communiquent entre elles en se partageant un canal radio. Un réseau de type distribué ne possède pas de station de base pour gérer les communications entre les stations. Une fonction de routage rend possible les communications entre les stations du réseau, en déterminant les chemins de communication dans le réseau. Cette fonction est adaptée aux contraintes d'un réseau local sans fil, notamment la bande passante limitée, et la mobilité des stations ou les modifications de l'environnement des stations qui provoquent des changements de topologie du réseau. Des procédés connus de routage reposent sur des échanges périodiques de messages de routage pour détecter les changements de topologie du réseau. La fonction de routage doit modifier le plus rapidement possible les chemins de communication dans le réseau, pour que les chemins connus correspondent aux chemins réels existant dans le réseau, faute de quoi le risque de mauvais acheminement et de perte de message est grand. II est donc nécessaire que les messages de routage soient fréquents. Cependant, les messages de routage occupent le canal radio, au détriment des données utiles. II faut donc que la fonction de routage génère le moins possible de messages de routage1 pour occuper peu de bande passante. Ces contraintes sont contradictoires et rendent complexe le fonctionnement de la fonction de routage. La présente invention vise à remédier aux inconvénients de la technique antérieure, en fournissant un procédé de détection de chemin dans un réseau distribué, qui permet de détecter rapidement de nouveaux chemins sans augmenter le trafic de routage. A cette fin, I'invention propose un procédé de routage de message entre des stations d'un réseau, caractérisé en ce que chacune des stations effectue les opérations suivantes: - mémorisation de données concernant chaque message qu'elle reçoit et comportant au moins un identificateur de message, un identificateur de la station émettrice du message et un coût de transmission de message, et, après avoir mémorisé les données de deux messages dont les identificateurs de message sont identiques et les identificateurs de station émettrice sont différents, - comparaison des coûts de transmission des deux messages pour déterminer la station émettrice associée au coût le plus faible. Le procédé selon l'invention résout le problème énoncé cidessus, en utilisant les messages de données acheminés dans le réseau pour en déduire de l'information de routage. La mémorisation de données est effectuée dans une table spécifique, ou journal, destinée à recueillir des informations sur les messages entendus par la station considérée. Le procédé permet d'évaluer les performances de l'algorithme de routage en cours. Le procédé s'adapte à toute fonction de routage connue, dont l'exécution est indépendante du procédé selon l'invention. Selon une caractéristique préférée, le procédé comporte la transmission de l'information de routage formée par la connaissance de la station émettrice associée au coût le plus faible à une station de traitement, qui exploite alors cette information. Selon une caractéristique préférée, le coût est le nombre cumulé de tous les messages précédents ayant le même identificateur de message que le message considéré. En d'autres termes, le coat est le nombre de sauts effectués depuis une station émettrice initiale de message, et mesure ainsi une longueur de chemin. Selon une autre caractéristique préférée, I'identificateur de message comporte l'adresse de la station émettrice initiale du premier des messages précédents ayant le même identificateur de message que le message considéré. Les messages sont ainsi identifiés de manière simple et fiable. L'invention conceme aussi une station de communication d'un réseau, caractérisée en ce qu'elle comporte, ou en ce qu'elle est adaptée à coopérer avec: - des moyens de mémorisation de données concemant chaque message qu'elle reçoit, ces données comportant au moins un identificateur de message, un identificateur de la station émettrice du message et un coût de transmission de message, - des moyens de vérification qu'ont été mémorisées les données de deux messages dont les identificateurs de message sont identiques et les identificateurs de station émettrice sont différents, et - des moyens de comparaison des coûts de transmission de deux messages dont les identificateurs de message sont identiques et les identificateurs de station émettrice sont différents, pour déterminer la station émettrice associée au coût le plus faible. La station selon l'invention présente les mêmes avantages que ceux précédemment exposés du procédé. Les caractéristiques et avantages de la présente invention apparaîtront plus clairement à la lecture d'un mode préféré de réalisation illustré par les dessins ci-joints, dans lesquels: - la figure 1 représente un réseau distribué de stations1 - la figure 2 représente une station mobile du réseau de la figure 1, - la figure 3 représente une table de routage de l'une des stations mobiles du réseau de la figure 1, - la figure 4 représente un message de données transmis d'une station mobile à une autre, - la figure 5 représente un extrait d'une table de messages entendus par l'une des stations mobiles du réseau, selon l'invention, - la figure 6 est un algorithme de traitement de message de données et de détection de chemin, selon l'invention. Selon le mode de réalisation choisi et représenté à la figure 1, un réseau local sans fil comporte des stations, dont cinq, référencée SM a à S Me sont représentées. Les stations sont ici mobiles. La connectivité des stations mobiles évolue en permanence, en fonction des déplacements des stations et des modifications de leur environnement. De plus, il est possible que le nombre de stations mobiles effectivement connectées au réseau évolue également. Les stations communiquent entre elles par transmission radio, ou en variante par transmission infrarouge. Chaque station, ou noeud du réseau, est repérée par une adresse unique. On s'intéresse ici plus particulièrement aux communications en mode point à point. Le réseau est de type distribué, c'est-à-dire qu'il ne comporte pas de station de base pour gérer les communications entre stations. Les communications entre stations sont rendues possibles par une fonction de routage. Si deux stations, par exemple les stations SMa et SMb, sont en écoute directe, c'est-à-dire si ces deux stations sont suffisamment proches l'une de l'autre et sans obstacle à la transmission radio, elles peuvent communiquer directement sur le segment "ab". La station SMa peut envoyer un message, détaillé dans la suite, à la station SMb. La station SMa est dite station émettrice initiale, et la station SMb est dite station destinataire finale. En revanche, si deux stations, par exemple les stations SMa et SMd, ne peuvent pas communiquer directement, la communication passe par d'autres stations intermédiaires, ici les stations SMb et SMC, qui jouent le rôle de relais entre les deux stations SM a et SMd. Le message est alors transmis successivement sur les segments "ab", puis "bc", et enfin "cd". Ces trois segments forment un chemin entre les stations SMa et SMd. La fonction de routage s'exécute au-dessus d'un mécanisme d'accès MAC contrôle d'accès au support (Medium Access Control) de type CSMA/CA accès multiple par détection de porteuse et évitement de collision (Carrier Sense Multiple Access / Collision Avoidance) qui permet de partager le canal de transmission. Dans le cas des communications point à point, telles qu'envisagées ici, la fiabilité des communications de données est assurée par l'utilisation d'un mécanisme classique d'acquittement, ou accusé de réception, et de retransmission des données, si l'accusé de réception n'est pas reçu. La fonction de routage est connue en soi et ne sera pas plus décrite. Un mode de réalisation de l'une quelconque des stations, par exemple la station SMC, est représenté à la figure 2. Les moyens de mise en oeuvre de l'invention sont intégrés dans un ordinateur, qui comporte des interfaces utilisateurs classiques, non décrits ici. En variante, les moyens de mise en oeuvre de l'invention ne sont pas intégrés à une station mobile proprement dite, mais ces moyens et la station mobile sont adaptés à communiquer et coopérer ensemble. La station SMC intègre une unité centrale de traitement sous la forme d'un processeur 10 relié par un bus d'une part à une mémoire morte (ROM) 30 dans laquelle sont enregistrés les programmes exécutés par le processeur et d'autre part à une mémoire vive (RAM) 20 comportant une zone de travail, des registres de données et une zone réservée au stockage des messages reçus ou en attente d'émission. La mémoire vive 20 stocke entre autres, un journal, exposé dans la suite, correspondant à la table des derniers messages reçus et entendus par la station mobile SMC. La station mobile SMC comporte un module de communication radiofréquences 50, connu en soi, permettant à la station mobile SMC d'émettre et de recevoir des données vers et depuis d'autres stations mobiles. L'interface entre le module de communication radiofréquences 50 et le processeur 10 se fait par: - le port de contrôle 15, dont la valeur binaire représente l'état d'occupation du support de transmission sans fil à un instant donné, - le port de lecture 16, dans lequel le processeur 10 lit les données reçues par la station mobile SMC, - le port d'écriture 17, où la station mobile SMC peut aller écrire les données qu'elle souhaite émettre via le support de transmission radiofréquences. Une horloge 40, reliée au processeur 10, permet à ce dernier de réaliser des opérations à intervalles réguliers, telles que par exemple, les opérations de lecture / écriture dans les ports 15, 16, 17. La station mobile SMC permet aux utilisateurs du réseau local sans fil d'échanger des données le long de chemins pouvant varier dans le temps et pouvant emprunter plusieurs stations intermédiaires, ces chemins étant établis à partir de tables de routage des stations mobiles du réseau. Pour mettre en oeuvre la fonction de routage, chaque station mobile a en mémoire une table de routage représentée à la figure 3. La table de routage TRC de la station SMC comporte une liste de chacune des stations accessibles à partir de la station considérée, la prochaine station à atteindre pour atteindre chacune des stations accessibles et le coût pour atteindre chacune des stations accessibles. Le coût est par exemple le nombre de sauts nécessaires, c'est-à-dire le nombre de segments à parcourir, pour atteindre chacune des stations accessibles. Selon des variantes de réalisation, le coût peut tenir compte par exemple du rapport signal à bruit, du niveau de réception des messages, des délais d'acheminement, ou du nombre de stations voisines de la station considérée, ou encore être une combinaison de ces paramètres. Ainsi, par exemple, il est possible d'atteindre la station SMe depuis la station SMC, la prochaine station étant SMd, et le coût, c'est-à-dire ici le nombre de sauts, étant de deux. La table de routage d'une station est valable à un instant donné, et est susceptible d'évoluer dans le temps. D'autre part, la table de routage d'une station peut comporter d'autres informations, telles que numéro de séquence, drapeau, par exemple, qui ne sont pas utiles pour la présente invention. Comme représenté à la figure 4, les données sont échangées entre stations sous la forme de message 60 comportant au moins les champs suivants: - le champ 61 contenant l'adresse SEI de la station émettrice initiale du message, - le champ 62 contenant l'adresse SDF de la station destinataire finale du message, - le champ 63 contenant l'adresse SET de la station émettrice intermédiaire, - le champ 64 contenant l'adresse SDT de la station destinataire intermédiaire, - le champ 65 contenant un identificateur ID de message créé par la station émettrice initiale, - le champ 66 contenant le coût CT du message, mis à jour par chaque station intermédiaire et par la station destinataire finale, - le champ 67 de données proprement dites, - le champ 68 contenant le type IT du message, ici message de données. Les stations émettrice initiale et destinataire finale sont les extrémités du chemin à parcourir par le message. Les stations émettrice intermédiaire et destinataire intermédiaire sont les extrémités d'un segment du chemin. Chacune des stations mémorise des données sur chacun des messages de données qu'elle entend, même pour les messages qui ne lui sont pas destinés. Ces données sont mémorisées dans une table spécifique, ou journal, dont la taille prédéterminée, correspondant à une fenêtre temporelle, est choisie en fonction d'un délai d'acheminement maximal de message dans le réseau. Comme représenté à la figure 5, pour chaque message de données entendu, la station SMd mémorise les données suivantes: - le champ 71 contenant l'adresse SEI de la station émettrice initiale du message, - le champ 72 contenant l'adresse SDF de la station destinataire finale du message, - le champ 73 contenant l'adresse SET de la station émettrice intermédiaire, - le champ 74 contenant l'adresse SDT de la station destinataire intermédiaire, - le champ 75 contenant l'identificateur ID de message créé par la station émettrice initiale, - le champ 76 contenant le coût CT du message, mis à jour par chaque station qui entend le message, - le champ 77 contenant la date DT d'audition du message, - le champ 78 contenant le nombre NR de retransmission. Les valeurs des six premiers champs sont déduites du message entendu et les deux demières sont mises à jour par la station SMd. La date d'audition DT et le nombre de retransmission NR ne sont pas utilisés par la présente invention et peuvent servir notamment à contrôler les délais d'acheminement et les retransmissions. Le coût CT est ici égal au nombre cumulé de tous les messages précédents ayant le même identificateur que le message considéré. La figure 6 représente un algorithme mis en oeuvre dans chacune des stations mobiles du réseau, lorsqu'un message de données est reçu, pour traiter ce message, et pour détecter s'il existe un chemin plus court. L'algorithme comporte des étapes E100 à E112 qui sont mémorisées en mémoire morte 30. L'étape E100 est la réception d'un message de données par la station mobile. Pour cela, le processeur 10 lit régulièrement le port 16 pour vérifier si le module radio 50 a reçu des données. Lorsqu'un message est reçu, le processeur lit le type de message dans le champ 68 indiquant qu'il s'agit d'un message de données. Après la réception d'un message de données, L'étape E100 est suivie de l'étape E101, qui est un test pour vérifier si le message correspond à un message déjà mémorisé dans le journal de la station. Le test consiste à comparer le couple formé de l'identificateur ID du message et de l'adresse SEI de la station émettrice initiale du message avec les couples formés d'identificateur de message et d'adresse de station émettrice initiale de message qui sont mémorisés dans le journal de la station considérée. Si la réponse est négative, L'étape ElOl est suivie de l'étape E102 à laquelle les données relatives au message en cours de traitement sont mémorisées dans le joumal de la station. Les données mémorisées sont celles représentées à la figure 5. L'étape E102 comporte la mise à jour du coût. Dans le cas où le coût est le nombre de sauts, ou de segments parcourus, le coût mémorisé est égal au coût lu dans le champ 66 du message, incrémenté de une unité. L'étape E102 est suivie de l'étape E107 qui sera décrite dans la suite. Si la réponse à l'étape E101 est positive, cela signifie qu'il y a correspondance entre le message en cours de traitement et un message précédemment reçu et mémorisé. L'étape E101 est alors suivie de l'étape E103 qui est un test pour vérifier si le message en cours de traitement et le message déjà mémorisé qui lui correspond ont été émis par la même station émettrice intermédiaire. Le test consiste à comparer l'adresse de station émettrice intermédiaire du message en cours de traitement avec celle, mémorisée dans le champ 73 respectif, du message qui lui correspond. Si la réponse est positive, cela signifie que le message en cours de traitement est une retransmission d'un message précédent, entre les mêmes stations émettrice et destinataire intermédiaires, cette retransmission étant provoquée par une absence de réception d'accusé de réception par la station émettrice intermédiaire. Les données relatives au message en cours de traitement ne sont pas mémorisées et le nombre de retransmission NR du message précédent est incrémenté de une unité. L'étape E103 est suivie de l'étape E107 qui sera décrite dans la suite Si la réponse à l'étape E103 est négative, cela signifie que le message en cours de traitement et le message déjà mémorisé qui lui correspond ont été émis par deux stations émettrices intermédiaires distinctes. Cette étape est suivie de l'étape E104 à laquelle les données relatives au message en cours de traitement sont mémorisées dans le journal de la station, tel que représenté à la figure 5. L'étape E104 comporte la mise à jour du coût. Dans le cas où le coût est le nombre de sauts, ou de segments parcourus, le coût mémorisé est égal au coût lu dans le champ 66 du message, incrémenté de une unité. L'étape E104 est suivie de l'étape E105 qui est un test pour déterminer si la station considérée est la station destinataire intermédiaire du message en cours de traitement. Le test consiste à comparer l'adresse de la station et l'adresse SDT de station destinataire intermédiaire du message. Si la réponse est négative, I'exécution de l'algorithme est terminée. Le message n'est pas retransmis par la station, puisqu'elle n'est pas la station destinataire intermédiaire du message. Si la réponse à l'étape E105 est positive, cela signifie que le message en cours de traitement a d'une part été émis à destination de la station considérée, et que d'autre part il correspond à un message précédemment entendu par la station. Cela signifie que la station considérée peut être atteinte, depuis la station émettrice initiale du message en cours de traitement, par deux chemins distincts. Les chemins sont déterminés notamment par les stations émettrices intermédiaires, dont les adresses SET sont lues dans le journal. Le coût respectif de chacun des chemins est connu. II est donc possible de déterminer le chemin présentant le plus faible coût, ce qui constitue une information de routage. Dans le cas où le coût est le nombre de segments parcourus, le message précédemment entendu par la station sera celui qui a été acheminé selon le chemin présentant le plus faible coût, c'est-à-dire le chemin le plus court. L'étape suivante E106 est l'envoi de l'information de routage déterminée à l'étape E105 vers une application de gestion de réseau. Cette application de gestion peut être intégrée à la station considérée, ou être localisée dans une station spécifique du réseau, ou encore dans une station de traitement ne faisant pas partie du réseau. Dans le dernier cas, la station de traitement peut être fixe, ou peut être reliée par une liaison filaire à l'une des stations du réseau. L'étape E106 est suivie de l'étape E108 qui sera décrite dans la suite. En variante, l'information de routage est également formée et envoyée vers l'application de gestion de réseau, même dans le cas où le message en cours de traitement n'a pas été émis à destination de la station considérée. Les étapes E102 et E103 sont suivies de l'étape E107 qui est identique à l'étape E105 précédemment décrite. L'étape E107 est un test pour déterminer si la station considérée est la station destinataire intermédiaire du message en cours de traitement. Le test consiste à comparer l'adresse de la station et l'adresse SDT de station destinataire intermédiaire du message en cours de traitement. Si la réponse est négative, l'exécution de l'algorithme est terminée. Si la réponse est positive, l'étape E107 est suivie de l'étape E108 qui est l'envoi d'un message d'accusé de réception à destination de la station émettrice intermédiaire du message en cours de traitement. L'étape suivante E109 est un test pour déterminer si la station considérée est la station destinataire finale du message en cours de traitement. Le test consiste à comparer l'adresse de la station et l'adresse SDF de station destinataire finale du message. Si la réponse est positive, l'acheminement du message est terminé, et l'étape E109 est suivie de l'étape E110 qui est la transmission des données contenues dans le champ de données 67 du message vers la couche applicative de la station pour traiter les informations reçues. Si la réponse à l'étape E109 est négative, cette étape est suivie de l'étape El Il qui est la consultation de la table de routage de la station considérée, pour déterminer quelle est la station destinataire intermédiaire vers laquelle la station considérée doit envoyer un message contenant les données à acheminer, en fonction de la station destinataire finale du message. L'étape suivante E112 est la formation d'un message et l'envoi de ce message vers la station destinataire intermédiaire précédemment déterminée, dont l'adresse est écrite dans le champ 64 de ce nouveau message. L'adresse SEI de la station émettrice initiale, L'adresse SDF de station destinataire finale, I'identificateur ID de message et les données proprement dites de ce nouveau message sont recopiés dans les champs correspondants du message en cours de traitement. Le coût CT est mis à jour par la station considérée. L'adresse SET de la station émettrice intermédiaire de ce nouveau message est celle de la station considérée. En référence à nouveau à la figure 1, on suppose que des données sont à émettre depuis la station SMa (station émettrice initiale) à destination de la station SMe (station destinataire finale). Ces données sont mises sous la forme d'un message émis sur le segment "ab", qui va ensuite provoquer l'émission de messages, contenant les mêmes données, successivement sur les segments "bc", "cd" et "de", selon les tables de routage des stations concernées. Les stations SMa, SMb, SMC, SMd sont successivement stations émettrices intermédiaires, et les stations SMb, SMC, SMd et SMe sont successivement stations destinataires intermédiaires. Lorsque la station SMb émet le message à destination de la station SMC, on suppose que la station SMd entend le message et le mémorise dans son journal. Lorsque la station SMC émet à son tour le message vers la station SMd, celle-ci détermine que ce message correspond à un message déjà entendu et mémorisé. La station SMd a ainsi déterminé qu'il existe un chemin plus court entre elle-même et les stations SM a et SMb, ce chemin empruntant le segment "bd". Cette information de routage peut être exploitée par une couche applicative. Par exemple, lors de la mise en place d'un réseau de stations dans des locaux, I'invention permet de déterminer des emplacements préférés des stations, ou du moins de leur partie émission/réception, dans le but de favoriser la fluidité et la rapidité des échanges de données. II est ainsi possible de raccourcir les chemins en en diminuant le nombre de segments, ou encore d'éviter qu'une station donnée soit un point de passage obligé d'un trop grand nombre de chemin. La connaissance des chemins dans le réseau permet par exemple de choisir la disposition d'antennes d'émission/réception, ce qui permet d'optimiser la couverture radio du réseau. Le procédé peut être mis en oeuvre à chaque fois que l'on souhaite vérifier la topologie du réseau. Bien entendu, la présente invention n'est nullement limitée aux modes de réalisation décrits et représentés, mais englobe, bien au contraire, toute variante à la portée de l'homme du métier. Notamment, I'invention s'applique à tout type de réseau distribué comportant des stations mobiles. A titre d'exemple, une constellation de satellites en orbite basse (non géostationnaires) peut constituer un tel réseau. Le routage des communications entre ces satellites peut être analysé par la présente invention REVENDICATIONS 1. Procédé de routage de message entre des stations (SMa-SMe) d'un réseau, caractérisé en ce que chacune des stations effectue les opérations suivantes - mémorisation (ex 04, Ex02) de données concemant chaque message qu'elle entend et comportant au moins un identificateur (ID, SEI) de message, un identificateur (SET) de la station émettrice du message et un coût (CT) de transmission de message, et, après avoir mémorisé les données de deux messages dont les identificateurs (ID, SEI) de message sont identiques et les identificateurs (SET) de station émettrice sont différents, - comparaison des coûts de transmission (CT) des deux messages pour déterminer la station émettrice associée au coût le plus faible. 2. Procédé selon la revendication 1, caractérisé en ce qu'il comporte l'étape (E106) de transmettre l'information de la station émettrice associée au coût le plus faible à une station de traitement. 3. Procédé selon la revendication 1 ou 2, caractérisé en ce que le coût (CT) est le nombre cumulé de tous les messages précédents ayant le même identificateur (ID, SEI) de message que le message considéré. 4. Procédé selon l'une quelconque des revendications 1 à 3, caractérisé en ce que l'identificateur (ID, SEI) de message comporte l'adresse (SEI) de la station émettrice initiale du premier des messages précédents ayant le même identificateur de message que le message considéré. 5. Station de communication d'un réseau, caractérisée en ce qu'elle comporte: - des moyens (20) de mémorisation de données concernant chaque message qu'elle reçoit, ces données comportant au moins un identificateur (ID, SEI) de message, un identificateur (SET) de la station émettrice du message et un coût (CT) de transmission de message, - des moyens (10) de vérification qu'ont été mémorisées les données de deux messages dont les identificateurs (ID, SEI) de message sont identiques et les identificateurs (SET) de station émettrice sont différents, et - des moyens (10) de comparaison des coûts (CT) de transmission de deux messages dont les identificateurs (ID, SEI) de message sont identiques et les identificateurs (SET) de station émettrice sont différents, pour déterminer la station émettrice associée au coût le plus faible. 6. Station selon la revendication 5, caractérisée en ce qu'elle comporte des moyens adaptés à transmettre l'information de la station émettrice associée au coût le plus faible à une station de traitement. 7. Station selon la revendication 5 ou 6, caractérisée en ce qu'elle comporte des moyens adaptés à déterminer le coût (CT) comme le nombre cumulé de tous les messages précédents ayant le même identificateur (ID, SEI) de message que le message considéré. 8. Station de communication d'un réseau, caractérisée en ce qu'elle est adaptée à coopérer avec: - des moyens (20) de mémorisation de données concernant chaque message qu'elle reçoit, ces données comportant au moins un identificateur (ID, SEI) de message, un identificateur (SET) de la station émettrice du message et un coût (CT) de transmission de message, - des moyens (10) de vérification qu'ont été mémorisées les données de deux messages dont les identificateurs (ID, SEI) de message sont identiques et les identificateurs (SET) de station émettrice sont différents, et - des moyens (10) de comparaison des coûts (CT) de transmission de deux messages dont les identificateurs (ID, SEI) de message sont identiques et les identificateurs (SET) de station émettrice sont différents, pour déterminer la station émettrice associée au coût le plus faible. 9. Station selon la revendication 8, caractérisée en ce qu'elle est adaptée à coopérer avec des moyens de transmission de l'information de la station émettrice associée au coût le plus faible à une station de traitement. 10. Station selon la revendication 8 ou 9, caractérisée en ce qu'elle est adaptée à coopérer avec des moyens de détermination du coût (CT) comme le nombre cumulé de tous les messages précédents ayant le même identificateur (ID, SEI) de message que le message considéré.