FR 2954644 A1 20110624 FR 0906215 A 20091221 PROTOCOLE DE ROUTAGE FIABILISE L'objet de l'invention concerne un procédé de routage dynamique ou protocole de routage utilisé dans le domaine des réseaux bas débits 5 fonctionnant dans la gamme 30 MHz û 600 MHz. Le procédé selon l'invention est par exemple utilisé sur des noeuds interconnectant plusieurs réseaux physiques différents, dont certains sont à faible débit et forte latence, comme les réseaux radio VHF (Very High Frequency). 10 Le protocole selon l'invention ou procédé de routage peut être utilisé dans tout réseau de transmission UHF, VHF ou autre. Dans le domaine technique des réseaux de communication l'un des problèmes qui se pose est de trouver des mécanismes d'échanges entre 15 routeurs qui soient à la fois réactifs et économes en bande passante utilisée. La difficulté consiste en effet à établir rapidement la topologie des routeurs, aussi bien en phase d'établissement qu'en phase de modification des composants du réseau (disparition, apparition de routeurs, changement de raccordement réseaux des routeurs), tout en n'inondant pas les réseaux 20 d'échanges protocolaires qui peuvent consommer une partie importante de la bande passante disponible. L'état de l'art connu par le Demandeur à ce sujet concerne notamment des protocoles de routages utilisés sur le protocole Internet (IP en abrégé anglo-saxon) qui sont définis par exemple dans les RFC (Request 25 for Comment) qui sont un ensemble de documents qui font référence auprès de la Communauté Internet et qui décrivent, spécifient, aident à l'implémentation, standardisent et débattent de la majorité des normes, standards, technologies et protocoles liés à Internet et aux réseaux en général. Parmi ces documents, on peut citer les protocoles expérimentaux 30 définis dans le cadre des groupes de travail sur les réseaux mobiles ou Mobile Ad Hoc Networks connus des spécialistes du Domaine, ou encore les protocoles standards utilisés pour des interconnexions de réseaux filaires. Malgré l'efficacité de ces protocoles, les topologies d'interconnexion des réseaux tactiques actuellement connues dans le domaine militaire présentent notamment comme inconvénient de présenter de la redondance des noeuds entre réseaux et de réseaux entre noeuds, ce qui génère une augmentation des échanges protocolaires. Dans le cas des réseaux bas débits (de 1 Kbits/s à quelques dizaines de Kbits/s), les protocoles existants et connus de l'Homme du métier, ne sont pas conçus pour optimiser la réduction de la quantité d'information protocolaire échangée, nécessaire pour un fonctionnement correct des réseaux bas débit. Ces protocoles en général saturent donc la bande passante des réseaux radio VHF et dans une moindre mesure celle des réseaux UHF. De même, la non prise en compte des concepts de réseaux parallèles ou redondants entre noeuds entraîne des phénomènes d'avalanche dans certains protocoles, ce qui provoque un trafic important. Les protocoles évoqués ci-dessus ne permettent donc pas de réaliser une économie de bande passante. D'autre part, le risque d'un fort taux de pertes de paquets potentiels n'est pas pris en compte par les protocoles existants. Ces protocoles ne permettent donc pas d'obtenir une convergence rapide tout en échangeant une faible quantité d'informations. Pour la description de l'invention les définitions suivantes seront utilisées : Forme d'onde : Ensemble constitué d'une couche logique et physique permettant d'envoyer des informations à distance, sans fil. Cela inclut le codage des informations sur la voie radio ainsi que les protocoles d'accès au média et éventuellement les protocoles de routage internes. 3 2954644 Média filaire Ensemble constitué d'une couche logique et physique permettant d'envoyer des informations à distance, avec fil. Média physique : Terme générique désignant une forme d'onde ou un 5 média filaire. Réseau de transmission : Couple (média physique, éléments de configuration) permettant à tous les possesseurs d'un couple donné de communiquer potentiellement entre eux. Un tel 10 possesseur est appelé membre du réseau. Réseau élémentaire : Ensemble de membres d'un réseau de transmission qui sont connexes à un instant t. FORWARDER : Fonction ayant pour rôle de relayer des données entre des 15 applications locales et des réseaux élémentaires, et entre des réseaux élémentaires. Le « forwarder » est chargé de trouver le prochain NIR ou l'application locale vers lequel envoyer les données ; la tâche associée est appelée « forwarding », 20 NIR : Noeud d'Interconnexion Réseau. Désigne toute entité fonctionnelle assurant les fonctions nécessaires à la transmission de données de et vers un ou plusieurs réseaux élémentaires. Accès au réseau de transmission (ART): qui est chargé de transmettre sur 25 un média physique les données vers le prochain NIR. Couche d'adaptation chargée de compléter les services offerts par le média physique, et/ou de réaliser les adaptions fonctionnelles entres les services requis par le FORWARDER et ceux offerts par le média physique. Un ART permet au noeud NIR d'envoyer/recevoir des données sur/depuis le réseau physique correspondant. Voisinage (d'un NIR N) Ensemble des NIR qui sont joignables par N en traversant un et un seul réseau élémentaire. Sig_Neighborhood : Message de signalisation de FIRE qui contient principalement le Voisinage d'un NIR. Relais de Sig_Neighboorhood (RSN) : NIR qui doit relayer des Sig_Neighborhood entre certains de ses voisins. Le protocole de routage selon l'invention repose notamment sur quatre principes 1) la récupération des topologies média, 2) une diffusion fiabilisée, 3) une gestion de noeuds destinataires et non d'interfaces de sortie, 4) une émission pertinente d'information (non émission d'information connue par les noeuds voisins). Ces principes seront explicités plus loin dans la description. On utilisera pour désigner un même objet, à savoir le procédé de routage fiabilisé selon l'invention, le mot procédé ou l'expression « protocole FIRE », ou encore « protocole ». L'invention concerne un procédé de routage fiabilisé au sein d'un système comprenant un ou plusieurs réseaux composés de plusieurs noeuds reliés entre eux par des moyens de communication, ledit système comprenant un accès au réseau de transmission ou ART chargé de transmettre sur un média physique les données vers un prochain noeud d'interconnexion réseau NIR, ledit système utilisant un protocole de routage à états de liens construisant la topologie des noeuds au sein d'un système de noeuds caractérisé en ce que ledit procédé de routage détermine la topologie logique de noeuds d'interconnexion réseau NIR en utilisant en combinaison les modules suivants : 2954644 (11) Module 11 NIR TOPO_01 : Découverte du Voisinage grâce aux fonctions intrinsèques des réseaux physiques Module 12 : NIR TOPO_02 figure 5 : Lissage des informations fournies par les ART pour améliorer la stabilité du protocole 5 (13) Module 13 : NIR_TOPO_03 : principe de distribution des voisinages vers l'ensemble des NIR (14) Module 14 : NIR TOPO_04 : Relayage des informations associées à un noeud (voisins, liens et leurs caractéristiques) Sig_Neighborhoods par un sous-ensemble des noeuds NIR (relais de Sig_Neighborhoods) 10 (15) Module 15 NIR TOPO_05: Fiabilisation bond par bond de la transmission des Sig_Neighborhoods entre les différents noeuds (16) Module 16 NIR TOPO_06 : Transmission des Sig_Neighborhoods en point-à-multipoint (17) Module 17 NIR TOPO_07 : Annonce des caractéristiques orientées 15 des liens logiques uniquement par les routeurs source des liens (18) Module 18 NIR TOPO_08 : Marquage des données de signalisation pour gérer le non-séquencement en réception (19) Module 19 : NIR TOPO_09 : calcul de la topologie globale 20 D'autres caractéristiques et avantages du procédé selon l'invention apparaîtront mieux à la lecture de la description qui suit d'un exemple de réalisation donné à titre illustratif et nullement limitatif, annexé des figures qui représentent : • La figure 1 un exemple de lien entre la fonction de topologie radio 25 fiabilisée ou FIRE selon l'invention et les données de transmission (forwarding), • La figure 2, un exemple des données utilisées pour calculer la topologie des noeuds d'interconnexion réseau, • La figure 3, un exemple d'architecture fonctionnelle du procédé selon 30 l'invention, • La figure 4, la description du mécanisme de découverte du voisinage, 6 2954644 • La figure 5, la représentation du mécanisme de lissage des informations fournies par les ART, • La figure 6, un exemple de distribution des paramètres associés à un noeud NIR, 5 • La figure 7, un exemple de topologie avec deux réseaux reliés par un RSN, • La figure 8, une reconstitution d'un ensemble de paramètres associés à un noeud NIR à partir de paramètres transmis par les noeuds du réseau, 10 • La figure 9, un exemple de noeud non RSN, • La figure 10, un exemple de noeud potentiellement RSN, • La figure 11, un mécanisme de détection des RSN potentiels et auto-élection d'un RSN, • La figure 12, un exemple de relayage de Sig_Neighborhood, 15 • La figure 13, un exemple de format d'une table des voisins pour un noeud, et • La figure 14, un exemple de tables des signalisations de voisinage. Avant d'expliciter un exemple de mise en oeuvre du procédé de 20 routage dynamique fiabilisé selon l'invention désignée FIRE quelques rappels et hypothèses de travail sont listés : Hypothèse préliminaires HYP TOPO1 : Le choix de la meilleure route entre une source 'S' et une destination 'D' pour un paquet de donnée 'P' dépend de plusieurs critères. NB. Ces critères sont appelés par la suite 'critères de routage'. HYP TOPO 2 : Pour une route entre une source 'S' et une destination `D' pour un paquet de donnée `P', la valeur de chaque critère peut dépendre 25 30 - de la nature et de l'état des liens traversés (un lien est une liaison logique entre 2 noeuds), - des caractéristiques et de l'état des noeuds relais traversés, - des paramètres caractérisant les paquets de données à acheminer. Les routes dépendant de nombreux critères (HYP TOPO_1), il existe un très grand nombre de routes possibles, chacune étant la 'meilleure' pour un paquet ayant des caractéristiques données. La solution retenue pour le protocole selon l'invention est d'utiliser un protocole de routage à états de liens, qui construit la topologie des noeuds ; la meilleure route pour les paquets de données étant ensuite calculée localement sur chacun des noeuds. Le procédé selon l'invention ou FIRE va calculer la topologie logique des noeuds NIR au sein d'un système de noeuds NIR. Dans cette topologie logique des noeuds NIR, deux noeuds NIR A et B sont reliés directement entre eux, s'il existe un réseau élémentaire auquel le noeud A et le noeud B appartiennent, indépendamment du nombre de bonds physiques entre A et B au sein du réseau élémentaire. Cette topologie doit avoir les caractéristiques suivantes (HYP__TOPO_2): la topologie doit être représentée sous la forme d'un graphe de noeuds NIR reliés par des liens symétriques (pour la transmission) chaque noeud du graphe possède : o un identifiant, o l'état de silence radio, o capacité de transit (peut être dépendant de l'alimentation en énergie, du souhait de privilégier les flux locaux, de règles statiques, ...), o une liste des services relayables par le noeud, chaque lien du graphe possède : o un identifiant unique localement, 8 2954644 o des paramètres dépendant de la classe du réseau de transmission (une classe regroupe un ensemble de valeurs des paramètres du réseau, valeurs fixées par configuration) * une liste des services supportés, ^ taille maximale absolue des données supportée, ^ taille maximale recommandée des données supportée, ^ la liste des niveaux de sécurité autorisés, ^ une liste des types de contenu (content_type) autorisés nominalement, ^ une liste des types de contenu autorisés en route de secours, o des paramètres dépendant des informations remontées par l'Accès au Réseau de Transmission (ART) ^ débit du lien entre la source et l'extrémité du lien 15 (information dépendant du sens du lien), ^ temps d'accès moyen, ^ état du lien en termes de transmission : fiable, instable, inconnu. Ces caractéristiques seront utilisées comme critères de routage. 20 La figure 1 schématise les liens entre la fonction de topologie radio fiabilisée selon l'invention et les données de Forwarding. Pour calculer la topologie des NIR, FIRE s'appuie sur 2 types de données comme il est représenté à la figure 2 : - les données échangées avec les autres entités FIRE, 25 - les informations reçues des Accès aux Réseaux de Transmission. Rappels des principes d'un protocole à états de liens Les protocoles dits à « états de liens » permettent d'établir une topologie de routeurs (ou NIR, selon la terminologie employée), chaque routeur faisant tourner une instance du protocole. Le fonctionnement des 30 protocoles de routage inter-réseau à état de liens peut se résumer aux mécanismes principaux suivants : 5 10 9 2954644 P1 - découverte du Voisinage chaque routeur découvre, sur chaque réseau sur lequel il est interconnecté, ses voisins avec qui il a une liaison symétrique (il reçoit des données d'un voisin et ce voisin reçoit ses données). Pour un réseau donné, l'ensemble des voisins 5 accessibles par ce réseau est noté « voisinage réseau ». L'ensemble des voisinages réseaux d'un routeur est appelé Voisinage. P2 - communication du Voisinage : chaque routeur communique à l'ensemble des autres routeurs ses voisinages. NB. Dans certains cas, seul un sous-ensemble des routeurs communiquent leur voisinage. 10 P3 - calcul de la topologie globale : chaque routeur, à partir des différents voisinages reçus, construit la topologie globale. A ces mécanismes principaux se rajoutent des mécanismes secondaires ayant pour objectif de : SI - fiabiliser la découverte du voisinage, 15 S2 - fiabiliser les communications des voisinages, S3 - traiter le non-séquencement en réception des voisinages reçus (et par exemple ne pas écraser une information récente avec une information obsolète). Permet de gérer les redémarrages (« reboot ») de machines et les retards de transmission dans le 20 système. La définition et les réglages des mécanismes principaux et secondaires est faite pour optimiser deux critères contradictoires : Cl : la bande passante consommée par les échanges du protocole de routage, 25 C2 : la réactivité du protocole (convergence initiale, mise à jour suite à un changement de la topologie des routeurs). Tout en respectant un 3e critère : C3 : une planification minimale (peu de données de configuration). Un des objectifs du protocole est d'avoir une grande réactivité 30 avec une faible bande passante consommée. Ce qu'on peut traduire par un rapport C2/CI élevé, tout en respectant C3. 10 2954644 Liste des principaux mécanismes de la fonction de topologie radio fiabilisée (FIRE) mise en oeuvre dans le procédé selon l'invention Les paragraphes suivants vont présenter les mécanismes retenus pour la fonction d'établissement de la topologie des NIR. Ils sont identifiés 5 par un préfixe 'FIRE_' suivi d'un numéro à 2 chiffres (ex : FIRE_04). Les exigences sur un mécanisme sont notées FIRE_XX/YYY où YYY est le numéro d'exigence, habituellement incrémenté de 10 en 10, ceci n'étant qu'un exemple non limitatif. Ces mécanismes sont au nombre de 9 : 10 11 : Module 11 NIR_TOPO_01 : Découverte du Voisinage grâce aux fonctions intrinsèques des réseaux physiques Module 12 : NIR_TOPO_02 figure 5 : Lissage des informations fournies par les ART pour améliorer la stabilité du protocole 13: Module 13: NIR_TOPO_03: principe de distribution des voisinages 15 vers l'ensemble des NIR 14 : Module 14 : NIR TOPO_04 : Relayage des Sig_Neighborhoods par un sous-ensemble des noeuds NIR (relais de Sig_Neighborhoods) 15: Module 15 NIR_TOPO_05: Fiabilisation bond par bond de la transmission des Sig_Neighborhoods 20 16 : Module 16 NIR_TOPO_06 : Transmission des Sig_Neighborhoods en point-à-multipoint 17 : Module 17 NIR TOPO_07 : Annonce des caractéristiques orientées des liens logiques uniquement par les routeurs source des liens 18: Module 18 NIR_TOPO 08 : Marquage des données de signalisation 25 pour gérer le non-séquencement en réception 19 : Module 19 : NIR TOPO_09 : calcul de la topologie globale Les mécanismes interagissent entre eux selon les mécanismes décrits sur la figure 3, ces mécanismes étant détaillés au fur et à mesure dans la description. 30 Découverte du Voisinage figure 4 11 2954644 Module 11 NIR_TOPO_01: Découverte du Voisinage grâce aux fonctions intrinsèques des réseaux physiques Le module de transmission ou « FORWARDER » d'un noeud NIR interconnecte des réseaux physiques. Les technologies de ces réseaux 5 physiques étant de nature très différente (débit, délais, pertes, ...), le FORWARDER s'appuie sur les réseaux de transmission pour calculer ses informations de voisinage, ce qu'explicite l'exigence ci-après. NIR_TOPO_01/010 Chaque accès à un Réseau de Transmission ART du noeud NIR 10 doit fournir au protocole selon l'invention, la topologie du réseau élémentaire dont il fait partie. Cette topologie doit contenir la description d'un graphe de noeuds ayant les propriétés suivantes : • Chaque noeud représente un NIR ou un relais de transmission • Chaque lien est un lien symétrique, au sens de la possibilité de 15 transmission. Pour un noeud donné, chaque extrémité du lien doit pouvoir transmettre vers l'autre lien. La fonction de résolution d'adresse NIR en adresse liaison et la fonction réciproque étant assurées par l'ART, la topologie fournie contient des adresses de noeuds NIR et non pas des adresses liaisons (propres au 20 réseau de transmission). Un noeud du graphe du réseau élémentaire n'a pas d'adresse NIR quand ce noeud représente un relais de transmission sans fonction noeud. NIR TOPO 01/010 suffit à connaître les NIR voisins (au sens logique) et le nombre de bonds physiques au sein du réseau de transmission entre 2 NIR. 25 Cependant, un complément d'information est souhaitable pour correctement estimer la qualité de la liaison réseau entre 2 NIR. NIR TOPO 01/020 Lorsque l'ART fournit une topologie de réseau élémentaire à FIRE, il doit fournir, si la technologie du réseau de transmission le permet, les 30 informations complémentaires suivantes : 12 2954644 • Débit de chaque lien, avec orientation du lien en cas de débits non symétriques, • Temps d'accès moyen au canal physique de chaque lien, • Qualité de chaque lien bonne, moyenne, mauvaise, déduite, par 5 exemple des informations fournies par le modem situé dans le Média Physique, donc en-dessous de l'ART. Module 12 : NIR_TOPO_02 figure 5 : Lissage des informations fournies par les ART pour améliorer la stabilité du protocole Pour économiser la bande passante consommée par la 10 signalisation de topologie entre NIR sur les réseaux de transmission radio, les envois de données de signalisation ne peuvent pas être trop fréquents. De fait, il n'est pas souhaitable (ni même intéressant) d'annoncer aux autres NIR 'en temps réel' les changements des caractéristiques des liens ou de topologie interne fournis par un ART. 15 Les informations fournies par les ART doivent donc être traitées avant d'être répercutées vers les autres noeuds, afin d'assurer une certaine stabilité des informations envoyées et de la topologie résultante. Le premier traitement concerne les caractéristiques des liens entre noeuds : NIR_TOPO_02/010 20 Selon les caractéristiques dynamiques des réseaux de transmission, le protocole selon l'invention FIRE doit lisser certaines variations des caractéristiques des liens avant de les inclure dans le voisinage diffusé aux autres noeuds. Le deuxième traitement concerne la topologie interne des réseaux : 25 NIR_TOPO_021020 Pour gérer les réseaux maillés et lisser l'évolution de leur topologie, le protocole selon l'invention va classer les nombres de bonds en 3 catégories (proche, médian, lointain) avec une hystérisis pour entrer et sortir de chaque catégorie en fonction du nombre de bonds réels. Cette 30 catégorisation dépend du type de service à faire transiter par le réseau de transmission. 13 2954644 Enfin, afin que les voisinages puissent être envoyés aux NIR voisins « nominativement », FIRE doit mettre à jour et fournir la topologie à 1 bond au FORWARDER. NIR_TOPO_02/030 5 Sur réception d'une topologie d'un réseau élémentaire, et une fois l'opération de lissage effectuée (NIR_TOPO_02/020), le procédé selon l'invention va sauvegarder la topologie lissée dans une table Local_Topologie_Table, 20 figure 3. Quand Local_Topologies_Table est modifiée, alors la fonction de 10 construction du graphe recalcule le graphe et met ensuite à jour la topologie des NIR. Module 13 :NIR_TOPO_03 figures 6, 7, 8 Principe de distribution des Voisinages vers l'ensemble des NIR Pour que chaque NIR puisse construire la topologie complète du 15 réseau, il est nécessaire et suffisant de connaître l'ensemble des voisins de chaque NIR et les caractéristiques des liens entre chaque NIR et ses voisins. Le principe de base est donc que chaque NIR annonce à tous les autres NIR ces données (voisins, liens et leurs caractéristiques), qui sera dénommé Sig_Neighborhood. 20 Pour optimiser cette diffusion : chaque NIR envoie son Sig_Neighborhood vers ses voisins, nominativement (et non par inondation sur les interfaces locales), cet envoi est réalisé de manière optimisée, en enlevant les informations connues des récepteurs, 25 chaque NIR reconstitue les Sig_Neighborhood complets en réception, un sous-graphe de relais est établi et seuls ces relais sont en charge de redistribuer les Sig_Neighborhoods reçus vers les autres NIR, la fiabilisation de tous ces envois ne se fait pas par répétition systématique, mais par acquittements et retransmission, effectués par 30 les protocoles des couches inférieures (FORWARDER, ART, ...) 14 2954644 lors de la distribution d'un Sig_Neighborhood vers des NIR sur un réseau élémentaire, un seul envoi point-à-multipoint est demandé au FORWARDER, à la place de multiples envois point-à-point, les caractéristiques dépendantes du sens du lien ne sont annoncées 5 que par le NIR source du lien orienté. NIR_TOPO_03a : Envoi optimisé des Sig_Neighborhoods aux voisins N I R_TOPO_03/010 Sur chaque nouvelle topologie de réseau élémentaire reçue, le protocole selon l'invention FIRE doit construire l'ensemble des éléments 10 suivants, appelés Sig_Neighborhood : • Les propriétés non planifiées du noeud NIR local, s'il en existe (capacité de transit, services pouvant être relayés, ..) • La liste des NIR voisins accessibles par tout réseau élémentaire RE, pour chaque NIR voisin, NIR(RE) 15 L'identification du réseau de transmission dont fait partie RE (i.e par lequel le NIR voisin est accessible, il existe une identification globale de chaque réseau de transmission. • Les propriétés du NIR voisin non planifiées, s'il en existe, • Les propriétés non planifiées du lien vers ce voisin, s'il en 20 existe (ex : débit, qualité du lien en terme de transmission) • Le CRC calculé sur les valeurs précédentes • Le numéro de séquence de ce Sig_Neighborhood, calculé selon les exigences NIR TOPO_08/xxx. Ensuite si first_new_topology=TRUE alors FIRE doit armer 25 max waiting_for new network_topology__timer (au démarrage de FIRE, first_new_topology doit être initialisé à TRUE). Ce timer correspond au temps d'attente maximum de nouvelles topologies de réseaux élémentaires provenant des ART, une fois la première topologie reçue; il a pour objectif d'éviter la transmission de trop nombreux Sig_Neighborhoods lors des 30 phases d'instabilité. 15 2954644 Puis le protocole FIRE doit réarmer le timer waiting_for new network topology_timer. Ce timer correspond au temps d'attente d'une nouvelle topologie d'un réseau élémentaire; étant systématiquement réarmé, c'est le timer 5 max waiting_for new_network_topology_timer qui évite une attente perpétuelle ; et enfin Le protocole FIRE doit passer first_new_topology à FALSE. Cette variable d'état est utilisée pour ne lancer le timer max_waiting_fornew network top000gy timer qu'à la réception de la 10 première nouvelle topologie d'une « salve ». Par exemple, un réseau radio VHF ou UHF est intrinsèquement identifié par les paramètres qui permettent à ses membres de communiquer (clés, fréquence, ...). Le regroupement de ces paramètres en un identifiant unique court (1 à 2 octets) permet de diffuser les propriétés intrinsèques du 15 réseau, en consommant moins de bande passante que si l'on diffusait la liste exhaustive des valeurs de ses paramètres. En revanche, l'appartenance des NIR à un réseau est diffusée et non connue par planification. Elle n'est pas utilisée pour en déduire des informations de connectivité mais pour des informations de caractérisations des liens (utilisées pour le routage multi- 20 critères). De fait, la scission des réseaux de transmission en plusieurs réseaux élémentaires n'a pas d'impact sur le fonctionnement du protocole de routage. L'objectif des timers présents dans NIR TOPO_010 est d'éviter de transmettre des informations immédiatement après indication d'une nouvelle 25 topologie d'un réseau de transmission. C'est particulièrement utile lors des phases de démarrage, d'arrivée dans un nouveau réseau, etc. lorsque les topologies des réseaux de transmission changent rapidement. Après réception d'un changement de topologie suivant un état stable, au maximum à la fin du timer global max_waiting_fornew _network_ topology_timer, le 30 Sig_Neighborhood est envoyé. 16 2954644 Le CRC contenu dans un Sig_Neighborhood permet aux voisins recevant celui-ci de vérifier que la reconstruction du Sig_Neighborhood est conforme au Sig_Neighborhood initial. NIR TOPO 03/020 : 5 Sur expiration de max_waiting_for new_networktopology timer ou de waiting for_new_network_topology_timer, le protocole FIRE doit fournir Sig_Neighborhood à la fonction de construction des Sig_Neighborhood_Transmitted définie par NIR TOPO 03/030, et positionner first_new_topology à TRUE. 10 L'exigence NIR TOPO_03/010 construit tout le voisinage d'un noeud N, indépendamment du voisin destinataire. Or, pour un voisin Ni donné, ce voisinage contient des informations que Ni connait déjà, comme les liens N Ni. Pour éviter de transmettre de l'information non pertinente sur les réseaux, FIRE calcule pour chaque voisin Ni un Sig_Neighborhood allégé, 15 noté Sig_Neighborhood_Transmitted[Ni]. NIR_TOPO_03/030, figure 6: Quand le protocole FIRE envoie un Sig_Neighborhood local (module 13a figure 3) vers des voisins Ni, il doit déterminer quelles sont les informations de ce Sig_Neighborhood déjà connues par chaque voisin Ni 20 (ex : connectivité via radio, mesure des débits). Il doit ensuite les retrancher de Sig_Neighborhood pour former un Sig_Neighborhood allégé noté Sig_Neighborhood_Transmitted[Ni]. FIRE doit ensuite envoyer les Sig_Neighborhood_Transmitted[Ni] selon l'exigence NIR_TOPO_06/010 décrite ci-après. 25 Ces traitements permettent de diminuer la taille de Sig_Neighborhood transmis vers chaque voisin. Comme le numéro de séquence n'est connu que du noeud local, il faut nécessairement l'envoyer. Au minimum, un Sig_Neighborhood_Transmitted[Ni] est réduit au numéro de séquence. Il faut noter que Sig_Neighborhood_Transmitted est généralement différent selon le 30 voisin vers lequel Sig_Neighborhood devait être envoyé. 17 2954644 Par exemple, pour un ensemble de noeuds connectés uniquement à un seul réseau élémentaire RE, chaque noeud n'ayant pas de caractéristiques dynamiques : Sig_Neighborhood se résume au numéro de séquence et aux informations remontées par l'ART de RE, et 5 Sig_Neighborhood_Transmitted comprend uniquement le numéro de séquence (uniquement connu de l'émetteur) et la valeur du CRC (calculé sur les informations initiales, et qui permet au récepteur de s'assurer que la reconstitution qu'il fait est conforme à l'origine). Cette optimisation permet de diminuer drastiquement la quantité 10 de trafic protocolaire dans le cas des liens redondants entre NIR, qui peuvent être créés soit par réseaux redondants entre noeuds, soit par des noeuds redondants entre réseaux. Option permettant de ne pas envoyer certains Sig_Neighborhood_Transmitted, figure 7 15 Tant que le Sig_Neighborhood_Transmitted se résume au couple (numéro de séquence, CRC), on n'est pas obligé de l'envoyer (i.e. si aucun Sig_Neighborhood_Transmitted n'a jamais été envoyé précédemment). II est évident que le voisin ne recevant aucun Sig_Neighborhood, il ne pourra rien relayer même s'il est RSN pour nous. 20 La topologie reconstituée est incomplète, puisqu'il manque les liens contenus dans les Sig_Neighborhood_Transmitted qui n'ont jamais été transmis. Cependant ces liens 'non transmis' n'ont qu'un intérêt local. Les noeuds distants, qui auront une topologie incomplète, n'ont pas besoin de ces liens pour calculer la meilleure route quels que soient les critères 25 retenus. Par exemple, supposons qu'un réseau élémentaire RE1 comprenne 4 noeuds (1, 2, 3 et 4), tous en portée les uns des autres. Ce réseau élémentaire est connecté à d'autres réseaux via le noeud 4 et uniquement par lui. Les noeuds 1, 2 et 3 ne transmettent alors aucun 30 Sig_Neighborhood_Transmitted. Le noeud 4 transmet aux autres noeuds (5 et plus) ses liens avec 1, 2 et 3 : (1,4), (2,4), (3,4). Les noeuds 5+ n'auront 18 2954644 donc jamais connaissance de l'existence des liens (1,2), (1,3), (2,3). Cependant, pour joindre 1, 2 ou 3, un noeud 5+ passera par 4 et n'aura donc jamais besoin de ces liens. Dans l'exemple donné, ce sont uniquement les liens logiques qui 5 sont considérés, la topologie physique du réseau RE1 n'est pas considérée : ainsi, il est tout à fait possible que le chemin physique entre 4 et 1 passe par 2. Physiquement, la topologie correspond à (4->2->1), mais logiquement, du point de vue « inter réseau élémentaire », la topologie est (4->I ). NIR_TOPO_03b : Reconstitution des Sig_Neighborhood en réception 10 NIR TOPO 03/040 : Quand le protocole FIRE reçoit un Sig_Neighborhood (N), et que N n'est pas un voisin du noeud local, il doit stocker le Sig_Neighborhood reçu dans la table Distant_Neighborhood_Table. NIR TOPO 03/050 figure 8: 15 Quand FIRE reçoit un Sig_Neighborhood (N), et que N est un voisin du noeud local (=> Sig_Neighborhood reçu est en fait un Sig_NeighborhoodTransmitted) FIRE doit reconstituer le Sig_Neighborhood(N) à partir du Sig_NeighborhoodTransmitted reçu et des topologies des réseaux 20 élémentaires. Ensuite, FIRE doit calculer la valeur du CRC sur le Sig_Neighborhood reconstitué. Si ce CRC est différent du CRC contenu dans Sig_NeighborhoodTransmitted, (*) 25 o Alors, le protocole fiabilisé FIRE doit stocker le Sig_Neighborhood_Transmitted(N) dans la table Neighborhood_Rebuilding_Table 22, figure 3 (en remplaçant le Sig_Neighborhood_Transmitted(N) déjà présent dans la table si nécessaire), 30 o Sinon, FIRE doit stocker le Sig_Neighborhood(N) reconstitué dans la table Distant_Neighborhood_Table et s'il existe un 19 2954644 Sig_Neighborhood_Transmitted(N) dans la table Neighborhood_Rebuilding_Table, 21 figure 3, l'effacer. La reconstruction des Sig_Neighborhood dès la réception des Sig_Neighborhood_Transmitted permet au coeur de FIRE de ne manipuler 5 que des Sig_Neighborhoods complets. (*) Quand le CRC d'un Sig_Neighborhood(A) reconstruit par un noeud B ne correspond pas au Sig_Neighborhood(A) initial, il s'agit d'une incohérence entre les topologies réseaux fournies par les ART au noeud A et celles fournies au noeud B. Pour un réseau donné, deux cas peuvent conduire à 10 cette incohérence : B a une version de la topologie plus juste que celle de A (la topologie réelle n'a pas encore convergé au niveau de A). Le Sig_Neighborhood(A) reconstitué par B est différent (car plus proche de la réalité) que le Sig_Neighborhood(A) initial. Dans ce cas, quand 15 l'ART fournira à A la topologie réelle complète, alors A réémettra un nouveau Sig_Neighborhood, avec un nouveau CRC. Cette fois-ci, le CRC reçu par B sera cohérent avec le CRC reconstitué. Le problème est réglé grâce aux mises à jour du Sig_Neighborhood émises par A. - B a une version de la topologie moins juste que celle de A (la 20 topologie réelle n'a pas encore convergé au niveau de B). Le Sig_Neighborhood(A) reconstitué par B est différent (car plus éloigné de la réalité) que le Sig_Neighborhood(A) initial. Si la topologie du réseau n'évolue pas, A ne retransmettra pas d'autre Sig_Neighborhood. Il faut donc gérer le problème au niveau de B. A 25 chaque mise à jour de la topologie fournie par l'ART, B reconstitue un nouveau Sig_Neighborhood et recalcule le CRC correspondant. Quand le GRC calculé correspond au CRC reçu initialement, alors B a retrouvé le Sig_Neighborhood(A) initial. II le sauve alors dans Distant__Neighborhood_Table et supprime le 30 Sig_Neighborhood_Transmitted stocké dans Neighborhood_Rebuilding_Table. 20 2954644 NIR TOPO 03/060 : A chaque réception d'une nouvelle topologie de réseau élémentaire en provenance d'une ART, FIRE doit, pour chaque Sig_Neighborhood Transmitted présent dans la table 5 Neighborhood_Rebuilding_Table : reconstruire le Sig_Neighborhood en prenant en compte les données de la nouvelle topologie de réseau élémentaire, calculer le CRC sur le Sig_Neighborhood reconstitué, si ce CRC est égal au CRC contenu dans le 10 Sig_NeighborhoodTransmitted, o Alors, FIRE doit stocker le Sig_Neighborhood(N) reconstitué dans la table Distant Neighborhood Table et l'effacer de la table Neighborhood_Rebuilding_Table, o Sinon, ne rien faire. 15 Module 14 NIR_TOPO_04 figures 9, 10: Relayage des Sig_Neighborhoods par un sous-ensemble des noeuds NIR (Relais de Sig_Neighborhoods) Election des Relais de Sig_Neighborhood ù Principes. Les Sig_Neighborhood émis par chaque noeud doivent être 20 acheminés vers tous les NIR, afin que chaque NIR puisse calculer la topologie du réseau. Ils doivent être donc relayés. Pour limiter le nombre de relayages superflus (i.e. 2 stations relayent le même voisinage vers les mêmes destinataires), seul un sous-ensemble de NIR relaye les Sig_Neighborhood. Ces NIR sont appelés Relais de Sig_Neighborhood (en 25 abrégé : RSN, Relay of Sig_Neighborhood)). L'élection des RSN se fait par auto-désignation, ce qui a l'avantage de ne pas nécessiter d'échanges supplémentaires sur les réseaux. L'objectif de mécanisme d'élection des RSN est de calculer un graphe de distribution (GD) 30 - permettant de couvrir le graphe d'origine (GO), GO étant le graphe des NIR, 21 2954644 - le graphe GD ayant un nombre de noeuds inférieur à GO. Un tel graphe de distribution GD est un sous-graphe de GO tel que, quelle que soit une source appartenant au graphe d'origine GO, une information émise par cette source peut être distribuée vers tous les autres noeuds de 5 GO en étant relayée uniquement par des noeuds de GD. Remarques sur l'optimisation du graphe de distribution : L'établissement d'un tel graphe de distribution est similaire au problème dit de « l'arbre couvrant de poids minimal », qui est un problème np-complet (i.e. il n'existe pas d'algorithme dont le temps de 10 calcul est un polynôme du nombre de noeuds & liens.). Donc même sur une topologie connue, le graphe GD ayant un nombre de noeuds minimal n'est pas calculable en pratique (en temps limité sur un routeur). Tout mécanisme on-line de calcul d'un graphe de distribution aboutit donc à un graphe sous-optimal. 15 L'objectif du graphe de distribution étant de distribuer les voisinages pour établir le graphe des NIR, le graphe de distribution ne peut évidemment pas être construit à partir du graphe complet. Il est construit avec les seules informations connues par les noeuds avant l'élection des RSN, à savoir les Sig_Neighborhoods des noeuds 20 voisins. Cette connaissance limitée ne permet pas d'aller extrêmement loin vers la solution optimale. Même si le critère du nombre de relais minimal semble être celui à optimiser, d'autres critères sont également intéressants dans le cas du protocole selon l'invention : diffuser au plus vite l'information pour 25 accélérer la convergence du calcul de topologie, éviter les graphes de diffusion sans route alternative entre deux noeuds éloignés, etc. Compte tenu des remarques précédentes et de la difficulté à concevoir un mécanisme de construction de graphe de distribution qui vise une optimalité incertaine, l'approche retenue a été de simplifier sa conception. Le 30 mécanisme retenu pour l'élection des RSN a donc été élaboré en fonction des hypothèses suivantes : 22 2954644 HYPO RSN_01 : Tous les liens sont considérés comme équivalents pour la construction du graphe de distribution. HYPO_RSN_02 Le mécanisme se fonde sur une auto-élection à partir des voisinages reçus (pas de signalisation supplémentaire pour 5 l'élection des RSN). HYPO_RSN_03: Dès qu'un RSN est établi, il reste RSN tant que la topologie locale ne varie pas. Au fur et à mesure que la topologie complète est découverte, il pourrait être tentant de raffiner le graphe des RSN. Cependant, cela 10 nécessiterait d'une part des échanges complémentaires entre NIR sur les réseaux, et d'autre part les Sig_Neighborhoods n'étant relayés qu'une seule fois et en mode fiabilisé, le changement de statut de RSN en non-RSN pourrait aboutir à des incohérences de distribution. Pour construire le graphe des RSN, on part de la propriété 15 intrinsèque d'un Relais de Sig_Neighborhood : Un Relais de Sig_Neighborhood permet de faire une mise en relation entre deux noeuds qui ne se voient pas directement entre eux. Donc, pour qu'un noeud puisse être RSN, il doit savoir que deux de ses voisins ne se voient pas. La réception des Sig_Neighborhoods de ses 20 voisins suffit à établir cette connaissance, comme le montrent les exemples ci-dessous en relation aux figures 9 et 10 NIR_TOPO_04/010 figures 9, 10 : Un noeud N est RSN potentiel pour un couple de noeuds (A, B), n°(A) Par définition, les couples à considérer sont les éléments de C. 25 Soit c E C. Par définition des Cn et de Rc, nous avons : Rc = {noeuds n, tq c E Cn}. R URe Notons R, l'union des Rc, pour tous les couples c de C : cec 27 2954644 Etape 4 La quatrième et dernière étape consiste à déterminer l'ensemble des couples pour lesquels le noeud local (noeud a) est relais. Affectation d'un poids à chaque RSN potentiel 5 Pour chaque noeud n E L : - Associer un poids à n, poids égal au nombre de couples pour lesquels n est relais potentiel. p(n) : L _* N n ù+ Nombre de Ri { R, tels que n E Ri 10 La fonction de poids présentée ci-dessus n'est qu'un exemple. L'algorithme peut être adapté à l'aide d'autres fonctions de poids, tant qu'elles répondent au critère suivant : la fonction de poids doit permettre de trier les noeuds de la même manière, quel que soit le noeud de la topologie locale sur lequel le 15 calcul est effectué. Un exemple d'une telle fonction de poids : p(n) = n. Calcul des couples pour lesquels le noeud local est relais L'ensemble des couples pour lesquels le noeud local 'a' est RSN est constitué des couples 'c' tels que 'a' est relais potentiel de 'c' (a e Rc) et 20 que le poids de 'a' est le plus élevé par rapport aux poids des autres noeuds relais potentiels du couple 'c'. En cas d'égalité de poids avec d'autres relais potentiels, 'a' est RSN de 'c' si et seulement si 'a' possède le plus petit numéro de noeud parmi l'ensemble des relais potentiels de 'c' de poids maximum. 25 Soit C_RSN(a), l'ensemble des couples pour lesquels 'a' est RSN. C_RSN(a) est calculé de la manière suivante Pour chaque couple c de C pour lequel a e Rc: Soit Rc_PM l'ensemble des noeuds de Rc dont le poids est maximal. Rc_PM = {i E Rc, tel que p(i) p(j), quel que soit j E 30 Rc} 28 2954644 Soit nm le noeud de plus petit numéro qui appartienne à Rc_PM (il en existe un et un seul). o Le noeud 'a' est RSN de 'c' si est seulement si = ~z . Ce qu'on peut traduire en: 5 c E CRS ()SSi far = a On obtient ainsi l'ensemble des couples pour lesquels le noeud local est relais. Relayage des Sig_Neighborhoods figure 12 Les RSN relayent les Sig_Neighborhoods de proche en proche 10 jusqu'à ce que tous les noeuds du système aient la même base de données de voisinage. La fiabilisation de cet acheminement est faite par les RSN (cf. NIR_TOPO_05, module 15), et non pas par des répétitions effectuées par le noeud origine du Sig_Neighborhood. Ce qui signifie qu'une fois qu'un NIR a généré son Sig_Neighborhood et l'a transmis avec succès à ses voisins, il ne 15 le retransmet plus. Sa prochaine transmission aura lieu quand le contenu du Sig_Neighborhood aura changé. Ce principe a deux conséquences majeures : Quand la topologie est stable et que tous les noeuds ont reçu les voisinages à jour des autres noeuds, plus aucun noeud n'émet de 20 Sig_Neighborhood : le trafic de signalisation de FIRE devient nul. La mise à jour de la table des Sig_Neighborhoods d'un noeud A est faite par les RSN « de A », qui sont voisins de A, et non par les noeuds originaires des Sig_Neighborhoods. Cette mise à jour au plus proche permet de gagner en réactivité et en bande passante. 25 Un Relais de Sig_Neighborhood a donc en charge : de relayer les voisinages quand il les reçoit, en fonction des couples de voisins pour lesquels il est relais, de les stocker pour assurer la synchronisation des tables de Sig_Neighborhoods de ces mêmes voisins, quand cela est 30 nécessaire. NIR_TOPO_04/050 Relayage des Voisinages Un NIR A, RSN pour des couples (Xi, Yi) relaye tout Sig_Neighborhood reçus de Xi vers le noeud Yi (et réciproquement de Yi vers 5 Xi), sauf si : o A a déjà reçu ce Sig_Neighborhood (même couple [source, numéro de séquence]) ou une version plus récente, en provenance de Yi (resp. Xi), o Yi (resp. Xi) figure déjà dans la table des Sig_Neighborhoods de 10 A, comme destinataire de ce Sig_Neighborhood (même couple [source, numéro de séquence]) ou d'une version plus récente, o Yi (resp. Xi) est le noeud origine du Sig_Neighborhood, o Yi (resp. Xi) est un voisin du noeud origine Sig_Neighborhood. 15 Les conditions ci-dessus permettent d'éviter des envois inutiles. Elles nécessitent aux RSN de stocker les Sig_Neighborhood reçus et le (s) numéro de NIR voisins qui leur ont envoyés ce Sig_Neighborhood. NIR TOPO 04/060 Passage d'un noeud A en mode Relais de Sig_Neighborhood pour un 20 couple de voisins (X, Y) Lorsqu'un NIR A (re-)devient RSN pour un couple (X,Y), il doit relayer vers Y tous les Sig_Neighborhood stockés qu'il a reçus de X (et réciproquement), sauf si : o A a déjà reçu ce SigNeighborhood (même couple [source, 25 numéro de séquence]) en provenance de Y (resp. X), o Y (resp. X) figure déjà dans la table des Sig_Neighborhood de A, comme destinataire de ce Sig_Neighborhood (même couple [source, numéro de séquence]), Y (resp. X) est le noeud origine du Sig_Neighborhood, 30 o Y (resp. X) est un voisin du noeud origine du Sig_Neighborhood. 30 2954644 La réception de numéros de séquence plus anciens que le numéro de séquence stocké est traitée dans le paragraphe NIR TOPO_08. Stockage des Sig_Neighborhoods II faut noter que dans l'exigence NIR_TOPO_04/060, il n'est pas 5 précisé si A était déjà RSN pour un autre couple. Les deux cas (`A était déjà RSN', 'A était non-RSN') sont possibles. Si A était non-RSN, il doit quand même pouvoir respecter cette exigence, et donc avoir stocké tous les Sig_Neighborhood reçus, et avoir noté quel voisin lui a émis ou relayé chaque Sig_Neighborhood. 10 NIR_TOPO_04/070 Stockage des Sig_Neighborhood Pour chaque Sig_Neighborhood reçu, FIRE doit vérifier s'il existe un Sig_Neighborhood de même noeud origine et de numéro de séquence identique ou plus récent. 15 Si oui, alors FIRE doit supprimer le Sig_Neighborhood reçu. Sinon FIRE doit stocker, dans une table appelée Distant_Neighborhood_Table o numéro du NIR_origine du Sig_Neighborhood (i.e. qui a généré initialement le Sig_Neighborhood), 20 o numéro de séquence du Sig_Neighborhood, o la liste des NIR voisins qui ont envoyés au noeud local un Sig_Neighborhood (NIR_origine). Cette liste est notée LPHR (List Of Previous Hops NIRs), o le contenu du Sig_Neighborhood reçu. Le contenu du 25 Sig_Neighborhood est constitué des liens du noeud origine avec ses voisins, chaque lien étant un couple * numéro de noeud voisin, * réseau de transmission à traverser pour joindre le noeud voisin. 31 2954644 Un même noeud peut apparaître plusieurs fois dans le contenu du Sig_Neighborhood si le noeud origine peut le joindre par plusieurs réseaux de transmission. Le numéro de séquence du Sig_Neighborhood stocké est le numéro de 5 séquence le plus récent présent dans la liste LPHR. NIR_TOPO_04/080 Stockage des informations des Sig_Neighborhoods relayés avec succès Chaque NIR doit stocker, dans la table 10 Distant_Neighborhood_Table, dont un exemple de format est donné à la figure 13, pour chaque Sig_Neighborhood reçu : la liste des NIR voisins à qui le noeud local a relayé un Sig_Neighborhood(NIR_origine) et qui ont acquitté positivement. Cette liste est notée LANH (List of Acknowledged Next Hops). 15 NIR TOPO 04/090 Conservation du Sig_Neighborhood d'un noeud disparaissant du voisinage ou de la topologie Suite à un re-calcul du voisinage local ou de la topologie, FIRE doit conserver dans la table des Sig_Neighborhood distants dont un exemple est 20 donné à la figure 14 (Distant_Neighborhood_Table) tous les Sig_Neighborhood des noeuds ayant disparu. Cette conservation permet de limiter les échanges de Sig_Neighborhood en cas de reconnexion de 2 parties du système. II n'y jamais suppression d'un noeud origine, puisqu'il n'y pas de mécanisme 25 de vieillissement dans le fonctionnement normal du protocole. Silence radio L'impact du Silence Radio est le suivant : Prise en compte des stations en Silence Radio dans le calcul de la topologie, en considérant que toutes les stations en Silence Radio ont 30 des liens orientés dans le sens entrant uniquement, et donc aucun lien sortant. 32 2954644 Les voisins n'envoient plus de Sig_Neighborhood à la station en Silence Radio sur les liens SR. Une station en SR ne peut pas être RSN potentiel Module 15 NIR_TOPO_05: Fiabilisation bond par bond de la 5 transmission des Sig_Neighborhoods NIR TOPO 05/010 Fiabilisation bond par bond Lorsque FIRE transmet un Sig_Neighborhood vers des NIR voisins, il doit demander aux couches sous-jacentes utilisées d'envoyer le 10 Sig_Neighborhood en mode fiabilisé. La fonction de fiabilisation bond par bond est préférentiellement située dans les ART, car elle dépend des propriétés intrinsèques du média (utilisation de TCP sur un réseau IP unicast, PMUL sur un réseau VHF, ...). Module 16 NIR TOPO_06: Transmission des Sig_Neighborhoods en 15 point-à-multipoint NIR_TOPO_06/010 Envoi en point à multipoint Lorsque FIRE transmet un Sig_Neighborhood vers des NIR voisins, il doit si possible demander aux couches sous-jacentes utilisées 20 d'envoyer le Sig_Neighborhood en mode point-à-multipoints. Le Forwarder duplique alors le Sig_Neighborhood s'il doit être émis sur différents réseaux élémentaires. Ensuite, chaque ART décide de procéder à un ou plusieurs envois, avec une fiabilisation adaptée (cf.NIR_TOPO_05), selon le type et la nature du réseau sous-jacent (point-à-point ou diffusant, 25 fiable ou avec pertes importantes,...). Module 17 NIR_TOPO_07 : Annonce des caractéristiques orientées des liens logiques uniquement par les routeurs source des liens Il existe des caractéristiques de liens qui dépendent du sens du lien. Le débit d'une liaison radio entre A et B peut être différent de la liaison 30 entre B et A. Au niveau du noeud A, la topologie remontée par un ART peut contenir à la fois le débit de A vers B et de B vers A. 33 2954644 Si A et B annoncent chacun dans leur Sig_Neighborhood les 2 débits : d'une part la même information est envoyée 2 fois à travers le système, - d'autre part, des incohérences au sein de la topologie des ART. 5 NIR_TOPO_07/010 Annonce des caractéristiques orientées des liens logiques Lorsqu'un FIRE transmet le Sig_Neighborhood du NIR local vers des NIR voisins, il doit enlever toute information qui dépend de l'orientation des liens et qui concerne les liens orientés dont il est destination (i.e. dont il 10 n'est pas la source). Module 18 NIR_TOPO_08: Marquage des données de signalisation pour gérer le non-séquencement en réception Les Sig_Neighborhood sont estampillés avec un numéro de séquence, choisi par la source de ce Sig_Neighborhood. 15 NIR_TOPO_08/010 Numéro de séquence des Sig_Neighborhoods Lorsque FIRE transmet le Sig_Neighborhood du NIR local vers des NIR voisins, il doit y inclure un numéro de séquence permettant de détecter les reboot des noeuds et les déséquencements introduits par la transmission 20 réseau. Lorsque les machines sur lesquelles est implanté FIRE sont synchronisées (à quelques secondes près), FIRE doit utiliser une date comme valeur de numéro de séquence. Module 19 NIR_TOPO_09 Calcul de la topologie globale 25 Principes de construction de la topologie globale. A partir de tous les Sig_Neighborhoods reçus, chaque NIR construit le graphe de la topologie en partant de lui-même, puis de ses voisins, etc..., en ne prenant en compte que les informations fournies par le noeud analysé : quand on analyse le Sig_Neighborhood d'un noeud A, on 30 trace des liens orientés partant de A vers tous les NIR déclarés dans ce 34 2954644 Sig_Neighborhood comme voisins de A. Nous appellerons ce principe de construction de graphe la « construction orientée ». Le principe de construction orientée permet de gérer l'absence de notion de vieillissement des Sig_Neighborhoods. Classiquement, pour gérer 5 la disparition d'un noeud (panne, destruction ou simplement non-accessibilité temporaire), les protocoles à états de liens considèrent que la non-réception d'un voisinage de ce noeud pendant un certain temps signifie qu'il faut supprimer les informations de voisinage de ce lien. Cela se fonde sur le fait qu'ils répètent régulièrement les voisinages. Comme FIRE, pour économiser 10 de la bande et rendre la fiabilisation des échanges plus adaptées aux réseaux, ne répète pas les voisinages mais fiabilise bond par bond, ce mécanisme de vieillissement ne peut fonctionner. Le principe sous-jacent à la construction orientée est le suivant : quand un noeud A disparaît, ses voisins s'en rendent compte. Les voisins les 15 « plus proches » de nous (ex : B) vont donc nous annoncer (indirectement, par leur nouveau voisinage) la disparition de leur lien avec le noeud A. Même si nous conservons le Sig_Neighborhood de A (qui peut rester vrai ou faux, nous ne pouvons pas savoir), le lien entre A et B devient uniquement orienté de A vers B, et non plus de B vers A. A nous devient alors inaccessible à 20 partir de B. Algorithme de construction de la topologie globale. Soit 'a' le noeud local. Soit NAT l'ensemble des noeuds à traiter, i.e. les noeuds dont il faut analyser le Sig_Neighborhood pour rajouter des liens au graphe de topologie. 25 Initialement, NAT = {a}. Soit NDT l'ensemble des noeuds déjà traités, i.e. les noeuds dont le Sig_Neighborhood a déjà été pris en compte. Initialement, NDT = o. Soit G le graphe de topologie globale, représenté sous la forme d'un ensemble de liens, chaque lien étant un triplet, constitués des 2 noeuds 30 extrémités du lien et du réseau de transmission traversé. Initialement, G = r~. Tant que NAT # 0, réaliser le traitement suivant : 2954644 Soit n le premier élément de NAT. o Soustraire n de NAT : NAT N'AT ù {n} Soit V l'ensemble des voisins contenus dans le Sig_Neighborhood de n. 5 Ajouter au graphe G l'ensemble des liens entre n et les éléments de V: o Pour chaque v de V, faire G = G {tf r, R r)). (RT étant le réseau de transmission). Soit VJT le sous-ensemble de V, dont les éléments n'appartiennent 10 pas à NDT. VJT représentent les voisins qui n'ont jamais été traités auparavant. o Par définition : VIT = V ù NDT Ajouter ces voisins à l'ensemble des voisins à traiter : o NAT 15 Ajouter n à l'ensemble des noeuds déjà traités : o NDT Si NAT est vide : o Alors la construction du graphe est terminée. o Sinon, continuer le traitement en reprenant à « Soit n le premier 20 élément de NAT ». Le procédé selon l'invention présente notamment les avantages listés ci-après : le protocole FIRE est basé sur quatre grands principes : La récupération des topologies média, 25 - Une diffusion fiabilisée, Une gestion de noeuds destinataires et non d'interfaces de sortie, Une émission pertinente d'information (Non émission d'information connue par les noeuds voisins.) Principe 1 (P1) : Récupération des topologies média 30 Le réseau de transmission (UHF, VHF, ...) remonte la topologie locale aux noeuds. Chaque noeud prend connaissance de sa topologie locale sans que 36 2954644 FIRE n'émette le moindre paquet, sauvegardant ainsi la bande passante du réseau. Principe 2 (P2) : Diffusion fiabilisée Les informations de topologie échangées entre les noeuds sont diffusées de 5 façon fiable, grâce aux mécanismes suivants. Diffusion Chaque noeud, à partir de sa topologie locale remontée par le réseau de transport (PI), et du voisinage de ses voisins, établit un sous-ensemble fini et déterministe de couples de noeuds pour lequel il sera relais de voisinages 10 (RSN). Cette auto-élection est par construction locale et ne demande aucune transmission supplémentaire de la part de FIRE. Ainsi, par exemple, si un noeud A s'auto-élit relais de voisinage (RSN) pour le couple de noeuds voisins (B, C), tout message de voisinage émis par B (et respectivement par C) sera retransmis par A vers C (respectivement vers B). 15 La diffusion est donc par construction grandement limitée par rapport à une diffusion classique de flooding. Fiabilisation La fiabilisation des messages de voisinage est quant à elle effectuée par acquittement. Cet acquittement peut être effectué par la fonction 20 d'acheminement réseau (« forwarding ») ou par la couche média. Principe 3 (P3) : Gestion de noeuds destinataires et non d'interface de sortie A contrario de beaucoup de protocoles décrits dans la littérature, FIRE est basé sur une approche de gestion des noeuds destinataires, et non 25 d'interfaces de sortie. Les informations de topologie sont émises vers un noeud en particulier et non sur un réseau. Cela permet, en cas de réseaux parallèles, de n'utiliser qu'un seul des réseaux pour émettre le paquet de signalisation de voisinage vers ce même noeud, limitant ainsi la bande passante consommée. Le choix de ce 30 réseau (le plus rapide, le plus robuste, celui couvrant le plus de noeuds destinataires) est laissé à la fonction d'acheminement réseau. Principe 4 (P4) : Emission pertinente d'information En se basant sur le principe P3, quand deux noeuds A et B sont voisins au sens topologique du terme (PI), il n'est pas nécessaire pour A (respectivement B) de transmettre à B (respectivement A) des informations communes. Seules les informations supplémentaires, et donc pertinentes, sont transmises. Ceci confère au procédé selon l'invention les avantages suivants : Une absence de trafic en cas de topologie stable La faible volumétrie des échanges protocolaires En cas de réseaux parallèles, absence de trafic sur certains réseaux Convergence rapide 38 REVENDICATIONS1 û Procédé de routage fiabilisé au sein d'un système comprenant un ou plusieurs réseaux composés de plusieurs noeuds reliés entre eux par des moyens de communication, ledit système comprenant un accès au réseau de transmission ou ART chargé de transmettre sur un média physique les données vers un prochain noeud d'interconnexion réseau NIR, ledit système utilisant un protocole de routage à états de liens construisant la topologie des noeuds au sein d'un système de noeuds caractérisé en ce que ledit procédé de routage détermine la topologie logique de noeuds d'interconnexion réseau NIR en utilisant en combinaison les modules suivants : (11) Module 11 NIR TOPO_01 : Découverte du Voisinage grâce aux fonctions intrinsèques des réseaux physiques (12) Module 12 : NIR TOPO 02 figure 5 : Lissage des informations fournies par les ART pour améliorer la stabilité du protocole (13) Module 13 : NIR_TOPO_03 : principe de distribution des voisinages vers l'ensemble des NIR (14) Module 14 : NIR_TOPO_04 : Relayage des informations associées à un noeud (voisins, liens et leurs caractéristiques) Sig_Neighborhoods par un sous-ensemble des noeuds NIR (relais de Sig_Neighborhoods) (15) Module 15 NIR_TOPO_05: Fiabilisation bond par bond de la transmission des Sig_Neighborhoods entre les différents noeuds (16) Module 16 NIR TOPO_06 : Transmission des Sig_Neighborhoods en point-à-multipoint (17) Module 17 NIR TOPO_07 : Annonce des caractéristiques orientées des liens logiques uniquement par les routeurs source des liens (18) Module 18 NIR_TOPO_08 : Marquage des données de signalisation pour gérer le non-séquencement en réception (19) Module 19 : NIR TOPO_09 : calcul de la topologie globale 39 2954644 2 û Procédé selon la revendication 1 caractérisé en ce que ledit module de calcul de la topologie globale exécute les étapes suivantes Soit 'a' un noeud local. Soit NAT l'ensemble des noeuds à traiter correspondant aux noeuds dont il 5 faut analyser le Sig_Neighborhood pour rajouter des liens au graphe de topologie, Initialement, NAT = {a}, Soit NDT l'ensemble des noeuds déjà traités, i.e. les noeuds dont le Sig_Neighborhood a déjà été pris en compte, Initialement, NDT = 0, Soit G le graphe de topologie globale, représenté sous la forme d'un 10 ensemble de liens, chaque lien étant un triplet, constitués des 2 noeuds extrémités du lien et du réseau de transmission traversé, Initialement, G = 0, Tant que NAT # 0, exécuter les étapes suivantes : Soit n le premier élément de NAT, o Soustraire n de NAT T = VAT t l 15 Soit V l'ensemble des voisins contenus dans le Sig_Neighborhood de n. Ajouter au graphe G l'ensemble des liens entre n et les éléments de V o Pour chaque v de V, faire G = G u tC ., r. RT)1. (RT étant le réseau 20 de transmission). Soit VJT le sous-ensemble de V, dont les éléments n'appartiennent pas à NDT. VJT représentent les voisins qui n'ont jamais été traités auparavant. o Par définition : VJT = Vû NDT 25 Ajouter ces voisins à l'ensemble des voisins à traiter : o NAT = T u VIT Ajouter n à l'ensemble des noeuds déjà traités : o NDT = NDT U M Si NAT est vide : 30 o Alors la construction du graphe est terminée. 40 2954644 o Sinon, continuer en reprenant à l'étape « Soit n le premier élément de NAT ». 3 ù Procédé selon la revendication 1 caractérisé en ce que le module (11) de découverte du voisinage utilise les modules et les étapes suivantes : le module de transmission ou « FORWARDER » s'appuie sur les réseaux de transmission pour calculer ses informations de voisinage, NIR TOPO_01/010, Chaque accès à un Réseau de Transmission ART du noeud NIR fournit au 10 protocole selon l'invention, la topologie du réseau élémentaire dont il fait partie, utiliser une topologie comportant la description d'un graphe de noeuds ayant les propriétés suivantes : Chaque nœud représente un NIR ou un relais de transmission Chaque lien est un lien symétrique, au sens de la possibilité de transmission, 15 et pour un noeud donné, chaque extrémité du lien transmet vers l'autre lien, Utiliser une fonction de résolution d'adresse NIR en adresse liaison et la fonction réciproque assurée par l'ART, la topologie fournie contient des adresses de noeuds NIR, NIR TOPO 01/020 20 Lorsque l'ART fournit une topologie de réseau élémentaire au procédé selon l'invention, il fournit, les informations complémentaires suivantes : • Débit de chaque lien, avec orientation du lien en cas de débits non symétriques, • Temps d'accès moyen au canal physique de chaque lien, 25 • Qualité de chaque lien : bonne, moyenne, mauvaise, déduite, par exemple des informations fournies par le modem situé dans le média physique du système. 4 ù Procédé selon la revendication 1 caractérisé en ce que le module (12) 30 lissage des informations fournies par les ART comprend l'exécution des étapes suivantes : 41 2954644 NIR TOPO 02/010 Selon les caractéristiques dynamiques des réseaux de transmission, lisser certaines variations des caractéristiques des liens avant de les inclure dans le voisinage diffusé aux autres noeuds, et 5 NIR TOPO 02/020 Pour gérer les réseaux maillés et lisser l'évolution de leur topologie, classer les nombres de bonds en 3 catégories (proche, médian, lointain) avec une hystérésis pour entrer et sortir de chaque catégorie en fonction du nombre de bonds réels, 10 Enfin, afin que les voisinages puissent être envoyés aux NIR voisins « nominativement », mettre à jour et fournir la topologie à 1 bond au FORWARDER. NIR TOPO 02/030 Sur réception d'une topologie d'un réseau élémentaire, et une fois l'opération 15 de lissage effectuée (NIR_TOPO_02/020), sauvegarder la topologie lissée dans une table Local_Topologie_Table. Quand Local_Topologies_Table est modifiée, alors la fonction de construction du graphe recalcule le graphe et met ensuite à jour la topologie des NIR. 20 5 ù Procédé selon la revendication 1 caractérisé en ce que ledit module (14) NIR TOPO_04 de relayage des informations associées à un noeud exécute les modules suivants : NIR TOPO 04/010 : 25 Un noeud N est RSN potentiel pour un couple de noeuds (A, B), n°(A)