Brevet FR2910761A1 — publié le 20080627

PROCEDE DE ROUTAGE DANS UN RESEAU A CONNECTIVITE INTERMITTENTE L'invention concerne, notamment, un procédé de routage dans des réseaux où la connectivité est intermittente. Par connectivité intermittente, sont désignés tous les réseaux dans lesquels des utilisateurs, des ressources, des adresses IP (Internet Protocol) ou tout autre type d'objet, sont connectés de manière intermittente, non continue dans le temps. Ceci peut aussi recouper la notion de connectivité instable où l'on observe des ruptures dans le mécanisme de connexion. 1 o Elle concerne, notamment, un procédé et un système permettant de générer des informations utiles pour le routage de messages au sein d'un réseau constitué de noeuds qui sont en liaison entre eux, les liens entre les noeuds pouvant être interrompus de manière intermittente. Dans la suite de la description, on entend sous l'expression acheminement 15 défini de façon opportuniste un acheminement pour lequel, quand un noeud A entre en contact avec un noeud B, les informations de routage permettent de décider quels messages A doit remettre à B. Les réseaux où la connectivité est intermittente sont caractérisés par le fait que de nombreux liens subissent de forts taux de perte, ou bien de longs 20 délais de propagation, conduisant ainsi au partitionnement, fractionnement du réseau en plusieurs parties, à l'intérieur desquelles les transmissions sont bonnes. Ainsi, les modes de communications usuels (par exemple le protocole TCP transport communication protocol) s'appuyant sur l'existence de chemins de bout en bout, échouent. La problématique du routage de 25 l'information, est donc de fournir un procédé permettant à un message d'être acheminé d'une source vers une destination dans ce contexte. Sur la figure 1 est représenté un exemple de graphe de connectivité pour le type de réseaux pour lesquels s'applique le procédé selon l'invention. Les noeuds A, B, C, D et E, du graphe représentent les entités communicantes et les arêtes 2910761 2 [A, B], [B, C] correspondent au niveau de connectivité entres les noeuds. Plus la fréquence des pointillés d'une arête est haute, moins les noeuds sont connectés entre eux. Sur ce graphe, il est possible de voir, alors que A et B sont connectés en permanence, A et F ne sont jamais connectés et B et E 5 sont connectés par intermittence. Un graphe de connectivité est, en général, représenté par un paramètre L, la largeur du graphe, un nombre n de noeuds et le degré moyen du graphe D. Ces réseaux sont, par exemple, des réseaux communément appelés Réseaux Tolérants aux Délais (RTD, en anglais DTN ou Delay Tolerant 1 o Network). Les RTDs sont composés d'entités ou noeuds, qui sont communicantes (communiquant entre elles), mobiles et sans fil. Ces unités sont, par exemple, des ordinateurs personnels ou PDA (abrégé anglo-saxon de Personnal Data Assistant), des téléphones cellulaires, des capteurs, etc. A tout instant, la communication n'est possible qu'entre les noeuds qui se 15 trouvent en portée radio et, du fait du très faible niveau de connectivité, la probabibilité qu'existe un chemin de bout en bout (chemin de routage existant et ininterrompu) entre deux entités données est quasiment nulle. Le relayage de paquets de données ne pouvant se faire avec les mécanismes classiques de routage IP (Internet Protocol), le relayage se base alors sur le 20 principe de stockage et transmission (connu sous l'expression anglo-saxonne store and forward). Lorsqu'une entité reçoit un message à transmettre, elle le conserve jusqu'à ce qu'elle rencontre le destinataire ou bien, elle le transmet de manière opportuniste à un relais qui peut être choisi en fonction d'une stratégie particulière. 25 Les réseaux ad hoc à destinationä des forces d'intervention d'urgence des pompiers, de la police, par exemple, ou utilisés pour les communications militaires peuvent aussi changer leur mode de communication en conditions normales (protocoles du type MANET technologie système autonome de noeuds mobiles Mobile Ad hoc Networking) pour un mode déconnecté . 30 Les déconnections dans ces réseaux proviennent de la mobilité de noeuds, de problèmes liés à la radio, ou de la disparition de noeuds (manque de 2910761 3 batteries, destruction...). L'invention décrite dans ce document peut s'appliquer dans ce contexte afin de maintenir un service best-effort d'acheminement des messages. Différentes méthodes de routage pour ce type de réseaux sont connues de 5 l'art antérieur. Les documents de A. Lindgren, A. Doria, and O. Schelen, "Probabilistic routing in intermittently connected networks," in Proc. SAPIR, 2004 et J. Burgess, B. Gallagher, D. Jensen, and B. N. Levine, "MaxProp: Routing for Vehicle-Based Disruption-Tolerant Networks" in Proc. Infocom, 2006 décrivent des procédés de routage reposant sur des approches probabilistes. De telles approches ne se basent pas sur l'espérance des temps d'inter-contacts entre les noeuds. Il est donc difficile d'estimer le délai pour atteindre une destination. De plus, elles ont une mémoire à plus ou moins long terme en fonction de facteurs d'échelles qui sont difficiles à estimer. Dans le document de S. Jain, K. Fall, and R. Prata, "Routing in a Delay Tolerant Network" in Proc. SigComm2004, la méthode calcule des plus courts chemins dans un graphe valué (graphe dans lequel des poids sont attribués aux arêtes) avec les délais moyens d'inter-contacts entre les noeuds. Cette approche souffre d'un manque d'opportunisme dans les possibilités de transmission qu'elle met en oeuvre et définit de manière trop stricte la séquence des relais qui doivent être utilisés. Calculer des plus courts chemins en minimisant la somme des délais des arêtes du graphe traversées ne conduit pas à un chemin de routage performant. Dans le document de V. Conan, J. Leguay. T. Friedman, "The heterogeneity of inter-contact time distributions : its importance for routing in delay tolerant networks", arxiv:cs.Nl/0609068, on applique l'algorithme Spray and Wait introduit par M. Grossglauser and D. Tse, "Mobility increases the capacity of ad-hoc wireless networks", Transactions on Networking, vol.10 no. 4, pp. 477-486, August 2002. Ceci permet de traiter uniquement le cas de noeuds atteignables en deux sauts et non à un nombre quelconque de sauts. Le taux 2910761 4 de livraison du message est, par conséquent, faible et le délai plus important qu'en mettant en oeuvre le procédé selon l'invention. De plus, l'algorithme d'optimisation permettant de trouver la solution est en temps exponentiel, une solution sous-optimale est donc proposée. 5 Malgré les performances des procédés de l'art antérieur, ces derniers ne permettent pas de fournir une méthode de routage minimisant les délais de livraison à l'échelle d'un réseau entier. L'objet de l'invention repose sur la mise en oeuvre d'un procédé multi-sauts pour le transport des messages. Un message peut être relayé 10 successivement par plusieurs noeuds avant d'atteindre sa destination. L'invention concerne un procédé de routage dans un réseau à connectivité intermittente caractérisé en ce qu'il comporte, pour déterminer les informations de routage, pour un acheminement défini de façon opportuniste, au moins les étapes suivantes : 15 pour un réseau comprenant un nombre n de noeuds, kmax étant le nombre de relais maximum à considérer dans l'acheminement, et M,, une matrice de taille nxn o on initialise M, = les estimations des temps moyens d'inter-contacts pour les noeuds i et j,, 20 o k+1 correspondant au nombre de relais considérés pour le routage, initialiser k=0, et Faire à l'étape k : Pour chaque paire de noeuds (i,j) (avec 1 estimés à l'étape k dans Mk,l variant de 1 à n, 15 o effectuer un tri croissant des valeurs de ces temps moyens, L = e Li, d Result alors : retirer le noeud L, de l'ensemble 1 et arrêter le déroulement des étapes, 1 est 5 égal à l'ensemble optimal. Sinon Faire Result = Esd(l), accepter le noeud dans l'ensemble 1, et la valeur de délai devient la valeur minimale courante, stocker la valeur Result dans Mk+1(s,d) et l'ensemble 1 dans Vs(d)k+i. 10 Return Result L'invention concerne aussi un système de routage permettant d'obtenir des informations de routage caractérisé en ce qu'il comporte un ou plusieurs noeuds comportant au moins les éléments suivants : 15 o un module de gestion de l'historique, o un module réception de messages de données, comprenant une mémoire tampon, o un module de décision de réexpédition adapté à décider des messages qui sont transférés à un noeud lorsqu'il rentre en contact, 20 o un module de réexpédition adapté à assurer le transfert des messages vers les voisins, o un module de calcul des informations de routage adapté à exécuter les étapes du procédé décrit ci-avant, o un module d'éligibilité participant aux décisions de réexpédition prises 25 dans le module de décision de réexpédition. 2910761 7 Le procédé selon l'invention présente notamment les avantages suivants : o le transport des messages peut être à copie unique, ou à copies multiples ; une ou plusieurs copies du message peuvent exister à chaque instant dans le réseau, 5 o le procédé est décentralisé : chaque noeud choisit indépendamment des autres, les relais permettant de transmettre le message ou les données d'un noeud source vers un noeud destinataire, o le choix optimal des relais est effectué de manière dépendante, il est obtenu comme le point fixe d'une suite convergente qui converge en 1 o un nombre d'étapes, par exemple, au plus égal au diamètre du graphe d'inter-connexion, o la solution permet de minimiser le délai de livraison tout en gardant une complexité faible, la complexité dans le pire des cas est évaluée à : L*n2*D, avec L la largeur du graphe de connectivité, n le nombre 15 de noeuds et D le degré moyen du graphe, le graphe de connectivité ayant le plus souvent des propriétés petit monde , la complexité réelle est alors réduite. L devient alors log(n) et D n. L'algorithme mis en oeuvre converge avec la largeur du graphe, o La solution fournit un routage sans-boucles, c'est à dire qu'un 20 message ne passe pas deux fois par le même noeud. D'autres caractéristiques et avantages de la présente invention apparaîtront mieux à la lecture de la description qui suit, donnée à titre illustratif et nullement limitatif, annexée des figures qui représentent : o La figure 1 un exemple de réseau à connectivité intermittente selon 25 l'art antérieur, o La figure 2 un exemple d'architecture fonctionnelle d'un noeud sur lequel sont exécutées les étapes du procédé selon l'invention, 2910761 8 o La figure 3, un schéma de transfert de message au sein d'un réseau à connectivité intermittente, o La figure 4, une illustration de la méthode de calculs à deux sauts, selon l'invention, 5 o La figure 5, un exemple de transfert d'un noeud A vers un autre noeud en deux sauts uniquement. Afin de mieux faire comprendre le procédé selon l'invention, la description qui suit est donnée à titre illustratif et nullement limitatif dans le cadre d'un réseau où le transport des messages s'effectue avec une copie unique. Le 10 réseau peut être un réseau RTD, qui est composé d'entités communicantes mobiles et sans-fil comme des téléphones cellulaires, des capteurs ou encore des PDA. Les données sont transmises ou acheminées, dans ce type de réseau, sous la forme de messages (connu sous la dénomination anglo-saxonne bundle) 15 contenant de l'information auto-suffisante qui est transférée d'entités en entités, de manière atomique, en utilisant par exemple le protocole TCP. Le procédé peut être implémenté sous une forme logicielle (éventuellement logiciel embarqué), dans une pile de routage applicatif ou de surcouche overlay au niveau d'un noeud. Elle peut aussi être développée sous une 20 forme matérielle ou hardware . Dans le réseau, chacun des noeuds est pourvu d'un processeur adapté à mettre en oeuvre les fonctions élémentaires suivantes, décrites en relation à la figure 2 : Module Propagation de l'historique, 1: un noeud propage régulièrement les 25 temps d'inter-contacts moyens qu'il mesure. Cela peut être réalisé périodiquement ou être déclenché de manière opportuniste selon des méthodes connues de l'Homme du métier. Les noeuds peuvent décider pour diverses raisons (e.g. économie d'énergie, consommation de ressources réseaux, complexité de calcul) de diffuser partiellement cette information. 2910761 9 Module Mise à four de l'historique qlobal, 2: Chaque noeud reçoit les informations d'historique des autres noeuds du réseau et les stocke dans une structure de donnée pouvant être une matrice 2x2, 3, où une valeur à la ligne i et la colonne j correspond au temps d'inter-contact moyen tij entre les 5 noeuds i et j. Cette matrice est mise à jour lors de la réception d'informations nouvelles provenant d'autres noeuds, noeuds en relation ou noeuds plus éloignés, les informations étant alors relayées. Module Réception de messaqes de données, 4 : Cette fonction est appelée par le processeur lorsqu'un message contenant des données est reçu par un 10 noeud. Si le message est destiné au noeud courant, il est alors transféré aux applications concernées, 5 (on peut avoir un client mail par exemple) Dans le cas contraire, le noeud courant stocke celui-ci dans une mémoire tampon 6 afin de le transférer ultérieurement. Module de Décision de réexpédition, 7 : Cette fonction est invoquée 15 lorsqu'un nouveau noeud entre dans le voisinage d'un noeud (c'est-à-dire à chaque nouveau contact). Elle a pour but de décider des messages à transférer vers le noeud N. Pour chaque message M à destination du noeud dm n'étant pas déjà programmé pour transfert vers le voisin N, on vérifie deux choses : 20 • Que le noeud N ne possède pas déjà M. • Que M est éligible par rapport au noeud N. La notion d'éligibilité est explicitée dans le détail de la fonction éligibilité d'un noeud , cette fonction statuant sur celle-ci. Si c'est deux conditions sont vraies, le message M est alors mis en liste 25 d'attente 8 pour un transfert futur vers N. Module Transfert des messages, 9 : Cette fonction transfère les messages présents dans la liste d'attente 8 du noeud rencontré. Notons qu'il existe une liste d'attente par noeud étant en contact avec le noeud courant et que celle- 2910761 10 ci est remise à zéro lorsque les noeuds ne sont plus en contact ou quand tous les messages ont été transmis. Calcul des informations de routage, 10 : Dans le cadre d'un processus de routage, lorsque cette fonction est invoquée périodiquement. Ainsi, le noeud i 5 construit, pour chaque noeud destination d, à partir de la matrice des temps d'inter-contacts, un sous-ensemble de noeuds V;(d). Eligibilité d'un noeud, 11 : Afin de statuer sur l'éligibilité d'un noeud relais r en contact, à un instant t donné, avec le noeud courant. Pour un message destiné au noeud d, cette fonction vérifie si r est présent dans l'ensemble 10 V(d). Si cette vérification est vraie, le noeud r est déclaré éligible, sinon il est déclaré non éligible. La figure 3 représente un exemple de routage d'un message d'un premier noeud A vers un deuxième noeud D. Dans cet exemple, on a les notations suivantes : 15 o VA(D)= {B} ; A transmet le message à B, o VB(D)= {C,E} ; correspond à l'ensemble des noeuds éligibles par B. C'est-à-dire que B pouvait transmettre le message à C ou E, mais il le transmet à c car c'est le premier qu'il rencontre, o Vc(D)= [D} ; C transmet le message à D Ainsi, de proche en proche, 20 et en passant par les relais B et C, le message émis par le noeud 1 A est transmis au noeud D . L'un des objectifs de la présente invention consiste à définir, pour chaque noeud i, jouant le rôle d'un relais d'un message ou bien le rôle d'une source émettrice de messages ou de données, et pour tout noeud destinataire d, 25 l'ensemble des voisins éligibles V;(d) qui sont utilisés pour le transfert des messages à destination de d. Les étapes du procédé permettant le transport des données ou des messages en minimisant le délai sont détaillées ci-après. 2910761 11 Pour déterminer l'ensemble des noeuds éligibles, le procédé exécute, par exemple, les étapes décrites ci-après : Alqorithme principal Pré-requis : Chaque noeud i possède la connaissance de la matrice , de 5 taille nxn (n étant le nombre de noeuds) correspondant aux inverses des temps moyens d'inter-contact entre les noeuds i et j. Cette matrice est calculée, par exemple, à partir de la matrice contenant les correspondant aux temps d'inter-contact moyens entre les noeuds i et j. Ces matrices restent inchangées pendant le calcul. Ces matrices peuvent être 10 calculées hors-ligne, ou bien chaque noeud estime le temps d'inter-contact moyen avec ses voisins et diffuse cette information aux autres noeuds du réseau. Etapes: Soit M1, une matrice de taille nxn 15 M1 = (On initialise la matrice M1 correspondant aux temps moyens d'inter-contacts pour les noeuds i et j) k=1 on considère un seul relais, k correspond au relais mis en oeuvre dans le réseau Faire à l'étape k+1 : 20 Pour chaque paire de noeuds (i,j) (avec 1 , Mk). C'est-à-dire, estimer le délai à (k+1) sauts à partir de matrice inverse de la matrice des temps moyens d'intercontacts et des estimations de délais à k sauts présentes dans Mk, 25 stocker les délais inter-contacts estimés dans la matrice M(k+1)(i, j) et la liste des relais V;(d)k+1 ayant permis d'atteindre ces résultats la liste des relais correspondants. 2910761 12 Les étapes du procédé s'arrêtent lorsque l'on atteint un point dit fixe pour une valeur fixée de Mk Par exemple le procédé peut être arrêté lorsque Mk=Mk+1. On a alors M = Mk et pour tout couple i,d V;(d) = V;(d)k . 5 Résultat : L'algorithme fournit en sortie : Une matrice M contenant l'estimation du délai pour chaque paire de noeuds (i, j) i.e. le délai espéré pour un message allant du noeud i vers le noeud j en utilisant le processus de routage selon l'invention. La liste des relais V;(d) correspondant à la liste des noeuds relais considérés 10 au noeud i lorsqu'un message doit être transmis vers la destination d. L'algorithme principal fait appel à un algorithme désigné calcul à deux sauts qui calcule pour chaque couple des noeuds source ou relais, destination (i,d) l'ensemble 1 de noeuds voisins de i dans le graphe de connectivité (i.e. les noeuds u avec qui Xi, ≠ o) à utiliser comme relais pour 15 atteindre d. Cette fonction fournit également une estimation du délai nommée E;,d(l) fonction de l'ensemble I retenu. Cette fonction peut être définie de plusieurs manières selon les objectifs à atteindre dans la mesure où la suite Mk de l'algorithme calcul du point fixe converge. La suite des matrices Mk étant convergente, les délais d'acheminement 20 décroissent en fonction du nombre d'itérations réalisées. Le délai minimum pour toutes les paires de noeuds est atteint au point fixe. Une fois ceci fait, lorsqu'un noeud i doit relayer un message destiné à la destination d, il calcule ou récupère alors V;(d), l'ensemble des relais possibles à qui transmettre le message pour atteindre la destination d. Dès 25 qu'il rencontre un noeud appartenant à V;(d)' il lui transfert le message. 2910761 13 Selon une variante de réalisation, le procédé met en oeuvre une sous-fonction calcul à deux sauts qui permet de choisir l'ensemble des relais dans le cadre d'un processus de relais à deux sauts, ceci afin d'optimiser les délais. 5 On suppose que l'on peut relier un noeud s avec le noeud destinataire d en un temps moyen esd (Obtenu à l'étape k de l'algorithme principal dans la matrice Mk Ce temps peut être égal à l'infini). On cherche ensuite à réduire ce délai en introduisant un relais supplémentaire r entre la source et la destination comme il est représenté à 10 la figure 3. Ce relais est choisi dans une liste de candidats potentiels /, calculée de façon à diminuer le détail moyen entre s et d. Sur la figure 3 : o s représente le noeud source, d, le noeud destination, o r un noeud voisin de s, relais potentiel du message émis depuis s vers 15 d, o tsr est le temps moyen d'intercontact entre noeuds s et r, o erd est le temps estimé à l'étape k pour la livraison du message depuis r vers d. L'introduction de l'ensemble 1 des relais intermédiaires r conduit à une 20 formulation du délai pouvant être espéré entre s et d, en utilisant l'ensemble de relais 1 au noeud s par la formule Esd(l) E.,d (I) = ~sd + À.ri + iel sd +12. e;e Esd(l) s'exprime en fonction des temps moyen d'inter-contacts tsr (et leurs inverses ~,sr) et des temps moyens d'inter-contacts erd estimés à l'étape k de 25 l'algorithme principal. 2910761 Esd(1) est la somme de deux termes : 1 le temps moyen d'attente pour s de rencontrer le 2sd fEI premier des noeuds relais de fou la destination d, 14 SI 1;E, Vsd +Ài SI lE J le temps d'attente moyen entre chaque e id 5 noeud relais et la destination. Dans ce calcul, on approche les temps d'inter-contacts par un processus exponentiel entre tous les noeuds i et j. Pour trouver l'ensemble 1, la méthode exhaustive consiste à explorer tous les cas de figure possibles pour minimiser Esd(l), ce qui correspond à 2d(') 10 calculs, avec d(i) le degré du noeud i dans le graphe de connectivité. L'algorithme calcul à deux sauts exposé ci-dessous est en O(D), D étant le degré moyen des noeuds du réseau : le degré moyen est le nombre moyen de voisins de chaque noeud dans le graphe de connectivité. La notation en O(D) signifie que le nombre d'opérations pour effectuer le calcul est borné 15 par D. et donne le résultat optimal lorsque les inter-contacts entre les noeuds i et j suivent une loi exponentielle (de paramètre 2q). Pré-requis : chaque noeud i possède la connaissance de la matrice , de taille nxn (n étant le nombre de noeuds), correspondant aux inverses des temps moyens d'inter-contact entre les noeuds i et j. De plus, chaque noeud 20 possède la matrice Mk , ) Pour la destination d, on considère la liste des temps moyens e,, d, I variant de 0 à n. On effectue un tri croissant de ces valeurs, et on obtient ainsi la 25 liste L en ordre croissant : 2910761 L=eLOd Result (la nouvelle valeur est supérieure à la valeur courante) 15 alors : retirer le noeud L, de l'ensemble 1 (car il empire le résultat) et arrêter l'algorithme, l'ensemble l obtenu est optimal. Sinon Result = Esd(1), le noeud L, est accepté dans l'ensemble 1, et cette valeur de 20 délai devient la valeur minimale courante. Return Result La figure 4 représente un exemple de transfert d'un noeud A vers un noeud D en deux sauts uniquement. • VA(D)2= {E,8}. A transmet le message à B car il rencontre B avant E. 15 2910761 16 • VB(D)'= (D). B attend de rencontrer D pour lui transférer le message. Cette manière de procéder permet, notamment, de réduire le nombre d fois ou le message est transmis entre la source s et la destination d, le processus 5 de routage décrit dans ce document peut s'appliquer avec limitations du nombre de sauts. Il suffit d'utiliser les ensembles V;(d)k obtenus aux étapes intermédiaires dans l'algorithme principal pour effectuer le relayage en k sauts maximum. On utilise, l'ensemble V;(d)k-T au noeud courant lorsque le message a déjà effectué T sauts. 1 o Le procédé et le système décrits précédemment s'appliquent, par exemple, dans les domaines suivants : dans le domaine civil, on envisage de construire des réseaux pair-à-pair basés sur les capacités sans-fils de courte portée (type wifi, Bluetooth, ou Zigbee) des terminaux mobiles (téléphones portables, des PDAs, etc...) Ces 15 réseaux pair-à-pair urbains permettent ainsi aux utilisateurs de mettre en commun les ressources de leurs terminaux mobiles et de former ainsi un réseau virtuel (RTD). Les applications envisagées incluent la messagerie, l'échange de contenu, la diffusion d'information localisée (à partir de bornes) ... 20 REVENDICATIONS 1 - Procédé de routage dans un réseau à connectivité intermittente caractérisé en ce qu'il comporte, pour déterminer les informations de routage, pour un acheminement défini de façon opportuniste Pour un réseau comprenant un nombre n de noeuds, kmax étant le nombre de relais maximum à considérer dans l'acheminement, et MI, une matrice de taille nxn o on initialise MI = les estimations des temps moyens d'inter-contacts pour les noeuds i et j, o k+1 correspondant au nombre de relais considérés pour le routage, initialiser k=0, et faire à l'étape k : Pour chaque paire de noeuds (i,j) (avec 1 matrice des inverses des temps moyens d'inter-contacts 15 et des estimations de délais à k sauts présents dans Mk, o stocker les délais d'inter-contacts estimés dans la matrice M(k+1)(i,j) et la liste des relais V;(d)k+l correspondants, (M(k+1)(i,j), V;(d)k+') où V;(d)k+l correspond à la liste des noeuds relais considérés au noeud i lorsqu'un message doit être transmis vers la destination d, pour un nombre 20 de relais k+1, Si k+1 = kmax, arrêter les étapes Si non, faire k=k+1 2 ù Procédé selon la revendication 1 caractérisé en ce qu'il comporte au moins les étapes suivantes : 25 o pour une destination d, considérer la liste des temps moyens estimés à l'étape k dans Mk,l variant de 1 à n, 2910761 18 o effectuer un tri croissant des valeurs de ces temps moyens, L = e L1,d Result alors : retirer le noeud L, de l'ensemble 1 et arrêter le déroulement des étapes , 1 est égal à l'ensemble optimal. Sinon Faire Result = Esd(1), accepter le noeud dans l'ensemble 1, et la valeur de délai devient la valeur minimale courante, stocker la valeur Result dans Mk+1(s,d) et l'ensemble /dans Vs(d)k+'. Return Result 3 ù Procédé selon la revendication 1 caractérisé en ce que le critère d'arrêt k+1 = kmax est remplacé par Mk=Mk+1. 2sd + 1j 2si tEi d en utilisant l'ensemble de relais 1 au noeud s. 2910761 19 4 ùSystème de routage permettant d'obtenir des informations de routage caractérisé en ce qu'il comporte un ou plusieurs noeuds comportant au moins les éléments suivants : o un module de Gestion de l'historique (1, 2, 3), 5 o un module Réception de messages de données (4), comprenant une mémoire tampon (6), o Un module de décision de réexpédition (7) permettant de décider des messages qui sont transférés à un noeud lorsqu'il rentre en contact, o Un module de Réexpédition (8, 9) pour assurer le transfert des 10 messages vers les voisins, o Un module de Calcul des informations de routage (10) adapté à exécuter les étapes du procédé selon la revendication 1. o Un module d'Eligibilité (11) participant aux décisions de réexpedition prises dans le module de décision de réexpédition (7). 15