Brevet FR2939585A1 — publié le 20100611

Procédé de codage réseau robuste à des pertes de transmission dans un réseau maillé, noeud relais, noeud destination, produit programme d'ordinateur et moyen de stockage correspondants. 1. DOMAINE DE L'INVENTION Le domaine de l'invention est celui des réseaux de communication maillés. Plus précisément, l'invention concerne une technique de codage réseau (� network coding � en anglais) adaptée à la transmission de paquets de données, dans un réseau de communication maillé, depuis des noeuds sources vers des noeuds destinations, via des noeuds relais retransmettant des paquets de données issus des noeuds sources et destinés aux noeuds destinations. Conformément au principe général du codage réseau, les messages retransmis par les noeuds relais sont des combinaisons linéaires des messages reçus en entrée par ces noeuds relais, ce qui permet d'augmenter le débit des données et d'utiliser au mieux la capacité du réseau. L'invention s'applique notamment, mais non exclusivement, dans le contexte d'un réseau maillé sans fil. 2. ARRIÈRE-PLAN TECHNOLOGIQUE 2.1 Contexte et problème On s'attache plus particulièrement dans la suite de ce document à décrire la problématique existant dans le contexte d'un codage réseau dans un réseau maillé sans fil, à laquelle ont été confrontés les inventeurs de la présente demande de brevet. L'invention ne se limite bien sûr pas à ce contexte particulier d'application, mais présente un intérêt dans tous les cas de codage réseau adapté à la transmission, via des noeuds relais, de paquets de données depuis des noeuds sources vers des noeuds destination, dans un réseau de communication maillé. Un réseau de communication sans fil maillé est constitué d'un ensemble S de M noeuds sources et d'un ensemble Dt de N noeuds destinations. Les transmissions considérées sont dites � multicast � (le terme � multidiffusion � est parfois aussi utilisé), c'est-à-dire que chaque paquet de données envoyé par un noeud source est destiné à l'ensemble des noeuds destinations de Dt. Les autres noeuds étant des noeuds relais, utilisés pour retransmettre les paquets sources envoyés par les noeuds sources. La topologie du réseau est supposée connue, c'est-à-dire l'ensemble des qualités radio (tel la puissance radio reçue) entre deux noeuds communicants est connu. Les noeuds relais ont classiquement comme fonction de retransmettre un des paquets qu'ils ont reçus en entrée (fonction de routage). Dans le cadre d'un codage réseau, ces noeuds relais ont une nouvelle fonctionnalité : ils ont la capacité d'émettre un paquet résultant qui est une combinaison des paquets reçus en entrée. Le concept de codage réseau a été introduit par R. Ahlswede and co. (voir l'article : R. Ahlswede, N. Cai, S.-Y. R. Li and R.W. Yeung "Network Information Flow" I.E.E.E. Transactions on Information Theory Vol 46, No 4, pp 1204-1216, July 2000) et très rapidement, de nombreux articles ont démontré l'apport de ce nouveau concept, notamment en termes de gain en bande passante et en terme d'utilisation de la capacité de réseau. De plus, il a été montré que dans un cadre multicast (chaque message envoyé par un noeud source est destiné à l'ensemble des noeuds de Dt), les combinaisons linéaires dans un corps Fq suffisamment grand donnent un résultat optimal (en terme de gain). Dans la suite de la présente invention, on appelle schéma de codage réseau : • les noeuds relais combinant les paquets en entrée pour générer un paquet combiné appelé paquet résultant ; • pour ces noeuds relais, les paquets en entrée à combiner parmi l'ensemble des paquets reçus ; • à chaque paquet en entrée à combiner est associé un coefficient dans Fq. Ces noeuds relais et ces paquets (correspondants à des liens) participant au codage réseau sont considérés utiles, les autres sont considérés redondants. Les noeuds destinations reçoivent alors une pluralité de paquets (les paquets résultants des noeuds relais) qui sont une combinaison linéaire des paquets sources (paquets envoyés par les noeuds sources). Dans le cadre de l'invention, le schéma de codage utilisé est un schéma de codage optimisé (décrit par exemple dans la demande de brevet US2005/0010675) réduisant le nombre de noeuds relais et de paquets utiles participant au schéma de codage réseau afin de diminuer le nombre d'opérations et donc le temps CPU. Ce schéma est déterminé à l'initialisation du système en prenant en compte la topologie du système. Les paquets résultants émis par les noeuds relais sont donc prédéterminés (plus précisément leur combinaison linéaire associée). Mais le réseau sans-fil est sensible à des masquages causés par exemple par un être vivant traversant le champ de transmission. Les pertes de liens occasionnées par ces masquages peuvent modifier temporairement la topologie du réseau initiale, topologie sur laquelle le schéma de codage réseau prédéterminé a été calculé. Celui-ci n'est alors plus valide durant cette période, ce qui peut mener à l'incapacité des noeuds destinations à décoder l'ensemble des paquets sources du fait que ceux-ci sont tous liés entre eux dans les paquets reçus. Il convient donc d'augmenter la robustesse du schéma de codage réseau face à ces pertes de liens (mesurée en nombre de paquets sources décodables par les noeuds destinations). 2.2 Prérequis et limites de l'état de la technique 2.2.1 Le corps Fe q=2s L'ensemble des opérations effectuées dans la présente invention est réalisée dans un corps fini noté Fq, constitué de q éléments. Dans le cadre de l'invention, les séquences d'information envoyées dans le réseau sont dans un contenant appelé paquet, qui a une taille fixe. s bits consécutifs d'un paquet constituent un symbole sur le corps Fq avec q=2s. Par exemple, un paquet de 1400 octets contient 1400 symboles si la taille du corps est 28 ou contient 700 symboles si la taille du corps est 216. Les opérations d'addition, de multiplication et de division s'effectuent alors symbole par symbole : > L'addition � +� s'effectue bit à bit avec la fonction classique XOR - Pour la multiplication � . � , un symbole de s bits, b0...bs_1, est transformé en polynôme : bo+b1X+..bs-1Xs-1• Un polynôme irréductible sur Fq est choisi. La multiplication entre deux symboles est alors obtenue par la multiplication classique entre deux polynômes modulo le polynôme irréductible. - La division est calculée à partir de l'algorithme d'Euclide. Des implémentations sont données par exemple dans le document � N.R. Wagner. The laws of Cryptography with Java Code �, disponible sur Internet à l'adresse : � http://www.cs.utsa.edu/ùwagner/laws/FFM.html �. De ce fait, dans la suite de la présente description, lorsqu'on écrit Y = ai.Ar avec A1...A1, 1 paquets en entrée et a1,.., a1 des coefficients dans Fq, ces =1 opérations s'effectuent en réalité sur tous les symboles du paquet : yk = a, .a;` où yk et 1=1 ak sont respectivement le kième symbole des paquets Y et A et les opérations � + � et � . � s'effectuent dans Fq. 2.2.2 Codage réseau 2.2.2.1 Introduction Au niveau d'un noeud relais, la combinaison linéaire associée à un paquet résultant peut être vue à deux niveaux, un niveau local et un niveau global. Pour expliquer ces deux notions, supposons qu'un schéma de codage réseau est prédéterminé pour l'ensemble des noeuds et situons nous dans un noeud relais utile (appelé aussi combinant). Ce noeud relais Rj doit combiner alors un ensemble de paquets reçus M1, M2,..., M1 parmi les paquets reçus. Le paquet résultant est alors égal à y, = a?Mi avec 1=1 a1' , az,...,a1' appartenant au corps fini Fq. Cette combinaison linéaire y, = a?Mi est la 1=1 représentation locale du codage réseau, appelée par la suite combinaison locale. Mais les paquets à combiner reçus en entrée peuvent être aussi eux même des paquets résultants provenant d'autre relais. Notons X1,...XM les paquets sources émis par les M noeuds sources. Il est alors clair que chaque paquet circulant dans le réseau est une combinaison linéaire des paquets X1,...XM . Le paquet précédemment cité y peut être m aussi ainsi représenté de la manière suivante : y, = g X; . Cette représentation est la 1=1 représentation globale du codage réseau. Elle prend en compte que chaque paquet reçu M; est aussi un paquet résultant combinant des paquets sources. Elle est appelée par la suite combinaison globale. Il est clair que les coefficients g3 se déduisent récursivement des coefficients de a1. Notation : les paquets reçus intervenant dans une combinaison locale sont appelés par la suite les � paquets associés � à la combinaison locale. Les paquets sources qui ont un coefficient non nul dans une combinaison globale sont appelés par la suite les � paquets associés � à la combinaison globale. Remarque : on peut associer une seule combinaison globale à une combinaison locale donnée mais pas l'inverse. En effet, à une combinaison globale, on peut associer plusieurs combinaisons locales en jouant sur le choix des paquets reçus M; à combiner. Dans le cadre de l'invention, chaque noeud relais mémorise la représentation globale de chaque paquet reçu en entrée dans une matrice, appelée matrice relais R=(r1,). Chaque ligne représente un paquet reçu, chaque colonne un paquet source, et chaque élément de la matrice r1i représente alors le coefficient du paquet source j de la combinaison linéaire globale du paquet reçu i. Le noeud destination di qui reçoit les paquets Y1,Y2,...,Y1' mémorise aussi la représentation globale de chaque paquet en entrée reçu dans une matrice, appelée matrice destination D=(d1i). Chaque ligne représente un paquet reçu et chaque colonne un paquet source, et chaque élément de la matrice d1i représente le coefficient du paquet source j de la combinaison linéaire globale du paquet reçu Y1. Le noeud destination doit alors résoudre le système linéaire constitué par l'ensemble des combinaisons linéaires m globales : Yi = du Xi j=1...1', soit d'un point de vue matriciel, Y=D X avec D la 1=1 matrice destination, Y le vecteur colonne des paquets reçus et X le vecteur colonne des paquets sources. La résolution de ce système linéaire est expliquée dans la partie suivante. Il est à noter que si le rang de D (au sens de l'algèbre linéaire) est égal au nombre de noeuds sources M alors les M paquets sources sont décodables. Sinon, il faut étudier plus précisément la matrice destination pour déterminer le nombre de paquets sources décodables. 2.2.2.2 Construction d'un codage réseau Dans un réseau maillé constitué de M sources et de N noeuds destinations, l'étape préliminaire avant de construire un schéma de codage réseau est de s'assurer qu'il existe un schéma de codage réseau vu la topologie du réseau. Cette phase se base sur des concepts de théorie des graphes et notamment sur une utilisation de l'algorithme de Ford-Fulkerson (se reporter à l'article "Maximum Flow through a Network" Canadian Journal of Mathematics, 8, pp 399-404, 1956). Le réseau est modélisé par un graphe G=(V,E), V étant un ensemble fini de K noeuds (appelés � vertices � en anglais), V= {xi, . . . , xK}, et E Ç V x V un ensemble fini d'arêtes qui connectent les noeuds. Dans le cadre de l'invention, l'ensemble E est un ensemble ordonné de couples (xi, xi), avec x; et xi appartenant à v, ces couples étant appelés arêtes connectées, arcs ou liens (appelés � edges � en anglais). Un noeud de V modélise une entité communicante dans le réseau (ordinateurs, hauts-parleurs, amplificateur) tandis qu'un arc (xi, xi) indique par exemple une communication radio suffisamment � bonne � (c'est-à-dire au dessus d'un certain seuil de puissance radio reçue) entre les deux entités communicantes x; et xi. De plus, on appelle chemin entre un noeud x1 et un noeud xp un ensemble ordonné de noeuds {x1,x2,..,xp} tel que (xi, xi+1) E E pour i = 1, . . . , (pùl). Un chemin peut aussi s'écrire {(x1,x2),..,(x1,x1+1),...,(xp_1,xp)} avec (xk,xk+1) E pour k = 1, ... , (pùl). On appelle k chemins disjoints, k ensembles qui n'ont pas deux noeuds consécutifs en commun, soit d'un point de vue � graphique �, deux arcs en commun. Notons T un ensemble de k chemins disjoints. On définit alors : 1. Soit (x, y) EE (un lien du graphe), (x, y) ET si et seulement s'il existe un chemin de T qui contient (x,y) 2. Soit x EV (un sommet du graphe), x ET si et seulement s'il existe un chemin de T qui contient x. On appelle deux chemins disjoints entre un ensemble S et un noeud d, deux ensembles ordonnés de noeuds {x1,x2,..,xp,d} et {y1,y2,..,yq,d} tels que : > (xi, xi+1) EE pour i = 1, ... , (pù1) et (xp, d) EE - (y, y+1) EE pour j = 1, ... , (qù1) et (yq, d) EE - x1 ES, Y1 ES et x1≠Y1 - `di =1..(p -1), `dj =1..(q -1), (xi, x1+1) ~ (y;, y;+1) et (xp, d) ~ (Yq,d) La définition se généralise très facilement pour un ensemble de k chemins disjoints. A partir de ces notions de la théorie des graphes, l'état de l'art donne la condition suivante : � Soit S un ensemble de M noeuds sources, s'il existe M chemins disjoints entre S et chaque noeud destination de Dt, alors les M noeuds sources sont capables d'émettre en multicast à Dt si les noeuds relais sont autorisés à combiner linéairement leurs paquets entrants sur un corps fini suffisamment grand �. Ce résultat est une conséquence directe de l'article précité de R. Ahlswede and co. L'invention se place dans le cadre où cette condition est vérifiée au démarrage du système. Par contre, durant la vie du système, il se peut que cette condition ne soit plus respectée, à cause de pertes temporaires de liens. Dans ce cas, aucun schéma de codage réseau n'existe permettant de décoder les M paquets sources. Les noeuds destinations ne peuvent donc plus décoder M paquets sources. Dans l'état de la technique, il existe principalement deux approches pour la construction d'un schéma de codage réseau en fonction de la connaissance ou pas de la topologie initiale du réseau : - Pour une topologie connue, un premier schéma déterministe de construction des coefficients basés sur une approche matricielle est donné dans l'article suivant : 15 � R. Koetter, M. Médard, "An Algebraic Approach to Network coding" ACM transactions on Networking, Vol 11, Nos, October 2003". Le schéma de codage réseau obtenu selon cette première approche est appelé � schéma de codage déterministe � ; - Pour une topologie inconnue, une construction à la volée des coefficients tirés 20 aléatoirement est donnée dans l'article suivant : "Randomized distributed network coding" - Michelle Effros, Tracey Ho, David Karger, Ralf Koetter, Muriel Medard 20050152391. Le schéma de codage réseau obtenu selon cette seconde approche est appelé � schéma de codage aléatoire �. Dans la première approche, les coefficients sont calculés une fois pour toutes au 25 départ du système et donc durant la vie du système. Les noeuds destinations et les noeuds relais ont des opérations peu coûteuses car ils savent exactement ce qu'ils vont recevoir et transmettre. Dans la deuxième approche, les noeuds relais tirent aléatoirement les coefficients du paquet résultant à générer, ce qui nécessite un temps de traitement supplémentaire. 30 De plus, ils sont dans l'obligation d'envoyer les coefficients tirés aléatoirement dans le paquet résultant afin que les autres noeuds, et plus spécialement les noeuds destinations, 10 connaissent les combinaisons linéaires pour décoder. Or cette signalisation est d'autant plus grande que le corps est grand (chaque coefficient sera codé sur un nombre de bits plus important), et c'est autant de bande passante perdue. Or dans cette deuxième approche, plus le corps est grand plus les chances de réussite du décodage des paquets sources sont grandes. D'où la contradiction. Dans la première approche, le décodage est sûr de réussir car la construction réalisée à l'initialisation s'assure que c'est le cas. La première approche est donc plus performante que la deuxième en terme de gain en bande passante et en temps de calcul. Par contre, la deuxième approche est plus performante que la première sur les points suivants : • elle ne nécessite pas la connaissance de la topologie du réseau. Dans le cadre de la présente invention, on suppose que l'on dispose d'un moyen de récupérer la topologie du réseau, donc cet inconvénient de la première approche n'est pas pris en compte ; • elle est robuste aux pertes de lien contrairement à la première approche. En effet, vu qu'elle génère un paquet résultant avec une combinaison linéaire différente à chaque envoi, la perte de lien est transparente pour elle (bien que ne garantissant pas le décodage). Elle indique un coefficient nul pour le paquet qui devait arriver par ce lien. La première approche est en revanche fortement touchée par les pertes de lien car chaque perte de lien modifie la combinaison linéaire du noeud relais (combinaison fixée au départ) et seul le noeud relais observant cette perte a connaissance de celle-ci. Les autres noeuds et notamment les noeuds destinations ne sont pas au courant de cette modification de la topologie et croient que tout se passe comme d'habitude. Le décodage peut être alors catastrophique et influe sur tous les paquets sources à décoder vu que ceux-ci sont tous liés par les combinaisons linéaires (contrairement à un routage où seul un paquet source serait atteint). Considérant notamment que les avantages de la première approche sont primordiaux dans des applications hauts débits comme visé par l'invention, on suppose dans la suite de la description que c'est la première approche qui est utilisée pour construire un schéma de codage réseau en fonction de la connaissance de la topologie initiale du réseau. Dans la pratique, la méthode de construction du schéma de codage réseau prédéterminé (selon la première approche) couramment utilisée (appelée ci-après version optimisée) est celle qui limite le nombre de noeuds et de liens participant au codage réseau en utilisant uniquement les chemins disjoints de la condition d'existence de codage réseau : seuls les noeuds et les liens des chemins disjoints sont utiles pour construire le schéma de codage réseau. Cette version optimisée est notamment décrite dans la demande de brevet US2005/0010675 précitée. A partir de ce constat, on appelle noeud (respectivement lien) utile, un noeud (respectivement lien) qui appartient à l'ensemble des chemins disjoints et, on appelle noeud (respectivement lien) redondant, un noeud (respectivement lien) qui n'appartient pas à l'ensemble des chemins disjoints. Cette version optimisée permet ainsi de limiter le nombre d'opérations. Or dans un réseau local sans-fil, il est fort probable que ces liens redondants soient nombreux, car à chaque fois qu'un noeud émet un paquet, tous les autres noeuds du réseau sont susceptibles de recevoir ce paquet. Cette version optimisée de la construction du codage réseau est par exemple utilisée dans le cadre de la présente invention. Elle limite fortement les opérations car seuls les noeuds et liens considérés utiles sont utilisés, ce qui diminue le nombre d'opérations dans le corps au niveau du noeud relais et du noeud destination. Par exemple, un noeud relais n'a plus besoin de combiner la pluralité des paquets qu'il reçoit mais uniquement un sous-ensemble de paquets. Idem pour le noeud destination qui n'a besoin que d'un sous-ensemble des paquets reçus pour décoder les paquets sources. Avec cette version optimisée, dans un premier temps on construit un schéma de codage réseau qui ne prend en compte que les noeuds relais et liens utiles, selon les définitions suivantes : - les noeuds relais combinant les paquets en entrée sont les noeuds relais utiles ; - pour ces noeuds relais utiles, les paquets en entrée à combiner parmi l'ensemble des paquets reçus sont les paquets utiles ; - à chaque paquet en entrée à combiner est associé un coefficient dans Fq. Les paquets résultants sont ainsi prédéterminés. De la même manière, le noeud destination construit alors une sous-matrice de la matrice destination D, appelée la matrice codante et notée C, qui ne prend en compte que les paquets utiles (des lignes sont donc supprimées de D). A partir de C, une sous- matrice carrée de dimension (M,M) (le schéma optimisé assure cette propriété), le noeud destination calcule l'inverse de celle-ci C-1 (qui existe par construction du schéma) et décode ainsi les paquets sources : X=C-1Y, avec X le vecteur colonne des paquets sources et Y le vecteur colonne des paquets reçus. 2.2.3 Résolution d'un système linéaire Soit un système linéaire de n équations à p inconnues dans Fq : a11 31 + +alp~p = bl an1131 + +anpI3p =bn Avec [(31,... (3p] les p inconnues du système, ale, i=1..n,j=1..p les coefficients du système et [bl,...bn] les constantes du système. Pour résoudre ce système, on utilise par exemple la méthode du pivot de Gauss, aussi appelée � élimination de Gauss-Jordan �, qui est connue de l'homme du métier. D'autres résolutions matricielles sont possibles pour résoudre le système d'équation : décomposition LU, décomposition QR, Méthode de Cholesky. Elles sont directement applicables à la présente invention. Pour appliquer la méthode de Gauss, on associe au système la matrice suivante de dimension (n,p+1) : /a11 alp 1 ~ anl anp 'bn Sur cette matrice, l'algorithme de Gauss-Jordan réalise des opérations élémentaires ligne par ligne afin d'obtenir une matrice de la forme : 01 0 00000 1 a 1(r+1) a1p b1 ar(r+1) arp br 0 0 br+1 o 0 bn Le système est dit compatible s'il admet au moins une solution. La compatibilité dépend de la valeur de r par rapport aux valeurs de n et de p : 1. Dans le cas où r est strictement inférieur à n et à p, deux cas se présentent : - Les coefficients br+1,..., bn sont nuls. Dans ce cas, le système est compatible et il existe une infinité de solution pour les [(31,... I. Les Il ,. • • Rr] sont les inconnues principales, les autres [(3r+i,... (3p] sont les inconnues secondaires. Pour résoudre le système, on fixe alors les [(3r+1,... (3p] qui deviennent des paramètres et on détermine les inconnues principales en résolvant le système linéaire en commençant par Rr puis (3r_1,... (31. - Il existe des coefficients br+1,..., bn non nuls. Le système est incompatible. 2. Dans le cas où r est égal à n et strictement inférieur à p, il existe une infinité de solution pour les [(31,... I. Les [(31,... (3n] sont les inconnues principales, les autres [(3n+1,... Rp] sont les inconnues secondaires. 3. Dans le cas où r est égal à p et strictement inférieur à n, deux cas se présentent : • Les coefficients br+1,..., bn sont nuls. Le système admet une solution p 1= b1,..,(3p= bp - Sinon le système est incompatible. 4. Si r est égal à p et à n, le système admet une unique solution : (31= b1,..,(3p= bp . 2.2.4 Limites de l'état de la technique Dans l'état de la technique, la gestion des pertes de paquets dans un schéma de codage réseau est principalement gérée par le schéma de codage aléatoire (deuxième approche décrite ci-dessus), du fait que celui-ci (contrairement au schéma de codage déterministe selon la première approche) est robuste aux pertes de lien (comme détaillé auparavant). En effet, avec le schéma de codage aléatoire, les noeuds relais effectuent systématiquement des opérations coûteuses pour combiner les paquets avec ou sans perte de paquets. Mais, considérant que les avantages de la première approche (en terme de gain en bande passante et en temps de calcul) sont primordiaux dans des applications hauts débits (comme détaillé auparavant), la présente invention se place dans le cadre où c'est cette première approche qui est utilisée (schéma de codage réseau en fonction de la connaissance de la topologie initiale du réseau). Or, dans ce cas, la gestion des pertes de paquets consiste à rechercher des schémas de codage réseau robustes dès la construction de ceux-ci. On essaie ainsi de s'assurer que les matrices de destination sont toujours capables de décoder l'ensemble des paquets sources envoyés par les noeuds sources pour un ensemble prédéfini de liens cassés. Mais les noeuds relais sont obligés d'utiliser l'ensemble des paquets qu'ils reçoivent, ce qui impose au niveau des noeuds relais un temps de calcul important et surtout systématique. 3. OBJECTIFS DE L'INVENTION L'invention, dans au moins un mode de réalisation, a notamment pour objectif de pallier ces différents inconvénients de l'état de la technique. Plus précisément, dans au moins un mode de réalisation de l'invention, un objectif est de fournir une technique de codage réseau adaptée à la transmission de paquets de données dans un réseau de communication maillé, cette technique permettant d'optimiser la gestion des pertes de paquets (c'est-à-dire des pertes de liens) dans le cas où on utilise un schéma de codage réseau déterministe (obtenu selon la première approche précitée). Au moins un mode de réalisation de l'invention a également pour objectif de fournir une telle technique qui soit transparente pour les noeuds sources. Au moins un mode de réalisation de l'invention a également pour objectif de fournir une telle technique qui soit transparente pour les noeuds destinations, si c'est possible, ou qui minimise l'impact sur la capacité du réseau (c'est-à-dire le nombre de paquets sources décodables par l'ensemble des noeuds destinations) si une telle transparence pour les noeuds destinations n'est pas possible. Un autre objectif d'au moins un mode de réalisation de l'invention est de fournir une telle technique qui soit simple à mettre en oeuvre et peu coûteuse. 4. EXPOSÉ DE L'INVENTION Dans un mode de réalisation particulier de l'invention, il est proposé un procédé de codage réseau dans un réseau maillé comprenant au moins un noeud relais qui, selon un schéma de codage réseau prédéterminé, s'attend à recevoir en entrée une pluralité de paquets de données et doit générer en sortie un paquet résultant prédéterminé obtenu selon une première combinaison linéaire prédéterminée d'une partie de ladite pluralité de paquets de données, les paquets de données appartenant à ladite partie étant dits paquets utiles et les paquets de données n'appartenant pas à ladite partie étant dits paquet redondants, chacun des paquets de données attendus en entrée étant formé, selon 15 ledit schéma de codage réseau prédéterminé, par une combinaison linéaire d'un ou plusieurs paquets sources, les paquets sources étant émis par des noeuds sources. Ledit procédé est mis en oeuvre par au moins un noeud relais donné et comprend des étapes consistant à : - détecter si au moins un paquet utile est manquant ou qu'il a été reçu modifié de sorte que la combinaison linéaire du ou des paquets sources formant ledit paquet utile modifié ne soit pas conforme au schéma de codage réseau prédéterminé ; - dans le cas d'une détection positive, construire un paquet résultant reconstitué en utilisant, selon un schéma de codage réseau modifié, tout ou partie des paquets redondants ; - transmettre le paquet résultant reconstitué. Ainsi, ce mode de réalisation particulier de l'invention repose sur une approche tout à fait nouvelle et inventive consistant à utiliser, au niveau des noeuds relais, les paquets reçus des liens non compris dans le schéma de codage réseau prédéterminé, appelé paquets redondants (paquets non utiles), et donc normalement non utilisés par les 30 noeuds relais (pas pris en compte dans le paquet résultant) et à effectuer de nouvelles opérations avec ces paquets redondants pour limiter l'impact de la perte de lien. En 20 25 d'autres termes, au niveau des noeuds relais, l'idée clé est d'utiliser les paquets redondants si la perte d'un lien touche la réception d'un paquet utile. Ainsi, à la détection d'une perte de lien (détection de l'impossibilité de générer le paquet résultant prédéterminé), on utilise un schéma de codage réseau alternatif et provisoire (schéma de codage réseau modifié) différent du schéma de codage prédéterminé. Ceci permet de limiter l'impact de ce changement provisoire de schéma de codage réseau (pour être dans le meilleur des cas transparent pour les noeuds destinations). De façon avantageuse, ladite étape consistant à construire un paquet résultant reconstitué comprend une étape consistant à déterminer une deuxième combinaison linéaire de paquets redondants et utiles, parmi une pluralité de paquets de données effectivement reçus par ledit noeud relais donné, permettant d'obtenir un paquet résultant reconstitué identique au paquet de données résultant prédéterminé à générer, si ladite deuxième combinaison linéaire de paquets redondants et utiles existe. En d'autres termes, si c'est possible, la valeur des coefficients associés aux paquets redondants et utiles est choisie de telle manière que le paquet résultant reconstitué envoyé soit exactement le paquet résultant prédéterminé. De cette façon, l'opération effectuée dans le noeud relais donné (envoi du paquet résultant reconstitué au lieu du paquet résultant prédéterminé) est transparente pour tous les autres noeuds relais situés en aval, ainsi que pour les noeuds destinations. Avantageusement, ladite étape consistant à déterminer la deuxième combinaison linéaire de paquets redondants et utiles est réalisée en testant si chaque paquet utile détecté manquant peut être remplacé par un paquet redondant effectivement reçu par ledit noeud relais donné. Ainsi, l'opération transparente de construction du paquet résultant reconstitué est rapide et peu coûteuse. Selon une caractéristique avantageuse, ladite étape consistant à déterminer la deuxième combinaison linéaire de paquets redondants et utiles comprend des étapes consistant à : - déterminer une troisième combinaison linéaire prédéterminée de paquets sources, associée à ladite première combinaison linéaire prédéterminée de paquets utiles, et permettant d'obtenir ledit paquet résultant prédéterminé ; - construire un système linéaire A(3 = g, où (3 est un vecteur colonne des coefficients de ladite deuxième combinaison linéaire de paquets redondants et utiles à déterminer, où g est un vecteur colonne des coefficients de ladite troisième combinaison linéaire prédéterminée de paquets sources, et où A est une matrice de dimension (M,1), avec M le nombre de paquets sources et 1 le nombre de paquets effectivement reçus par ledit noeud relais donné, la matrice A étant définie de la manière suivante : * chaque ligne de la matrice A représente un paquet source, * chaque colonne de la matrice A représente un paquet effectivement reçu, * chaque élément aii de la matrice A représente le coefficient du paquet source i d'une quatrième combinaison linéaire de paquets sources permettant 15 d'obtenir le paquet effectivement reçu j ; - résoudre ledit système linéaire par une méthode prédéterminée ; - si le système linéaire admet une solution, déterminer ladite deuxième combinaison linéaire de paquets redondants et utiles, en fonction du vecteur colonne (3 de ladite solution. 20 Ainsi, l'opération transparente de construction du paquet résultant reconstitué permet d'aboutir de manière systématique si le système linéaire considéré admet une solution. De façon avantageuse, si ladite deuxième combinaison linéaire de paquets redondants et utiles n'existe pas, ladite étape consistant à construire un paquet résultant 25 reconstitué comprend des étapes consistant à : a) construire un paquet résultant contenant des paquets sources non contenus dans le paquet résultant prédéterminé ; b) obtenir une information relative, pour au moins un autre noeud participant au schéma de codage réseau prédéterminé, à un schéma de codage réseau modifié 30 qui résulterait de l'envoi du paquet résultant reconstitué construit à l'étape a) ; 10 c) en fonction de l'information obtenue à l'étape b), sélectionner le paquet résultant reconstitué construit à l'étape a) ou réitérer l'étape a) pour construire un autre paquet résultant. De cette façon, l'opération effectuée dans le noeud relais donné (envoi du paquet résultant reconstitué au lieu du paquet résultant prédéterminé) n'est pas transparente (pour tous les autres noeuds relais situés en aval, ainsi que pour les noeuds destinations), mais elle n'a pas d'impact sur la capacité du réseau (c'est-à-dire le nombre de paquets sources décodables par l'ensemble des noeuds destinations). En d'autres termes, si une construction transparente n'est pas réalisable, le noeud relais essaie de construire un paquet résultant qui n'a pas d'influence sur le réseau, c'est-à-dire qui ne diminue pas le nombre de paquets sources que peuvent décoder les noeuds destinations. Cette construction se base aussi sur l'utilisation des paquets redondants. Par contre, dans ce cas, le noeud relais doit notifier aux autres noeuds que le paquet résultant qu'il envoie ne se base pas sur la combinaison linéaire prédéterminée. Avantageusement, l'étape a) comprend des étapes consistant à : i) déterminer une cinquième combinaison linéaire prédéterminée de paquets sources, permettant d'obtenir ledit paquet résultant contenant des paquets sources non contenus dans le paquet résultant prédéterminé ; ii) construire un système linéaire A(3 = g, où (3 est un vecteur colonne des coefficients de ladite deuxième combinaison linéaire de paquets redondants et utiles à déterminer, où g est un vecteur colonne des coefficients de ladite cinquième combinaison linéaire prédéterminée de paquets sources, et où A est une matrice de dimension (M,1), avec M le nombre de paquets sources et 1 le nombre de paquets effectivement reçus par ledit noeud relais donné, la matrice A étant définie de la manière suivante : * chaque ligne de la matrice A représente un paquet source, * chaque colonne de la matrice A représente un paquet effectivement reçu, * chaque élément aii de la matrice A représente le coefficient du paquet source i d'une sixième combinaison linéaire de paquets sources permettant d'obtenir le paquet effectivement reçu j ; iii) résoudre ledit système linéaire par une méthode prédéterminée ; 25 30 iv) si le système linéaire admet une solution, déterminer ladite deuxième combinaison linéaire de paquets redondants et utiles, en fonction du vecteur colonne (3 de ladite solution, sinon réitération de l'étape i) avec une autre cinquième combinaison linéaire prédéterminée de paquets sources. Ainsi, l'opération (non transparente mais sans impact) de construction du paquet résultant reconstitué permet d'aboutir de manière systématique si l'un des systèmes linéaires, considérés lors d'itérations successives, admet une solution. De façon avantageuse, dans l'étape b), ladite information relative au schéma de codage réseau modifié, qui résulterait de l'envoi du paquet résultant reconstitué construit à l'étape a), est la somme du nombre de paquets sources décodables par l'ensemble des noeuds destinations du réseau si le paquet résultant reconstitué construit à l'étape a) est supposé envoyé. Dans l'étape c, le paquet résultant reconstitué construit à l'étape a) est sélectionné si ladite information relative au schéma de codage réseau modifié est égale au nombre de noeuds sources dans le réseau multiplié par le nombre de noeuds destination dans le réseau. Ainsi, le test sur l'information (relative au schéma de codage réseau modifié) permet d'assurer que l'opération (non transparente) est sans impact sur la capacité du réseau (c'est-à-dire le nombre de paquets sources décodables par l'ensemble des noeuds destinations). Avantageusement, si ladite deuxième combinaison linéaire de paquets redondants et utiles n'existe pas, ladite étape consistant à construire un paquet résultant reconstitué comprend des étapes consistant à : - construire un premier paquet résultant, différent du paquet résultant prédéterminé mais contenant uniquement des paquets sources inclus dans le paquet résultant prédéterminé ; - obtenir une première information relative, pour au moins un autre noeud participant au schéma de codage réseau prédéterminé, à un schéma de codage réseau modifié qui résulterait de l'envoi du premier paquet résultant, le premier paquet résultant étant associé à ladite première information sur le schéma de codage réseau modifié ; - parmi le ou les paquets non sélectionné(s) à l'étape c) et contenant des paquets sources non contenus dans le paquet résultant prédéterminé, sélectionner un deuxième paquet résultant, en fonction de ladite information, obtenue à l'étape b) pour chaque paquet non sélectionné à l'étape c), sur le schéma de codage réseau modifié, le deuxième paquet résultant étant associé à une deuxième information relative au schéma de codage réseau modifié ; - sélectionner entre les premier et deuxième paquets résultants, en fonction des première et deuxième informations relatives au schéma de codage réseau modifié. De cette façon, l'opération effectuée dans le noeud relais donné (envoi du paquet résultant reconstitué au lieu du paquet résultant prédéterminé) n'est pas transparente et a un impact sur la capacité du réseau, mais cet impact est minimisé. En d'autres termes, si aucune construction, qui n'ait pas d'impact sur le réseau, n'est possible, le noeud relais construit le paquet qui a le moins d'impact sur le réseau, c'est-à-dire celui qui dégrade le moins le réseau (toujours en nombre de paquets sources décodables pour l'ensemble des noeuds destination). Dans ce cas, le noeud relais doit aussi notifier aux autres noeuds que le paquet résultant qu'il envoie ne se base pas sur la combinaison linéaire prédéterminée. De façon avantageuse, si ladite deuxième combinaison linéaire de paquets redondants et utiles n'existe pas, ladite étape consistant à construire un paquet résultant reconstitué comprend une étape consistant à : - construire un paquet résultant, différent du paquet résultant prédéterminé mais contenant uniquement des paquets sources inclus dans le paquet résultant prédéterminé. Dans cette variante, si une opération transparente n'est pas possible, le noeud relais donné effectue directement une opération qui a un impact sur la capacité du réseau, mais cet impact est minimisé. Dans ce cas, le noeud relais doit aussi notifier aux autres noeuds que le paquet résultant qu'il envoie ne se base pas sur la combinaison linéaire prédéterminée. Avantageusement, si le paquet résultant reconstitué n'est pas identique au paquet de données résultant prédéterminé, le procédé comprend une étape supplémentaire consistant à transmettre une notification identifiant les différences entre la combinaison linéaire de paquets sources représentative dudit paquet résultant prédéterminé, et la combinaison linéaire de paquets sources représentative dudit paquet résultant reconstitué. Ainsi, tous les autres noeuds (relais ou destination) qui sont situés en aval du noeud relais donné et qui reçoivent le paquet résultant reconstitué ainsi que la notification correspondante, sont capables de déterminer comment le schéma de codage réseau a été modifié (temporairement) dans le noeud relais donné. Dans un autre mode de réalisation, l'invention concerne un procédé de codage réseau dans un réseau maillé comprenant au moins un noeud destination qui, selon un schéma de codage réseau prédéterminé, s'attend à recevoir en entrée une pluralité de paquets de données et doit générer en sortie une pluralité de paquets sources décodés obtenus chacun selon une combinaison linéaire prédéterminée d'une partie de ladite pluralité de paquets de données, les paquets de données appartenant à ladite partie étant dits paquets utiles et les paquets de données n'appartenant pas à ladite partie étant dits paquet redondants, chacun des paquets de données attendus en entrée étant formé, selon ledit schéma de codage réseau prédéterminé, par une combinaison linéaire d'un ou plusieurs paquets sources, les paquets sources étant émis par des noeuds sources. Ledit procédé est mis en oeuvre par au moins un noeud destination donné et comprend des étapes consistant à : - détecter si au moins un paquet utile est manquant ou qu'il a été reçu modifié de sorte que la combinaison linéaire du ou des paquets sources formant ledit paquet utile modifié ne soit pas conforme au schéma de codage réseau prédéterminé ; - dans le cas d'une détection positive, décoder les paquets de données utiles reçus, en fonction d'un schéma de codage réseau modifié, pour obtenir au moins un paquet source décodé. Ainsi, ce mode de réalisation particulier de l'invention repose sur une approche tout à fait nouvelle et inventive consistant à utiliser, au niveau des noeuds destination, les paquets reçus des liens non compris dans le schéma de codage réseau prédéterminé, appelé paquets redondants (paquets non utiles), et donc normalement non utilisés par les noeuds destination (pas pris en compte dans l'obtention de paquets sources décodés) et à effectuer de nouvelles opérations avec ces paquets redondants pour limiter l'impact de la perte de lien. En d'autres termes, au niveau des noeuds destination, l'idée clé est d'utiliser les paquets redondants si la perte d'un lien touche la réception d'un paquet utile. Ainsi, à la détection d'une perte de lien (détection de l'impossibilité de générer le paquet source décodé prédéterminé), on utilise un schéma de codage réseau alternatif et provisoire (schéma de codage réseau modifié) différent du schéma de codage prédéterminé. Ceci permet de limiter l'impact de ce changement provisoire de schéma de codage réseau. Avantageusement, ladite étape consistant à détecter si au moins un paquet utile est manquant ou qu'il a été reçu modifié, comprend une étape consistant à, pour au moins un paquet utile effectivement reçu : - détecter une notification reçue associée audit paquet utile effectivement reçu, ladite notification identifiant les différences entre la combinaison linéaire de paquets sources représentative du paquet utile attendu en entrée, et la combinaison linéaire de paquets sources représentative dudit paquet utile effectivement reçu. Ainsi, le noeud destination modifie son schéma de codage prédéterminé à la réception d'une notification associée à un paquet reçu en entrée, afin de prendre en compte la nouvelle combinaison de ce paquet reçu, de quantifier son impact sur le schéma de codage prédéterminé, et de modifier celui-ci afin de décoder un maximum de paquets sources. Dans un autre mode de réalisation, l'invention concerne un produit programme d'ordinateur téléchargeable depuis un réseau de communication et/ou enregistré sur un support lisible par ordinateur et/ou exécutable par un processeur. Ce produit programme d'ordinateur comprend des instructions de code de programme pour la mise en oeuvre du procédé précité (dans l'un quelconque de ses différents modes de réalisation), lorsque ledit programme est exécuté sur un ordinateur. Dans un autre mode de réalisation, l'invention concerne un moyen de stockage lisible par ordinateur, éventuellement totalement ou partiellement amovible, stockant un programme d'ordinateur comprenant un jeu d'instructions exécutables par un ordinateur pour mettre en oeuvre le procédé précité (dans l'un quelconque de ses différents modes de réalisation). Dans un autre mode de réalisation, l'invention concerne un noeud relais compris dans un réseau maillé et participant à un procédé de codage réseau dans ledit réseau maillé, ledit noeud relais, selon un schéma de codage réseau prédéterminé, s'attendant à recevoir en entrée une pluralité de paquets de données et devant générer en sortie un paquet résultant prédéterminé obtenu selon une première combinaison linéaire prédéterminée d'une partie de ladite pluralité de paquets de données, les paquets de données appartenant à ladite partie étant dits paquets utiles et les paquets de données n'appartenant pas à ladite partie étant dits paquet redondants, chacun des paquets de données attendus en entrée étant formé, selon ledit schéma de codage réseau prédéterminé, par une combinaison linéaire d'un ou plusieurs paquets sources, les paquets sources étant émis par des noeuds sources. Ledit noeud relais comprend : - des moyens de détection, permettant de détecter si au moins un paquet utile est manquant ou qu'il a été reçu modifié de sorte que la combinaison linéaire du ou des paquets sources formant ledit paquet utile modifié ne soit pas conforme au schéma de codage réseau prédéterminé ; - des moyens de construction, activés dans le cas d'une détection positive, permettant de construire un paquet résultant reconstitué en utilisant, selon un schéma de codage réseau modifié, tout ou partie des paquets redondants ; - des moyens de transmission, permettant de transmettre le paquet résultant reconstitué. Dans un autre mode de réalisation, l'invention concerne un noeud destination compris dans un réseau maillé et participant à un procédé de codage réseau dans ledit réseau maillé, ledit noeud destination, selon un schéma de codage réseau prédéterminé, s'attendant à recevoir en entrée une pluralité de paquets de données et devant générer en sortie une pluralité de paquets sources décodés obtenus chacun selon une combinaison linéaire prédéterminée d'une partie de ladite pluralité de paquets de données, les paquets de données appartenant à ladite partie étant dits paquets utiles et les paquets de données n'appartenant pas à ladite partie étant dits paquet redondants, chacun des paquets de données attendus en entrée étant formé, selon ledit schéma de codage réseau prédéterminé, par une combinaison linéaire d'un ou plusieurs paquets sources, les paquets sources étant émis par des noeuds sources. Ledit noeud destination comprend : - des moyens de détection, permettant de détecter si au moins un paquet utile est manquant ou qu'il a été reçu modifié de sorte que la combinaison linéaire du ou des paquets sources formant ledit paquet utile modifié ne soit pas conforme au schéma de codage réseau prédéterminé ; et - des moyens de décodage, activés en cas de détection positive, permettant de décoder les paquets de données utiles reçus, en fonction d'un schéma de codage réseau modifié, pour obtenir au moins un paquet source décodé. Plus généralement, le noeud relais et le noeud destination selon l'invention comprennent des moyens de mise en oeuvre des procédés tels que décrits précédemment (dans l'un quelconque de leurs différents modes de réalisation). 5. LISTE DES FIGURES D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture de 15 la description suivante, donnée à titre d'exemple indicatif et non limitatif, et des dessins annexés, dans lesquels : - la figure 1 représente un exemple de réseau maillé sans fil dans lequel peut être mise en oeuvre la technique de codage réseau de l'invention ; - la figure 2 représente l'architecture d'un dispositif (noeud relais ou noeud destination) selon un mode de réalisation particulier de l'invention ; - la figure 3 décrit la structure d'un paquet notifiant une modification du schéma de codage prédéterminé, selon un mode de réalisation particulier de l'invention ; - les figures 4a, 4b et 4c décrivent des algorithmes, mis en oeuvre dans un noeud central, un noeud relais et un noeud destination respectivement, de construction d'un schéma de codage réseau prédéterminé, au démarrage du système ; - la figure 5 présente un organigramme d'un procédé de codage réseau selon un mode de réalisation particulier de l'invention, mis en oeuvre par un noeud relais pour construire et transmettre un paquet résultant ; - la figure 6 décrit un algorithme de reconstitution d'une combinaison locale, correspondant à l'étape 545 de la figure 5 ; 20 25 30 - la figure 7 décrit un algorithme de détermination d'une nouvelle combinaison locale à partir d'une combinaison globale, correspondant à l'étape 635 de la figure 6 ; - la figure 8 décrit un algorithme d'attribution d'un indice de confiance à une combinaison linéaire locale, correspondant à l'étape 740 de la figure 7 ; - la figure 9 décrit un algorithme de sélection de la combinaison linéaire globale qui a le moins d'impact sur le réseau, correspondant à l'étape 765 de la figure 7 ; - la figure 10 décrit un algorithme de reconstitution d'une combinaison locale associée à une combinaison globale la plus proche d'une autre combinaison globale, correspondant à l'étape 905 de la figure 9 ; - la figure 11 présente un organigramme d'un procédé de codage réseau selon un mode de réalisation particulier de l'invention, mis en oeuvre par un noeud destination pour décoder les paquets sources (c'est-à-dire obtenir des paquets sources décodés) ; et - la figure 12, correspondant à l'étape 810 de la figure 8 ou à l'étape 1145 de la figure 11, décrit un algorithme de détermination du nombre de paquets sources décodables, et par suite de détermination de la matrice de décodage associée. 6. DESCRIPTION DÉTAILLÉE Sur toutes les figures du présent document, les éléments et étapes identiques sont désignés par une même référence numérique. La figure 1 représente un exemple de réseau maillé sans fil dans lequel peut être mise en oeuvre la technique de codage réseau de l'invention. Le protocole d'accès au médium est de type TDMA (pour � Time Division Multiple Access � en anglais, ou � accès multiple par répartition dans le temps � en français), où durant une période fixe, appelée � supertrame �, chaque noeud du réseau a un accès unique au médium durant un temps de parole fixe appelée � intervalle de temps � (ou � slot � en anglais). Ce réseau est composé de trois noeuds sources, nommés respectivement NS 1, NS2 et NS3, et six noeuds qui sont à la fois des noeuds relais et des noeuds destinations, nommés NR/D1,..,NR/D6. Chaque lien de communication est représenté par une flèche indiquant le sens de la transmission. Les quatre liens de communications en trait plein (comme par exemple entre les noeuds NS1 et NR/D1) représentent des paquets composés uniquement d'un paquet source provenant du noeud NS 1. Les trois liens de communications en petit pointillé (comme par exemple entre les noeuds NS2 et NR/D4) représentent des paquets composés uniquement d'un paquet source provenant du noeud NS2. Les deux liens de communications en grand pointillé (comme par exemple entre les noeuds NS3 et NR/D2) représentent des paquets composés uniquement d'un paquet source provenant du noeud NS3. Les cinq autres liens de communications (par exemple entre les noeuds NR/D1 et NR/D3) représentent des paquets ayant subi du codage réseau et donc contenant une combinaison linéaire d'au moins deux paquets sources. Ne sont pas représentés des liens de communications qui sont soit victimes de masquages permanents, soit non utilisables du fait du protocole TDMA et des temps de parole successifs accordés à chaque noeud, les noeuds sources émettant en premier dans l'ordre de leur numérotation et ensuite tous les noeuds relais également dans l'ordre de leur numérotation. La figure 2 représente l'architecture d'un dispositif (noeud relais ou noeud destination) selon un mode de réalisation particulier de l'invention. Ce dispositif est représenté par le bloc 210, les blocs 230 (application) et 240 (émetteur/récepteur Radio Fréquence) correspondant à l'environnement de ce dispositif. L'interface Homme/Machine 212 permet à l'utilisateur de donner le graphe représentant le réseau afin de calculer le schéma de codage réseau de référence avec l'algorithme de Ford-Fulkerson. Ce schéma de codage réseau sera ensuite partagé entre tous les noeuds du réseau. La mémoire de données 216 permet de stocker les différentes copies des données émises par les noeuds sources et les différents noeuds relais. Ces données sont reçues par l'émetteur/récepteur Radio Fréquence 240 et transitent par le récepteur de paquets radio 215. Cette mémoire 216 permet également de stocker les matrices des différents noeuds intervenant dans le processus de codage réseau. Le module de gestion de paquets de codage réseau, référencé 217, qui est segmenté en quatre sous modules, gère, aussi bien au niveau des noeuds relais que des noeuds destinations, les paquets de codage réseau. Le premier sous module 218 est un analyseur de notification permettant de savoir si le paquet reçu correspond bien au paquet attendu ou si des coefficients liés au codage réseau ont été modifiés. Le second sous module 219 permet lui la mise à jour des coefficients de codage réseau à utiliser soit pour la retransmission soit pour le décodage, en lieu et place des coefficients de référence stockés dans la mémoire de données 216. La mise à jour de ces coefficients s'effectue après l'analyse d'une notification correspondant à un paquet reçu. Le troisième sous module 220, de production de paquet codé, est utilisé par les noeuds relais. Il permet de générer le paquet résultant qui doit être envoyé. Ce paquet résultant est fonction (combinaison linéaire) de certains paquets reçus et de leurs coefficients associés. Une fois produit, le paquet résultant est stocké en mémoire de données afin d'être émis par le transmetteur de paquet radio 214. Le quatrième sous module 221 est utilisé lors de la phase de décodage. Il permet de construire une matrice de décodage en fonction des paquets reçus et de leurs coefficients associés (stockés dans la mémoire de donnée), et d'extraire de cette matrice les différents paquets sources. Une fois décodés, les paquets sources sont transmis à l'application 230 par le CPU 213. La figure 3 décrit la structure d'un paquet notifiant une modification du schéma de codage réseau prédéterminé. Dans un régime stable où aucune perte de paquet n'est détectée, un paquet est constitué uniquement d'une partie � donnée � 310, partie dans laquelle l'information transmise par les noeuds sources ou par les noeuds relais est contenue. Dans le cadre de la présente invention, cette partie � donnée � 310 est une combinaison linéaire des paquets sources envoyés par les noeuds sources, combinaison linéaire prédéterminée à l'initialisation du système. Si la partie � données � 310 ne contient pas cette combinaison linéaire prédéterminée de paquets sources (à cause d'une perte de lien), une partie � notification � 305 est ajoutée pour indiquer les coefficients de la combinaison linéaire qui ont été modifiés. Il est donc à noter que cette partie � notification � 305 n'est pas systématiquement présente dans le paquet. Pour chaque coefficient modifié, une information est introduite dans la partie � notification � 305. Cette information contient un identifiant 315 (respectivement 325) du paquet source associé au coefficient, ainsi que la nouvelle valeur du coefficient 320 (respectivement 330). Dans le cas particulier où un paquet source manque, la valeur du coefficient est mise à zéro. Les figures 4a, 4b et 4c décrivent des algorithmes, mis en oeuvre dans un noeud central, un noeud relais et un noeud destination respectivement, de construction d'un schéma de codage réseau prédéterminé, au démarrage du système. Le noeud central, qui est un des noeuds présents de la figure 1 (par exemple un des noeuds sources), a pour fonction de construire le schéma de codage réseau prédéterminé et de le diffuser à l'ensemble des autres noeuds (tel que décrit dans la figure 4a). A la réception de ce schéma de codage réseau par les autres noeuds du réseau, les noeuds relais stockent celui-ci (tel que décrit dans la figure 4b) et les noeuds destinations également (tel que décrit dans la figure 4c). On présente maintenant, en relation avec la figure 4a, l'algorithme mis en oeuvre dans le noeud central. A l'initialisation du système (étape 405), le noeud central récupère (étape 410) la topologie du réseau (c'est-à-dire récupère la qualité des communications entre les noeuds), la liste des noeuds sources et la liste des noeuds destinations. Cette topologie peut être connue des noeuds du réseau par construction, si le réseau est fixe et si le nombre de noeuds est constant. Il est aussi certain que ces informations peuvent être introduites par l'utilisateur après l'installation d'un système. Puis, dans l'étape 415, le noeud central construit le graphe de réseau G à partir de la topologie du réseau. Si la qualité d'une transmission entre deux entités est considérée bonne, par exemple si le rapport signal sur bruit (en anglais � Signal Noise Ratio �) ou la puissance du signal reçu (en anglais � Radio Signal Strength Indication �) est supérieur à un seuil donné (dépendant du type de la radio utilisée), la transmission est considérée valide, sinon non valide. Le graphe est alors construit de la manière suivante : chaque entité communicante est modélisée par un noeud du graphe et chaque communication considérée valide entre deux entités est modélisée par un lien entre deux noeuds (et donc chaque communication considérée non valide n'est pas modélisée dans le graphe). Puis, dans l'étape 420, le noeud central détermine le schéma de codage réseau prédéterminé. La méthode est expliquée dans la demande de brevet US2005/0010675 et reprise dans de nombreux articles de l'état de la technique. Les étapes sont les suivantes : > Rechercher les chemins disjoints Uj entre l'ensemble S des noeuds sources et chaque noeud destination Dj ; - Construction du sous-graphe G' de G ne contenant que les sommets et les liens appartenant à au moins un ensemble Uj ; - Déterminer les coefficients des combinaisons linéaires de telle manière que l'ensemble des matrices destinations soit de rang égal aux nombre de noeuds sources. Puis, dans l'étape 425, le noeud central diffuse les coefficients selon un protocole de diffusion prédéterminé. Plusieurs techniques de diffusion sont connues de l'homme du métier pour diffuser des informations dans un réseau maillé (par exemple de type � inondation de données � dans un protocole maillé, en anglais � flooding protocol �). Pour un noeud relais (figure 4b), à la fin de l'étape de diffusion (425) par le noeud central, c'est-à-dire à la réception (étape 430) par le noeud relais des coefficients des combinaisons linéaires de l'ensemble des noeuds du réseau, le noeud relais garde en mémoire sa combinaison locale cmb_loc_pred, qu'il devra utiliser par la suite pour construire un paquet résultant prédéterminé, et construit une matrice relais et une matrice destination (étape 435). La matrice relais contient les combinaisons globales des paquets résultants des noeuds sources ou noeuds relais ayant eu accès au médium, durant la supertrame, avant la date d'accès au médium du noeud relais considéré. Les autres paquets, c'est-à-dire ceux envoyés par des noeuds qui ont eu l'accès au médium après le noeud relais considéré, ne sont pas pris en compte car ils ne sont pas utilisables (à cause de la contrainte que les combinaisons ne s'effectuent qu'avec des données envoyées durant la supertrame courante). De plus, les lignes correspondant aux paquets intervenants dans la combinaison cmb_loc_pred, c'est-à-dire les paquets utiles, sont marquées et sont considérées utiles. La matrice destination contient l'ensemble des combinaisons globales des paquets résultants reçus par les noeuds destinations. Ces deux matrices sont expliquées ci-dessus dans le paragraphe intitulé � Codage réseau �. Pour un noeud destination (figure 4c), à la fin de l'étape de diffusion (425) par le noeud central, c'est-à-dire à la réception (étape 440) par le noeud destination des coefficients des combinaisons linéaires de l'ensemble des noeuds du réseau, le noeud destination construit une matrice destination (étape 445). A partir de cette matrice destination et de l'algorithme de Gauss Jordan, le noeud destination définit (étape 450) une sous-matrice carrée de dimension (M,M) de D, notée C, inversible, de telle manière qu'on ait : Y' = C X, avec Y' un sous-vecteur du vecteur colonne Y des paquets reçus et X le vecteur des paquets sources, le sous-vecteur Y' incorporant uniquement les paquets reçus pris en compte dans C (les paquets utiles). De cette équation, on en déduit : X = C_' Y'. Le noeud destination garde en mémoire l'inverse de C, matrice appelée matrice de décodage qu'il utilisera directement à la réception des paquets. Après cette phase d'initialisation, chaque noeud source débute l'envoi des paquets sources sur le réseau, chaque noeud relais effectue sa combinaison locale et chaque noeud destination décode les paquets sources à partir de sa matrice de décodage. La figure 5 présente un organigramme d'un procédé de codage réseau selon un mode de réalisation particulier de l'invention, mis en oeuvre par un noeud relais pour construire et transmettre un paquet résultant. Les paramètres d'entrée sont les suivants : > Une pluralité de paquets combinés reçus, paquets combinant des paquets sources de la supertrame courante ; - La combinaison locale prédéterminée du noeud relais, noté cmb_loc_pred (ce qui inclut le sous-ensemble prédéterminé de paquets à combiner de la pluralité de paquets reçus) ; - La matrice relais R des combinaisons globales des paquets reçus avant l'accès au médium de ce noeud relais. Le paramètre de sortie est le paquet résultant, généré avec une notification si nécessaire (c'est-à-dire si cmb_loc_pred n'a pas pu être appliquée et qu'une modification a été nécessaire). Cet algorithme se lance à une date fixée dans la supertrame (étape 500), c'est-à-dire à une date précédant l'accès au médium du noeud relais, période suffisante pour effectuer l'algorithme suivant (au détriment de ne pas prendre des paquets reçus si on estime que la période est trop courte entre la réception d'un paquet et l'envoi du paquet résultant). Dans l'étape 505, on détermine les paquets de données utiles non disponibles. Ce moyen se base par exemple sur des informations radio, telles que le rapport signal sur bruit (en anglais � Signal Noise Ratio �) ou la puissance du signal reçu (� Radio Signal Strength Indication �). Si ces variables dépassent un seuil prédéfini, le paquet est considéré disponible, sinon non disponible. Puis, dans l'étape 510, on détermine la composition des paquets utiles disponibles. Si celui-ci n'a pas de notification (305, figure 3), la composition en paquets sources est donnée par la matrice de relais ; plus précisément, par la ligne correspondant au paquet reçu. Sinon, la notification est lue et on détermine la nouvelle composition du paquet en lisant les modifications indiquées par la notification, par rapport à la combinaison globale prédéterminée. A l'étape 515, une matrice de relais temporaire R' = r',i, valide uniquement pour l'exécution de cet algorithme dans la supertrame courante est créée si un paquet utile est considéré non disponible à l'étape 505 ou si un paquet utile a été modifié à l'étape 510. Elle est remplie de la manière suivante (étape 515) : - initialisation de la valeur des coefficients de la matrice relais temporaire à la valeur des coefficients de la matrice relais prédéterminée ; - les lignes correspondant aux paquets non disponibles, résultat de l'étape 505, deviennent des lignes nulles (tous les coefficients de la ligne sont mis à zéro) ; - les lignes correspondant aux paquets disponibles modifiés, résultat de l'étape 510, sont modifiées et prennent en compte les modifications de la notification : un élément r',i modifié signifie que le paquet associé à cette ligne a été modifié ; le paquet i a donc été reçu avec une notification. La colonne j correspond à l'identifiant (315 ou 325, figure 3) du paquet source 30 indiqué dans la notification. La nouvelle valeur de r',i correspond au coefficient (320 ou 330, figure 3) indiqué dans la notification. Dans l'étape 520, on vérifie si la matrice relais temporaire R' a été créée ou pas. Si oui, on passe à l'étape 530, sinon à l'étape 525. Dans l'étape 525, on construit le paquet résultant prédéterminé à partir des paquets reçus utiles et de la combinaison locale cmb_loc_pred. Ce paquet résultant prédéterminé sera envoyé au prochain accès au médium par le noeud relais. Par contre, si le test de l'étape 520 est positif, ceci indique qu'une perte de lien a eu lieu et a touché un paquet utile. La combinaison locale cmb_loc_pred n'est donc plus valide, une nouvelle est à définir. Pour cela, les paquets redondants reçus sont nécessaires. Dans un premier temps, l'algorithme détermine si les paquets redondants n'ont pas été impactés par une perte de liens, en exécutant les étapes 530 et 535 sur les paquets redondants (étapes identiques aux étapes 505 et 510 effectuées pour les paquets utiles). Puis l'étape 540 met à jour la matrice de relais temporaire R', de la même manière qu'à l'étape 515 effectuée pour les paquets utiles. A partir de la matrice de relais temporaire R', dans l'étape suivante 545, on reconstitue une nouvelle combinaison locale cmb_loc_nouv, on sélectionne les paquets reçus associés et on notifie les différences entre les combinaisons globales associées aux combinaisons locales cmb_loc_nouv et cmb_loc_pred (si différences !). Cette étape est expliquée ci-après en détail en relation avec la figure 6. Dans l'étape 550, on construit le paquet résultant à partir des paquets reçus sélectionnés et de la combinaison cmb_loc_nouv déterminée à l'étape 545. Si nécessaire, on construit également une notification (telle que décrite ci-dessus en relation avec la figure 3), pour indiquer la différence entre la combinaison envoyée et la combinaison prédéterminée. Ce paquet résultant et la notification (s'il y en a une) sont envoyés au prochain accès au médium par le noeud relais. Il est à noter que si la combinaison locale cmb_loc_nouv est la combinaison nulle, le noeud relais n'envoie pas de paquet résultant. La figure 6 correspond à l'étape 545 de la figure 5 et décrit l'algorithme de reconstitution d'une combinaison locale cmb_loc_nouv d'un noeud relais affecté par une perte de lien. Les paramètres d'entrée sont les suivants : - la combinaison locale prédéterminée du noeud relais, noté cmb_loc_pred (ce qui inclut le sous-ensemble prédéterminé de paquets à combiner de la pluralité de paquets reçus) ; - les matrices relais R et R' des combinaisons globales des paquets reçus avant l'accès au médium de ce noeud relais. Le paramètre de sortie est la nouvelle combinaison cmb_loc_nouv, et les paquets reçus associés. On rappelle qu'à une combinaison locale (liée aux paquets reçus) est associée une seule combinaison globale (liée aux paquets sources). Notons cmb_glob_pred la combinaison globale prédéterminée associée à la combinaison locale prédéterminée cmb_loc_pred. Au contraire, à une combinaison globale il est possible d'associer plusieurs combinaisons locales. Le but de l'invention est alors de trouver une nouvelle combinaison locale cmb_loc_nouv correspondant à la combinaison globale prédéterminée cmb_glob_pred (du fait que la combinaison locale prédéterminée cmb_loc_pred n'est plus disponible). Le principe est le suivant : d'une combinaison locale prédéterminée cmb_loc_pred, on détermine sa combinaison globale prédéterminée cmb_glob_pred et à partir de celle-ci, on détermine une nouvelle combinaison locale cmb loc nouv. L'étape 605 vérifie si chaque paquet source de cmb_glob_pred est au moins dans un paquet reçu (condition nécessaire pour espérer reconstruire la combinaison globale cmb_glob_pred avec les paquets reçus). Pour cela, on vérifie qu'aucune colonne de la matrice R' correspondant à un paquet source de cmb_glob_pred n'est nulle (tous ses coefficients nuls). Si le test est positif (étape 610), on passe à l'étape 615 sinon à l'étape 625. Dans l'étape 615, on vérifie si une reconstitution rapide de cmb_glob_pred est possible par une nouvelle combinaison locale. Pour cela, on compare les lignes qui ont été modifiées entre R et R'. Pour chaque ligne modifiée et considérée utile pour la matrice R, on recherche si cette ligne de R est présente dans R' (forcément à une autre position de ligne car la ligne a été modifiée dans R'). Si oui, la nouvelle ligne est appelée ligne remplaçante. Si ce test est positif (étape 620), la reconstitution est transparente et une nouvelle combinaison locale est attribuée, cmb_loc_nouv (étape 640). Cette nouvelle combinaison locale est construite de la manière suivante : les valeurs des coefficients ne sont pas modifiées mais les coefficients ne sont plus attribués aux mêmes paquets reçus : les paquets correspondants aux lignes modifiées dans R' ne sont plus pris en compte et les coefficients correspondants aux paquets de ces dernières lignes sont maintenant attribués aux paquets des lignes remplaçantes. Si le test de l'étape 620 est négatif, on passe à l'étape 635. Dans l'étape 635, on reconstitue une combinaison locale cmb_loc_nouv. On tente de trouver dans un premier temps une combinaison locale correspondant à la combinaison globale prédéterminée. Si celle-ci réussit, la reconstitution est locale et est transparente pour les autres noeuds du réseau. Sinon, une notification est ajoutée au paquet résultant car la nouvelle combinaison locale cmb_loc_nouv correspond à une nouvelle combinaison globale. Cette étape 635 est décrite en détail ci-après en relation avec la figure 7. Dans l'étape 625, on détermine une nouvelle combinaison locale cmb_loc_nouv associée à une combinaison globale cmb_glob_cand la plus proche de cmb_glob_pred car cette dernière ne peut être reconstituée avec les combinaisons globales de l'ensemble des paquets reçus (test de l'étape 610 négatif). On entend par plus proche : contenant le plus de paquets sources associés de cmb_glob_pred en interdisant des paquets sources non contenus dans cmb_glob_pred. Cette étape 625 est décrite en détail ci-après en relation avec la figure 10. Puis, on passe à l'étape 630, dans laquelle on notifie les paquets sources manquants contenus dans cmb_glob_pred et non contenus dans cmb_glob_cand. Ces paquets sources ne seront pas combinés dans le paquet résultant comme initialement prévu. Puis, fin de l'algorithme avec l'étape 640 qui mémorise la combinaison locale cmb loc nouv. La figure 7 correspond à l'étape635 de la figure 6 et décrit l'algorithme de détermination d'une nouvelle combinaison locale à partir d'une combinaison globale. Les paramètres d'entrée sont les suivants : > la combinaison locale prédéterminée du noeud relais cmb_loc_pred ; - la combinaison globale prédéterminée cmb_glob_pred donnée par le schéma de codage réseau à l'initialisation ; - la matrice relais R' des combinaisons globales des paquets reçus avant l'accès au médium de ce noeud relais. Le paramètre de sortie est une nouvelle combinaison locale cmb_loc_nouv relatif soit à cmb_glob_pred si c'est possible, soit à une autre combinaison globale proche de cmb_glob_pred (en terme de paquets sources). Il est à noter que cmb_loc_nouv ne peut être égale à cmb_loc_pred car R' est différent de R. Dans un premier temps (étape 705), le procédé sélectionne uniquement les 1 paquets reçus qui contiennent au moins un paquet source associé à cmb_glob_pred. Pour cela, la matrice R' est analysée ligne par ligne (une ligne représentant un message reçu). Sur la ligne courante testée i, on analyse s'il existe au moins un élément r'1i non nul avec j correspondant à une colonne d'un paquet source de cmb_glob_pred. Notons A la sous-matrice de R' engendrée par cette sélection (R' moins les lignes retirées). Dans une variante, cette étape 705 qui est une optimisation non indispensable, est omise. Dans l'étape 710, on construit, à partir des paquets reçus restants à l'issue de l'étape 705, un système linéaire afin de déterminer les coefficients à attribuer à ces paquets. Notons (31,.., pi ces coefficients avec 1 le nombre de paquets reçus restants. Dans un premier temps, on essaie de construire une nouvelle combinaison locale cmb_loc_nouv associée à cmb_glob_pred. Pour chaque paquet source X1, il faut que le coefficient g1 associé à celui-ci dans cmb_glob_pred se retrouve dans la somme des paquets reçus de cmb_loc_nouv, c'est à dire qu'on doit avoir la relation : = g;, ]=1 pour chaque paquet source. On a donc un système linéaire : A(3 = g avec (3 le vecteur colonne des [(31,.., R1I, g=[gl,••,gM] le vecteur colonne de cmb_glob_pred et A une matrice de dimension (M,1) dont chaque coefficient aii est égal à r'i1. Rappelons que par définition gi est nul (respectivement non nul) si le paquet source associé n'est pas (respectivement est) dans cmb_glob_pred. Dans l'étape 715, on résout le système linéaire, créé dans l'étape 710, par la méthode de Gauss-Jordan. Puis le test de l'étape 720 vérifie que le système est compatible ou pas (admet une solution ou pas) (voir ci-dessus le paragraphe intitulé � Résolution d'un système linéaire �). Si oui, on passe à l'étape 725, sinon à l'étape 760. Dans l'étape 725, on attribue alors les valeurs de [(31,.., (31] données par l'algorithme de Gauss-Jordan. Si le système admet une infinité de solutions, la valeur zéro est attribuée aux coefficients pi qui sont des inconnues secondaires. Puis, dans l'étape 730, on vérifie si la valeur des g1 du système linéaire résolu est bien nulle pour les paquets sources non associés à cmb_glob_pred. Si c'est le cas, ceci veut dire que la reconstitution du paquet a été transparente, on passe à l'étape 735. Si le test de l'étape 730 est négatif, on passe à l'étape 740. Ceci correspond au fait que nous avons trouvé une combinaison locale qui n'est pas associée à cmb_glob_pred (reconstitution non transparente). Des paquets sources ont été ajoutés dans cette combinaison locale qui ne sont pas dans cmb_glob_pred (le système linéaire de l'étape 720 n'a pas été résolu à la première itération). Dans l'étape 735, on garde en mémoire la nouvelle combinaison locale cmb_loc_nouv donnée par définition par les valeurs de [(31,.., (31] et on marque l'utilité ou non aux paquets reçus ou à recevoir (les paquets associés aux coefficients non nuls sont marqué utiles, les autres sont marqués redondants). Puis fin de cet algorithme. Dans l'étape 740, on vérifie si les paquets sources ajoutés ont un impact ou pas sur le réseau. Ce test est décrit en détail ci-après en relation avec la figure 8. Si cet ajout n'a aucun impact, on passe à l'étape 745 sinon à l'étape 750. Dans l'étape 745, on notifie les coefficients des paquets sources différents entre le vecteur g et la combinaison globale cmb_glob_pred (les coefficients différents) puis on passe à l'étape 735. Dans l'étape 750, on mémorise la combinaison locale testée (mémorisation des [(31,.., pl]) et la combinaison globale testée (mémorisation des [g1,.., gM]) associée, ainsi que l'indice de confiance lié à cette combinaison locale testée (indice lié aussi à la combinaison globale testée, et donné par le test de l'étape 740) dans une liste appelée Scand, puis on passe à l'étape 755. Dans l'étape 755, on attribue des nouvelles valeurs pour les coefficients g; correspondant aux T paquets sources non associés à cmb_glob_pred (qui ont une valeur nulle dans celle-ci). Cette étape est associée à l'étape 760 qui vérifie si des valeurs pour les g; n'ont pas été testées. Plusieurs implémentations sont possibles pour ces deux étapes, comme par exemple : 1. On tire aléatoirement la valeur des T coefficients g; correspondant aux T paquets non associés sur le corps Fq à l'étape 755 (cette opération correspond à un essai) en vérifiant qu'on tire au moins une valeur non nulle. Puis, dans l'étape 760, on impose un nombre d'essais maximum. Si ce nombre d'essais maximum est franchi, le test est négatif, sinon positif. 2. On teste l'ensemble des valeurs possibles ce qui revient à tester (qT -1) possibilités. Quand ce nombre est atteint, on décide dans l'étape 760 que le test est négatif (sinon il est positif). L'implémentation 1 permet de limiter le temps de traitement mais n'est pas forcément optimale contrairement à la deuxième car des solutions peuvent être oubliées. L'implémentation 2 peut être très coûteuse en temps de traitement surtout en cas d'échec du test de l'étape 760. L'étape 765 sélectionne une combinaison locale par défaut associée à une combinaison globale qui impactera le moins possible le réseau. Cet algorithme est décrit en détail ci-après en relation avec la figure 9. Cette nouvelle combinaison locale est mémorisée dans la variable cmb_loc_nouv (étape 770), puis on passe à l'étape 775 dans laquelle on notifie les coefficients des paquets sources différents entre le vecteur g et la combinaison globale cmb_glob_pred (les coefficients différents). L'étape 775 correspond à la fin de cet algorithme. La figure 8 décrit un algorithme d'attribution d'un indice de confiance à une combinaison linéaire locale, correspondant à l'étape 740 de la figure 7. L'indice de confiance mesure l'impact de la combinaison locale à envoyer sur le réseau. A l'initialisation du système, le schéma de réseau a été calculé de telle manière que tous les paquets sources envoyés dans le réseau peuvent être décodés par tous les noeuds destinations (note : la topologie du réseau n'est pas une contrainte dans la présente invention, elle peut même être surdimensionnée dans le contexte sans-fil, ce qui crée des paquets reçus redondants). Donc, si M est le nombre de noeuds sources (donc de paquets sources) et si N est le nombre de noeuds destinations, alors le nombre de paquets sources décodés dans le réseau est égal à : M * N. Cette variable, nombre de paquets sources décodés par le réseau, est l'indice de confiance de la combinaison locale. Pour mesurer cet indice, chaque noeud relais a besoin de l'ensemble des matrices de destination D; de tous les noeuds destinations du réseau. L'autre paramètre d'entrée est bien sûr la combinaison linéaire locale testée, appelée cmb_loc_test, mais plus spécifiquement la combinaison linéaire globale associée, notée cmb_glob_test, qui est différente de cmb_glob_pred. Le paramètre de sortie est l'indice de confiance de cmb_loc_test et par conséquent le fait de savoir si cmb_glob_test a un impact ou pas sur le réseau. Dans l'étape 805, on modifie les coefficients des matrices de destinations qui sont impactés par la combinaison cmb_glob_test. En d'autres termes, on modifie les éléments de chaque matrice de destination faisant intervenir les nouveaux coefficients de cmb_glob_test (modification de la ligne correspondant au paquet résultant que doit envoyer le noeud relais). Dans l'étape 810, on calcule l'indice de confiance de cmb_glob_test, c'est-à-dire le nombre de paquets sources décodables par l'ensemble des noeuds destinations. Le nombre de paquets sources décodables par un noeud destination D;, noté Nb_src_pkt_dec(D;), est déterminé par l'algorithme décrit ci-après en détail, en relation avec la figure 12. L'indice de confiance de cmb_glob_test, noté ind_conf(cmb_glob_test), est alors égal à : Ind_conf (cmb_glob_test) = ENb_src_pkt_dec(D;),i=1..N Cet indice est mémorisé à l'étape 815. Dans l'étape 820, on vérifie si l'indice de confiance de cmb_glob_test est égal à m * N. Si oui, cmb_glob_test n'a pas d'impact sur le réseau (étape 825), et le test de l'étape 740 de la figure 7 est positif. Sinon cmb_glob_test a un impact sur le réseau (étape 830), et le test de l'étape 740 de la figure 7 est négatif (au moins un noeud destination ne pourra pas décoder au moins un paquet source). La figure 9 décrit l'algorithme de sélection de la combinaison linéaire globale qui a le moins d'impact sur le réseau, correspondant à l'étape 765 de la figure 7. Les paramètres d'entrée sont : - la combinaison globale prédéterminée cmb_glob pred, - l'ensemble Scand des combinaisons locales et globales testées durant l'algorithme de la figure 7 et rejetées par le test de l'étape 740 (figure 7). Le paramètre de sortie est la combinaison linéaire locale associée à la combinaison globale qui a le moins d'impact sur le réseau. Vu que cet algorithme est appliqué lorsque l'algorithme de la figure 7 n'a trouvé aucune combinaison globale n'ayant pas d'impact sur le réseau, la combinaison locale trouvé a forcément un impact. Dans l'étape 905, on recherche une combinaison locale cmb_loc_candl associée à une combinaison globale cmb_glob_candl la plus proche de cmb_glob_pred. Par � plus proche �, on entend � contenant le plus de paquets sources associés de cmb_glob_pred en interdisant des paquets sources non contenus dans cmb_glob_pred �. Cet algorithme est décrit en détail ci-après, en relation avec la figure 10. Dans l'étape 910, on détermine l'indice de confiance de cmb_glob_candl en utilisant l'algorithme décrit ci-dessus en relation avec la figure 8. Dans l'étape 915, on sélectionne parmi l'ensemble Scand construit durant l'algorithme de la figure 7 (à l'étape 750), la combinaison globale cmb_glob_cand2 qui a le plus grand indice de confiance (un tri classique est effectué). Il est à noter que contrairement à la combinaison globale cmb_glob_candl, cmb_glob_cand2 contient des paquets sources de cmb_glob_pred mais aussi des paquets sources non contenus dans cmb_glob_pred. Dans l'étape 920, on compare les deux indices de confiance de cmb_glob_candl et cmb_glob_cand2. Si l'indice de confiance de globale cmb_glob_cand2 est plus grand que celui de cmb_glob_candl, alors on passe à l'étape 930, sinon à l'étape 925. Dans l'étape 925, on sélectionne alors la combinaison linéaire locale cmb_loc_candl. Dans l'étape 930, on sélectionne la combinaison locale associée à cmb_glob_cand2, combinaison locale qui avait été stockée dans Scand. La figure 10 décrit l'algorithme de reconstitution d'une combinaison locale associée à une combinaison globale la plus proche de la combinaison globale prédéterminée, correspondant à l'étape 905 de la figure 9. Par � plus proche �, on entend � contenant le plus de paquets sources associés de cmb_glob_pred en interdisant des paquets sources non contenus dans cmb_glob_pred �. Les paramètres d'entrée sont - la combinaison globale prédéterminée cmb_glob pred. Elle est constituée de P paquets sources associés (rappel : ce qui correspond à p coefficients non nuls parmi les M coefficients associés aux paquets sources). - La matrice relais R' des combinaisons globales des paquets reçus avant l'accès au médium de ce noeud relais. Le paramètre de sortie est une combinaison locale cmb_loc_cand et une combinaison globale associée cmb_glob_cand, qui est la combinaison globale la plus proche de cmb_glob_pred. Dans l'étape 1010, on initialise à 1 la variable nb_src_pkt_to_del correspondant au nombre de paquets sources associés à retirer de cmb_glob_pred. Dans l'étape 1015, on détermine le nombre de combinaisons globales différentes en supprimant nb_src_pkt_to_del paquets sources. Cette valeur nb_test est égale à la combinaison suivante au sens mathématiques (avec ! correspondant à l'opération factoriel) : C(P, nb_src_pkt_to_del) = P!/( nb_src_pkt_to_del)!( P - nb_src_pkt_to_del) ! Dans l'étape 1020, on initialise la variable iter à 1, variable correspondant à un compteur qui teste à chaque itération un nouvel ensemble de paquets sources associés à supprimer S_pkt(iter). Soit cmb_glob_cand la combinaison globale égale à cmb_glob_pred diminuée des paquets sources de S_pkt(iter) (les coefficients de ces paquets sources étant mis à zéro). Notons g'=[g'l,..,g'M] le vecteur colonne représentant cette combinaison globale cmb_glob_cand. Le but maintenant est de déterminer une combinaison locale cmb_loc_cand associée à cmb_glob_cand. Dans l'étape 1025, on construit alors, à partir de la matrice relais de R', un système linéaire afin de déterminer les coefficients à attribuer à cmb_loc_cand. Notons (3i,.., (31 ces coefficients avec 1 le nombre de paquets reçus. Pour chaque paquet source X;, il faut que le coefficient g';, associé à celui-ci dans cmb_glob_cand, se retrouve dans la somme des paquets reçus de cmb_loc_cand, c'est-à-dire qu'on doit avoir la relation : = , pour chaque paquet source. ]=1 On a donc un système linéaire : A(3 = g, avec (3 le vecteur colonne des inconnues [R1,.., R1], g'=[g'l,••,g'M] le vecteur colonne de cmb_glob_cand et A une matrice de dimension (M,1) dont chaque coefficient aii est égal à r'i1. Dans une variante, une étape supplémentaire de filtrage (non représentée sur la figure 10) peut être effectuée, similaire à l'étape 705 de la figure 7. Dans l'étape 1030, on résout le système linéaire créé dans l'étape 1025 par la méthode de Gauss-Jordan. Puis, dans le test de l'étape 1035, on vérifie que le système est compatible ou pas (admet une solution ou pas). Si oui, on passe à l'étape 1040, sinon à l'étape 1050. Dans l'étape 1050, on vérifie si la variable iter est égale à Nb test, c'est-à-dire que toutes les combinaisons globales ont été testées avec un nombre de paquets sources associés supprimés égal à nb_src_pkt. Si le test de l'étape 1050 est négatif, on passe à l'étape 1065, dans laquelle on incrémente la variable iter et on sélectionne un nouvel ensemble de paquets sources associés à supprimer S_pkt(iter), puis on retourne à l'étape 1025. Si le test de l'étape 1050 est positif, on passe à l'étape 1055. Dans l'étape 1055, on vérifie si la variable nb_src_pkt_to_del est égale à p, le nombre de paquets sources associés dans cmb_glob_pred. Si oui, on passe à l'étape 1070, ceci correspond au fait qu'il n'y a plus de paquets sources disponibles à supprimer. Dans l'étape 1070, on renvoie alors les combinaisons locales et globales nulles. Si le test de l'étape 1055 est négatif, alors la variable nb_src_pkt_to_del est incrémentée (étape 1060) et on retourne à l'étape 1015. Dans l'étape 1040, on attribue les valeurs de [(31,.., (31] données par l'algorithme de Gauss-Jordan. Si le système admet une infinité de solutions, la valeur des coefficients pi associés aux inconnues secondaires est mise à zéro. Dans l'étape 1045, on mémorise la combinaison locale cmb_loc_cand associée au vecteur colonne [(31,.., (31] et la combinaison globale cmb_cand_glob associée au vecteur colonne g'MI. La figure 11 décrit l'algorithme de décodage d'un noeud de destination (c'est-à-dire l'algorithme d'un procédé de codage réseau selon un mode de réalisation particulier de l'invention, mis en oeuvre par un noeud destination pour décoder les paquets sources et obtenir des paquets sources décodés). Cet algorithme se lance à la fin de la supertrame (étape 1100), lorsque tous les noeuds relais ont eu accès au médium durant la supertrame. A cette date, l'algorithme détermine les paquets de données utiles non disponibles (étape 1105). Ce moyen se base par exemple sur des informations radio, telles que le rapport signal sur bruit (en anglais � Signal Noise Ratio �) ou la puissance du signal reçu (� Radio Signal Strength Indication �). Si ces variables dépassent un seuil prédéfini, le paquet est considéré disponible, sinon non disponible. Puis, dans l'étape 1110, on détermine la composition des paquets utiles disponibles. Si un paquet n'a pas de notification, la composition en paquets sources est donnée par la matrice de destination, plus précisément, par la ligne correspondant au paquet reçu. Sinon, la notification est lue et on détermine la nouvelle composition du paquet en lisant les modifications par rapport à la combinaison globale de la matrice destination, indiquées par la notification. A l'étape 1115, une matrice de destination temporaire D' = d',i, valide uniquement pour l'exécution de cet algorithme dans la supertrame courante est créée si un paquet utile est considéré non disponible à l'étape 1105 ou si un paquet utile a été modifié à l'étape 1110. Elle est remplie de la manière suivante (étape 1115) : - initialisation de la valeur des coefficients de la matrice destination temporaire à la valeur des coefficients de la matrice destination prédéterminée ; - les lignes correspondant aux paquets non disponibles, résultat de l'étape 1105, deviennent des lignes nulles (tous les coefficients de la ligne sont mis à zéro) ; - les lignes correspondant aux paquets disponibles modifiés, résultat de l'étape 1110, sont modifiées et prennent en compte les modifications de la notification : un élément d',i modifié signifie que le paquet associé à cette ligne i a été modifié ; la colonne j correspond à l'identifiant (315 ou 325, figure 3) du paquet source indiqué dans la notification ; la nouvelle valeur de d',i correspond à la nouvelle valeur du coefficient indiquée dans la notification (320 ou 330, figure 3). Dans l'étape 1120, on vérifie si la matrice destination temporaire D' a été créée ou pas. Si oui, on passe à l'étape 1130, sinon à l'étape 1125. Dans l'étape 1125, on décode les paquets sources à partir de la matrice de décodage (prédéterminée ou modifiée si on vient de l'étape 1145). Par contre, si le test de l'étape 1120 est positif, ceci indique qu'une perte de lien a eu lieu et a touché un paquet utile. La matrice de décodage n'est donc plus valide, une nouvelle est à calculer. Pour cela, les paquets redondants reçus sont nécessaires. Dans un premier temps, l'algorithme détermine si ces paquets redondants n'ont pas été impactés par une perte de liens. On exécute alors les étapes 1130 et 1135 (qui sont les mêmes que les étapes 1105 et 1110) sur les paquets redondants. Dans l'étape 1140, on met à jour D' de la même manière que l'étape 1115. Dans l'étape 1145, on recalcule à partir de la matrice destination temporaire D' une matrice de décodage temporaire C-'prou qui décodera le maximum de paquet sources. Cette opération est décrite ci-après en détail en relation avec la figure 12. Cette matrice C-'prou n'est valable que durant la période de la supertrame courante. La figure 12, correspondant à l'étape 810 de la figure 8 ou à l'étape 1145 de la figure 11, décrit l'algorithme qui permet de déterminer le nombre de paquets sources décodables et par suite de déterminer la matrice de décodage associée. Cet algorithme est appelé : • au niveau d'un noeud relais R; (à l'étape 810 de la figure 8), pour déterminer l'impact, sur les noeuds destinations, de l'envoi d'une nouvelle combinaison globale par le noeud relais ; • et bien sûr, au niveau d'un noeud destination D; (à l'étape 1145 de la figure 11), quand celui-ci doit modifier sa matrice de décodage. Il faut noter que l'étape 1260 n'est pas implémentée dans les noeuds relais (car ceux-ci n'ont pas la nécessité d'effectuer le décodage). Le paramètre de sortie est donc - au niveau des noeuds relais, le nombre de paquets décodables, nb_src_pkt_dec ; - au niveau des noeuds destinations, la nouvelle matrice de décodage C-1 prov. Pour déterminer le nombre maximum de paquets sources décodables, l'algorithme teste si les M paquets sources sont décodables. Si oui, l'algorithme est terminé, sinon on teste si (M-1) paquets sources sont décodables. Si oui, l'algorithme est terminé, sinon on teste si (M-2) paquets sources sont décodables, et ainsi de suite. Dans l'étape 1210, on initialise le nombre de paquets sources à supprimer, nb_src_pkt_to_del, à zéro. Dans le test de l'étape 1215, on vérifie si ce nombre est bien strictement inférieur à M. Si oui, on passe à l'étape 1220, sinon à l'étape 1235. Dans ce dernier cas, ceci signifie qu'aucun paquet source n'est décodable, la variable nb_src_pkt_dec est initialisée à zéro et bien sûr il n'y a pas de matrice de décodage, donc l'algorithme est terminé (étape 1280). Dans l'étape 1220, on détermine le nombre d'ensemble de paquets sources à supprimer. Cette valeur nb_test est égale à la combinaison suivante au sens mathématiques (avec ! correspondant à l'opération factoriel) : C(M, nb_src_pkt_to_del) = M ! /(nb_src_pkt_to_del)!( M - nb_src_pkt_to_del) ! Dans cette étape 1220, on initialise aussi la variable iter à 1, qui correspond à un compteur qui teste à chaque itération un nouvel ensemble de nb_src_pkt_to_del paquets sources associés à supprimer. L'étape 1225 détermine un ensemble de nb_src_pkt_to_del paquets sources à supprimer, ensemble différent pour chaque itération iter. L'étape 1230 détermine une nouvelle matrice de destination D'i, sous-matrice de la matrice destination D;. Les paquets résultants contenant les paquets sources à supprimer déterminé à l'étape 1220 ne sont pas pris en compte. Donc D'; correspond à la matrice destination Di, moins les colonnes correspondant aux paquets sources à supprimer, et moins les lignes qui avaient un coefficient non nul pour les colonnes correspondant aux paquets sources à supprimer. Puis, dans l'étape 1240, on vérifie s'il reste des paquets sources, c'est-à-dire si la matrice D'i a encore des lignes. Si non, on passe à l'étape 1265, si oui à l'étape 1245. Dans l'étape 1245, on recherche le rang de la matrice D';, noté rand Di. Pour cela, la méthode de Gauss-Jordan est encore utilisée en effectuant une triangulation de la matrice D';. Notons T la matrice triangulée. Le rang est le nombre de lignes non nulles de T. Stockons en mémoire la matrice T' (constituée uniquement des lignes non nulles de T) et les paquets résultants associés aux lignes de T'. Dans l'étape 1250, on vérifie si la valeur de rang Di est égale à (M-nb_src_pkt_to_ del). Si oui, tous les paquets sources présents dans la matrice D'; sont décodables, on passe à l'étape 1255. Sinon la matrice T' est supprimée et on passe à l'étape 1265. Dans l'étape 1255, on met à jour nb_src_pkt_dec(D;) à rand Di. Puis si le noeud est un noeud relais, l'algorithme est terminé (étape 1280). Sinon (c'est-à-dire si le noeud est un noeud destination), on passe à l'étape 1260 avant la fin de l'algorithme. Dans l'étape 1260, on récupère la matrice T', on effectue une inversion de celle-ci (T' est une matrice carrée de dimension (M-nb_src_pkt_to_del,M-nb_src_pkt_to_ del)) et on stocke la matrice inverse C-'prou de T', C-'prou étant la matrice de décodage provisoire. De plus, les paquets mémorisés à l'étape 1245 sont notés comme les paquets utiles provisoires. Dans l'étape 1265, on vérifie si tous les ensembles de nb_src_pkt_to_del ont été testés, c'est-à-dire si la variable iter est égale à Nb test. Si oui, on passe à l'étape 1275, sinon à l'étape 1270. Dans l'étape 1270, on incrémente la variable iter et on détermine un nouvel ensemble de nb_src_pkt_to_del paquets sources à supprimer. Puis, on retourne à l'étape 1230. Dans l'étape 1275, on incrémente le nombre de paquets sources à supprimer nb_src_pkt_to_del puis on revient à l'étape de test 1215. REVENDICATIONS1. Procédé de codage réseau dans un réseau maillé comprenant au moins un noeud relais qui, selon un schéma de codage réseau prédéterminé, s'attend à recevoir en entrée une pluralité de paquets de données et doit générer en sortie un paquet résultant prédéterminé obtenu selon une première combinaison linéaire prédéterminée d'une partie de ladite pluralité de paquets de données, les paquets de données appartenant à ladite partie étant dits paquets utiles et les paquets de données n'appartenant pas à ladite partie étant dits paquet redondants, chacun des paquets de données attendus en entrée étant formé, selon ledit schéma de codage réseau prédéterminé, par une combinaison linéaire d'un ou plusieurs paquets sources, les paquets sources étant émis par des noeuds sources, ledit procédé étant mis en oeuvre par au moins un noeud relais donné et étant caractérisé en ce qu'il comprend des étapes consistant à : - détecter (505, 510, 515, 520) si au moins un paquet utile est manquant ou qu'il a été reçu modifié de sorte que la combinaison linéaire du ou des paquets sources formant ledit paquet utile modifié ne soit pas conforme au schéma de codage réseau prédéterminé ; - dans le cas d'une détection positive, construire (530, 535, 540, 545) un paquet résultant reconstitué en utilisant, selon un schéma de codage réseau modifié, tout ou partie des paquets redondants ; et - transmettre (550) le paquet résultant reconstitué. 2. Procédé selon la revendication 1, caractérisé en ce que ladite étape consistant à construire un paquet résultant reconstitué comprend une étape (615, 620, 640, 635, 735) consistant à déterminer une deuxième combinaison linéaire de paquets redondants et 25 utiles, parmi une pluralité de paquets de données effectivement reçus par ledit noeud relais donné, permettant d'obtenir un paquet résultant reconstitué identique au paquet de données résultant prédéterminé à générer, si ladite deuxième combinaison linéaire de paquets redondants et utiles existe. 3. Procédé selon la revendication 2, caractérisé en ce que ladite étape consistant à 30 déterminer la deuxième combinaison linéaire de paquets redondants et utiles est réalisée 20en testant (615, 620) si chaque paquet utile détecté manquant peut être remplacé par un paquet redondant effectivement reçu par ledit noeud relais donné. 4. Procédé selon la revendication 2, caractérisé en ce que ladite étape consistant à déterminer la deuxième combinaison linéaire de paquets redondants et utiles comprend des étapes consistant à : - déterminer (710) une troisième combinaison linéaire prédéterminée de paquets sources, associée à ladite première combinaison linéaire prédéterminée de paquets utiles, et permettant d'obtenir ledit paquet résultant prédéterminé ; - construire (710) un système linéaire A(3 = g, où (3 est un vecteur colonne des coefficients de ladite deuxième combinaison linéaire de paquets redondants et utiles à déterminer, où g est un vecteur colonne des coefficients de ladite troisième combinaison linéaire prédéterminée de paquets sources, et où A est une matrice de dimension (M,1), avec M le nombre de paquets sources et 1 le nombre de paquets effectivement reçus par ledit noeud relais donné, la matrice A étant définie de la manière suivante : * chaque ligne de la matrice A représente un paquet source, * chaque colonne de la matrice A représente un paquet effectivement reçu, * chaque élément aii de la matrice A représente le coefficient du paquet source i d'une quatrième combinaison linéaire de paquets sources permettant 20 d'obtenir le paquet effectivement reçu j ; - résoudre (715) ledit système linéaire par une méthode prédéterminée ; - si le système linéaire admet une solution (720), déterminer (725, 730, 735) ladite deuxième combinaison linéaire de paquets redondants et utiles, en fonction du vecteur colonne (3 de ladite solution. 25 5. Procédé selon l'une quelconque des revendications 2 à 4, caractérisé en ce que, si ladite deuxième combinaison linéaire de paquets redondants et utiles n'existe pas, ladite étape consistant à construire un paquet résultant reconstitué comprend des étapes consistant à : a) construire (760, 755, 715, 720, 725, 730) un paquet résultant contenant des 30 paquets sources non contenus dans le paquet résultant prédéterminé ; 15b) obtenir (740) une information relative, pour au moins un autre noeud participant au schéma de codage réseau prédéterminé, à un schéma de codage réseau modifié qui résulterait de l'envoi du paquet résultant modifié construit à l'étape a) ; c) en fonction de l'information obtenue à l'étape b), sélectionner (735) le paquet résultant modifié construit à l'étape a) ou réitérer l'étape a) pour construire un autre paquet résultant. 6. Procédé selon la revendication 5, caractérisé en ce que l'étape a) comprend des étapes consistant à : i) déterminer (755) une cinquième combinaison linéaire prédéterminée de paquets sources, permettant d'obtenir ledit paquet résultant contenant des paquets sources non contenus dans le paquet résultant prédéterminé ; ii) construire (755) un système linéaire A(3 = g, où (3 est un vecteur colonne des coefficients de ladite deuxième combinaison linéaire de paquets redondants et utiles à déterminer, où g est un vecteur colonne des coefficients de ladite cinquième combinaison linéaire prédéterminée de paquets sources, et où A est une matrice de dimension (M,1), avec M le nombre de paquets sources et 1 le nombre de paquets effectivement reçus par ledit noeud relais donné, la matrice A étant définie de la manière suivante : * chaque ligne de la matrice A représente un paquet source, * chaque colonne de la matrice A représente un paquet effectivement reçu, * chaque élément aii de la matrice A représente le coefficient du paquet source i d'une sixième combinaison linéaire de paquets sources permettant d'obtenir le paquet effectivement reçu j ; iii) résoudre (715) ledit système linéaire par une méthode prédéterminée ; iv) si le système linéaire admet une solution (720), déterminer (725) ladite deuxième combinaison linéaire de paquets redondants et utiles, en fonction du vecteur colonne (3 de ladite solution, sinon réitération de l'étape i) avec une autre cinquième combinaison linéaire prédéterminée de paquets sources. 7. Procédé selon l'une quelconque des revendications 5 et 6, caractérisé en ce que, dans l'étape b), ladite information relative au schéma de codage réseau modifié, quirésulterait de l'envoi du paquet résultant modifié construit à l'étape a), est la somme du nombre de paquets sources décodables par l'ensemble des noeuds destinations du réseau si le paquet résultant modifié construit à l'étape a) est supposé envoyé, et en ce que, dans l'étape c, le paquet résultant modifié construit à l'étape a) est sélectionné si ladite information relative au schéma de codage réseau modifié est égale au nombre de noeuds sources dans le réseau multiplié par le nombre de noeuds destination dans le réseau. 8. Procédé selon l'une quelconque des revendications 5 à 7, caractérisé en ce que, si ladite deuxième combinaison linéaire de paquets redondants et utiles n'existe pas, ladite étape consistant à construire un paquet résultant reconstitué comprend des étapes consistant à : - construire (905) un premier paquet résultant, différent du paquet résultant prédéterminé mais contenant uniquement des paquets sources inclus dans le paquet résultant prédéterminé ; - obtenir (910) une première information relative, pour au moins un autre noeud participant au schéma de codage réseau prédéterminé, à un schéma de codage réseau modifié qui résulterait de l'envoi du premier paquet résultant, le premier paquet résultant étant associé à ladite première information sur le schéma de codage réseau modifié ; - parmi le ou les paquets non sélectionné(s) à l'étape c) et contenant des paquets sources non contenus dans le paquet résultant prédéterminé, sélectionner (915) un deuxième paquet résultant, en fonction de ladite information, obtenue à l'étape b) pour chaque paquet non sélectionné à l'étape c), sur le schéma de codage réseau modifié, le deuxième paquet résultant étant associé à une deuxième information relative au schéma de codage réseau modifié ; et - sélectionner (920, 925, 930) entre les premier et deuxième paquets résultants, en fonction des première et deuxième informations relatives au schéma de codage réseau modifié. 9. Procédé selon l'une quelconque des revendications 2 à 4, caractérisé en ce que, si 30 ladite deuxième combinaison linéaire de paquets redondants et utiles n'existe pas, ladite 20 25étape consistant à construire un paquet résultant reconstitué comprend une étape consistant à : - construire (625) un paquet résultant, différent du paquet résultant prédéterminé mais contenant uniquement des paquets sources inclus dans le paquet résultant prédéterminé. 10. Procédé selon l'une quelconque des revendications 1 à 9, caractérisé en ce que, si le paquet résultant reconstitué n'est pas identique au paquet de données résultant prédéterminé, le procédé comprend une étape supplémentaire (630, 745, 775) consistant à transmettre une notification (305) identifiant des différences entre la combinaison linéaire de paquets sources représentative dudit paquet résultant prédéterminé, et la combinaison linéaire de paquets sources représentative dudit paquet résultant reconstitué. 11. Procédé de codage réseau dans un réseau maillé comprenant au moins un noeud destination qui, selon un schéma de codage réseau prédéterminé, s'attend à recevoir en entrée une pluralité de paquets de données et doit générer en sortie une pluralité de paquets sources décodés obtenus chacun selon une combinaison linéaire prédéterminée d'une partie de ladite pluralité de paquets de données, les paquets de données appartenant à ladite partie étant dits paquets utiles et les paquets de données n'appartenant pas à ladite partie étant dits paquet redondants, chacun des paquets de données attendus en entrée étant formé, selon ledit schéma de codage réseau prédéterminé, par une combinaison linéaire d'un ou plusieurs paquets sources, les paquets sources étant émis par des noeuds sources, ledit procédé étant mis en oeuvre par au moins un noeud destination donné et étant caractérisé en ce qu'il comprend des étapes consistant à : - détecter (1105, 1110, 1115, 1120) si au moins un paquet utile est manquant ou qu'il a été reçu modifié de sorte que la combinaison linéaire du ou des paquets sources formant ledit paquet utile modifié ne soit pas conforme au schéma de codage réseau prédéterminé ; et - dans le cas d'une détection positive, décoder (1130, 1135, 1140, 1145, 1125) les paquets de données utiles reçus, en fonction d'un schéma de codage réseau modifié, pour obtenir au moins un paquet source décodé. 30 12. Procédé selon la revendication 11, caractérisé en ce que ladite étape consistant à détecter si au moins un paquet utile est manquant ou qu'il a été reçu modifié, comprend une étape consistant à, pour au moins un paquet utile effectivement reçu : - détecter (1110) une notification reçue (305) associée audit paquet utile effectivement reçu, ladite notification identifiant les différences entre la combinaison linéaire de paquets sources représentative du paquet utile attendu en entrée, et la combinaison linéaire de paquets sources représentative dudit paquet utile effectivement reçu. 13. Produit programme d'ordinateur téléchargeable depuis un réseau de communication et/ou enregistré sur un support lisible par ordinateur et/ou exécutable par un processeur, caractérisé en ce qu'il comprend des instructions de code de programme pour la mise en oeuvre du procédé selon au moins une des revendications 1 à 10 et/ou le procédé selon au moins une des revendications 11 et 12, lorsque ledit programme est exécuté sur un ordinateur. 14. Moyen de stockage lisible par ordinateur, éventuellement totalement ou partiellement amovible, stockant un programme d'ordinateur comprenant un jeu d'instructions exécutables par un ordinateur pour mettre en oeuvre le procédé selon au moins une des revendications 1 à 10 et/ou le procédé selon au moins une des revendications 11 et 12. 15. Noeud relais compris dans un réseau maillé et participant à un procédé de codage réseau dans ledit réseau maillé, ledit noeud relais, selon un schéma de codage réseau prédéterminé, s'attendant à recevoir en entrée une pluralité de paquets de données et devant générer en sortie un paquet résultant prédéterminé obtenu selon une première combinaison linéaire prédéterminée d'une partie de ladite pluralité de paquets de données, les paquets de données appartenant à ladite partie étant dits paquets utiles et les paquets de données n'appartenant pas à ladite partie étant dits paquet redondants, chacun des paquets de données attendus en entrée étant formé, selon ledit schéma de codage réseau prédéterminé, par une combinaison linéaire d'un ou plusieurs paquets sources, les paquets sources étant émis par des noeuds sources, ledit noeud relais étant caractérisé en ce qu'il comprend :- des moyens de détection, permettant de détecter si au moins un paquet utile est manquant ou qu'il a été reçu modifié de sorte que la combinaison linéaire du ou des paquets sources formant ledit paquet utile modifié ne soit pas conforme au schéma de codage réseau prédéterminé ; et - des moyens de construction, activés dans le cas d'une détection positive, permettant de construire un paquet résultant reconstitué en utilisant, selon un schéma de codage réseau modifié, tout ou partie des paquets redondants ; - des moyens de transmission, permettant de transmettre le paquet résultant reconstitué. 16. Noeud destination compris dans un réseau maillé et participant à un procédé de codage réseau dans ledit réseau maillé, ledit noeud destination, selon un schéma de codage réseau prédéterminé, s'attendant à recevoir en entrée une pluralité de paquets de données et devant générer en sortie une pluralité de paquets sources décodés obtenus chacun selon une combinaison linéaire prédéterminée d'une partie de ladite pluralité de paquets de données, les paquets de données appartenant à ladite partie étant dits paquets utiles et les paquets de données n'appartenant pas à ladite partie étant dits paquet redondants, chacun des paquets de données attendus en entrée étant formé, selon ledit schéma de codage réseau prédéterminé, par une combinaison linéaire d'un ou plusieurs paquets sources, les paquets sources étant émis par des noeuds sources, ledit noeud destination étant caractérisé en ce qu'il comprend : - des moyens de détection, permettant de détecter si au moins un paquet utile est manquant ou qu'il a été reçu modifié de sorte que la combinaison linéaire du ou des paquets sources formant ledit paquet utile modifié ne soit pas conforme au schéma de codage réseau prédéterminé ; - des moyens de décodage, activés en cas de détection positive, permettant de décoder les paquets de données utiles reçus, en fonction d'un schéma de codage réseau modifié, pour obtenir au moins un paquet source décodé.