FR2939586A1 - Network coding method for wireless mesh communication network, involves constructing part of result packet with combination of expected input packets using momentarily used packets, before end of reception of expected input data packets - Google Patents

Network coding method for wireless mesh communication network, involves constructing part of result packet with combination of expected input packets using momentarily used packets, before end of reception of expected input data packets Download PDF

Info

Publication number
FR2939586A1
FR2939586A1 FR0858367A FR0858367A FR2939586A1 FR 2939586 A1 FR2939586 A1 FR 2939586A1 FR 0858367 A FR0858367 A FR 0858367A FR 0858367 A FR0858367 A FR 0858367A FR 2939586 A1 FR2939586 A1 FR 2939586A1
Authority
FR
France
Prior art keywords
packet
packets
expected
source
predetermined
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR0858367A
Other languages
French (fr)
Other versions
FR2939586B1 (en
Inventor
Julien Sevin
Romain Guignard
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to FR0858367A priority Critical patent/FR2939586B1/en
Publication of FR2939586A1 publication Critical patent/FR2939586A1/en
Application granted granted Critical
Publication of FR2939586B1 publication Critical patent/FR2939586B1/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/02Arrangements for detecting or preventing errors in the information received by diversity reception
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B7/00Radio transmission systems, i.e. using radiation field
    • H04B7/14Relay systems
    • H04B7/15Active relay systems
    • H04B7/155Ground-based stations
    • H04B7/15521Ground-based stations combining by calculations packets received from different stations before transmitting the combined packets as part of network coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0078Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
    • H04L1/0079Formats for control data
    • H04L1/0082Formats for control data fields explicitly indicating existence of error in data being transmitted, e.g. so that downstream stations can avoid decoding erroneous packet; relays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L2001/0092Error control systems characterised by the topology of the transmission link
    • H04L2001/0097Relays

Abstract

The method involves detecting a corrupted used packet. A new linear combination of expected input packets permitting to construct a reconstituted result packet using all or part of redundant packets is determined before an end of reception of data packets, when the corrupted used packet is detected. A part of the result packet is constructed with the combination of expected input packets using already correctly received momentarily used packets, before an end of reception of expected input data packets. Independent claims are also included for the following: (1) a computer program product comprising program code instructions for implementing a network coding method (2) a storage medium for storing a computer program comprising instructions for implementing a network coding method (3) a relay node comprised in a mesh network and participating in a network coding method (4) a destination node comprised in a mesh network and participating in a network coding method.

Description

Procédé de codage réseau rapide et 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é. Fast and robust network coding method for transmission losses in a mesh network, relay node, destination node, computer program product and corresponding storage means. FIELD OF THE INVENTION The field of the invention is that of meshed communication networks. More specifically, the invention relates to a network coding technique adapted to the transmission of data packets, in a mesh communication network, from source nodes to destination nodes, via relay nodes retransmitting packets. data from the source nodes and destined for the destination nodes. In accordance with the general principle of network coding, the messages retransmitted by the relay nodes are linear combinations of the messages received by these relay nodes, which makes it possible to increase the data rate and make best use of the network capacity. The invention applies in particular, but not exclusively, in the context of a wireless mesh network. 2. TECHNOLOGICAL BACKGROUND 2.1 Context and problem In the remainder of this document, we will focus on the problem existing in the context of network coding in a wireless mesh network, which the inventors of this patent application. The invention is of course not limited to this particular context of application, but is of interest in all cases of network coding adapted to the transmission, via relay nodes, of data packets from source nodes to destination nodes. , in a mesh communication network.

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 (telle 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 destinations 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 description, 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). Ils calculent à partir de ces paquets reçus une matrice de décodage qui permettra de décoder les paquets sources (c'est-à-dire de construire des paquets sources reconstitués à partir des paquets reçus). 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). A wireless mesh communication network consists of a set S of M source nodes and a set Dt of N destination nodes. The transmissions considered are called multicast (the term multicast is sometimes also used), that is to say that each data packet sent by a source node is intended for all the destination nodes of Dt. The other nodes being relay nodes, used to retransmit source packets sent by the source nodes. The topology of the network is assumed to be known, ie all the radio qualities (such as the received radio power) between two communicating nodes are known. The relay nodes conventionally have the function of retransmitting one of the packets they have received as input (routing function). As part of a network coding, these relay nodes have a new feature: they have the ability to issue a resulting packet that is a combination of packets received as input. The concept of network coding was introduced by R. Ahlswede and co. (see article: R. Ahlswede, N. Cai, S. YR Li and RW Yeung "Network Information Flow" IEEE Transactions on Information Theory Vol 46, No. 4, pp 1204-1216, July 2000) and very quickly, many articles have demonstrated the contribution of this new concept, especially in terms of bandwidth gain and in terms of network capacity utilization. In addition, it has been shown that in a multicast framework (each message sent by a source node is destined for the set of destination nodes of Dt), the linear combinations in a sufficiently large field Fq give an optimal result (in terms of gain). In the remainder of the present description, the term network coding scheme is used: • the relay nodes combining the input packets to generate a combined packet called the resulting packet; For these relay nodes, the input packets to be combined among the set of packets received; • Each input packet to combine is associated with a coefficient in Fq. These relay nodes and these packets (corresponding to links) participating in the network coding are considered useful, the others are considered redundant. The destination nodes then receive a plurality of packets (the resulting packets from the relay nodes) which are a linear combination of the source packets (packets sent by the source nodes). They calculate from these received packets a decoding matrix that will decode the source packets (that is, build source packets reconstructed from the received packets). In the context of the invention, the coding scheme used is an optimized coding scheme (described for example in patent application US2005 / 0010675) reducing the number of relay nodes and of useful packets participating in the network coding scheme in order to decrease the number of operations and therefore the CPU time. This scheme is determined at the initialization of the system taking into account the topology of the system. The resulting packets emitted by the relay nodes are therefore predetermined (more precisely their associated linear combination).

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ées en nombre de paquets sources décodables par les noeuds destinations). But the wireless network is sensitive to masking caused for example by a living being crossing the field of transmission. The loss of links caused by these masks can temporarily modify the topology of the initial network, topology on which the predetermined network coding scheme has been calculated. It is then no longer valid during this period, which can lead to the inability of the destination nodes to decode all the source packets because they are all linked together in the packets received. It is therefore necessary to increase the robustness of the network coding scheme against these link losses (measured in number of source packets decodable by the destination nodes).

En outre, dans le cadre de l'invention, le protocole d'accès au médium est basé sur un protocole d'accès multiple à répartition dans le temps (TDMA, pour Time Division Multiple Access en anglais) où chaque noeud du réseau a accès au médium cycliquement de manière déterministe durant une période fixe prédéterminée. Une supertrame est alors définie, comme étant une période durant laquelle chaque noeud du réseau a accès au médium une unique fois durant un temps déterminé. Il est à noter que les noeuds relais ont par exemple l'autorisation de combiner uniquement des données émises par les noeuds sources durant la supertrame courante afin d'optimiser la latence des applications considérées (vidéo par exemple). 2.2 Prérequis et limites de l'état de la technique 2.2.1 Le corps F3, 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 : In addition, in the context of the invention, the medium access protocol is based on a Time Division Multiple Access (TDMA) protocol where each node of the network has access. to the medium cyclically in a deterministic manner during a predetermined fixed period. A superframe is then defined as being a period during which each node of the network has access to the medium only once during a given time. It should be noted that the relay nodes have, for example, the authorization to combine only data transmitted by the source nodes during the current superframe in order to optimize the latency of the applications considered (video for example). 2.2 Prerequisites and Limits of the State of the Art 2.2.1 The body F3, q = 2s The set of operations carried out in the present invention is carried out in a finite body denoted Fq, consisting of q elements. In the context of the invention, the information sequences sent in the network are in a container called package, which has a fixed size. s consecutive bits of a packet constitute a symbol on the body Fq with q = 2s. For example, a 1400-byte packet contains 1400 symbols if the body size is 28 or contains 700 symbols if the body size is 216. The addition, multiplication, and division operations are then performed symbol by symbol:

> L'addition + s'effectue bit à bit avec la fonction classique XOR > Addition + is done bit by bit with the classic XOR function

- 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. - For multiplication. a symbol of s bits, b0 ... bs_1, is transformed into a polynomial: bo + b1X + .. bs_1Xs_1. An irreducible polynomial on Fq is chosen. The multiplication between two symbols is then obtained by the classical multiplication between two polynomials modulo the irreducible polynomial.

- La division est calculée à partir de l'algorithme d'Euclide. - The division is calculated from the Euclidean algorithm.

Des implémentations sont données par exemple dans le document N.R. Implementations are given for example in the 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 . Wagner. The laws of Cryptography with Java Code, available on the Internet at: http://www.cs.utsa.edu/ùwagner/laws/FFM.html.

De ce fait, dans la suite de la présente description, lorsqu'on écrit Therefore, in the remainder of this description, when written

Y = avec A1...A1, 1 paquets en entrée et al,.., a, des coefficients dans Fq, ces i=1 Y = with A1 ... A1, 1 input packets and al, .., a, coefficients in Fq, these i = 1

opérations s'effectuent en réalité sur tous les symboles du paquet : yk = .a;` où yk et i=1 ak sont respectivement le kième symbole des paquets Y et A et les opérations + et . s'effectuent dans Fq. In fact, all of the symbols in the packet operate: yk = .a; `where yk and i = 1 ak are respectively the kth symbol of packets Y and A and the operations + and. take place in Fq.

Dans le cadre d'un fonctionnement en temps-réel, dans un environnement TDMA (cadre de l'invention), il est à noter que ces opérations ont un coût non négligeable et que la construction d'un paquet entier, notamment au niveau du noeud relais qui doit réagir rapidement, pose problème. In the context of real-time operation, in a TDMA environment (framework of the invention), it should be noted that these operations have a significant cost and that the construction of an entire packet, particularly at the Relay node that needs to react quickly, is a problem.

Dans un environnement TDMA (cadre de l'invention), la construction d'un paquet résultant par un noeud relais peut s'effectuer au fil de l'eau. A chaque paquet reçu utile, on effectue la multiplication avec son coefficient associé et on ajoute le résultat avec le résultat des autres paquets reçus. Par exemple, si le paquet résultant prédéterminé est alAl + a2A2, à la réception de Al, le noeud relais effectue la multiplication alAl et mémorise le résultat Res. Puis à la réception de A2, le noeud relais effectue l'opération a2A2 puis somme le résultat avec Res et stocke le nouveau résultat dans Res. 2.2.2 Codage réseau In a TDMA environment (framework of the invention), the construction of a resulting packet by a relay node can be carried out over water. Each useful received packet is multiplied with its associated coefficient and the result is added with the result of the other received packets. For example, if the predetermined resulting packet is alAl + a2A2, upon receiving Al, the relay node performs the multiplication alAl and stores the result Res. Then upon receipt of A2, the relay node performs the operation a2A2 then sum the result with Res and stores the new result in Res. 2.2.2 Network coding

2.2.2.1 Introduction 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 Ri doit combiner alors un ensemble de paquets reçus Mi, M2,..., M, parmi les paquets reçus. Le paquet résultant est alors égal à y, = l a~ M; avec 1=1 appartenant au corps fini Fq. Cette combinaison linéaire y, = l î M; est la 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 At a relay node, the linear combination associated with a resulting packet can be seen at two levels, a local level and a global level. To explain these two notions, suppose that a network coding scheme is predetermined for all the nodes and situate us in a useful relay node (also called combining). This relay node Ri must then combine a set of received packets Mi, M2, ..., M, among the packets received. The resulting packet is then equal to y, = l a ~ M; with 1 = 1 belonging to the finite field Fq. This linear combination y, = 1 M; is the local representation of the network coding, hereinafter called local combination. But the bundles to combine received as input can be themselves also packets

résultants provenant d'autre relais. Notons X~,...XM les paquets sources émis par les M resulting from other relays. Let X ~, ... XM be the source packages emitted by the M

noeuds sources. Il est alors clair que chaque paquet circulant dans le réseau est une combinaison linéaire des paquets X~,...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 source nodes. It is then clear that each packet flowing in the network is a linear combination of X ~, ... XM packets. The previously quoted packet y can be m also thus represented in the following way: y, = g; X; . This representation is the

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 o* 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. global representation of the network coding. It takes into account that each packet received M; is also a resulting package that combines source packages. It is called thereafter global combination. It is clear that the coefficients g3 are deduced recursively from the coefficients of o * Notation: the received packets intervening in a local combination are called subsequently the packets associated with the local combination. Source packets that have a nonzero coefficient in a global combination are subsequently called the packets associated with the global combination.

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. Note: Only one global combination can be associated with a given locale, but not vice versa. Indeed, to a global combination, we can associate several local combinations by playing on the choice of received packets M; to combine.

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=(r,,). al , (12-1,-41 >,...,a Chaque ligne représente un paquet reçu, chaque colonne un paquet source, et chaque élément de la matrice r,i 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=(d,i). Chaque ligne représente un paquet reçu et chaque colonne un paquet source, et chaque élément de la matrice d,i représente le coefficient du paquet source j de la combinaison linéaire globale du paquet reçu Y;. Le noeud destination doit alors résoudre le système linéaire constitué par l'ensemble des combinaisons linéaires m globales : Y~ =X; j=1...1', soit d'un point de vue matriciel, Y=D X avec D la 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 c 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ù1). 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) E E (un lien du graphe), (x, y) E T si et seulement s'il existe un chemin de T qui contient (x,y) 2. Soit x E V (un sommet du graphe), x E T 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) E E pour i = 1, ... , (pù1) et (xp, d) E E - (y, y+1) E E pour j = 1, ... , (qù1) et (yq, d) E E - i E S, Y1 E S et x1≠Y1 - Vi =1..(p -1), Vj =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 D1, alors les M noeuds sources sont capables d'émettre en multicast à D1 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 : 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 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 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 20 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. 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, 25 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. 15 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. In the context of the invention, each relay node stores the global representation of each packet received as input in a matrix, called relay matrix R = (r ,,). al, (12-1, -41>, ..., a Each line represents a received packet, each column a source packet, and each element of the matrix r, i then represents the coefficient of the source packet j of the linear combination The destination node di which receives the packets Y1, Y2,..., Y1 'also stores the global representation of each input packet received in a matrix, called destination matrix D = (d, i). Each line represents a received packet and each column a source packet, and each element of the matrix d, i represents the coefficient of the source packet j of the global linear combination of the received packet Y. The destination node then has to solve the linear system constituted by by the set of linear global combinations m: Y ~ = X; j = 1 ... 1 ', or from a matrix point of view, Y = DX with D the destination matrix, Y the column vector of the received packets and X the column vector of the source packets The resolution of this linear system e is explained in the following section. It should be noted that if the rank of D (in the sense of the linear algebra) is equal to the number of source nodes M then the M source packages are decodable. Otherwise, it is necessary to study more precisely the destination matrix to determine the number of decodable source packets. 2.2.2.2 Construction of a network coding In a mesh network consisting of M sources and N destination nodes, the preliminary step before building a network coding scheme is to ensure that there is a network coding scheme seen the topology of the network. This phase is based on graph theory concepts and in particular on a use of the Ford-Fulkerson algorithm (see "Maximum Flow through a Network" Canadian Journal of Mathematics, 8, pp 399-404, 1956). The network is modeled by a graph G = (V, E), V being a finite set of K nodes (called vertices in English), V = {xi,. . . , xK}, and E c V X V a finite set of edges that connect the nodes. In the context of the invention, the set E is an ordered set of pairs (xi, xi), with x; and xi belonging to v, these pairs being called connected edges, arcs or links (called edges in English). A node of V models a communicating entity in the network (computers, loudspeakers, amplifier) while an arc (xi, xi) indicates for example a sufficiently good radio communication (that is to say above a certain threshold of radio power received) between the two communicating entities x; and xi. Moreover, a path between a node x1 and a node xp is called an ordered set of nodes {x1, x2, .., xp} such that (xi, xi + 1) E E for i = 1,. . . , (pùl). A path can also be written {(x1, x2), .., (x1, x1 + 1), ..., (xp_1, xp)} with (xk, xk + 1) E for k = 1,. .., (pù1). We call k disjoint paths, k sets that do not have two consecutive nodes in common, either from a graphical point of view, two arcs in common. Let T be a set of k disjointed paths. We then define: 1. Let (x, y) EE (a link of the graph), (x, y) AND if and only if there exists a path of T which contains (x, y) 2. Let x EV ( a vertex of the graph), x AND if and only if there exists a path of T that contains x. We call two disjoint paths between a set S and a node d, two ordered sets of nodes {x1, x2, .., xp, d} and {y1, y2, .., yq, d} such that:> (xi , xi + 1) EE for i = 1, ..., (pù1) and (xp, d) EE - (y, y + 1) EE for j = 1, ..., (qù1) and (yq, d) EE - i ES, Y1 ES and x1 ≠ Y1 - Vi = 1 .. (p -1), Vj = 1 .. (q -1), (xi, x1 + 1) ~ (y; 'y; +1) and (xp, d) ~ (Yq, d) The definition is generalized very easily for a set of k disjoint paths. From these notions of graph theory, the state of the art gives the following condition: Let S be a set of M source nodes, if there exist M disjoint paths between S and each destination node of D1, then the M source nodes are able to multicast to D1 if the relay nodes are allowed to linearly combine their incoming packets on a sufficiently large finite field. This result is a direct consequence of the aforementioned article by R. Ahlswede and co. The invention is placed in the context where this condition is verified at the start of the system. On the other hand, during the life of the system, this condition may no longer be respected because of temporary loss of links. In this case, no network coding scheme exists for decoding the M source packets. The destination nodes can no longer decode M source packages. In the state of the art, there are mainly two approaches for the construction of a network coding scheme according to the knowledge or not of the initial topology of the network: for a known topology, a first deterministic diagram of construction of coefficients based on a matrix approach is given in the following article: R. Koetter, M. Medard, "An Algebraic Approach to Network Coding" ACM Transactions on Networking, Vol 11, Nos., October 2003. "The network coding scheme obtained according to this first approach is called a deterministic coding scheme: - For an unknown topology, an on-the-fly construction of the randomly drawn coefficients is given in the following article: "Randomized distributed network coding" - Michelle Effros, Tracey Ho, David Karger, Ralf Koetter, Muriel Medard 20050152391. The network coding scheme obtained according to this second approach is called a random coding scheme. approach, the coefficients are calculated once and for all at the start of the system and thus during the lifetime of the system. Destination nodes and relay nodes have inexpensive operations because they know exactly what they will receive and transmit. In the second approach, the relay nodes randomly pull the coefficients of the resulting packet to be generated, which requires additional processing time. In addition, they are obliged to send the randomly drawn coefficients in the resulting packet so that the other nodes, and more especially the destination nodes, know the linear combinations to decode. But this signaling is even larger than the body is large (each coefficient will be encoded on a larger number of bits), and it is as much lost bandwidth. But in this second approach, the larger the body, the greater the chances of successful decoding of source packages. Hence the contradiction. In the first approach, the decoding is sure to succeed because the construction made at initialization ensures that this is the case. The first approach is therefore more efficient than the second in terms of gain in bandwidth and computing time. On the other hand, the second approach is more efficient than the first on the following points: • it does not require knowledge of the topology of the network. In the context of the present invention, it is assumed that there is a means of recovering the topology of the network, so this disadvantage of the first approach is not taken into account; • it is robust to link losses, unlike the first approach. Indeed, since it generates a resulting packet with a different linear combination with each send, the loss of link is transparent for it (although not guaranteeing the decoding). It indicates a zero coefficient for the packet that was to arrive by this link.

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 (ou encore matrice destination) 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 (qui existe par construction du schéma), appelée matrice de décodage et notée Cl, 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. Dans le cadre d'un accès TDMA au médium, le décodage peut s'effectuer au fil de l'eau (même concept que celui expliqué dans le paragraphe 2.2.1 ci-dessus, pour les noeuds relais). Pour chaque paquet reçu utile, on effectue la multiplication entre le paquet reçu et ses coefficients associés dans la matrice C-1 et on ajoute le résultat avec le résultat obtenu pour les autres paquets reçus. Par exemple, supposons que deux paquets sources X et Y aient été envoyés et qu'un noeud destination ait la matrice C-1 suivante : C11 C12 ~C21 C22 A la réception du premier paquet utile M1, le noeud destination effectue déjà les opérations suivantes (symboles par symboles) et les stockent dans Xtemp et Ytemp : Xtemp = c11 M1 et Ytemp = c21 Ml. Puis, à la réception du second paquet utile M2, le noeud destination effectue les opérations suivantes : Xtemp = Xtemp + c12 M2 et Ytemp = Ytemp + c22 M2 Le deuxième paquet étant le dernier, Xtemp et Ytemp sont égaux à x et Y. Ce décodage s'appelle décodage au fil de l'eau dans la suite de la description. 2.2.3 Résolution d'un système linéaire Soit un système linéaire de n équations à p inconnues dans Fq : ialipi + +a1pNp ù bl an1N1 + +anplp = bn Avec [(31,... (3p] les p inconnues du système, a1i, i=1..n,j=1..p les coefficients du système et [b1,...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. The first approach is, however, strongly affected by link losses because each loss of link modifies the linear combination of the relay node (combination initially fixed) and only the relay node observing this loss is aware of it. The other nodes and especially the destination nodes are not aware of this modification of the topology and believe that everything is happening as usual. The decoding can then be catastrophic and influences all the source packets to be decoded since they are all linked by the linear combinations (unlike a routing where only a source packet would be reached). Considering in particular that the advantages of the first approach are essential in high speed applications as targeted by the invention, it is assumed in the following description that it is the first approach that is used to build a network coding scheme based knowledge of the initial topology of the network. In practice, the method of constructing the commonly used predetermined network coding scheme (according to the first approach) (hereinafter referred to as the optimized version) is that which limits the number of nodes and links participating in the network coding using only the paths disjoint from the existence condition of network encoding: only nodes and links of disjoint paths are useful for building the network encoding scheme. This optimized version is described in particular in the aforementioned US2005 / 0010675 patent application. From this observation, we call a node (respectively link) useful, a node (respectively link) which belongs to the set of disjoint paths and, we call node (respectively link) redundant, a node (respectively link) which n ' does not belong to the set of disjoint paths. This optimized version thus makes it possible to limit the number of operations. But in a wireless LAN, it is likely that these redundant links are numerous, because every time a node sends a packet, all other nodes in the network are likely to receive this packet. This optimized version of the network coding construction is for example used in the context of the present invention. It severely limits operations because only the nodes and links considered useful are used, which reduces the number of operations in the body at the relay node and the destination node. For example, a relay node no longer needs to combine the plurality of packets it receives but only a subset of packets. Same for the destination node that only needs a subset of the packets received to decode the source packets. With this optimized version, at first a network coding scheme is constructed which takes into account only the relay nodes and useful links, according to the following definitions: the relay nodes combining the input packets are the useful relay nodes; for these useful relay nodes, the input packets to be combined among all the packets received are the useful packets; each input packet to combine is associated with a coefficient in Fq. The resulting packets are thus predetermined. In the same way, the destination node then constructs a sub-matrix of the destination matrix D, called the coding matrix (or destination matrix) and denoted C, which only takes into account the useful packets (lines are therefore deleted from D). From C, a square submatrix of dimension (M, M) (the optimized schema assures this property), the destination node calculates the inverse of this one (which exists by construction of the schema), called the decoding matrix and denoted Cl, and thus decodes the source packets: X = C-1Y, with X the column vector of the source packets and Y the column vector of the packets received. In the context of a TDMA access to the medium, the decoding can be carried out over water (same concept as that explained in paragraph 2.2.1 above, for the relay nodes). For each useful received packet, the multiplication between the received packet and its associated coefficients is performed in the matrix C-1 and the result is added together with the result obtained for the other received packets. For example, suppose that two source packets X and Y have been sent and a destination node has the following matrix C-1: C11 C12 ~ C21 C22 On receipt of the first useful packet M1, the destination node already performs the following operations (symbols by symbols) and store them in Xtemp and Ytemp: Xtemp = c11 M1 and Ytemp = c21 Ml. Then, upon receipt of the second useful packet M2, the destination node performs the following operations: Xtemp = Xtemp + c12 M2 and Ytemp = Ytemp + c22 M2 The second packet being the last, Xtemp and Ytemp are equal to x and Y. This decoding is called decoding over water in the following description. 2.2.3 Resolution of a linear system Let a linear system of n equations with p unknowns in Fq: ialipi + + a1pNp ùblan1N1 + + anplp = bn With [(31, ... (3p] the p unknowns of the system , a1i, i = 1..n, j = 1..p the coefficients of the system and [b1, ... bn] the constants of the system To solve this system, one uses for example the method of the pivot of Gauss, also called Gauss-Jordan elimination, which is known to those skilled in the art Other matrix resolutions are possible to solve the system of equation: LU decomposition, QR decomposition, Cholesky method, they are directly applicable to the present invention.

Pour appliquer la méthode de Gauss, on associe au système la matrice suivante de dimension (n,p+1) : ail a,p .b1 a b np n Sur cette matrice, l'algorithme de Gauss-Jordan réalise des opérations 5 é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 To apply the Gaussian method, the following matrix of dimension (n, p + 1) is associated with the system: a, p .b1 ab np n On this matrix, the Gauss-Jordan algorithm performs elementary operations 5 per line to obtain a matrix of the form: 01 0 00000 1 to 1 (r + 1) a1p b1 ar (r + 1) arp br 0 0 br + 1

0 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 : 10 - 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,... 13p]. Les Ut... 13r] sont les inconnues principales, les autres [(3r+l,... (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 15 en résolvant le système linéaire en commençant par 13r puis Rr-i' • • • RI > 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 [jt... 13p]. Les [(3I,... Rn] sont les inconnues principales, les autres [(3n+l,... (3p] 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 131= 6, ,..,13p= bp . > Sinon le système est incompatible. 4. Si r est égal à p et à n, le système admet une unique solution : ,..,(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. 0 0 bn The system is said to be compatible if it admits at least one solution. Compatibility depends on the value of r with respect to the values of n and p: 1. In the case where r is strictly smaller than n and p, two cases occur: 10 - The coefficients br + 1, ... , bn are void. In this case, the system is compatible and there exists an infinity of solution for the [(31, ... 13p] .The Ut ... 13r] are the main unknowns, the others [(3r + 1, ... (3p) are the secondary unknowns To solve the system, we fix then the [(3r + 1, ... (3p) which become parameters and we determine the main unknowns 15 by solving the linear system starting with 13r then Rr-i '• • • RI> There are coefficients br + 1, ..., bn not null The system is incompatible 2. In the case where r is equal to n and strictly inferior to p, there exists a infinity of solution for [jt ... 13p] The [(3I, ... Rn] are the main unknowns, the others [(3n + l, ... (3p) are the secondary unknowns. the case where r is equal to p and strictly less than n, two cases occur:> The coefficients br + 1, ..., bn are null The system admits a solution 131 = 6,, .., 13p = bp Otherwise the system is incompatible 4. If r equals p and at n, the system admits a unique solution:, .., (3p = bp 2.2.4 Limits of the state of the art In the state of the art, the management of packet losses in a network coding scheme is mainly managed by the random coding scheme (second approach described above), because the latter (unlike the deterministic coding scheme according to the first approach) is robust to link losses (as detailed previously). Indeed, with the random coding scheme, the relay nodes systematically perform expensive operations to combine packets with or without loss of packets.

Mais, considérant que les avantages de la première approche décrite ci-dessus (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). But, considering that the advantages of the first approach described above (in terms of bandwidth gain and calculation time) are essential in high speed applications (as detailed before), the present invention is placed in the context where it is this first approach that is used (network coding scheme based on knowledge of the initial topology of the network).

Or, dans le cas où la première approche est utilisée, 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. Pour résoudre le problème de la gestion des pertes de paquets, dans le cas où la première approche précitée (schéma de codage déterministe) est utilisée, il n'a jamais été proposé de technique consistant, pour les noeuds relais et les noeuds destinations, à modifier localement et provisoirement le schéma de codage réseau prédéterminé, en prenant en compte des paquets redondants. A fortiori, il n'a jamais été proposé de technique visant à optimiser la latence introduite, dans un noeud relais ou un noeud destination, par le temps de traitement nécessaire à ce noeud pour modifier (localement et provisoirement) le schéma de codage prédéterminé (temps de traitement pour reconstituer un paquet résultant reconstitué différent du paquet résultant prédéterminé, dans le cas d'un noeud relais, ou bien temps de traitement pour modifier la matrice de décodage, dans le cas d'un noeud destination). Or, une telle optimisation de la latence introduite par ce temps de traitement est importante dans le contexte précité où le protocole d'accès au médium est basé sur un protocole TDMA. En effet, cette latence doit être minimisée, notamment si le système doit fonctionner en temps-réel : • côté noeud relais, dans le cas d'un système temps-réel, se pose la question du moment où la reconstitution d'un paquet résultant reconstitué doit être déclenchée. Si cette reconstitution débute dès la détection du lien cassé, il se peut que très peu de paquets redondants soient déjà reçus, ce qui diminue les chances de succès d'une reconstitution transparente. Si le noeud relais attend la réception de l'ensemble des paquets redondants, la reconstitution s'effectue trop tardivement pour réaliser toutes les opérations d'une reconstitution transparente et pour construire ensuite le paquet résultant (surtout si cette reconstitution transparente échoue et qu'une reconstitution non transparente, avec une notification, est nécessaire). Il existe donc un problème d'optimisation du temps de traitement nécessaire pour la modification du schéma de codage, que cette invention propose de résoudre ; • côté noeud destination, à la détection d'un paquet utile non reçu ou d'un paquet utile notifié modifié, le noeud destination est alors dans l'obligation de recalculer sa matrice de décodage qui n'est plus valide. Un problème de même nature que pour le noeud relais se pose : soit le recalcul de la matrice de décodage s'effectue dès la détection, au risque d'échouer (c'est-à-dire de ne pas trouver de matrice décodant tous les paquets sources), soit ce recalcul s'effectue à la réception de tous les paquets reçus (fin de la supertrame) ce qui augmente fortement la latence introduite par le décodage. 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), tout en minimisant le temps de traitement (permettant par exemple un traitement en temps-réel) lié à la gestion des pertes de paquets dans un environnement TDMA. Un autre objectif d'au moins un mode de réalisation de l'invention est de fournir une telle technique qui, s'appuyant sur une solution nouvelle et inventive consistant pour un noeud donné (relais ou destination) à modifier localement et provisoirement le schéma de codage réseau prédéterminé, vise à optimiser la latence introduite par le temps de traitement nécessaire à ce noeud pour effectuer cette modification. 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. 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 combinaison linéaire prédéterminée d'une partie de ladite pluralité de paquets de données attendus en entrée, 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 possédant une composition en paquet(s) source(s) attendue, conforme audit schéma de codage réseau prédéterminé. Le procédé est mis en oeuvre par au moins un noeud relais donné et comprend des étapes consistant à : I) détecter un paquet utile altéré, défini comme un paquet utile qui n'est pas correctement reçu ou est correctement reçu mais ne possède pas une composition en paquet(s) source(s) attendue ; II) s'il est détecté un paquet utile altéré, déterminer, avant la fin de la réception de ladite pluralité de paquets de données, une nouvelle combinaison linéaire de paquets attendus en entrée 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, les paquets associés à ladite nouvelle combinaison linéaire étant dits paquets momentanément utiles ; III) avec la nouvelle combinaison linéaire de paquets attendus en entrée, construire, avant la fin de la réception de ladite pluralité de paquets de données attendus en entrée, au moins une partie dudit paquet résultant reconstitué, en utilisant les paquets momentanément utiles déjà correctement reçus. Ainsi, au niveau d'un noeud relais, ce mode de réalisation particulier de l'invention repose sur une approche tout à fait nouvelle et inventive permettant, dès la détection d'un paquet utile altéré, de lancer au moins un algorithme de récupération afin de déterminer un paquet résultant reconstitué (résultant d'une modification locale et provisoire du schéma de codage réseau prédéterminé) impliquant de nouveaux paquets utiles (déjà reçus ou à recevoir), qualifiés de momentanément utiles du fait qu'ils sont utiles uniquement durant une supertrame courante. Ainsi, la construction de ce paquet résultant reconstitué peut débuter avec les paquets momentanément utiles déjà reçus. However, in the case where the first approach is used, packet loss management consists in looking for robust network coding schemes as soon as they are constructed. This is to ensure that the destination matrices are still able to decode all the source packets sent by the source nodes for a predefined set of broken links. But the relay nodes are obliged to use all the packets they receive, which imposes at the relay nodes a significant and especially systematic calculation time. To solve the problem of packet loss management, in the case where the aforementioned first approach (deterministic coding scheme) is used, it has never been proposed for relay nodes and destination nodes to locally and temporarily modify the predetermined network coding scheme, taking into account redundant packets. A fortiori, it has never been proposed a technique to optimize the latency introduced, in a relay node or a destination node, by the processing time required for this node to modify (locally and temporarily) the predetermined coding scheme ( processing time for reconstructing a reconstituted resulting packet different from the predetermined resulting packet, in the case of a relay node, or processing time for modifying the decoding matrix, in the case of a destination node). However, such an optimization of the latency introduced by this processing time is important in the aforementioned context where the medium access protocol is based on a TDMA protocol. Indeed, this latency must be minimized, especially if the system must operate in real time: • Relay node side, in the case of a real-time system, the question arises as to when the reconstitution of a resulting packet reconstituted must be triggered. If this rebuilding starts as soon as the broken link is detected, it may be that very few redundant packets are already received, which decreases the chances of successful seamless replenishment. If the relay node waits for the reception of all the redundant packets, the reconstitution is done too late to carry out all the operations of a transparent reconstitution and to then build the resulting packet (especially if this transparent reconstruction fails and a non-transparent reconstitution, with a notification, is necessary). There is therefore a problem of optimization of the processing time necessary for the modification of the coding scheme, which this invention proposes to solve; • destination node side, the detection of a useful packet not received or a modified notified useful packet, the destination node is then obliged to recalculate its decoding matrix is no longer valid. A problem of the same nature as for the relay node arises: either the recalculation of the decoding matrix is carried out as soon as the detection is made, at the risk of failing (that is, not to find a matrix decoding all the source packets), or this recalculation takes place on receipt of all the packets received (end of the superframe) which greatly increases the latency introduced by the decoding. OBJECTIVES OF THE INVENTION The invention, in at least one embodiment, has the particular objective of overcoming these various disadvantages of the state of the art. More specifically, in at least one embodiment of the invention, one objective is to provide a network coding technique adapted to the transmission of data packets in a meshed communication network, this technique making it possible to optimize loss management. of packets (ie loss of links) in the case where a deterministic network coding scheme (obtained according to the above-mentioned first approach) is used, while minimizing the processing time (allowing for example a processing in real-time) related to packet loss management in a TDMA environment. Another objective of at least one embodiment of the invention is to provide such a technique which, relying on a new and inventive solution consisting of a given node (relay or destination) to locally and temporarily modify the schema of predetermined network coding, aims to optimize the latency introduced by the processing time required for this node to perform this modification. At least one embodiment of the invention also aims to provide such a technique that is transparent to the source nodes. Another objective of at least one embodiment of the invention is to provide such a technique which is simple to implement and inexpensive. SUMMARY OF THE INVENTION In a particular embodiment of the invention, there is provided a method of network coding in a mesh network comprising at least one relay node which, according to a predetermined network coding scheme, expects receiving as input a plurality of data packets and outputting a predetermined resultant packet obtained in a predetermined linear combination of a portion of said plurality of expected data packets, the data packets belonging to said party being said packets and the data packets not belonging to said portion being said to be redundant packet, each of the expected data packets having an expected source packet composition (s) in accordance with said predetermined network coding scheme. The method is implemented by at least one relay node and comprises the steps of: I) detecting an altered useful packet, defined as a useful packet that is not correctly received or is correctly received but does not have a composition in source package (s) expected; II) if an altered useful packet is detected, determining, before the end of receiving said plurality of data packets, determining a new linear combination of expected input packets for constructing a reconstructed result packet using, in accordance with a scheme modified network coding, all or part of the redundant packets, the packets associated with said new linear combination being said momentarily useful packets; III) With the new linear combination of expected input packets, construct, before the end of the reception of said plurality of expected data packets, at least a portion of said reconstituted resulting packet, using the momentarily useful packets already correctly received. . Thus, at a relay node, this particular embodiment of the invention is based on a completely new and inventive approach allowing, as soon as an altered useful packet is detected, to launch at least one recovery algorithm so that determining a resulting reconstructed packet (resulting from a local and temporary modification of the predetermined network coding scheme) involving new useful packets (already received or to be received), termed as being momentarily useful because they are useful only during a superframe common. Thus, the construction of this resulting reconstructed packet can begin with the momentarily useful packets already received.

Cette avance permet par la suite au noeud relais, dès son accès au médium, de disposer du paquet résultant reconstitué, sous réserve que la construction de ce dernier ait pu aboutir (ce qui dépend de la bonne réception de tous les paquets momentanément utiles). De façon avantageuse, ladite étape II) comprend une étape IL1) consistant à déterminer, si elle existe, une nouvelle combinaison linéaire de paquets attendus en entrée permettant de construire un paquet résultant reconstitué identique au paquet résultant prédéterminé. This advance subsequently allows the relay node, from its access to the medium, to have the resulting package reconstituted, provided that the construction of the latter has been successful (which depends on the good reception of all momentarily useful packets). Advantageously, said step II) comprises a step IL1) consisting in determining, if it exists, a new linear combination of expected input packets making it possible to construct a reconstituted resulting packet identical to the predetermined resulting packet.

En d'autres termes, si c'est possible, la valeur des coefficients associés aux paquets momentanément utiles est choisie de telle manière que le paquet résultant reconstitué soit identique au paquet résultant prédéterminé. De cette façon, l'opération effectuée dans le noeud relais donné (construction 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. En outre, dès la détection d'un paquet utile altéré, le noeud relais peut savoir si le paquet résultant prédéterminé peut être reconstruit avec les paquets déjà reçus et surtout les paquets à recevoir. Dans le cas positif, la construction du paquet résultant reconstitué débute avec les paquets momentanément utiles déjà reçus. Dans le cas négatif, il n'est pas très judicieux d'attendre les paquets à recevoir et, comme détaillé ci-après, il vaut mieux lancer un nouvel algorithme de récupération moins contraignant (qui n'essaie pas de reconstruire exactement le paquet résultant prédéterminé). Avantageusement, ladite étape IL1) comprend une étape consistant à tester si ledit paquet utile altéré peut être remplacé par un paquet redondant reçu ou à recevoir par ledit noeud relais donné. Ainsi, l'opération transparente de reconstitution du paquet résultant reconstitué est rapide et peu coûteuse. Selon une caractéristique avantageuse, ladite étape IL1) comprend une exécution d'un mécanisme de récupération complet, comprenant des étapes consistant à : - déterminer une combinaison linéaire prédéterminée de paquets sources, associée à ladite combinaison linéaire prédéterminée de paquets attendus en entrée, et permettant d'obtenir ledit paquet résultant prédéterminé ; - construire un système linéaire A(3 = g, où 13 est un vecteur colonne des coefficients de ladite nouvelle combinaison linéaire de paquets attendus en entrée à déterminer, où g est un vecteur colonne des coefficients de ladite combinaison linéaire prédéterminée de paquets sources, et où A est une matrice de dimension (M,S), avec M le nombre de paquets sources et S le nombre de paquets attendus en entrée par ledit noeud relais donné, la matrice A étant définie de la manière suivante : * chaque ligne de la matrice A est associée à un paquet source, 30 5 10 15 20 2530 * chaque colonne de la matrice A est associée à un paquet attendu en entrée, * chaque élément a;i de la matrice A représente : - soit le coefficient du paquet source i dans une composition en paquet(s) source(s) réelle du paquet attendu j, si le paquet attendu j a déjà été reçu, - soit le coefficient du paquet source i dans une composition en paquet(s) source(s) attendue du paquet attendu j, si le paquet attendu j n'a pas encore été reçu, - résoudre ledit système linéaire par une méthode de résolution prédéterminée, en mémorisant, à chaque itération k de ladite méthode de résolution prédéterminée, des opérations et une matrice temporaire A(k) ; - si le système linéaire admet une solution, déterminer ladite nouvelle combinaison linéaire de paquets attendus en entrée, en fonction du vecteur colonne 13 de ladite solution. Ainsi, l'opération transparente de reconstitution du paquet résultant reconstitué est optimisée et permet d'aboutir de manière systématique si le système linéaire considéré admet une solution. De façon avantageuse, à chaque réception d'un desdits paquets momentanément utiles, le procédé comprend des étapes consistant à : - détecter un paquet momentanément utile altéré, défini comme un paquet momentanément utile qui n'est pas correctement reçu ou est correctement reçu mais ne possède pas une composition en paquet(s) source(s) attendue ; - s'il est détecté un paquet momentanément utile altéré, exécuter un mécanisme de récupération partiel, comprenant des étapes consistant à : * déterminer le ou les paquet(s) attendu(s) altéré(s), y compris ledit paquet momentanément utile altéré, reçu(s) depuis une dernière exécution du mécanisme de récupération partiel ou depuis une exécution du mécanisme de récupération complet, un paquet attendu altéré étant défini comme un paquet attendu qui n'est pas correctement reçu ou est correctement reçu mais ne possède pas une composition en paquet(s) source(s) attendue ; * dans la matrice temporaire A(11- 1) mémorisée à une (tl û 1)ème itération de ladite méthode de résolution prédéterminée, modifier la ou les colonnes altérée(s) correspondant au(x) paquet(s) attendu(s) altéré(s), où tl est le rang du premier du ou des paquet(s) attendu(s) altéré(s) dans une séquence prédéterminée définissant l'ordre dans lequel ladite pluralité de paquets de données attendus en entrée sont attendus, ainsi que l'ordre dans lequel les colonnes de ladite matrice A sont classées, la ou les colonne(s) altérée(s) étant modifiées par les opérations mémorisées lors des (tl û 1) premières itérations de ladite méthode de résolution prédéterminée ; * reprendre la résolution dudit système linéaire à la tlème itération de ladite méthode de résolution prédéterminée, en mémorisant, à chaque itération k de ladite méthode de résolution prédéterminée, des opérations et une matrice temporaire A) ; * si le système linéaire admet une solution, déterminer ladite deuxième combinaison linéaire de paquets attendus en entrée, en fonction du vecteur colonne 13 de ladite solution. Ainsi, si un paquet momentanément utile est reçu sous une forme altérée (réception non correcte ou avec une composition modifiée en paquets sources), il n'est pas nécessaire de mettre en oeuvre à nouveau la totalité du mécanisme de récupération complet. Un mécanisme de récupération partiel, correspondant à une partie seulement de celui-ci, peut être mis en oeuvre. Ceci nécessite moins d'opérations puisqu'une partie des opérations effectuées durant le mécanisme de récupération complet restent valides et donc ces opérations ne sont pas effectuées à nouveau. Ainsi, même si les paquets à recevoir ne sont pas ceux attendus, le mécanisme de récupération complet n'a pas été vain, son exécution antérieure a permis d'alléger les opérations du mécanisme de récupération partiel et d'optimiser la date de fin de la récupération. Avantageusement, en cas d'échec de ladite étape IL1), ladite étape II) comprend une étape IL2), consistant à déterminer une nouvelle combinaison linéaire de paquets attendus en entrée permettant de construire un paquet résultant reconstitué le plus proche, selon au moins un critère déterminé, du paquet résultant prédéterminé. In other words, if it is possible, the value of the coefficients associated with the momentarily useful packets is chosen in such a way that the reconstituted resulting packet is identical to the predetermined resulting packet. In this way, the operation performed in the given relay node (construction of the resulting reconstructed packet instead of the predetermined resulting packet) is transparent to all other downstream relay nodes as well as to the destination nodes. In addition, as soon as a corrupted useful packet is detected, the relay node can know whether the predetermined resulting packet can be reconstructed with the already received packets and especially the packets to be received. In the positive case, the construction of the resulting reconstituted packet starts with the momentarily useful packets already received. In the negative case, it is not very wise to wait for the packets to be received and, as detailed below, it is better to launch a new less restrictive recovery algorithm (which does not try to reconstruct exactly the resulting packet). predetermined). Advantageously, said step IL1) comprises a step of testing whether said corrupted user packet can be replaced by a redundant packet received or to be received by said given relay node. Thus, the transparent reconstitution operation of the resulting reconstituted packet is fast and inexpensive. According to an advantageous characteristic, said step IL1) comprises an execution of a complete recovery mechanism, comprising the steps of: determining a predetermined linear combination of source packets, associated with said predetermined linear combination of packets expected at the input, and allowing to obtain said predetermined resulting packet; constructing a linear system A (3 = g, where 13 is a column vector of the coefficients of said new linear combination of expected input packets to be determined, where g is a column vector of the coefficients of said predetermined linear combination of source packets, and where A is a matrix of dimension (M, S), with M the number of source packets and S the number of packets expected at input by said given relay node, the matrix A being defined as follows: * each line of the matrix A is associated with a source packet, each column of matrix A is associated with an expected packet as input, each element a; i of matrix A represents: - the coefficient of the source packet i in a composition in actual source packet (s) of the expected packet j, if the expected packet has already been received, - or the coefficient of the source packet i in a source packet composition (s) expected from package expected j, s the expected packet has not yet been received; - resolving said linear system by a predetermined resolution method, storing, at each iteration k of said predetermined resolution method, operations and a temporary matrix A (k); if the linear system admits a solution, determining said new linear combination of expected packets as input, according to the column vector 13 of said solution. Thus, the transparent reconstitution operation of the resulting reconstituted packet is optimized and allows to achieve a systematic way if the linear system considered admits a solution. Advantageously, at each reception of one of the momentarily useful packets, the method comprises the steps of: detecting a momentarily useful altered packet, defined as a momentarily useful packet that is not correctly received or is correctly received but does not does not have a composition in source packet (s) expected; - If a corrupted momentarily useful packet is detected, perform a partial recovery mechanism, comprising the steps of: * determining the expected packet (s) expected, including said momentarily useful packet corrupted received since a last run of the partial recovery mechanism or since an execution of the full recovery mechanism, an altered expected packet being defined as an expected packet that is not correctly received or is correctly received but does not have a composition in source package (s) expected; * in the temporary matrix A (11-1) stored at a (tl-1) th iteration of said predetermined resolution method, modify the altered column (s) corresponding to the expected packet (s) altered, where t1 is the rank of the first of the expected packet (s) altered in a predetermined sequence defining the order in which said plurality of expected data packets are expected, as well as that the order in which the columns of said matrix A are classified, the altered column (s) being modified by the operations stored during the (tl-1) first iterations of said predetermined resolution method; resuming resolution of said linear system at the iteration of said predetermined resolution method, storing, at each iteration k of said predetermined resolution method, operations and a temporary matrix A); if the linear system admits a solution, determining said second linear combination of expected packets as input, according to the column vector 13 of said solution. Thus, if a momentarily useful packet is received in an altered form (reception not correct or with a composition modified in source packets), it is not necessary to implement again the whole of the complete recovery mechanism. A partial recovery mechanism, corresponding to only a part of it, can be implemented. This requires fewer operations since some of the operations performed during the full recovery mechanism remain valid and therefore these operations are not performed again. Thus, even if the packets to be received are not the ones expected, the complete recovery mechanism has not been in vain, its previous execution made it possible to lighten the operations of the partial recovery mechanism and to optimize the end date of recovery. Advantageously, in case of failure of said step IL1), said step II) comprises a step IL2) of determining a new linear combination of expected packets as input to construct a nearest reconstituted resulting packet, in at least one determined criterion, of the predetermined resulting packet.

De cette façon, dès que le noeud relais sait que, même avec les paquets à recevoir, le paquet résultant prédéterminé ne pourra pas être reconstruit à l'identique, le noeud relais lance un algorithme pour déterminer les paquets momentanément utiles (reçus ou à recevoir) qui permettront d'envoyer le meilleur paquet résultant reconstitué, c'est-à-dire celui qui impactera le moins possible le réseau. Le fait d'exécuter cet algorithme avant que tous les paquets ne soient reçus est très avantageux du fait que celui-ci est un algorithme exhaustif qui teste l'ensemble des paquets résultants reconstitués possibles. Cette exécution anticipée permet donc de tester plus de possibilités et donc d'augmenter la robustesse du réseau (augmentation du nombre de paquets sources décodables par l'ensemble des noeuds destinations). De façon avantageuse, à chaque réception d'un desdits paquets momentanément utiles, le procédé comprend des étapes consistant à : - détecter un paquet momentanément utile altéré, défini comme un paquet momentanément utile qui n'est pas correctement reçu ou est correctement reçu mais ne possède pas une composition en paquet(s) source(s) attendue ; - s'il est détecté un paquet momentanément utile altéré, réitérer les étapes IL2) et III). Ainsi, si un paquet momentanément utile est reçu sous une forme altérée (réception non correcte ou avec une composition modifiée en paquets sources), le noeud relais peut relancer immédiatement l'algorithme précité permettant de déterminer les paquets momentanément utiles (reçus ou à recevoir) qui permettront d'envoyer le meilleur paquet résultant reconstitué. Avantageusement, ladite étape IL2) comprend des étapes consistant à : a) déterminer une nouvelle combinaison linéaire de paquets attendus en entrée permettant de construire un paquet résultant reconstitué 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é qui résulterait de l'envoi du paquet résultant reconstitué mentionné à l'étape a) ; c) en fonction de l'information obtenue à l'étape b), sélectionner la nouvelle combinaison linéaire déterminée à l'étape a) ou réitérer l'étape a) pour déterminer une autre nouvelle combinaison linéaire. 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 reconstitution transparente n'est pas réalisable, le noeud relais essaie de reconstituer 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 reconstitution 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. In this way, as soon as the relay node knows that, even with the packets to be received, the predetermined resulting packet can not be reconstructed identically, the relay node launches an algorithm to determine the momentarily useful packets (received or to be received ) that will send the best resulting package reconstituted, that is to say the one that will impact the network as little as possible. Executing this algorithm before all packets are received is very advantageous because it is a comprehensive algorithm that tests all of the resulting reconstructed possible packets. This early execution thus makes it possible to test more possibilities and therefore to increase the robustness of the network (increase of the number of source packets decodable by all the destination nodes). Advantageously, at each reception of one of the momentarily useful packets, the method comprises the steps of: detecting a momentarily useful altered packet, defined as a momentarily useful packet that is not correctly received or is correctly received but does not does not have a composition in source packet (s) expected; if a momentarily useful, corrupted packet is detected, repeat steps IL2) and III). Thus, if a momentarily useful packet is received in an altered form (reception not correct or with a composition modified source packets), the relay node can immediately restart the aforementioned algorithm to determine the momentarily useful packets (received or to receive) that will send the best resulting package restored. Advantageously, said step IL2) comprises the steps of: a) determining a new linear combination of expected input packets making it possible to construct a reconstituted resulting packet containing source packets not contained in the predetermined resulting packet; b) obtaining relative information, for at least one other node participating in the predetermined network coding scheme, to a modified network coding scheme that would result from sending the reconstituted resulting packet mentioned in step a); c) based on the information obtained in step b), selecting the new linear combination determined in step a) or repeating step a) to determine another new linear combination. In this way, the operation performed in the given relay node (sending the reconstructed resultant packet instead of the predetermined resulting packet) is not transparent (for all other downstream relay nodes, as well as for the destination nodes), but it has no impact on the capacity of the network (ie the number of source packets decodable by all the destination nodes). In other words, if a transparent reconstruction is not feasible, the relay node tries to reconstruct a resulting packet that has no influence on the network, that is to say that does not decrease the number source packages that can decode the destination nodes. This reconstruction is also based on the use of redundant packets. On the other hand, in this case, the relay node must notify the other nodes that the resulting packet that it sends is not based on the predetermined linear combination.

De façon avantageuse, l'étape a) comprend des étapes consistant à : i) déterminer une combinaison linéaire prédéterminée de paquets sources, permettant d'obtenir ledit paquet résultant reconstitué 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ù 13 est un vecteur colonne des coefficients de ladite nouvelle combinaison linéaire de paquets attendus en entrée à déterminer, où g est un vecteur colonne des coefficients de ladite combinaison linéaire prédéterminée de paquets sources, et où A est une matrice de dimension (M,S), avec M le nombre de paquets sources et S le nombre de paquets attendus en entrée par ledit noeud relais donné, la matrice A étant définie de la manière suivante : * chaque ligne de la matrice A est associée à un paquet source, * chaque colonne de la matrice A est associée à un paquet attendu en entrée, * chaque élément a;i de la matrice A représente : - soit le coefficient du paquet source i dans une composition en paquet(s) source(s) réelle du paquet attendu j, si le paquet attendu j a déjà été reçu, - soit le coefficient du paquet source i dans une composition en paquet(s) source(s) attendue du paquet attendu j, si le paquet attendu j n'a pas encore été reçu, iii) résoudre ledit système linéaire par une méthode de résolution prédéterminée ; iv) si le système linéaire admet une solution, déterminer ladite nouvelle combinaison linéaire de paquets attendus en entrée, en fonction du vecteur colonne 13 de ladite solution, sinon réitération de l'étape i) avec une autre combinaison linéaire prédéterminée de paquets sources. Ainsi, l'opération (non transparente mais sans impact) de reconstitution 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. Avantageusement, 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é mentionné à 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é mentionné à l'étape a) est supposé envoyé. Dans l'étape c), la nouvelle combinaison linéaire déterminée à l'étape a) est sélectionnée 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 destinations dans le réseau. Advantageously, step a) comprises the steps of: i) determining a predetermined linear combination of source packets, to obtain said reconstituted resulting packet containing source packets not contained in the predetermined resulting packet; ii) constructing a linear system A (3 = g, where 13 is a column vector of the coefficients of said new linear combination of expected input packets to be determined, where g is a column vector of the coefficients of said predetermined linear combination of source packets, and where A is a matrix of dimension (M, S), with M the number of source packets and S the number of packets expected to be input by said given relay node, the matrix A being defined as follows: * each line of the matrix A is associated with a source packet, * each column of the matrix A is associated with an expected packet as input, * each element a; i of the matrix A represents: - either the coefficient of the source packet i in a composition in actual packet (s) of the expected packet j, if the expected packet ja has already been received, - or the coefficient of the source packet i in a source packet composition (s) expected from the expected packet j, if the attentive package has not yet been received; iii) resolving said linear system by a predetermined resolution method; iv) if the linear system admits a solution, determining said new linear combination of expected packets as input according to the column vector 13 of said solution, otherwise repeating step i) with another predetermined linear combination of source packets. Thus, the operation (non-transparent but without impact) of reconstitution of the resulting reconstituted packet allows to achieve a systematic way if one of the linear systems, considered during successive iterations, admits a solution. Advantageously, in step b), said information relating to the modified network coding scheme, which would result from sending the reconstituted resulting packet mentioned in step a), is the sum of the number of decodable source packets by the set destination nodes of the network if the resulting reconstructed packet mentioned in step a) is assumed to be sent. In step c), the new linear combination determined in step a) is selected if said information relating to the modified network coding scheme is equal to the number of source nodes in the network multiplied by the number of destination nodes in the network. .

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, en cas d'échec des étapes a), b) et c), ladite étape IL2) comprend en outre des étapes consistant à : - déterminer une première nouvelle combinaison linéaire de paquets attendus en entrée, permettant de construire un premier paquet résultant reconstitué 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 reconstitué, la première nouvelle combinaison linéaire étant associée à ladite première information sur le schéma de codage réseau modifié ; - parmi la ou les nouvelle(s) combinaison(s) linéaire(s) non sélectionnée(s) à l'étape c), sélectionner une deuxième nouvelle combinaison linéaire de paquets attendus en entrée, en fonction de ladite information, obtenue à l'étape b) pour chaque nouvelle combinaison linéaire non sélectionnée à l'étape c), sur le schéma de codage réseau modifié, la deuxième nouvelle combinaison linéaire étant associée à une deuxième information relative au schéma de codage réseau modifié ; - sélectionner entre les première et deuxième nouvelles combinaisons linéaires, 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 reconstitution, qui n'ait pas d'impact sur le réseau, n'est possible, le noeud relais reconstitue 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, ladite étape IL2) comprend une étape consistant à déterminer une nouvelle combinaison linéaire de paquets attendus en entrée permettant de construire un paquet résultant reconstitué 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. 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 au moins un paquet source prédéterminé obtenu selon une combinaison linéaire prédéterminée d'une partie de ladite pluralité de paquets de données attendus en entrée, 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 possédant une composition en paquet(s) source(s) attendue, conforme audit schéma de codage réseau prédéterminé. Le procédé est mis en oeuvre par au moins un noeud destination donné et comprend des étapes consistant à : I) détecter un paquet utile altéré, défini comme un paquet utile qui n'est pas correctement reçu ou est correctement reçu mais ne possède pas une composition en paquet(s) source(s) attendue ; II) s'il est détecté un paquet utile altéré, déterminer, avant la fin de la réception de ladite pluralité de paquets de données, au moins une nouvelle combinaison linéaire de paquets attendus en entrée permettant de construire au moins un paquet source reconstitué en utilisant, selon un schéma de codage réseau modifié, tout ou partie des paquets redondants, les paquets associés à ladite au moins une nouvelle combinaison linéaire étant dits paquets momentanément utiles ; III) avec ladite au moins une nouvelle combinaison linéaire de paquets attendus en entrée, construire, avant la fin de la réception de ladite pluralité de paquets de données attendus en entrée, au moins une partie dudit au moins un paquet source reconstitué, en utilisant les paquets momentanément utiles déjà correctement reçus. Ainsi, au niveau d'un noeud destination, ce mode de réalisation particulier de l'invention repose sur une approche tout à fait nouvelle et inventive permettant, dès la détection d'un paquet utile altéré, de lancer au moins un algorithme (de modification de la matrice de décodage) permettant de décoder au moins un paquet source, c'est-à-dire de déterminer au moins un paquet source reconstitué (résultant d'une modification locale et provisoire du schéma de codage réseau prédéterminé) impliquant de nouveaux paquets utiles (déjà reçus ou à recevoir), qualifiés de momentanément utiles du fait qu'ils sont utiles uniquement durant une supertrame courante. Ainsi, le décodage des paquets sources peut débuter avec les paquets momentanément utiles déjà reçus. Cette avance permet par la suite au noeud relais de finir plus tôt le décodage et les paquets sources sont donc envoyés plus tôt à l'application, sous réserve que le décodage de ces derniers ait pu aboutir (ce qui dépend de la bonne réception de tous les paquets momentanément utiles). Avantageusement, ladite étape II) comprend une étape IL1) consistant à déterminer, si elle existe, une nouvelle matrice de décodage identique à une matrice de décodage prédéterminée, permettant de construire un ensemble de paquets sources reconstitués identique à un ensemble de tous les paquets sources prédéterminés, chaque ligne de ladite nouvelle matrice de décodage définissant une nouvelle combinaison linéaire de paquets attendus en entrée permettant de construire un paquet source reconstitué identique à l'un des paquets sources prédéterminés. En d'autres termes, si c'est possible, on construit une nouvelle matrice de décodage permettant de décoder tous les paquets sources. Dès la détection d'un paquet utile altéré, le noeud destination peut savoir si ceci est possible ou non, avec les paquets déjà reçus et les paquets à recevoir. Dans le cas positif, la construction de la nouvelle matrice de décodage débute avec les paquets momentanément utiles déjà reçus. Dans le cas négatif, il n'est pas très judicieux d'attendre les paquets à recevoir et, comme détaillé ci-après, il vaut mieux lancer un nouvel algorithme de détermination moins contraignant (qui essaie d'obtenir une nouvelle matrice de décodage ne permettant pas de décoder tous les paquets sources). De façon avantageuse, ladite étape IL1) comprend une exécution d'un mécanisme de récupération complet, comprenant des étapes consistant à : construire une matrice D' de dimension (S, M), avec S le nombre de paquets attendus en entrée par ledit noeud destination donné et M le nombre de paquets sources, la matrice D' étant définie de la manière suivante : * chaque ligne de la matrice D' est associée à un paquet attendu en entrée, * chaque colonne de la matrice D' est associée à un paquet source, * chaque élément d,i de la matrice D' représente : - soit le coefficient du paquet source j dans une composition en paquet(s) source(s) réelle du paquet attendu i, si le paquet attendu i a déjà été reçu, - soit le coefficient du paquet source j dans une composition en paquet(s) source(s) attendue du paquet attendu i, si le paquet attendu i n'a pas encore été reçu, - construction d'une matrice résultante T à partir de la matrice D', par une méthode de triangulation prédéterminée prenant en compte les lignes les unes après les autres, en mémorisant, à chaque itération k de ladite méthode de triangulation prédéterminée, des opérations et une matrice temporaire A(k) ; - si la matrice résultante T a M lignes non nulles, construction de ladite nouvelle matrice de décodage à partir de la matrice résultante T. Ainsi, avec ce mécanisme de récupération complet, la détermination de la nouvelle matrice de décodage est optimisée et permet d'aboutir de manière systématique. Avantageusement, à chaque réception d'un desdits paquets momentanément 20 utiles, le procédé comprend des étapes consistant à : - détecter un paquet momentanément utile altéré, défini comme un paquet momentanément utile qui n'est pas correctement reçu ou est correctement reçu mais ne possède pas une composition en paquet(s) source(s) attendue ; - s'il est détecté un paquet momentanément utile altéré, exécuter un mécanisme de récupération partiel, comprenant des étapes consistant à : * déterminer le ou les paquet(s) attendu(s) altéré(s), y compris ledit paquet momentanément utile altéré, reçu(s) depuis une dernière exécution du mécanisme de récupération partiel ou depuis une exécution du mécanisme de récupération complet, un paquet attendu altéré étant défini comme un paquet attendu qui n'est pas correctement reçu ou est correctement reçu mais ne possède pas une composition en paquet(s) source(s) attendue ; 10 15 25 30 * dans la matrice temporaire A(tl - " mémorisée à une (tl û 1)ème itération de ladite méthode de résolution prédéterminée, modifier la ou les colonnes altérée(s) correspondant au(x) paquet(s) attendu(s) altéré(s), où tl est le rang du premier du ou des paquet(s) attendu(s) altéré(s) dans une séquence prédéterminée définissant l'ordre dans lequel ladite pluralité de paquets de données attendus en entrée sont attendus, ainsi que l'ordre dans lequel les lignes de ladite matrice D' sont classées, la ou les ligne(s) altérée(s) étant modifiées par les opérations mémorisées lors des (tl û 1) premières itérations de ladite méthode de triangulation prédéterminée ; * reprendre la construction de la matrice résultante T à la tlème itération de ladite méthode de triangulation prédéterminée, en mémorisant, à chaque itération k de ladite méthode de triangulation prédéterminée, des opérations et une matrice temporaire Au ; * si la matrice résultante T a M lignes non nulles, construction de ladite nouvelle matrice de décodage à partir de la matrice résultante T. Ainsi, si un paquet momentanément utile est reçu sous une forme altérée (réception non correcte ou avec une composition modifiée en paquets sources), il n'est pas nécessaire de mettre en oeuvre à nouveau la totalité du mécanisme de récupération complet. Un mécanisme de récupération partiel, correspondant à une partie seulement de celui-ci, peut être mis en oeuvre. Ceci nécessite moins d'opérations puisqu'une partie des opérations effectuées durant le mécanisme de récupération complet restent valides et donc ces opérations ne sont pas effectuées à nouveau. Ainsi, même si les paquets à recevoir ne sont pas ceux attendus, le mécanisme de récupération complet n'a pas été vain, son exécution antérieure a permis d'alléger les opérations du mécanisme de récupération partiel et d'optimiser la date de fin de la récupération. Avantageusement, en cas d'échec de ladite étape IL1), ladite étape II) comprend une étape IL2) consistant à déterminer une nouvelle matrice de décodage différente d'une matrice de décodage prédéterminée, mais permettant de construire un nombre maximal de paquets sources reconstitués identiques à des paquets sources prédéterminés, chaque ligne de ladite nouvelle matrice de décodage définissant une nouvelle combinaison linéaire de paquets attendus en entrée permettant de construire un paquet source reconstitué identique à l'un des paquets sources prédéterminés. De cette façon, dès que le noeud destination sait que, même avec les paquets à recevoir, il ne pourra pas décoder tous les paquets sources, le noeud destination lance un algorithme pour déterminer une nouvelle matrice de décodage permettant de décoder le plus grand nombre de paquets sources. Le fait d'exécuter cet algorithme avant que tous les paquets ne soient reçus est très avantageux du fait que celui-ci est un algorithme exhaustif qui teste un ensemble de nouvelles matrices de décodage. Cette exécution anticipée permet donc de diminuer fortement la latence du décodeur. Thus, the information test (relative to the modified network coding scheme) makes it possible to ensure that the (non-transparent) operation has no impact on the capacity of the network (that is to say the number of source packets). decodable by the set of destination nodes). Advantageously, in case of failure of steps a), b) and c), said step IL2) further comprises the steps of: - determining a first new linear combination of expected packets as input, making it possible to construct a first resulting packet reconstituted different from the predetermined resulting packet but containing only source packets included in the predetermined resulting packet; obtaining a first relative information, for at least one other node participating in the predetermined network coding scheme, to a modified network coding scheme that would result from sending the first reconstructed resultant packet, the first new linear combination being associated with said first information on the modified network coding scheme; among the new linear combination (s) not selected in step c), selecting a second new linear combination of packets expected at the input, according to said information, obtained at step b) for each new linear combination not selected in step c), on the modified network coding scheme, the second new linear combination being associated with a second piece of information relating to the modified network coding scheme; selecting between the first and second new linear combinations, according to the first and second information relating to the modified network coding scheme. In this way, the operation performed in the given relay node (sending the resulting reconstructed packet instead of the predetermined resulting packet) is not transparent and has an impact on the network capacity, but this impact is minimized. In other words, if no rebuilding, which does not impact the network, is possible, the relay node rebuilds the packet that has the least impact on the network, that is, say the one that degrades the network the least (always in number of decodable source packets for all the destination nodes). In this case, the relay node must also notify the other nodes that the resulting packet that it sends is not based on the predetermined linear combination. Advantageously, said step IL2) comprises a step of determining a new linear combination of expected input packets for constructing a reconstituted resulting packet different from the predetermined resultant packet but containing only source packets included in the predetermined resulting packet. In this variant, if a transparent operation is not possible, the given relay node directly performs an operation that has an impact on the capacity of the network, but this impact is minimized. In this case, the relay node must also notify the other nodes that the resulting packet that it sends is not based on the predetermined linear combination. In another embodiment, the invention relates to a network coding method in a mesh network comprising at least one destination node which, according to a predetermined network coding scheme, expects to receive as input a plurality of data packets and should output at least one predetermined source packet obtained in a predetermined linear combination of a portion of said plurality of expected data packets, the data packets belonging to said portion being said useful packets and the data packets n ' not belonging to said part being said redundant packet, each of the data packets expected input having a composition in source packet (s) expected, according to said predetermined network coding scheme. The method is implemented by at least one destination node and comprises the steps of: I) detecting an altered useful packet, defined as a useful packet that is not correctly received or is correctly received but does not have a composition in source package (s) expected; II) if an altered useful packet is detected, determining, before the end of receiving said plurality of data packets, at least one new linear combination of expected input packets for constructing at least one reconstituted source packet using according to a modified network coding scheme, all or part of the redundant packets, the packets associated with said at least one new linear combination being said momentarily useful packets; III) with said at least one new linear combination of expected input packets, constructing, before the end of receiving said plurality of expected data packets at the input, at least a portion of said at least one reconstituted source packet, using the momentarily useful packets already correctly received. Thus, at a destination node, this particular embodiment of the invention is based on a completely new and inventive approach allowing, as soon as an altered useful packet is detected, to launch at least one (modification) algorithm. of the decoding matrix) for decoding at least one source packet, i.e., determining at least one reconstituted source packet (resulting from a local and temporary modification of the predetermined network coding scheme) involving new packets useful (already received or to be received), qualified as momentarily useful because they are useful only during a current superframe. Thus, the decoding of the source packets can begin with the momentarily useful packets already received. This advance allows the relay node to finish the decoding earlier and the source packets are sent earlier to the application, provided that the decoding of the latter has been successful (which depends on the good reception of all packages momentarily useful). Advantageously, said step II) comprises a step IL1) of determining, if it exists, a new decoding matrix identical to a predetermined decoding matrix, making it possible to construct a set of reconstituted source packets identical to a set of all the source packets. predetermined, each line of said new decoding matrix defining a new linear combination of expected input packets for constructing a reconstituted source packet identical to one of the predetermined source packets. In other words, if it is possible, we build a new decoding matrix to decode all the source packages. As soon as a corrupted useful packet is detected, the destination node can know whether this is possible or not, with the packets already received and the packets to be received. In the positive case, the construction of the new decoding matrix starts with the momentarily useful packets already received. In the negative case, it is not very wise to wait for the packets to be received and, as detailed below, it is better to launch a new algorithm of less binding determination (which tries to obtain a new decoding matrix not not allowing to decode all source packages). Advantageously, said step IL1) comprises an execution of a complete recovery mechanism, comprising the steps of: constructing a matrix D 'of dimension (S, M), with S the number of packets expected as input by said node given destination and M the number of source packets, the matrix D 'being defined as follows: * each row of the matrix D' is associated with an expected packet as input, * each column of the matrix D 'is associated with one source packet, * each element d, i of the matrix D 'represents: - either the coefficient of the source packet j in a composition in source packet (s) of the expected packet i, if the expected packet has already been received or - the coefficient of the source packet j in a source packet composition (s) expected from the expected packet i, if the expected packet i has not yet been received, - constructing a resultant matrix T from of the matrix D ', by a method of triangulation predetermined pattern taking into account the lines one after the other, storing, at each iteration k of said predetermined triangulation method, operations and a temporary matrix A (k); if the resulting matrix T has M non-zero lines, constructing said new decoding matrix from the resulting matrix T. Thus, with this complete recovery mechanism, the determination of the new decoding matrix is optimized and makes it possible to to succeed systematically. Advantageously, at each reception of one of said packets momentarily useful, the method comprises the steps of: detecting a momentarily useful altered packet, defined as a momentarily useful packet which is not correctly received or is correctly received but does not possess not a composition in source packet (s) expected; - If a corrupted momentarily useful packet is detected, perform a partial recovery mechanism, comprising the steps of: * determining the expected packet (s) expected, including said momentarily useful packet corrupted received since a last run of the partial recovery mechanism or since an execution of the full recovery mechanism, an altered expected packet being defined as an expected packet that is not correctly received or is correctly received but does not have a composition in source package (s) expected; In the temporary matrix A (tl - "stored at one (tl-1) th iteration of said predetermined resolution method, modify the altered column (s) corresponding to the (x) package (s) expected (s) altered, where t1 is the rank of the first one of the expected packet (s) altered in a predetermined sequence defining the order in which said plurality of expected data packets are inputted; expected, as well as the order in which the rows of said matrix D 'are classified, the altered line (s) being modified by the stored operations during (tl-1) first iterations of said triangulation method predetermined: * resume the construction of the resulting matrix T at the iteration of said predetermined triangulation method, by storing, at each iteration k of said predetermined triangulation method, operations and a temporary matrix Au; * if the resulting matrix T has M nonzero lines, constructing said new decoding matrix from the resulting matrix T. Thus, if a momentarily useful packet is received in an altered form (reception not correct or with a composition modified in source packages) it is not necessary to re-implement the entire full recovery mechanism. A partial recovery mechanism, corresponding to only a part of it, can be implemented. This requires fewer operations since some of the operations performed during the full recovery mechanism remain valid and therefore these operations are not performed again. Thus, even if the packets to be received are not the ones expected, the complete recovery mechanism has not been in vain, its previous execution made it possible to lighten the operations of the partial recovery mechanism and to optimize the end date of recovery. Advantageously, in case of failure of said step IL1), said step II) comprises a step IL2) of determining a new decoding matrix different from a predetermined decoding matrix, but making it possible to construct a maximum number of reconstructed source packets identical to predetermined source packets, each line of said new decoding matrix defining a new linear combination of expected input packets for constructing a reconstituted source packet identical to one of the predetermined source packets. In this way, as soon as the destination node knows that, even with the packets to be received, it will not be able to decode all the source packets, the destination node launches an algorithm to determine a new decoding matrix making it possible to decode the largest number of source packages. Running this algorithm before all packets are received is very advantageous because it is a comprehensive algorithm that tests a set of new decoding matrices. This early execution therefore makes it possible to greatly reduce the latency of the decoder.

De façon avantageuse, à chaque réception d'un desdits paquets momentanément utiles, ledit procédé comprend des étapes consistant à : détecter un paquet momentanément utile altéré, défini comme un paquet momentanément utile qui n'est pas correctement reçu ou est correctement reçu mais ne possède pas une composition en paquet(s) source(s) attendue ; - s'il est détecté un paquet momentanément utile altéré, réitérer les étapes IL2) et III). Ainsi, si un paquet momentanément utile est reçu sous une forme altérée (réception non correcte ou avec une composition modifiée en paquets sources), le noeud destination peut relancer immédiatement l'algorithme précité permettant de déterminer une nouvelle matrice de décodage permettant de décoder le plus grand nombre 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 combinaison linéaire prédéterminée d'une partie de ladite pluralité de paquets de données attendus en entrée, 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 possédant une composition en paquet(s) source(s) attendue, conforme audit schéma de codage réseau prédéterminé. Ledit noeud relais donné comprend : - des moyens de détection, permettant de détecter un paquet utile altéré, défini comme un paquet utile qui n'est pas correctement reçu ou est correctement reçu mais ne possède pas une composition en paquet(s) source(s) attendue ; - des moyens de détermination, activés s'il est détecté un paquet utile altéré, permettant de déterminer, avant la fin de la réception de ladite pluralité de paquets de données, une nouvelle combinaison linéaire de paquets attendus en entrée 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, les paquets associés à ladite nouvelle combinaison linéaire étant dits paquets momentanément utiles ; - des moyens de construction, permettant de construire, avec la nouvelle 25 combinaison linéaire de paquets attendus en entrée, et avant la fin de la réception de ladite pluralité de paquets de données attendus en entrée, au moins une partie dudit paquet résultant reconstitué, en utilisant les paquets momentanément utiles déjà correctement reçus. Dans un autre mode de réalisation, l'invention concerne un noeud destination 30 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é, 20 s'attendant à recevoir en entrée une pluralité de paquets de données et devant générer en sortie au moins un paquet source prédéterminé obtenu selon une combinaison linéaire prédéterminée d'une partie de ladite pluralité de paquets de données attendus en entrée, 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 possédant une composition en paquet(s) source(s) attendue, conforme audit schéma de codage réseau prédéterminé. Ledit noeud destination donné comprend : - des moyens de détection, permettant de détecter un paquet utile altéré, défini comme un paquet utile qui n'est pas correctement reçu ou est correctement reçu mais ne possède pas une composition en paquet(s) source(s) attendue ; - des moyens de détermination, activés s'il est détecté un paquet utile altéré, déterminer, permettant de déterminer, avant la fin de la réception de ladite pluralité de paquets de données, au moins une nouvelle combinaison linéaire de paquets attendus en entrée permettant de construire au moins un paquet source reconstitué en utilisant, selon un schéma de codage réseau modifié, tout ou partie des paquets redondants, les paquets associés à ladite au moins une nouvelle combinaison linéaire étant dits paquets momentanément utiles ; - des moyens de construction, permettant de construire, avec ladite au moins une nouvelle combinaison linéaire de paquets attendus en entrée, et avant la fin de la réception de ladite pluralité de paquets de données attendus en entrée, au moins une partie dudit au moins un paquet source reconstitué, en utilisant les paquets momentanément utiles déjà correctement reçus. 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 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 algorithme principal de traitement d'un paquet reçu, mis en oeuvre par un noeud relais dans un mode de réalisation particulier d'un procédé de codage réseau selon l'invention ; - la figure 6 décrit un algorithme de reconstitution d'une combinaison locale (d'un noeud relais affecté par une perte de lien), correspondant à l'étape 565 de la figure 5 ; - la figure 7 décrit un algorithme de détermination d'une nouvelle combinaison locale à partir d'une combinaison globale, correspondant à l'étape 625 de la figure 6 ; - la figure 8 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 555 de la figure 5 et à l'étape 1145 de la figure 11 ; - la figure 9 décrit un algorithme de reconstitution d'une combinaison locale associée à une combinaison globale proche de la combinaison globale prédéterminée qui a le moins d'impact sur le réseau, correspondant à l'étape 815 de la figure 8 ; - la figure 10 décrit un algorithme de résolution d'un système linéaire basé sur l'algorithme de Gauss-Jordan pour déterminer une nouvelle combinaison locale à partir d'une combinaison globale, correspondant à l'étape 715 de la figure 7 et à l'étape 915 de la figure 9 ; - la figure 11 décrit un algorithme de reprise de la reconstitution d'une combinaison locale (d'un noeud relais affecté par une perte de lien), correspondant à l'étape 570 de la figure 5 ; - la figure 12 décrit un algorithme de reprise de la résolution du système linéaire lié à l'algorithme de reprise de la reconstitution d'une combinaison locale, correspondant à l'étape 1115 de la figure 11 ; - la figure 13 décrit un algorithme d'attribution d'un indice de confiance à une combinaison linéaire locale, correspondant à l'étape 930 de la figure 9 ; - la figure 14 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 965 de la figure 9 ; - la figure 15 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 820 de la figure 8 ; - la figure 16 présente un algorithme principal de traitement d'un paquet reçu, mis en oeuvre par un noeud destination dans un mode de réalisation particulier d'un procédé de codage réseau selon l'invention ; - la figure 17 décrit un algorithme de modification de la matrice de décodage, correspondant à l'étape 1655 de la figure 16 ; - la figure 18 décrit un algorithme de reprise de la modification de la matrice de décodage, correspondant à l'étape 1660 de la figure 16 ; - la figure 19 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, correspondant à l'étape 1715 de la figure 17 et à l'étape 1645 de la figure 16. 6. DESCRIPTION DÉTAILLÉE 25 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 30 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 10 15 20 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. Advantageously, at each reception of one of said momentarily useful packets, said method comprises the steps of: detecting a momentarily useful corrupted packet, defined as a momentarily useful packet which is not correctly received or is correctly received but does not possess not a composition in source packet (s) expected; if a momentarily useful, corrupted packet is detected, repeat steps IL2) and III). Thus, if a momentarily useful packet is received in an altered form (reception not correct or with a composition modified in source packets), the destination node can immediately restart the aforementioned algorithm for determining a new decoding matrix for decoding the most large number of source packages. In another embodiment, the invention relates to a computer program product downloadable from a communication network and / or recorded on a computer readable medium and / or executable by a processor. This computer program product includes program code instructions for carrying out the aforesaid method (in any one of its various embodiments), when said program is run on a computer. In another embodiment, the invention relates to a computer readable storage means, possibly totally or partially removable, storing a computer program comprising a set of instructions executable by a computer to implement the aforementioned method (in any of its different embodiments). In another embodiment, the invention relates to a relay node included in a mesh network and participating in a network coding method in said mesh network, said relay node, according to a predetermined network coding scheme, expecting to receive in inputting a plurality of data packets and outputting a predetermined resultant packet obtained according to a predetermined linear combination of a portion of said plurality of expected data packets, the data packets belonging to said portion being said to be useful packets and the data packets not belonging to said part being said to be redundant packet, each of the expected data packets having an expected source packet composition (s), in accordance with said predetermined network coding scheme. Said relay node comprises: - detection means, for detecting an altered useful packet, defined as a useful packet that is not correctly received or is correctly received but does not have a source packet composition (s) expected; determination means, activated if an altered useful packet is detected, making it possible to determine, before the end of the reception of said plurality of data packets, a new linear combination of expected input packets making it possible to construct a resulting packet reconstituted using, in accordance with a modified network coding scheme, all or part of the redundant packets, the packets associated with said new linear combination being said momentarily useful packets; means of construction, making it possible to construct, with the new linear combination of expected packets as input, and before the end of the reception of said plurality of expected data packets, at least a portion of said reconstituted resulting packet, using momentarily useful packets already correctly received. In another embodiment, the invention relates to a destination node included in a mesh network and participating in a network coding method in said mesh network, said destination node, according to a predetermined network coding scheme, expecting to receiving as input a plurality of data packets and to output at least one predetermined source packet obtained in a predetermined linear combination of a portion of said plurality of input data packets, the data packets belonging to said portion being said useful packets and the data packets not belonging to said part being said to be redundant packet, each of the expected data packets having an expected source packet composition (s), according to said predetermined network coding scheme. Said destination node comprises: - detection means, for detecting an altered useful packet, defined as a useful packet that is not correctly received or is correctly received but does not have a source packet composition (s) expected; determination means, activated if an altered useful packet is detected, determining, to determine, before the end of the reception of said plurality of data packets, at least one new linear combination of packets expected at the input allowing constructing at least one reconstituted source packet using, in accordance with a modified network coding scheme, all or part of the redundant packets, the packets associated with said at least one new linear combination being said momentarily useful packets; means for constructing, with said at least one new linear combination of packets expected as input, and before the end of the reception of said plurality of data packets expected at the input, at least a part of said at least one reconstituted source package, using momentarily useful packets already correctly received. More generally, the relay node and the destination node according to the invention comprise means for implementing the methods as described previously (in any one of their various embodiments). 5. LIST OF FIGURES Other features and advantages of the invention will become apparent on reading the following description, given by way of indicative and nonlimiting example, and the appended drawings, in which: FIG. 1 represents an example wireless mesh network in which the network coding technique of the invention can be implemented; FIG. 2 represents the architecture of a device (relay node or destination node) according to a particular embodiment of the invention; FIG. 3 describes the structure of a packet notifying a modification of the predetermined coding scheme, according to a particular embodiment of the invention; FIGS. 4a, 4b and 4c describe algorithms, implemented in a central node, a relay node and a destination node respectively, of construction of a predetermined network coding scheme, at the start of the system; FIG. 5 presents a main algorithm for processing a received packet, implemented by a relay node in a particular embodiment of a network coding method according to the invention; FIG. 6 describes an algorithm for reconstituting a local combination (of a relay node affected by a loss of link), corresponding to step 565 of FIG. 5; FIG. 7 describes an algorithm for determining a new local combination from a global combination, corresponding to step 625 of FIG. 6; FIG. 8 describes an algorithm for selecting the overall linear combination that has the least impact on the network, corresponding to step 555 of FIG. 5 and step 1145 of FIG. 11; FIG. 9 describes an algorithm for reconstituting a local combination associated with a global combination close to the predetermined overall combination that has the least impact on the network, corresponding to step 815 of FIG. 8; FIG. 10 depicts an algorithm for solving a linear system based on the Gauss-Jordan algorithm for determining a new local combination from a global combination corresponding to step 715 of FIG. 7 and FIG. step 915 of Figure 9; FIG. 11 describes an algorithm for resuming the reconstitution of a local combination (of a relay node affected by a loss of link), corresponding to step 570 of FIG. 5; FIG. 12 describes an algorithm for resuming the resolution of the linear system linked to the recovery algorithm of the reconstitution of a local combination, corresponding to step 1115 of FIG. 11; FIG. 13 describes an algorithm for assigning a confidence index to a local linear combination, corresponding to step 930 of FIG. 9; FIG. 14 describes an algorithm for selecting the overall linear combination that has the least impact on the network, corresponding to step 965 of FIG. 9; FIG. 15 describes an algorithm for reconstituting a local combination associated with a global combination closest to another global combination, corresponding to step 820 of FIG. 8; FIG. 16 presents a main algorithm for processing a received packet, implemented by a destination node in a particular embodiment of a network coding method according to the invention; FIG. 17 describes an algorithm for modifying the decoding matrix corresponding to step 1655 of FIG. 16; FIG. 18 describes an algorithm for resuming the modification of the decoding matrix, corresponding to step 1660 of FIG. 16; FIG. 19 describes an algorithm for determining the number of decodable source packets, and consequently for determining the associated decoding matrix, corresponding to step 1715 of FIG. 17 and step 1645 of FIG. 16. DETAILED DESCRIPTION In all the figures of this document, the elements and identical steps are designated by the same numerical reference. FIG. 1 represents an example of a wireless mesh network in which the network coding technique of the invention can be implemented. The medium access protocol is of the TDMA (Time Division Multiple Access) type, where for a fixed period, called superframe, each node of the network has 10 15 20 a single access to the medium during a fixed speaking time called time slot (or slot in English). This network is composed of three source nodes, named respectively NS 1, NS 2 and NS 3, and six nodes which are both relay nodes and destination nodes, named NR / D 1,..., NR / D 6. Each communication link is represented by an arrow indicating the direction of the transmission. The four full-line communications links (as for example between the nodes NS1 and NR / D1) represent packets consisting solely of a source packet from the node 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. The three small dotted communication links (as for example between the nodes NS2 and NR / D4) represent packets consisting solely of a source packet from the node NS2. The two large dotted communications links (such as between the NS3 and NR / D2 nodes) represent packets consisting solely of a source packet from the NS3 node. The other five communication links (for example between the nodes NR / D1 and NR / D3) represent packets which have undergone network coding and therefore contain a linear combination of at least two source packets. Communications links are not represented which are either victims of permanent masking or not usable due to the TDMA protocol and the successive speech times given to each node, the source nodes emitting first in the order of their numbering and then all the relay nodes also in the order of their numbering. FIG. 2 represents the architecture of a device (relay node or destination node) according to a particular embodiment of the invention. This device is represented by the block 210, blocks 230 (application) and 240 (Radio Frequency transmitter / receiver) corresponding to the environment of this device. The Man / Machine interface 212 allows the user to give the graph representing the network in order to calculate the reference network coding scheme with the Ford-Fulkerson algorithm. This network coding scheme will then be shared between all the nodes of the network.

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 décrit l'algorithme principal de traitement d'un paquet reçu, mis en oeuvre par un noeud relais dans un mode de réalisation particulier d'un procédé de codage réseau selon l'invention. Les paramètres d'entrée sont les suivants : • un paquet p attendu, à recevoir ; • la combinaison locale prédéterminée du noeud relais, noté cmb_loc_pred (combinaison d'un sous-ensemble prédéterminé de paquets parmi la pluralité de paquets à recevoir) ; • la matrice relais R, contenant des combinaisons globales des paquets reçus avant l'accès au médium de ce noeud relais. Cet algorithme se lance pour chaque paquet p attendu (étape 510). A l'étape 515, on vérifie si le paquet p attendu est disponible. Ce moyen se base par exemple sur des informations radio, tel le rapport signal sur bruit (SNR, pour Signal Noise Ratio en anglais) ou la puissance du signal reçu (RSSI, pour Radio Signal Strength Indication en anglais). Si ces variables dépassent un seuil prédéfini, le paquet est considéré disponible et on passe à l'étape 520, sinon le paquet est considéré indisponible et on passe à l'étape 525. The data memory 216 makes it possible to store the different copies of the data transmitted by the source nodes and the different relay nodes. This data is received by the Radio Frequency transmitter / receiver 240 and passes through the radio packet receiver 215. This memory 216 also makes it possible to store the matrices of the various nodes involved in the network coding process. The network coding packet management module, referenced 217, which is segmented into four sub-modules, manages, both at the relay nodes and the destination nodes, the network coding packets. The first sub-module 218 is a notification analyzer that makes it possible to know if the received packet corresponds to the expected packet or if coefficients related to the network coding have been modified. The second sub-module 219 allows it to update the network coding coefficients to be used either for retransmission or for decoding, in place of the reference coefficients stored in the data memory 216. The updating of these coefficients is performed after the analysis of a notification corresponding to a received packet. The third sub-module 220, encoded packet production, is used by the relay nodes. It makes it possible to generate the resulting package that must be sent. This resulting packet is a function (linear combination) of some received packets and their associated coefficients. Once produced, the resulting packet is stored in data memory to be transmitted by the radio packet transmitter 214. The fourth sub-module 221 is used during the decoding phase. It makes it possible to construct a decoding matrix according to the received packets and their associated coefficients (stored in the data memory), and to extract from this matrix the different source packets. Once decoded, the source packets are transmitted to the application 230 by the CPU 213. FIG. 3 describes the structure of a packet notifying a modification of the predetermined network coding scheme. In a stable regime where no packet loss is detected, a packet consists only of a given part 310, in which part the information transmitted by the source nodes or the relay nodes is contained. In the context of the present invention, this given part 310 is a linear combination of the source packets sent by the source nodes, linear combination predetermined at the initialization of the system. If the data portion 310 does not contain this predetermined linear combination of source packets (because of link loss), a notification portion 305 is added to indicate the coefficients of the linear combination that have been modified. It should therefore be noted that this notification part 305 is not systematically present in the packet. For each modified coefficient, information is introduced in the notification part 305. This information contains an identifier 315 (respectively 325) of the source packet associated with the coefficient, as well as the new value of the coefficient 320 (respectively 330). In the particular case where a source packet is missing, the value of the coefficient is set to zero. FIGS. 4a, 4b and 4c describe algorithms, implemented in a central node, a relay node and a destination node respectively, of construction of a predetermined network coding scheme, at the start of the system. The central node, which is one of the nodes present in FIG. 1 (for example one of the source nodes), has the function of constructing the predetermined network coding scheme and of distributing it to all the other nodes (as described in FIG. Figure 4a). On receipt of this network coding scheme by the other nodes of the network, the relay nodes store the latter (as described in FIG. 4b) and the destination nodes as well (as described in FIG. 4c). We now present, in relation with Figure 4a, the algorithm implemented in the central node. At system initialization (step 405), the central node retrieves (step 410) the topology of the network (i.e., recovers the quality of the communications between the nodes), the list of source nodes, and the list of the nodes. destination nodes. This topology can be known from the nodes of the network by construction, if the network is fixed and if the number of nodes is constant. It is also certain that this information can be introduced by the user after the installation of a system. Then, in step 415, the central node constructs the network graph G from the network topology. If the quality of a transmission between two entities is considered good, for example if the signal-on-noise ratio (in English Signal Noise Ratio) or the power of the signal received (in English Radio Signal Strength Indication) is higher than a given threshold ( depending on the type of radio used), the transmission is considered valid, if not invalid. The graph is then constructed in the following way: each communicating entity is modeled by a node of the graph and each communication considered valid between two entities is modeled by a link between two nodes (and therefore each communication considered invalid is not modeled in the graph). Then, in step 420, the central node determines the predetermined network coding scheme. The method is explained in the patent application US2005 / 0010675 and repeated in many articles of the state of the art. The steps are as follows:> Find the disjoint paths Uj between the set S of the source nodes and each destination node Dj; - Construction of the subgraph G 'of G containing only vertices and links belonging to at least one set Uj; - Determine the coefficients of the linear combinations in such a way that the set of destination matrices is of rank equal to the number of source nodes. Then, in step 425, the central node diffuses the coefficients according to a predetermined diffusion protocol. Several dissemination techniques are known to those skilled in the art for broadcasting information in a mesh network (for example data flood type in a mesh protocol, English flooding protocol). For a relay node (FIG. 4b), at the end of the diffusion step (425) by the central node, that is to say on reception (step 430) by the relay node of the coefficients of the linear combinations of the set of nodes of the network, the relay node keeps in memory its local combination cmb_loc_pred, which it will later use to build a predetermined resulting packet, and builds a relay matrix and a destination matrix (step 435). The relay matrix contains the global combinations of the resulting packets of the source nodes or relay nodes that had access to the medium, during the superframe, before the date of access to the medium of the relay node considered. The other packets, that is to say those sent by nodes which had access to the medium after the relay node considered, are not taken into account because they are not usable (because of the constraint that the combinations only occur with data sent during the current superframe). In addition, the lines corresponding to the packets involved in the combination cmb_loc_pred, that is to say the useful packets, are marked and are considered useful. The destination matrix contains the set of global combinations of the resulting packets received by the destination nodes. These two matrices are explained above in the section titled Network Encoding. For a destination node (FIG. 4c), at the end of the broadcasting step (425) by the central node, that is, at the reception (step 440) by the destination node of the coefficients of the linear combinations of the set of nodes of the network, the destination node constructs a destination matrix (step 445). From this destination matrix and from the Gauss Jordan algorithm, the destination node defines (step 450) a square submatrix of dimension (M, M) of D, denoted C, invertible, such that we have : Y '= CX, with Y' a subvector of the column vector Y of the packets received and X the vector of the source packets, the subvector Y 'incorporating only the received packets taken into account in C (the useful packets). From this equation, we deduce: X = C_ 'Y'. The destination node stores in memory the inverse of C, a matrix called a decoding matrix that it will use directly on receiving the packets. After this initialization phase, each source node starts sending the source packets on the network, each relay node performs its local combination and each destination node decodes the source packets from its decoding matrix. FIG. 5 describes the main algorithm for processing a received packet, implemented by a relay node in a particular embodiment of a network coding method according to the invention. The input parameters are as follows: • an expected p packet, to be received; The predetermined local combination of the relay node, denoted cmb_loc_pred (combination of a predetermined subset of packets among the plurality of packets to be received); The relay matrix R, containing global combinations of the packets received before access to the medium of this relay node. This algorithm launches for each expected packet p (step 510). In step 515, it is checked whether the expected packet p is available. This means is based for example on radio information, such as the signal-to-noise ratio (SNR) or the signal strength received (RSSI for Radio Signal Strength Indication in English). If these variables exceed a predefined threshold, the packet is considered available and proceed to step 520, otherwise the packet is considered unavailable and proceed to step 525.

A l'étape 520, on vérifie si le paquet p reçu est bien constitué de la combinaison linéaire prédéterminée de paquets sources. Pour cela, on détecte si le paquet p reçu comprend une notification ou pas (voir figure 3). Si oui, on passe à l'étape 525, sinon à l'étape 530. A l'étape 525, on mémorise la nouvelle combinaison du paquet reçu. Pour cela, on utilise une matrice relais temporaire R' = r',i, valide uniquement pour l'exécution de cet algorithme dans la supertrame courante. Si c'est la première détection de modification d'un paquet lors de la supertrame courante, la matrice R' est créée sinon elle est remise à jour. La création de la matrice R' est caractérisée par les étapes suivantes : - Initialisation de la valeur des coefficients r',i de la matrice R' à la valeur des coefficients r,i de la matrice relais prédéterminée ; - Si le paquet reçu est indisponible (test de l'étape 515), la ligne correspondant à ce paquet devient une ligne nulle (tous les coefficients de la ligne sont mis à zéro) ; - Si le paquet reçu n'est pas constitué de la combinaison linéaire prédéterminée (test de l'étape 520), la ligne correspondant à ce paquet est modifiée et prend 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) du paquet source indiqué dans la notification. La nouvelle valeur de r',i correspond au coefficient indiqué dans la notification (320). In step 520, it is checked whether the received packet p is actually the predetermined linear combination of source packets. For this, it is detected whether the packet received p includes a notification or not (see Figure 3). If yes, proceed to step 525, otherwise step 530. In step 525, the new combination of the received packet is stored. For this, we use a temporary relay matrix R '= r', i, valid only for the execution of this algorithm in the current superframe. If this is the first modification detection of a packet during the current superframe, the matrix R 'is created otherwise it is updated. The creation of the matrix R 'is characterized by the following steps: - Initialization of the value of the coefficients r', i of the matrix R 'to the value of the coefficients r, i of the predetermined relay matrix; If the received packet is unavailable (test of step 515), the line corresponding to this packet becomes a null line (all the coefficients of the line are set to zero); If the packet received does not consist of the predetermined linear combination (test of step 520), the line corresponding to this packet is modified and takes into account the modifications of the notification: a modified element r ', i means the package associated with this line has been modified. Package i was received with a notification. Column j corresponds to the identifier (315) of the source packet indicated in the notification. The new value of r ', i corresponds to the coefficient indicated in the notification (320).

A l'étape 525, on mémorise aussi la position du noeud relais dans la supertrame qui a envoyé le paquet p, information qui peut être utile si l'algorithme de récupération est repris (étape 570, figure 12). Puis, à l'étape 530, on vérifie si p est un paquet considéré utile (momentanément ou pas). Si oui, on passe à l'étape 540, sinon fin de l'algorithme (étape 535). A l'étape 540, on vérifie de nouveau si p avait une notification ou pas (test de l'étape 520) ou bien si p est indisponible (test de l'étape 515). Si oui, on passe à l'étape 550, sinon à l'étape 545. A l'étape 545, on concatène le paquet reçu avec les autres paquets reçus utiles (momentanément ou pas) pour constituer une partie du paquet résultant. La concaténation est expliquée dans le paragraphe 2.2.1 ci-dessus. A l'étape 550, on vérifie si l'algorithme de récupération finale a déjà été lancé ou pas durant la supertrame courante. Si oui, on passe à l'étape 555, étape où est lancé de nouveau cet algorithme, car un paquet momentanément utile a subi des modifications. L'algorithme de récupération finale est décrit dans la figure 8. Si non, l'étape suivante est l'étape de test 560. A l'étape de test 560, on vérifie si l'algorithme de récupération intermédiaire est en cours durant la supertrame courante. L'algorithme est en cours quand celui-ci a été lancé et que le dernier paquet momentanément utile nécessaire n'a pas encore été reçu. Si oui, on passe à l'étape 570, sinon à l'étape 565. In step 525, the position of the relay node is also stored in the superframe which sent the packet p, which information may be useful if the recovery algorithm is resumed (step 570, FIG. 12). Then, in step 530, it is checked whether p is a packet considered useful (momentarily or not). If yes, proceed to step 540, otherwise end of the algorithm (step 535). In step 540, it is checked again if p had a notification or not (test of step 520) or if p is unavailable (test of step 515). If yes, proceed to step 550, otherwise step 545. In step 545, the received packet is concatenated with the other received useful packets (momentarily or not) to form part of the resulting packet. The concatenation is explained in section 2.2.1 above. In step 550, it is checked whether the final recovery algorithm has already been started or not during the current superframe. If so, proceed to step 555, where the algorithm is re-started because a momentarily useful packet has been modified. The final recovery algorithm is described in FIG. 8. If no, the next step is the test step 560. In the test step 560, it is checked whether the intermediate recovery algorithm is in progress during the test. current superframe. The algorithm is running when it has been started and the last momentarily useful packet needed has not yet been received. If yes, proceed to step 570, otherwise step 565.

A l'étape 565, on lance l'algorithme de récupération intermédiaire. Cet algorithme est décrit dans la figure 6. A l'étape 570, on relance l'algorithme de récupération intermédiaire. Cet algorithme est décrit dans la figure 11. Il est à noter que si p constitue le dernier paquet momentanément utile à combiner pour construire le paquet résultant, ou que p a déclenché une récupération (transparente ou pas) de telle manière que tous les paquets momentanément utiles ont été reçus, une notification, décrite par la figure 3, est alors construite (si nécessaire) notifiant les différences entre la combinaison prédéterminée et la combinaison envoyée, indiquées par l'algorithme de récupération. Le paquet résultant construit avec la notification est alors mis dans le registre tampon (buffer) d'envoi, prêt à être envoyé au prochain accès au médium du noeud relais. A noter aussi 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 décrit un algorithme de reconstitution d'une combinaison locale (d'un noeud relais affecté par une perte de lien), correspondant à l'étape 565 de la figure 5. Les paramètres d'entrée sont les suivants : > La combinaison locale prédéterminée du noeud relais, notée cmb_loc_pred ; - La matrice relais temporaire R', contenant 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 (appelés paquets momentanément utiles). Comme précisé dans le paragraphe 2.2.1 ci-dessus, à 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'algorithme de la figure 6 est alors de trouver une nouvelle combinaison locale cmb_loc_nouv correspondant à cmb_glob_pred (du fait que cmb_loc_pred n'est plus disponible). On peut résumer le concept de la manière suivante : d'une combinaison locale cmb_loc_pred, on détermine sa combinaison globale cmb_glob_pred et à partir de celle- ci, on détermine une nouvelle combinaison locale cmb_loc_nouv. La détermination de cmb_loc_nouv se base à la fois sur les paquets déjà reçus et sur les paquets à recevoir. En effet, les paquets à recevoir sont logiquement constitués d'une combinaison linéaire de paquets sources qui est prédéterminée à la création du schéma de codage réseau, lors de l'initialisation du système (figure 4). Si cette hypothèse est fausse, l'algorithme de la figure 5 ne relancera non pas de nouveau l'algorithme décrit dans cette figure 6 mais un algorithme de reprise décrit figure 11, beaucoup plus léger en opérations du fait qu'il utilise les calculs effectués par cet algorithme de la figure 6. A l'étape 605, on vérifie si chaque paquet source de cmb_glob_pred est au moins dans un paquet reçu ou à recevoir, 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 relais temporaire R' (cf étape 525, figure 5) correspondant à un paquet source de cmb_glob_pred n'est nulle (tous ses coefficients nuls). Si le test est positif (test de l'étape 610), on passe à l'étape 620 sinon à l'étape 615. A l'étape 620, on vérifie si une reconstitution rapide de cmb_glob_pred est possible par une nouvelle combinaison locale. Pour cela, cette étape détermine si la ligne modifiée de R (changement entre R et R', lors de l'étape 525) est présente dans R' à une autre position de ligne. Si oui la nouvelle ligne est appelée ligne remplaçante. La nouvelle combinaison locale attribuée, cmb_loc_nouv, 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. Le paquet associé à la ligne remplaçante est maintenant marqué momentanément utile. Il est à noter que ce paquet momentanément utile peut être un paquet à recevoir. Si le test de l'étape 620 est négatif, on passe à l'étape 625, s'il est positif on passe à l'étape 640.. At step 565, the intermediate recovery algorithm is started. This algorithm is described in FIG. 6. At step 570, the intermediate recovery algorithm is restarted. This algorithm is described in Figure 11. It should be noted that if p is the last momentarily useful packet to combine to build the resulting packet, or that pa triggered a recovery (transparent or not) in such a way that all the momentarily useful packets have been received, a notification, described in Figure 3, is then constructed (if necessary) notifying the differences between the predetermined combination and the sent combination, indicated by the recovery algorithm. The resulting packet built with the notification is then put into the send buffer, ready to be sent to the next medium access of the relay node. Note also that if the local combination cmb_loc_nouv is the null combination, the relay node does not send a resulting packet. FIG. 6 describes an algorithm for reconstituting a local combination (of a relay node affected by a loss of link), corresponding to step 565 of FIG. 5. The input parameters are as follows:> The combination predetermined local relay node, noted cmb_loc_pred; The temporary relay matrix R ', containing global combinations of the packets received before access to the medium of this relay node. The output parameter is the new combination cmb_loc_nouv, and the associated received packets (called momentarily useful packets). As stated in section 2.2.1 above, a combination of local (packets received) is associated with a single global combination (linked to the source packets). Note cmb_glob_pred the predetermined global combination associated with the predetermined local combination cmb_loc_pred. On the contrary, in a global combination it is possible to associate several local combinations. The purpose of the algorithm of Figure 6 is then to find a new local combination cmb_loc_nouv corresponding to cmb_glob_pred (because cmb_loc_pred is no longer available). We can summarize the concept as follows: from a local combination cmb_loc_pred, we determine its global combination cmb_glob_pred and from it, we determine a new local combination cmb_loc_nouv. The determination of cmb_loc_nouv is based on both the packets already received and the packets to receive. Indeed, the packets to be received are logically constituted of a linear combination of source packets which is predetermined at the creation of the network coding scheme, during the initialization of the system (FIG. 4). If this hypothesis is false, the algorithm of FIG. 5 will not restart the algorithm described in this FIG. 6 again, but a recovery algorithm described in FIG. 11, which is much lighter in operations because it uses the calculated calculations. by this algorithm of FIG. 6. In step 605, it is checked whether each source packet of cmb_glob_pred is at least in a packet received or to be received, a necessary condition to hope to reconstruct the global combination cmb_glob_pred with the received packets. For this, it is verified that no column of the temporary relay matrix R '(see step 525, FIG. 5) corresponding to a source packet of cmb_glob_pred is zero (all its coefficients zero). If the test is positive (test of step 610), proceed to step 620 if not step 615. In step 620, it is checked whether rapid reconstitution of cmb_glob_pred is possible by a new local combination. For this, this step determines whether the modified line of R (change between R and R ', in step 525) is present in R' at another line position. If so, the new line is called a successor line. The new local combination assigned, cmb_loc_nouv, is constructed in the following way: the values of the coefficients are not modified but the coefficients are no longer attributed to the same received packets. The package associated with the substitute line is now marked momentarily useful. It should be noted that this momentarily useful packet can be a packet to receive. If the test in step 620 is negative, go to step 625, if it is positive go to step 640.

L'étape 625 est l'étape de la reconstitution d'une combinaison locale cmb_loc_nouv. A l'étape 625, on tente de trouver dans un premier temps une combinaison locale correspondant à la combinaison globale prédéterminée. Cet algorithme est expliqué figure 7. Si la tentative est réussie (résultat positif du test de l'étape 630), la reconstitution est locale et est transparente pour les autres noeuds du réseau et on passe à l'étape 640. Sinon (résultat négatif du test de l'étape 630), on passe à l'étape 615. A l'étape 640, on mémorise la nouvelle combinaison locale cmb_loc_nouv, on met à jour les paquets momentanément utiles et on notifie la différence pour la construction de la notification (si nécessaire). Step 625 is the step of reconstituting a local combination cmb_loc_nouv. At step 625, an attempt is first made to find a local combination corresponding to the predetermined overall combination. This algorithm is explained in FIG. 7. If the attempt is successful (positive result of the test of step 630), the reconstitution is local and is transparent for the other nodes of the network and one proceeds to step 640. Otherwise (negative result from the test of step 630), proceed to step 615. In step 640, store the new local combination cmb_loc_nouv, update the momentarily useful packets and notify the difference for the construction of the notification (if necessary).

A l'étape 645, on concatène tous les paquets momentanément utiles déjà reçus pour constituer une partie du paquet résultant. Ce qui nous permet de débuter en avance la construction du nouveau paquet résultant à envoyer (aussi appelé paquet résultant reconstitué). Si on arrive à l'étape 615, ceci signifie que même avec les paquets à recevoir on n'arrivera pas à déterminer une nouvelle combinaison locale cmb_loc_nouv associée à la combinaison globale cmb_glob_pred. L'algorithme de récupération final expliqué figure 8 est alors lancé pour trouver une nouvelle combinaison locale cmb_loc_nouv associée à une combinaison globale proche de cmb_glob_pred. Plus celui-ci est exécuté tôt, mieux c'est car étant basé sur des tests exhaustifs, il est très coûteux en temps de calcul. In step 645, all the momentarily useful packets already received are concatenated to constitute a part of the resulting packet. This allows us to start in advance the construction of the new resulting package to be sent (also called the resulting reconstituted package). If we arrive at step 615, this means that even with the packets to be received we will not be able to determine a new local combination cmb_loc_nouv associated with the global combination cmb_glob_pred. The final recovery algorithm explained in Figure 8 is then launched to find a new local combination cmb_loc_nouv associated with a global combination close to cmb_glob_pred. The sooner this one is executed, the better it is because being based on exhaustive tests, it is very expensive in computing time.

La figure 7 décrit un algorithme de détermination d'une nouvelle combinaison locale cmb_loc_nouv à partir d'une combinaison globale, correspondant à l'étape 625 de la figure 6. Les paramètres d'entrée sont les suivants: > La combinaison locale prédéterminée cmb_loc_pred du noeud relais et la combinaison globale prédéterminée cmb_glob_pred associée, donnée par le schéma de codage réseau à l'initialisation ; - La matrice relais temporaire R', contenant des combinaisons globales des paquets reçus avant l'accès au médium de ce noeud relais. A l'étape 710, on construit à partir des paquets reçus et à recevoir un système linéaire afin de déterminer les coefficients à attribuer à ces paquets. Notons (31,.., (3s ces coefficients avec S le nombre de paquets reçus et à recevoir. Dans un premier temps, on essaie de construire une nouvelle combinaison locale cmb loc nouv associée à cmb_glob_pred. Pour chaque paquet source X;, il faut que le coefficient associé à celui-ci dans cmb_glob_pred g; se retrouve dans la somme des paquets reçus de s cmb_loc_nouv, c'est-à-dire qu'on doit avoir la relation 1 Ri r'i; = g i pour chaque paquet i=1 source, avec S le nombre de paquets reçus et à recevoir. On a donc un système linéaire : A(3 = g, avec 13 le vecteur colonne des [(31,.., 13s], g=[gi,..,gM] le vecteur colonne de cmb_glob_pred et A une matrice de dimension (M,S) dont chaque coefficient aii est égal à r'i,. Rappelons que, par définition, g; est nul (respectivement non nul) si le paquet source associé n'est pas (respectivement est) dans cmb_glob_pred. FIG. 7 describes an algorithm for determining a new local combination cmb_loc_nouv from a global combination, corresponding to step 625 of FIG. 6. The input parameters are as follows:> The predetermined local combination cmb_loc_pred of relay node and the associated predetermined global combination cmb_glob_pred, given by the network encoding scheme on initialization; The temporary relay matrix R ', containing global combinations of the packets received before access to the medium of this relay node. In step 710, one builds from packets received and receive a linear system to determine the coefficients to be assigned to these packets. Note (31, .., (3s these coefficients with S the number of packets received and to receive.) First, we try to build a new local combination cmb loc new associated with cmb_glob_pred.For each source packet X; the coefficient associated with it in cmb_glob_pred g; is found in the sum of the packets received from s cmb_loc_nouv, that is to say we must have the relation 1 Ri r'i; = gi for each packet i = 1 source, with S the number of packets received and to be received, so we have a linear system: A (3 = g, with 13 the column vector of [(31, .., 13s], g = [gi, .., gM] the column vector of cmb_glob_pred and A a dimension matrix (M, S) of which each coefficient aii is equal to r'i, remember that, by definition, g; is zero (respectively non-zero) if the associated source package is not (respectively is) in cmb_glob_pred.

A l'étape 715, on résout le système linéaire créé à l'étape 710. Cet algorithme est expliqué dans la figure 10. Puis à l'étape de test 720, on vérifie que le système est compatible ou pas (c'est-à-dire admet une solution ou pas) (voir le paragraphe 2.2.3 ci-dessus). Si oui, on passe à l'étape 730, sinon à l'étape 725 (échec et fin de l'algorithme). In step 715, the linear system created in step 710 is solved. This algorithm is explained in FIG. 10. Then in test step 720, it is verified that the system is compatible or not (that is, ie admits a solution or not) (see paragraph 2.2.3 above). If yes, proceed to step 730, otherwise step 725 (failure and end of the algorithm).

A l'étape 730, on attribue alors les valeurs de [3,,.., (3s] données par l'algorithme du Gauss-Jordan. Si le système admet une infinité de solutions, la valeur des coefficients 13i qui sont des inconnues secondaires est attribuée à zéro, ce qui revient à dire que les paquets associés sont considérés redondants. Puis le succès de l'algorithme est mémorisé et fin de l'algorithme (étape 735). La figure 8 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 555 de la figure 5 et à l'étape 1145 de la figure 11 Les paramètres d'entrée sont : > 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 temporaire R', contenant des combinaisons globales des paquets reçus avant l'accès au médium de ce noeud relais. A l'étape 805, on vérifie si chaque paquet source de cmb_glob_pred est au moins dans un paquet reçu ou à recevoir (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 de l'étape 810 est positif, on passe à l'étape 815 sinon à l'étape 820. A l'étape 815, on détermine une nouvelle combinaison locale cmb_loc_nouv associée à une combinaison globale la plus proche (selon une première définition) de cmb_glob_pred. Cet algorithme est décrit dans la figure 9. Puis, on passe à l'étape 835, dans laquelle on crée une notification qui indique les paquets sources manquants ou modifiés par rapport à cmb_glob_pred. Puis, on passe à l'étape 840, dans laquelle on concatène tous les paquets momentanément utiles déjà reçus pour constituer une partie du paquet résultant. A l'étape 820, on détermine une nouvelle combinaison locale cmb_loc_nouv associée à une combinaison globale la plus proche (selon une seconde finition) de cmb_glob_pred. Cet algorithme est décrit dans la figure 15. Puis, on passe à l'étape 825, dans laquelle on crée une notification qui indique les paquets sources manquants ou modifiés par rapport à cmb_glob_pred. Puis, on passe à l'étape 840, dans laquelle on concatène tous les paquets momentanément utiles déjà reçus pour constituer une partie du paquet résultant. Il est à noter la différence entre les étapes 815 et 820 sur la notion de la plus proche . Dans l'étape 820, on entend par combinaison globale la plus proche de cmb_glob_pred la combinaison globale contenant le plus de paquets sources contenus dans cmb_glob_pred, en interdisant les paquets sources non contenus dans cmb_glob_pred. Dans l'étape 815, on n'a pas cette contrainte, des paquets non associés à cmb_glob_pred peuvent être présents dans cmb_loc_nouv (plus précisément, dans sa combinaison globale associée). Mais dans ce cas, il faut que tous les paquets associés de cmb_glob_pred soient présents dans cmb_loc_nouv. Dans ce cas, on entend par combinaison globale la plus proche de cmb_glob_pred la combinaison globale qui a le moins d'impact sur le réseau. La figure 9 décrit un algorithme de reconstitution d'une nouvelle combinaison locale cmb_loc_nouv associée à une combinaison globale cmb_glob_nouv proche de la combinaison globale prédéterminée cmb_glob_pred qui a le moins d'impact sur le réseau. Cet algorithme correspond à l'étape 815 de la figure 8. Les paramètres d'entrée sont les suivants : > 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 temporaire R', contenant des combinaisons globales des paquets reçus avant l'accès au médium de ce noeud relais. A 1"étape 910, on construit à partir des paquets reçus et à recevoir un système linéaire afin de déterminer les coefficients à attribuer à ces paquets. Notons (31,.., (3s ces coefficients avec S le nombre de paquets reçus ou à recevoir. On sait qu'on ne peut pas reconstruire une combinaison locale cmb_loc_nouv associée à cmb_glob_pred. On va donc tenter de déterminer une combinaison locale associée à une combinaison globale autre que cmb_glob_pred. On attribue alors une nouvelle valeur pour les g; correspondant aux paquets sources non associés à cmb_glob_pred. Pour les paquets associés, on garde les coefficients de la combinaison linéaire globale. On a alors, comme à l'étape 710, un système linéaire : A(3 = g, avec 13 le vecteur colonne des inconnues [(31,.., (3s], A une matrice de dimension (M,S) dont chaque coefficient a;i est égal à r'i, (coefficients de la matrice R') et g=[gi,..,gM] le vecteur colonne représentant une combinaison globale proche de cmb_glob_pred, contenant au moins celle-ci. L'attribution d'une valeur à ce vecteur g consiste à attribuer au moins une valeur non nulle à un coefficient g; correspondant aux T paquets sources non associés à cmb_glob_pred (qui ont une valeur nulle dans celle-ci). Plusieurs implémentations sont possibles : > Aléatoire : On tire aléatoirement la valeur des T coefficients g; correspondants aux T paquets non associés sur le corps Fq en vérifiant qu'on tire au moins une valeur non nulle. Un générateur pseudo-aléatoire est donc implémenté dans ce cas ; - Déterministe : une valeur initiale déterministe est attribuée aux T coefficients. L'attribution des valeurs de g sera expliquée plus en détail dans l'étape 955. Puis on passe à l'étape 915. At step 730, the values of [3 ,, .., (3s] given by the Gauss-Jordan algorithm are then assigned If the system admits an infinity of solutions, the value of the coefficients 13i which are unknowns secondary is assigned to zero, which is to say that the associated packets are considered redundant, then the success of the algorithm is stored and end of the algorithm (step 735) Figure 8 describes a selection algorithm of the combination overall linear pattern that has the least impact on the network, corresponding to step 555 of FIG. 5 and step 1145 of FIG. 11 The input parameters are:> The predetermined global combination cmb_glob pred given by the network coding scheme at initialization; temporary relay matrix R 'containing global combinations of packets received before access to the medium of this relay node; in step 805 it is checked whether each source packet of cmb_glob_pred is at least in a re package received or received (a necessary condition to hope to reconstruct the global combination cmb_glob_pred with received packets). For that, one checks that no column of the matrix R 'corresponding to a source package of cmb_glob_pred is null (all its null coefficients). If the test of step 810 is positive, proceed to step 815 if not to step 820. In step 815, a new local combination cmb_loc_new associated with a closest overall combination is determined (according to a first definition) of cmb_glob_pred. This algorithm is described in FIG. 9. Then, we go to step 835, in which we create a notification that indicates the source packets that are missing or modified with respect to cmb_glob_pred. Then, we go to step 840, in which we concatenate all the momentarily useful packets already received to form part of the resulting packet. In step 820, a new local combination cmb_loc_nouv associated with a closest overall combination (in a second finish) of cmb_glob_pred is determined. This algorithm is described in FIG. 15. Then, we go to step 825, in which we create a notification that indicates the source packets that are missing or modified with respect to cmb_glob_pred. Then, we go to step 840, in which we concatenate all the momentarily useful packets already received to form part of the resulting packet. It is worth noting the difference between steps 815 and 820 on the concept of the closest. In step 820, the global combination closest to cmb_glob_pred is the global combination containing the most source packages contained in cmb_glob_pred, prohibiting the source packages not contained in cmb_glob_pred. In step 815, we do not have this constraint, packets not associated with cmb_glob_pred can be present in cmb_loc_nouv (more precisely, in its associated overall combination). But in this case, all the associated packages of cmb_glob_pred must be present in cmb_loc_nouv. In this case, the closest overall combination of cmb_glob_pred is the overall combination that has the least impact on the network. FIG. 9 describes an algorithm for reconstituting a new local combination cmb_loc_nouv associated with a global combination cmb_glob_nouv close to the predetermined global combination cmb_glob_pred which has the least impact on the network. This algorithm corresponds to step 815 of FIG. 8. The input parameters are as follows:> The predetermined global combination cmb_glob pred given by the network coding scheme at initialization; The temporary relay matrix R ', containing global combinations of the packets received before access to the medium of this relay node. At step 910, one builds from packets received and receive a linear system in order to determine the coefficients to be assigned to these packets, (31, .., (3s these coefficients with S the number of packets received or It is known that we can not reconstruct a local combination cmb_loc_nouv associated with cmb_glob_pred, so we will try to determine a local combination associated with a global combination other than cmb_glob_pred, then we assign a new value for g; sources not associated with cmb_glob_pred For the associated packets, we keep the coefficients of the global linear combination We then have, as in step 710, a linear system: A (3 = g, with 13 the vector column of unknowns [ (31, .., (3s], has a matrix of dimension (M, S) of which each coefficient a; i is equal to r'i, (coefficients of the matrix R ') and g = [gi, .., gM] the column vector representing a global combination close to cmb_gl ob_pred, containing at least this one. The assignment of a value to this vector g consists of assigning at least one non-zero value to a coefficient g; corresponding to the T source packages not associated with cmb_glob_pred (which have a null value in it). Several implementations are possible:> Random: One draws randomly the value of the T coefficients g; corresponding to the T unassociated packages on the body Fq by verifying that at least one non-zero value is drawn. A pseudo-random generator is therefore implemented in this case; - Deterministic: an initial deterministic value is attributed to the T coefficients. Assigning the values of g will be explained in more detail in step 955. Then proceed to step 915.

A l'étape 915, on résout le système linéaire créé à l'étape 910. L'algorithme de Gauss-Jordan est utilisé. Celui-ci est décrit par la figure 10 mais dans le cas de la reconstitution finale, on n'a pas besoin de mémoriser les opérations et les matrices. A l'étape 920, on vérifie que le système est compatible ou pas (c'est-à-dire admet une solution ou pas) (voir le paragraphe 2.2.3 ci-dessus). Si oui, on passe à l'étape 925, sinon à l'étape 960. A l'étape 925, on attribue alors les valeurs de g,.., (3s] données par l'algorithme de Gauss-Jordan. Si le système admet une infinité de solutions, la valeur des coefficients 13i qui sont des inconnues secondaires est attribuée à zéro. Puis, à l'étape 930, on vérifie que les paquets sources ajoutés dans la nouvelle combinaison locale qui ne sont pas dans cmb_glob_pred (le système linéaire 920 n'a pas été résolu à la première itération) ont un impact ou pas sur le réseau. Ce test est décrit précisément dans la figure 13. Si cet ajout n'a aucun impact, on passe à l'étape 935 sinon à l'étape 950. A l'étape 935, on notifie les coefficients des paquets sources différents entre le vecteur g et la combinaison globale cmb_glob_pred, puis on passe à l'étape 940. In step 915, the linear system created in step 910 is solved. The Gauss-Jordan algorithm is used. This is described in Figure 10 but in the case of the final reconstruction, there is no need to memorize operations and matrices. In step 920, it is verified that the system is compatible or not (i.e. admits a solution or not) (see paragraph 2.2.3 above). If so, proceed to step 925, otherwise step 960. In step 925, the values of g, .., (3s) given by the Gauss-Jordan algorithm are then assigned. system admits an infinity of solutions, the value of the coefficients 13i which are secondary unknowns is assigned to zero, then, in step 930, it is verified that the source packets added in the new local combination which are not in cmb_glob_pred (the linear system 920 was not solved at the first iteration) have an impact or not on the network This test is described precisely in figure 13. If this addition has no impact, we go to step 935 otherwise in step 950. In step 935, the coefficients of the different source packets are notified between the vector g and the global combination cmb_glob_pred, and then step 940.

A l'étape 940, on garde en mémoire la nouvelle combinaison locale cmb_loc_nouv donnée par définition par les valeurs de [(3~,.., (31] et on marque l'utilité ou non des paquets reçus ou à recevoir (les paquets associés aux coefficients g; non nuls sont marqués momentanément utiles, les autres sont marqués redondants). At step 940, the new local combination cmb_loc_nouv given by definition by the values of [(3 ~, .., (31] is kept in memory and the utility or not of the packets received or to be received (the packets associated with the coefficients g, non-zero are marked momentarily useful, the others are marked redundant).

A l'étape 950, on mémorise, dans une liste appelée Scand, la combinaison locale testée (mémorisation des [(3~,.., (3s]) et la combinaison linéaire globale (mémorisation des [g1,.., gM]) associée, ainsi que l'indice de confiance lié à cette combinaison donnée par le test de l'étape 930. Puis, on passe à l'étape 955. A l'étape 955, on attribue des nouvelles valeurs pour les g; correspondant aux paquets sources non associés à cmb_glob_pred. Cette étape est associée à l'étape 960 qui détermine si la recherche de combinaisons globales n'impactant pas le réseau doit être arrêtée ou pas, et bien sur à l'étape 910 qui a donné une première valeur au vecteur g. Pour déterminer une nouvelle valeur pour le vecteur g : • soit on tire de nouveau aléatoirement la valeur des T coefficients g; correspondant aux T paquets non associés sur le corps Fq en vérifiant qu'on tire au moins une valeur non nulle ; • soit de manière déterministe, on choisit une nouvelle valeur de g prédéterminée. La condition d'arrêt pour l'étape 960 est basée soit sur un nombre d'essais maximal, soit sur un instant d'arrêt. Cet instant d'arrêt peut être par exemple l'instant de début d'une période prédéterminée avant la date d'accès au médium par le noeud relais. On considère qu'après cet instant d'arrêt, la recherche de combinaisons globales n'impactant pas le réseau a assez duré et qu'il faut maintenant conclure et trouver au moins un paquet résultant impactant le moins possible le réseau. Donc à l'étape 960, si le nombre d'essais maximal ou si l'instant d'arrêt sont atteints, le test est négatif et on passe à l'étape 965, sinon le test est positif et on retourne à l'étape 955. Il est à noter que le nombre de valeurs testées pour le vecteur g est fortement optimisé. En effet, le fait de déclencher l'algorithme avant la réception de tous les paquets permet de tester beaucoup plus de combinaisons pour g (c'est-à-dire permet d'augmenter le nombre d'essais maximal ou, par définition, d'augmenter la période de test entre la date de déclenchement et l'instant d'arrêt) et donc d'augmenter la robustesse du réseau du fait qu'on a plus de chance de trouver une combinaison globale n'impactant pas le réseau. A l'étape 965, on 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 précisément dans la figure 14. Puis, on passe à l'étape 975, dans laquelle on crée une notification qui indique les paquets sources manquants ou modifiés par rapport à cmb_glob_pred. A l'étape 970, la nouvelle combinaison locale est mémorisée dans la variable cmb_loc_nouv. Cette étape 970 correspond à la fin de cet algorithme. In step 950, in a list called Scand, the tested local combination is memorized (storage of [(3 ~, .., (3s]) and the overall linear combination (storage of [g1, .., gM] ) associated, as well as the confidence index associated with this combination given by the test of step 930. Then, go to step 955. In step 955, new values are given for the corresponding g; to source packets not associated with cmb_glob_pred This step is associated with step 960 which determines whether searching for global combinations not affecting the network should be stopped or not, and of course at step 910 which gave a first value to the vector g To determine a new value for the vector g: • either we randomly draw again the value of the T coefficients g, corresponding to the T unassociated packages on the body Fq, by checking that we draw at least one value null: • in a deterministic way, we choose a new value The stopping condition for step 960 is based on either a maximum number of trials or a stopping time. This stop time may be for example the start time of a predetermined period before the date of access to the medium by the relay node. It is considered that after this moment of stopping, the search for global combinations that do not impact the network has lasted long enough and it is now necessary to conclude and find at least one resulting packet that has the least possible impact on the network. So in step 960, if the maximum number of tests or the stopping time are reached, the test is negative and we go to step 965, otherwise the test is positive and we go back to step 955. It should be noted that the number of values tested for the vector g is highly optimized. Indeed, the fact of triggering the algorithm before the reception of all the packets makes it possible to test many more combinations for g (that is to say, makes it possible to increase the maximum number of tests or, by definition, increase the test period between the trigger date and the stop time) and therefore increase the robustness of the network because it is more likely to find a global combination that does not impact the network. In step 965, a default local combination is selected, associated with a global combination that will impact the network as little as possible. This algorithm is described precisely in FIG. 14. Then, we go to step 975, in which we create a notification that indicates the source packets that are missing or modified with respect to cmb_glob_pred. In step 970, the new local combination is stored in the variable cmb_loc_nouv. This step 970 corresponds to the end of this algorithm.

La figure 10 décrit un algorithme de résolution d'un système linéaire basé sur l'algorithme de Gauss-Jordan pour déterminer une nouvelle combinaison locale à partir d'une combinaison globale, correspondant à l'étape 715 de la figure 7 et à l'étape 915 de la figure 9. Le point clé de cette figure est la mémorisation, à chaque itération de l'algorithme, des opérations dans les étapes 1025, 1030, 1045 et des matrices temporaires dans l'étape 1075. Cette mémorisation permettra ainsi de reprendre les calculs à des itérations sélectionnées et non pas de relancer entièrement la récupération à une nouvelle perte d'un paquet utile dans la supertrame courante. Le paramètre d'entrée est le système linéaire à résoudre : A(3 = g, avec : - 13 le vecteur colonne des inconnues [(31,.., 13s], S le nombre total de paquets reçus et à recevoir durant la supertrame ; - g=[gl,..,gM] le vecteur colonne représentant la combinaison globale cmb_glob_pred ; - A la matrice de dimension (M,S) dont chaque coefficient aii est égal à r'i,. FIG. 10 depicts an algorithm for solving a linear system based on the Gauss-Jordan algorithm to determine a new local combination from a global combination, corresponding to step 715 of FIG. 7 and to FIG. step 915 of FIG. 9. The key point of this figure is the memorization, at each iteration of the algorithm, of the operations in the steps 1025, 1030, 1045 and of the temporary matrices in the step 1075. This memorization will thus make it possible to repeat the calculations at selected iterations and not restart fully the recovery to a new loss of a useful packet in the current superframe. The input parameter is the linear system to be solved: A (3 = g, with: - 13 the unknown column vector [(31, .., 13s], S the total number of packets received and to be received during the superframe - g = [gl, .., gM] the column vector representing the global combination cmb_glob_pred; - A the dimension matrix (M, S) of which each coefficient aii is equal to r'i ,.

A l'étape 1005, on construit une matrice A" = [A g] de dimension (M,S+1), c'est-à-dire que A" est constitué de A avec une colonne supplémentaire située en dernière position constituée du vecteur g. Le bloc 1010 initialise la variable k à 1, k représentant l'itération en cours de l'algorithme de résolution. In step 1005, a matrix A "= [A g] of dimension (M, S + 1) is constructed, that is to say that A" consists of A with an additional column located in the last position constituted of the vector g. Block 1010 initializes the variable k to 1, where k represents the current iteration of the resolution algorithm.

L'étape 1015 recherche une ligne i de A-') telle que i soit supérieur à k et que un élément a.k(k-') soit différent de zéro. Si le test (étape 1020) est négatif, on passe à l'étape 1060 sinon à l'étape 1025. A l'étape 1060, on initialise toutes les matrices de A(k) à A(mm(Ms à la matrice A(k-l) et garde en mémoire toutes ces matrices. Une autre alternative de mémorisation est d'indiquer l'itération (ici k) à partir de laquelle les matrices sont toutes égales à A(k-l) Puis fin de l'algorithme (étape 1080). A l'étape 1025, on permute les lignes li et lk' cette opération est mémorisée. Puis on passe à l'étape 1030. Step 1015 searches for a line i of A-) such that i is greater than k and an element a.k (k-) is different from zero. If the test (step 1020) is negative, proceed to step 1060 if not to step 1025. In step 1060, all the matrices of A (k) are initialized to A (mm (Ms to matrix A (kl) and keep all these matrices in memory Another storage alternative is to indicate the iteration (here k) from which the matrices are all equal to A (kl) Then end of the algorithm (step 1080 At step 1025, the lines li and lk are switched, this operation is stored, and then step 1030 is performed.

A l'étape 1030, on effectue alors l'opération suivante pour chaque élément de la ligne k de la matrice notée A(k) : lk(k)=(1/akk(k-1))lk(k-1)• L'opération est mémorisée. Puis, à l'étape 1035, on initialise la variable i à 1. Puis, à l'étape 1040, on vérifie si i est différent de k. Si oui, on passe à l'étape 1045, sinon à l'étape 1050. A l'étape 1045, on met à jour la lignes i de A(k) de la manière suivante : li(k)=li(k-1)-aik(k-1) .lk(k). In step 1030, the following operation is then performed for each element of the line k of the matrix denoted by A (k): lk (k) = (1 / akk (k-1)) lk (k-1) • The operation is memorized. Then, in step 1035, the variable i is initialized to 1. Then, in step 1040, it is checked whether i is different from k. If yes, proceed to step 1045, otherwise step 1050. In step 1045, the lines i of A (k) are updated in the following manner: li (k) = li (k- 1) -aik (k-1) .lk (k).

L'opération est mémorisée. Puis on passe à l'étape 1050 dans laquelle la variable i est alors incrémentée. Puis on passe à l'étape 1055. A l'étape de test 1055, on vérifie si i est strictement supérieur à m, c'est-à-dire si toutes les lignes de la matrices ont été testées. Si oui, on passe à l'étape 1075, sinon on retourne à l'étape 1040. The operation is stored. Then we go to step 1050 in which the variable i is then incremented. Then we go to step 1055. In the test step 1055, we check if i is strictly greater than m, that is to say if all the rows of the matrix were tested. If yes, go to step 1075, otherwise go back to step 1040.

A l'étape 1075, on mémorise la matrice temporaire A(k). Puis on passe à l'étape 1070. A l'étape 1070, on vérifie si k est égal à M ou S, S étant le nombre de paquets reçus et à recevoir dans la supertrame. Si oui, l'algorithme est terminé (étape 1080), sinon on passe à l'étape 1065 dans laquelle on incrémente k (c'est-à-dire passage à l'itération suivante) puis on retourne à l'étape 1015. La figure 11 décrit un algorithme de reprise de la reconstitution d'une combinaison locale (d'un noeud relais affecté par une perte de lien), correspondant à l'étape 570 de la figure 5. Cet algorithme est pratiquement identique à l'algorithme de lancement de reconstitution d'une combinaison locale d'un noeud relais affecté par une perte de lien (figure 6). L'étape clé différente est l'étape 1115 qui, au lieu de relancer la résolution du système linéaire, reprend la résolution du système linéaire. Les paramètres d'entrée sont les suivants : > La combinaison globale du paquet reçu p, notée cmb_glob_rec ; - La matrice relais temporaire R', contenant mise à jour à l'étape 525. A l'étape 1105, on vérifie si chaque paquet source de cmb_glob_pred est au moins dans un paquet reçu ou à recevoir (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 (étape 1110) est positif, on passe à l'étape 1115 sinon à l'étape 1145. L'étape 1115 permet la reconstitution d'une combinaison locale cmb_loc_nouv. L'étape 1115 est la reprise de l'algorithme de résolution du système linéaire. Cet algorithme est décrit dans la figure 12. Si la tentative (étape 1120) est réussie, la reconstitution est locale et est transparente pour les autres noeuds du réseau, et on passe à l'étape 1125. Sinon on passe à l'étape 1145. A l'étape 1125, on mémorise la nouvelle combinaison locale cmb_loc_nouv, on met à jour les paquets momentanément utiles, puis on passe à l'étape 1140. A l'étape 1140, on concatène les paquets momentanément utiles reçus pour constituer une partie du paquet résultant. Si on arrive à l'étape 1145, ceci signifie que même avec les paquets à recevoir on n'arrivera pas à déterminer une nouvelle combinaison locale cmb_loc_nouv associée à la combinaison globale cmb_glob_pred. L'algorithme de récupération final expliqué figure 8 est alors lancé pour trouver une combinaison locale cmb_loc_nouv associée à une combinaison globale proche de cmb_glob_pred. Plus celui-ci est exécuté tôt, mieux c'est car étant basé sur des tests exhaustifs, il est très coûteux en temps de calcul. La figure 12 décrit un algorithme de reprise de la résolution du système linéaire lié à l'algorithme de reprise de la reconstitution d'une combinaison locale, correspondant à l'étape 1115 de la figure 11. In step 1075, the temporary matrix A (k) is stored. Then we go to step 1070. In step 1070, we check if k is equal to M or S, where S is the number of packets received and to receive in the superframe. If yes, the algorithm is finished (step 1080), otherwise we go to step 1065 in which we increment k (that is to say change to the next iteration) and then return to step 1015. FIG. 11 describes an algorithm for recovery of the reconstitution of a local combination (of a relay node affected by a loss of link), corresponding to step 570 of FIG. 5. This algorithm is practically identical to the algorithm launch of reconstitution of a local combination of a relay node affected by a loss of link (Figure 6). The different key step is step 1115 which, instead of relaunching the resolution of the linear system, resumes the resolution of the linear system. The input parameters are as follows:> The global combination of the received packet p, denoted cmb_glob_rec; - The temporary relay matrix R 'containing updated at step 525. At step 1105, it is checked whether each source packet of cmb_glob_pred is at least in a packet received or to receive (necessary condition to hope to reconstruct the combination global cmb_glob_pred with received packets). For that, one checks that no column of the matrix R 'corresponding to a source package of cmb_glob_pred is null (all its null coefficients). If the test (step 1110) is positive, proceed to step 1115 if not to step 1145. Step 1115 allows the reconstitution of a local combination cmb_loc_nouv. Step 1115 is the resumption of the resolution algorithm of the linear system. This algorithm is described in FIG. 12. If the attempt (step 1120) is successful, the reconstitution is local and is transparent for the other nodes of the network, and one goes to step 1125. Otherwise one proceeds to step 1145 At step 1125, the new local combination cmb_loc_nouv is stored, the packets are momentarily updated, and then step 1140 is carried out. At step 1140, the momentarily useful packets received are concatenated to form a part the resulting package. If we arrive at step 1145, this means that even with the packets to be received we will not be able to determine a new local combination cmb_loc_nouv associated with the global combination cmb_glob_pred. The final recovery algorithm explained in Figure 8 is then launched to find a local combination cmb_loc_nouv associated with a global combination close to cmb_glob_pred. The sooner this one is executed, the better it is because being based on exhaustive tests, it is very expensive in computing time. FIG. 12 describes an algorithm for resuming the resolution of the linear system linked to the resumption algorithm of the reconstitution of a local combination, corresponding to step 1115 of FIG. 11.

Cet algorithme correspond à une remise en cause des paquets précédemment marqués momentanément utiles, lors du lancement de l'algorithme de récupération (étape 565) ou lors d'une reprise antérieure de cet algorithme de récupération (étape 570). Le paquet p reçu, marqué momentanément utile par l'étape 565 ou 570, et qui n'était pas encore reçu à l'exécution de l'algorithme de récupération ne contient pas la combinaison attendue, c'est-à-dire celle prédéterminée lors de la construction du schéma de codage réseau à l'initialisation (figure 4). Or l'algorithme de modification s'est basé sur cette hypothèse donc ses résultats sont remis en question. Mais au lieu de réactiver l'algorithme de l'étape 565, on utilise les résultats de celui-ci pour le reprendre à une itération sélectionnée, ce qui permet d'effectuer moins d'opérations. Les paramètres d'entrée sont : > La matrice relais temporaire R', mise à jour notamment avec la combinaison globale du paquet reçu p noté cmb_glob rec ; - Le système linéaire construit à l'étape 710 lors du lancement de l'algorithme de récupération intermédiaire ; - Les opérations et les matrices temporaires mémorisées lors de chaque itération, durant l'algorithme de résolution de ce système (figure 10). A l'étape 1205, on récupère les positions, dans la supertrame, des noeuds relais qui ont envoyé des paquets non attendus (c'est-à-dire des paquets non disponibles ou contenant des paquets sources non attendus) p1,..,pK entre la date présente et le dernier appel de l'algorithme de récupération (lancement à l'étape 565 ou reprise à l'étape 570) lors de la supertrame courante. Notons T cette période entre deux appels successifs de l'algorithme de récupération et t1,...tK les positions de ces noeuds relais (notation basée sur un classement chronologique). Ces positions représentent aussi les positions des lignes correspondant à ces paquets non attendus dans la matrice R' mais indiquent surtout les positions des colonnes associées à ces paquets dans la matrice A du système linéaire créé dans l'étape 715. Notons cl,..ck les colonnes associées aux positions t1,...tK qui représentent les combinaisons globales des paquets reçus. Remarque : la récupération uniquement de la position du paquet p peut ne pas être suffisante car il se peut que des paquets redondants non attendus aient été reçus durant cette période. Or, si on ne relance pas les algorithmes de récupération avec ces paquets redondants non attendus, pour limiter le nombre d'opérations, la nouvelle combinaison de ces paquets doit être prise en compte. Mais la situation la plus probable est que durant T, tous les paquets redondants sont bien ceux attendus et dans ce cas tl est l'unique position et correspond à la position de p. Puis, à l'étape 1210, on modifie les colonnes ci,..cK de la matrice A(u-u mémorisée durant l'algorithme de résolution du système. L'algorithme de Gauss- Jordan est repris à t1ième itération car toutes les opérations effectuées sur les paquets précédents, c'est-à-dire toutes les colonnes positionnées avant t1, restent valides, la modification n'ayant aucun impact sur ces colonnes. Pour modifier ces colonnes, nous partons des combinaisons globales cmb_glob_rec de chaque paquet. La combinaison globale du paquet p; peut être représentée par un vecteur colonne v(i)=[vi(i),...vM(i)]. Nous appliquons à ce vecteur colonne la liste successive des opérations linéaires des (t1-1) premières itérations mémorisées (voir figure 10). Notons v'(i) ce nouveau vecteur. Et nous remplaçons alors la colonne associée c; de A(u-u par v'(i). Puis on passe à l'étape 1215. A l'étape 1215, on reprend alors, à l'étape t1, l'algorithme de Gauss-Jordan décrit figure 10. Puis, à l'étape 1220, on vérifie que le système est compatible ou pas (c'est-à-dire admet une solution ou pas) (voir le paragraphe 2.2.3 ci-dessus). Si oui, on passe à l'étape 1230, sinon à l'étape 1225 (échec et fin de l'algorithme). A l'étape 1230, on attribue alors les valeurs de [(31,.., 13s] données par l'algorithme du Gauss-Jordan. Si le système admet une infinité de solutions, la valeur des coefficients 13i qui sont des inconnues secondaires est attribuée à zéro. Puis succès et fin de l'algorithme (étape 1235). La figure 13 décrit un algorithme d'attribution d'un indice de confiance à une combinaison linéaire locale, correspondant à l'étape 930 de la figure 9. This algorithm corresponds to a reconsideration of previously marked temporarily useful packets, when launching the recovery algorithm (step 565) or during a previous recovery of this recovery algorithm (step 570). The received p packet, marked momentarily useful by step 565 or 570, and not yet received at the execution of the recovery algorithm does not contain the expected combination, i.e. the predetermined one when constructing the network coding scheme at initialization (Figure 4). But the algorithm of modification was based on this hypothesis so its results are questioned. But instead of reactivating the algorithm of step 565, the results thereof are used to resume it at a selected iteration, which allows for fewer operations. The input parameters are:> The temporary relay matrix R ', updated notably with the global combination of the received packet p noted cmb_glob rec; - The linear system built in step 710 when launching the intermediate recovery algorithm; - The operations and the temporary matrices memorized during each iteration, during the algorithm of resolution of this system (figure 10). In step 1205, the positions in the superframe are retrieved from the relay nodes that sent unexpected packets (ie, packets that are unavailable or containing unexpected source packets) p1, .., pK between the present date and the last call of the recovery algorithm (started at step 565 or resumed at step 570) during the current superframe. Let T denote this period between two successive calls of the recovery algorithm and t1, ... tK the positions of these relay nodes (notation based on a chronological classification). These positions also represent the positions of the lines corresponding to these unexpected packets in the matrix R 'but above all indicate the positions of the columns associated with these packets in the matrix A of the linear system created in step 715. Let us note cl, .. ck the columns associated with the positions t1, ... tK which represent the global combinations of the received packets. Note: Recovering only the position of the p packet may not be sufficient because there may be unexpected redundant packets received during this period. However, if we do not restart the recovery algorithms with these redundant packets not expected, to limit the number of operations, the new combination of these packages must be taken into account. But the most likely situation is that during T, all the redundant packets are those expected and in this case tl is the unique position and corresponds to the position of p. Then, in step 1210, the columns ci, .. cK of the matrix A (uu stored during the system solving algorithm are modified.The Gauss-Jordan algorithm is repeated at the ithth iteration because all the operations performed on the previous packets, that is to say all the columns positioned before t1, remain valid, the modification has no impact on these columns.To modify these columns, we start from the global combinations cmb_glob_rec of each packet. global package p can be represented by a column vector v (i) = [vi (i), ... vM (i)] We apply to this column vector the successive list of linear operations of (t1-1) first stored iterations (see Figure 10), note v '(i) this new vector, and then we replace the associated column c, of A (uu by v' (i), then go to step 1215. step 1215, then, in step t1, the Gauss-Jordan algorithm described in FIG. in step 1220, it is verified that the system is compatible or not (that is, admits a solution or not) (see paragraph 2.2.3 above). If yes, we go to step 1230, otherwise step 1225 (failure and end of the algorithm). In step 1230, the values of [(31, .., 13s] given by the Gauss-Jordan algorithm are then assigned to the following: If the system admits an infinity of solutions, the value of the coefficients 13i which are secondary unknowns is assigned to zero Then success and end of the algorithm (step 1235) Figure 13 depicts an algorithm for assigning a confidence index to a local linear combination, corresponding to step 930 of FIG.

L'indice de confiance mesure l'impact de la nouvelle combinaison locale, à envoyer sur le réseau. A l'initialisation du système, le schéma de codage 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 (on considère que la topologie du réseau n'est pas une contrainte ; elle est même surdimensionnée, dans le cas d'un réseau sans- fil, ce qui crée des paquets reçus redondants). Donc, si le nombre de noeuds sources (donc de paquets sources) est égal à m et si le nombre de noeuds destinations est N, le nombre de paquets sources décodés dans le réseau est égal à m X N. Cette variable (nombre de paquets sources décodés par le réseau) est l'indice de confiance de la nouvelle combinaison locale. Pour le mesurer, chaque noeud relais a besoin de l'ensemble des matrices de destination D; de tous les noeuds destinations du réseau. The confidence index measures the impact of the new local combination to send over the network. At the initialization of the system, the network coding scheme has been calculated in such a way that all the source packets sent in the network can be decoded by all the destination nodes (it is considered that the topology of the network is not a constraint; it is even oversized, in the case of a wireless network, which creates redundant incoming packets). So, if the number of source nodes (hence source packets) is equal to m and the number of destination nodes is N, the number of source packets decoded in the network is equal to m X N. This variable (number of packets sources decoded by the network) is the confidence index of the new local combination. To measure it, each relay node needs all the matrices of destination D; of all network destination nodes.

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. The other input parameter is of course the tested local linear combination, called cmb_loc_test, but more specifically the associated global linear combination, denoted cmb_glob_test, which is different from cmb_glob_pred. The output parameter is the cmb_loc_test confidence index and therefore whether cmb_glob_test has an impact on the network or not.

A l'étape 1305, on modifie les coefficients des matrices de destination qui sont impactées par la combinaison cmb_glob_test, c'est-à-dire on modifie les éléments de chaque matrice 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). In step 1305, the coefficients of the destination matrices that are impacted by the combination cmb_glob_test are modified, that is to say, the elements of each destination matrix involving the new coefficients of cmb_glob_test are modified (modification of the corresponding line). to the resulting package that the relay node must send).

A l'étape 1310, 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(Di), est déterminé par l'algorithme décrit dans la figure 19. L'indice de confiance de cmb_loc_test, noté ind_conf(cmb_loc_test), est alors égal à : Ind_conf (cmb_glob_test) = ENb_src_pkt_dec(Di), i=1..N Il est mémorisé à l'étape 1315. A l'étape 1320, on vérifie si l'indice de confiance de cmb_loc_test est égal à m X N. Si oui, cmb_loc_test n'a pas d'impact sur le réseau (sortie de l'algorithme par l'étape 1325) sinon elle a un impact (sortie de l'algorithme par l'étape 1330) (au moins un noeud destination ne pourra pas décoder au moins un paquet source). La figure 14 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 965 de la figure 9. 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 9 et rejetées par le test de l'étape 930. At step 1310, the confidence index of cmb_glob_test is calculated, that is to say the number of source packets decodable by all the destination nodes. The number of source packets decodable by a destination node D i, denoted by Nb_src_pkt_dec (Di), is determined by the algorithm described in FIG. 19. The confidence index of cmb_loc_test, denoted ind_conf (cmb_loc_test), is then equal to: Ind_conf (cmb_glob_test) = ENb_src_pkt_dec (Di), i = 1..N It is stored in step 1315. In step 1320, it is checked whether the confidence index of cmb_loc_test is equal to m X N. If yes , cmb_loc_test has no impact on the network (output of the algorithm by step 1325) otherwise it has an impact (output of the algorithm by step 1330) (at least one destination node can not decode at least one source package). FIG. 14 describes an algorithm for selecting the overall linear combination that has the least impact on the network, corresponding to step 965 of FIG. 9. The input parameters are: The predetermined global combination cmb_glob pred; The set Scand of the local and global combinations tested during the algorithm of FIG. 9 and rejected by the test of step 930.

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é lorsqu'aucune combinaison globale n'ayant aucun impact sur le réseau n'a été trouvée dans l'algorithme de la figure 9, la combinaison a forcément un impact. The output parameter is the local linear combination associated with the global combination that has the least impact on the network. Since this algorithm is applied when no global combination having no impact on the network has been found in the algorithm of Figure 9, the combination necessarily has an impact.

A l'étape 1405, on recherche donc dans un premier temps 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 dans la figure 15. In step 1405, we first look for a local combination cmb_loc_candl associated with a global combination cmb_glob_candl closest to cmb_glob_pred. By closer, we mean containing the most associated source packages of cmb_glob_pred by banning source packages not contained in cmb_glob_pred. This algorithm is described in Figure 15.

A l'étape 1410, on détermine l'indice de confiance de cmb_glob_candl en utilisant l'algorithme décrit à la figure 13. A l'étape 1415, on sélectionne parmi l'ensemble Scand construit durant l'algorithme de la figure 9 (à l'étape 950), la combinaison globale cmb_glob_cand2 qui a le plus grand indice de confiance (un tri classique est effectué). In step 1410, the confidence index of cmb_glob_candl is determined using the algorithm described in FIG. 13. At step 1415, one selects from the set Scand constructed during the algorithm of FIG. step 950), the global combination cmb_glob_cand2 which has the highest confidence index (a conventional sort is performed).

A l'étape 1420, 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 1430 sinon à l'étape 1425. A l'étape 1425, on sélectionne la combinaison linéaire locale cmb_loc_candl. A l'étape 1430, on sélectionne la combinaison locale associée à cmb_glob_cand2, combinaison locale qui avait été stockée dans Scand. La figure 15 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 820 de la figure 8. On entend par plus proche le fait de contenir le plus de paquets sources associés à cmb_glob_pred en interdisant les 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 (ce qui correspond à p coefficients non nuls parmi les M coefficients associés aux paquets sources) ; - La matrice relais temporaire R', contenant des combinaisons globales des paquets reçus avant l'accès au médium de ce noeud relais. In step 1420, the two confidence indices of cmb_glob_candl and cmb_glob_cand2 are compared. If the confidence index of global cmb_glob_cand2 is greater than that of cmb_glob_candl, then step 1430 is proceeded to if not at step 1425. At step 1425, the local linear combination cmb_loc_candl is selected. At step 1430, the local combination associated with cmb_glob_cand2, a local combination that was stored in Scand, is selected. FIG. 15 depicts an algorithm for reconstituting a local combination associated with a closest overall combination of another global combination, corresponding to step 820 of FIG. 8. Closest means to contain the most source packages associated with cmb_glob_pred by banning source packages not contained in cmb_glob_pred. The input parameters are: - the predetermined global combination cmb_glob pred. It consists of P associated source packets (which corresponds to p non-zero coefficients among the M coefficients associated with the source packets); The temporary relay matrix R ', containing global combinations of the packets received before access to the medium of this relay node.

Le paramètre de sortie est une combinaison locale cmb_loc_cand et une combinaison globale associée cmb_glob_cand, combinaison globale la plus proche de cmb_glob_pred. The output parameter is a local combination cmb_loc_cand and a global combination associated cmb_glob_cand, the global combination closest to cmb_glob_pred.

A l'étape 1510, on initialise à 1 la variable nb_src_pkt_to_del correspondant au nombre de paquets sources associés à retirer de cmb_glob_pred. In step 1510, the variable nb_src_pkt_to_del corresponding to the number of associated source packets to be removed from cmb_glob_pred is initialized to 1.

A l'étape 1515, 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 au sens mathématiques : In step 1515, the number of different global combinations is determined by deleting nb_src_pkt_to_del source packets. This value nb_test is equal to the combination in the mathematical sense:

C(P, nb_src_pkt_to_del) = P!/( nb_src_pkt_to_del)!( P - nb_src_pkt_to_del) ! avec ! correspondant à l'opération factorielle. C (P, nb_src_pkt_to_del) = P! / (Nb_src_pkt_to_del)! (P - nb_src_pkt_to_del)! with! corresponding to the factorial operation.

A l'étape 1520, on initialise la variable iter à 1, compteur qui teste à chaque itération un nouvel ensemble de paquets sources associés à supprimer S_pkt(iter). In step 1520, the variable iter is initialized to 1, a counter that tests at each iteration a new set of associated source packets to delete S_pkt (iter).

Soit cmb_glob_cand la combinaison globale égale à cmb_glob_pred exceptée pour les paquets sources de S_pkt(iter) où les coefficients sont 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. Let cmb_glob_cand be the global combination equal to cmb_glob_pred except for source packages of S_pkt (iter) where the coefficients are set to zero. Let g '= [g'l, .., g'M] be the column vector representing this global combination cmb_glob_cand. The goal now is to determine a local combination cmb_loc_cand associated with cmb_glob_cand.

A l'étape 1525, on construit alors à partir de la matrice relais temporaire R' un système linéaire afin de déterminer les coefficients à attribuer à cmb_loc_cand. Notons 131 ces coefficients, avec S 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 R relation =g';pour chaque paquet source. On a donc un système linéaire : A(3 = g i=1 avec 13 le vecteur colonne des inconnues [(31,.., (31], 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'j;. At step 1525, a linear system is then constructed from the temporary relay matrix R 'in order to determine the coefficients to be assigned to cmb_loc_cand. Note 131 these coefficients, with S the number of packets received. For each source packet X ;, the coefficient g '; associated with this one in cmb_glob_cand is found in the sum of the packets received from cmb_loc_cand, that is to say we must have the R relation = g 'for each source package. We thus have a linear system: A (3 = gi = 1 with 13 the vector column of the unknowns [(31, .., (31], g '= [g'l, .., g'M] the column vector of cmb_glob_cand and A matrix of dimension (M, 1) of which each coefficient aii is equal to r'j ;.

A l'étape 1530, on résout le système linéaire créé dans l'étape 1525 par la méthode de Gauss-Jordan. In step 1530, the linear system created in step 1525 is solved by the Gauss-Jordan method.

Puis à l'étape de test 1535, on vérifie la compatibilité du système (c'est-à-dire si le système admet ou non une solution). Si oui, on passe à l'étape 1540, sinon à l'étape 1550. A l'étape 1550, on vérifie si la variable iter est égale à Nb test, c'est-à-dire si toutes les combinaisons globales ont été testées avec un nombre de paquets sources associés supprimés égal à nb_src_pkt. Si non, on passe à l'étape 1565, 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 1525. Si oui, on passe à l'étape 1555. Then in the test step 1535, the compatibility of the system (i.e., whether or not the system admits a solution) is verified. If yes, proceed to step 1540, otherwise step 1550. In step 1550, it is checked whether the variable iter is equal to Nb test, that is, if all the global combinations have been tested with a number of associated source packets deleted equal to nb_src_pkt. If not, proceed to step 1565, in which the variable iter is incremented and a new set of associated source packets is selected to delete S_pkt (iter), then return to step 1525. If yes, we proceed to step 1555.

A l'étape 1555, 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 1570, ceci correspond au fait qu'il n'y a plus de paquets sources disponibles à supprimer. A l'étape 1570, on renvoie alors les combinaisons locales et globales nulles. Si le test de l'étape 1555 est négatif, alors la variable nb_src_pkt_to_del est incrémentée (étape 1560) et on retourne à l'étape 1515. A l'étape 1540, on attribue alors les valeurs de [(31,.., (3,] données par l'algorithme du Gauss-Jordan. Si le système admet une infinité de solutions, la valeur des coefficients 13i associés aux inconnues secondaires est mise à zéro. In step 1555, it is checked whether the variable nb_src_pkt_to_del is equal to p, the number of associated source packages in cmb_glob_pred. If yes, we go to step 1570, this corresponds to the fact that there are no more source packages available to delete. At step 1570, then returns the local and global null combinations. If the test of step 1555 is negative, then the variable nb_src_pkt_to_del is incremented (step 1560) and we return to step 1515. At step 1540, the values of [(31, .., ( 3,] given by the Gauss-Jordan algorithm If the system admits an infinite number of solutions, the value of the coefficients 13i associated with the secondary unknowns is set to zero.

A l'étape 1545, 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'M]. La figure 16 présente un algorithme principal de traitement d'un paquet reçu, mis en oeuvre par un noeud destination dans un mode de réalisation particulier d'un procédé de codage réseau selon l'invention Les paramètres d'entrée sont les suivants : > Un paquet p attendu, à recevoir ; - La matrice destination D, contenant des combinaisons globales prédéterminées des paquets à recevoir durant la supertrame. Cet algorithme est donc lancé cycliquement à chaque réception attendue d'un paquet (étape 1605). At step 1545, the local combination cmb_loc_cand associated with the column vector [(31, .., (31] and the global combination cmb_cand_glob associated with the column vector g'M] is memorized. a received packet, implemented by a destination node in a particular embodiment of a network coding method according to the invention The input parameters are as follows:> An expected packet p, to be received; destination D, containing predetermined global combinations of the packets to be received during the superframe.This algorithm is therefore launched cyclically at each expected reception of a packet (step 1605).

A l'étape 1610, on vérifie si le paquet p est disponible. Ce moyen se base par exemple sur des informations radio, tel le rapport signal sur bruit (SNR) ou la puissance du signal reçu (RSSI). Si ces variables dépassent un seuil prédéfini, le paquet est considéré disponible et on passe à l'étape 1615, sinon le paquet est considéré indisponible et on passe à l'étape 1620. A l'étape 1615, on vérifie si le paquet reçu est bien constitué de la combinaison linéaire prédéterminée des paquets sources. Pour cela, on détecte si le paquet comprend une notification ou pas. Si oui, on passe à l'étape 1620 sinon à l'étape 1625. A l'étape 1620, on mémorise la nouvelle combinaison du paquet reçu. Pour cela, on utilise une matrice destination temporaire D' = (d',i), valide uniquement pour l'exécution de cet algorithme dans la supertrame courante. Si c'est la première détection de modification d'un paquet lors de la supertrame, la matrice D' est créée sinon elle est remise à jour. La création est caractérisée par les étapes suivantes : - Initialisation de la valeur des coefficients d',i de la matrice destination temporaire à la valeur des coefficients d,i de la matrice destination prédéterminée ; - Si le paquet reçu est indisponible (test de l'étape 1610), la ligne correspondante à ce paquet devient une ligne nulle (tous les coefficients de la ligne sont mis à zéro) ; - Si le paquet reçu n'est pas constitué de la combinaison linéaire prédéterminée (test de l'étape 1615), la ligne correspondant à ce paquet est modifiée et prend en compte les modifications de la notification : un élément d',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) du paquet source indiqué dans la notification. La nouvelle valeur de d',i correspond au coefficient indiqué dans la notification (320). Puis, à l'étape 1625, on vérifie si p est un paquet considéré utile. Si oui, on passe à l'étape 1630 sinon l'algorithme est terminé (étape 1665). A l'étape 1630, on vérifie de nouveau si p a une notification. Si oui, on passe à l'étape 1645, sinon à l'étape 1635. 25 30 A l'étape 1635, on introduit le paquet dans l'algorithme de décodage au fil de l'eau décrit dans le paragraphe 2.2.2 ci-dessus. Il est clair que dès que l'algorithme de décodage a reçu tous les paquets utiles (pour décoder tous ou une partie des paquets sources) de la supertrame courante et qu'ainsi les paquets sources sont décodés, ceux-ci sont envoyés directement à l'application (module 230, figure 2). A l'étape 1640, on vérifie si le décodage final a été déjà lancé ou pas durant la supertrame courante. Si oui, on passe à l'étape 1645, dans laquelle est lancé de nouveau cet algorithme car un nouveau paquet utile a subi des modifications. L'algorithme final est décrit dans la figure 19. Sinon, on passe à l'étape de test 1650. In step 1610, it is checked whether the packet p is available. This means is based for example on radio information, such as the signal-to-noise ratio (SNR) or the power of the received signal (RSSI). If these variables exceed a predefined threshold, the packet is considered available and proceed to step 1615, otherwise the packet is considered unavailable and proceed to step 1620. At step 1615, it is checked whether the received packet is well constituted of the predetermined linear combination of the source packets. For this, it detects whether the packet includes a notification or not. If yes, proceed to step 1620 or step 1625. In step 1620, the new combination of the received packet is stored. For this, we use a temporary destination matrix D '= (d', i), valid only for the execution of this algorithm in the current superframe. If this is the first modification detection of a packet during the superframe, the matrix D 'is created otherwise it is updated. The creation is characterized by the following steps: - Initialization of the value of the coefficients of, i of the temporary destination matrix to the value of the coefficients d, i of the predetermined destination matrix; If the received packet is unavailable (test of step 1610), the line corresponding to this packet becomes a null line (all the coefficients of the line are set to zero); If the packet received does not consist of the predetermined linear combination (test of step 1615), the line corresponding to this packet is modified and takes into account the modifications of the notification: an element of, i modified means the package associated with this line has been modified. Package i was received with a notification. Column j corresponds to the identifier (315) of the source packet indicated in the notification. The new value of d ', i corresponds to the coefficient indicated in the notification (320). Then, in step 1625, it is checked whether p is a packet considered useful. If yes, proceed to step 1630 otherwise the algorithm is complete (step 1665). In step 1630, check again if p has a notification. If yes, proceed to step 1645, otherwise step 1635. In step 1635, the packet is introduced into the run-on decoding algorithm described in section 2.2.2. -above. It is clear that as soon as the decoding algorithm has received all the useful packets (to decode all or some of the source packets) of the current superframe and thus the source packets are decoded, these are sent directly to the user. application (module 230, FIG. 2). In step 1640, it is checked whether the final decoding has already been started or not during the current superframe. If yes, we go to step 1645, in which this algorithm is started again because a new useful packet has been modified. The final algorithm is described in FIG. 19. Otherwise, we go to the test step 1650.

A l'étape de test 1650, on vérifie si l'algorithme de modification de la matrice de décodage est en cours durant la supertrame courante. L'algorithme est en cours quand celui-ci a été lancé et que le dernier paquet momentanément utile nécessaire n'a pas encore été reçu. Si oui on passe à l'étape 1660, sinon à l'étape 1655. A l'étape 1655, on lance l'algorithme de modification de la matrice de décodage. In the test step 1650, it is checked whether the modification algorithm of the decoding matrix is in progress during the current superframe. The algorithm is running when it has been started and the last momentarily useful packet needed has not yet been received. If yes, proceed to step 1660, otherwise step 1655. In step 1655, the algorithm for modifying the decoding matrix is started.

Cet algorithme est décrit dans la figure 17. A l'étape 1660, on met à jour l'algorithme de modification de la matrice de décodage. Cet algorithme est décrit dans la figure 18. La figure 17 décrit un algorithme de modification de la matrice de décodage, correspondant à l'étape 1655 de la figure 16. Les paramètres d'entrée sont : - Le paquet p reçu, constitué non pas de la combinaison globale prédéterminée cmb_glob_pred mais de la combinaison cmb_glob_rec ; - La matrice destination du noeud destination D, contenant des combinaisons globales des paquets reçus et à recevoir. A l'étape 1705, on effectue une triangulation de la matrice D' par la méthode Gauss-Jordan, appelée au fil de l'eau . Celle méthode est quasiment identique à celle décrite à la figure 10. L'étape 1005 n'est pas utilisée du fait qu'on ne résout pas un système linéaire. A la fin de chaque itération, chaque matrice temporaire est stockée. On note A(k) la matrice temporaire à la fin de la k1ème itération. La différenciation majeure (qui justifie l'appellation au fil de l'eau ) se situe dans les matrices temporaires. A l'initialisation, A(°) est réduit à la première ligne de D'. A la fin de la première itération, une nouvelle matrice (dans ce cas, une nouvelle ligne) A(1) est déterminée et mémorisée. This algorithm is described in FIG. 17. In step 1660, the algorithm for modifying the decoding matrix is updated. This algorithm is described in FIG. 18. FIG. 17 describes an algorithm for modifying the decoding matrix, corresponding to step 1655 of FIG. 16. The input parameters are: The received packet p, not constituted of the predetermined global combination cmb_glob_pred but of the combination cmb_glob_rec; The destination matrix of the destination node D, containing global combinations of the packets received and to be received. In step 1705, a triangulation of the matrix D 'is carried out by the Gauss-Jordan method, which is called over the water. This method is almost identical to that described in Figure 10. Step 1005 is not used because it does not solve a linear system. At the end of each iteration, each temporary matrix is stored. We denote by A (k) the temporary matrix at the end of the kth iteration. The major differentiation (which justifies the name in the course of the water) is in the temporary matrices. At initialization, A (°) is reduced to the first line of D '. At the end of the first iteration, a new matrix (in this case, a new line) A (1) is determined and stored.

Au passage à l'itération suivante (entre les étapes 1070 et 1015, figure 10), la deuxième ligne de D' est introduite dans A(1) à la dernière position. L'opération se répète à chaque itération : à la fin de la k1ème itération, la matrice A(k) est mémorisée et la ligne (k+l) de D' est ajoutée à Au à la dernière position. Soit T la matrice finale obtenue à la fin de l'étape 1705. Puis, à l'étape 1710, on vérifie si T a M lignes non nulles. Si oui, on passe à l'étape 1720, sinon à l'étape 1715. L'étape 1715 est lancée à l'échec du test de l'étape 1710. Ce qui signifie que même avec les paquets à recevoir, on n'arrivera pas à avoir une matrice qui décode l'ensemble des M paquets sources. Le décodage final expliqué figure 19 est alors lancé. Celui-ci détermine le nombre de paquets sources décodables, la matrice de décodage associée et les paquets momentanément utiles associés. Plus celui-ci est exécuté tôt, mieux c'est car étant basé sur des tests exhaustifs, il est très coûteux en temps de calcul. Puis, à l'étape 1725, l'ensemble des paquets momentanément utiles déjà reçus sont introduits dans l'algorithme de décodage au fil de l'eau. Le passage à l'étape 1720 indique que les M paquets sources sont décodables avec les paquets reçus et à recevoir. Une matrice de décodage temporaire C-'prou est construite. Cette matrice de décodage temporaire, uniquement valable durant la période de la supertrame courante, est construite à partir de T. Les paquets associés à la matrice de décodage temporaire sont marqués momentanément utiles. Puis, à l'étape 1725, l'ensemble des paquets momentanément utiles déjà reçus sont introduits dans l'algorithme de décodage au fil de l'eau. La figure 18 décrit un algorithme de reprise de la modification de la matrice de décodage, correspondant à l'étape 1660 de la figure 16. At the next iteration (between steps 1070 and 1015, FIG. 10), the second line of D 'is introduced in A (1) at the last position. The operation is repeated at each iteration: at the end of the kth iteration, the matrix A (k) is stored and the line (k + 1) of D 'is added to Au at the last position. Let T be the final matrix obtained at the end of step 1705. Then, in step 1710, it is checked whether T has M non-zero lines. If yes, proceed to step 1720, otherwise step 1715. Step 1715 is initiated to failure of the test of step 1710. This means that even with the packets to receive, no will not happen to have a matrix that decodes the set of M source packages. The final decoding explained in FIG. 19 is then launched. This determines the number of decodable source packets, the associated decoding matrix and the momentarily useful associated packets. The sooner this one is executed, the better it is because being based on exhaustive tests, it is very expensive in computing time. Then, in step 1725, the set of momentarily useful packets already received are introduced into the run-on decoding algorithm. The transition to step 1720 indicates that the M source packets are decodable with the packets received and to be received. A temporary decoding matrix C-'prou is constructed. This temporary decoding matrix, valid only during the period of the current superframe, is constructed from T. The packets associated with the temporary decoding matrix are momentarily marked useful. Then, in step 1725, the set of momentarily useful packets already received are introduced into the run-on decoding algorithm. FIG. 18 describes an algorithm for taking up the modification of the decoding matrix, corresponding to step 1660 of FIG. 16.

Cet algorithme correspond à une remise en cause des paquets précédemment marqués momentanément utiles, lors du lancement de l'algorithme de modification de la matrice de décodage (étape 1655) ou lors d'une reprise antérieure de cet algorithme de reprise (étape 1660). Le paquet p reçu marqué momentanément utile lors de l'étape 1655 ou 1660, et qui n'était pas encore reçu à l'exécution de l'algorithme de modification, ne contient pas la combinaison attendue, c'est-à-dire celle prédéterminée lors de la construction du schéma de codage réseau à l'initialisation (figure 4). Or l'algorithme de modification s'est basé sur cette hypothèse donc ses résultats sont remis en question. Mais au lieu de réactiver l'algorithme de l'étape 1655, on utilise les résultats de celui-ci pour le reprendre à une itération sélectionnée. Ceci permet d'effectuer moins d'opérations. Les paramètres d'entrée sont : - La matrice destination du noeud destination D' (voir figure 17) ; - Les matrices temporaires A(k) stockées lors de la première exécution de l'algorithme de Gauss-Jordan. A l'étape 1805, on détermine l'itération de reprise, c'est-à-dire à quelle itération va être repris l'algorithme de Gauss-Jordan. Pour cela, l'algorithme récupère les positions, dans la supertrame, des noeud relais qui ont envoyé des paquets non attendus (c'est-à-dire des paquets non disponibles ou contenant des paquets sources non attendus) p1,..,pK entre la date présente et le dernier appel de l'algorithme de modification de la matrice de décodage (lancement à l'étape 1655 ou reprise à l'étape 1660) lors de la supertrame courante. Notons T cette période entre deux appels successifs d'un algorithme de récupération et t1,...tK les positions de ces noeuds relais (notation basée sur un classement chronologique). L'itération de reprise est tl. Remarque : la récupération uniquement de la position du paquet p peut ne pas être pas suffisante car il se peut que des paquets redondants non attendus aient été reçus durant cette période. Or, si on ne relance pas les algorithmes de modification avec ces paquets redondants non attendus pour limiter le nombre d'opérations, la nouvelle combinaison de ces paquets doit être prise en compte. Mais la situation la plus probable est que durant T, tous les paquets redondants sont bien ceux attendus et dans ce cas tl est l'unique position et correspond à la position de p. A l'étape 1810, on récupère la matrice A(t'-u matrice temporaire stockée à la fin de (t1-1)1ème itération de la méthode de Gauss-Jordan. A cette matrice, la nouvelle ti'ème ligne ajoutée n'est pas la combinaison globale prédéterminée du paquet pl mais la nouvelle combinaison globale reçue de pl contenue à la thème ligne de D'. En effet, toutes les opérations effectuées avant la tl'ème itération restent valides, donc il ne sert à rien de relancer tout le processus de modification décrit figure 17. Cette réduction du nombre d'opérations permet au décodeur de reconstruire au plus vite un paquet résultant. This algorithm corresponds to a reconsideration of the previously marked temporarily useful packets, when launching the modification algorithm of the decoding matrix (step 1655) or during a previous recovery of this recovery algorithm (step 1660). The received p packet received momentarily useful in step 1655 or 1660, and which was not yet received at the execution of the modification algorithm, does not contain the expected combination, i.e. predetermined during the construction of the network coding scheme at initialization (Figure 4). But the algorithm of modification was based on this hypothesis so its results are questioned. But instead of reactivating the algorithm of step 1655, the results thereof are used to resume it at a selected iteration. This allows for fewer operations. The input parameters are: - the destination matrix of the destination node D '(see FIG. 17); - The temporary matrices A (k) stored during the first execution of the Gauss-Jordan algorithm. At step 1805, the recovery iteration is determined, that is to say at what iteration will be taken over the Gauss-Jordan algorithm. For this, the algorithm retrieves the positions, in the superframe, of the relay nodes that sent unexpected packets (that is, packets that are unavailable or contain unexpected source packets) p1, .., pK between the present date and the last call of the algorithm for modifying the decoding matrix (launching at step 1655 or resuming at step 1660) during the current superframe. Let T denote this period between two successive calls of a recovery algorithm and t1, ... tK the positions of these relay nodes (notation based on a chronological classification). The recovery iteration is tl. Note: The recovery of only the position of the packet p may not be sufficient because it may be that unexpected redundant packets have been received during this period. However, if we do not restart the modification algorithms with these redundant packets not expected to limit the number of operations, the new combination of these packages must be taken into account. But the most likely situation is that during T, all the redundant packets are those expected and in this case tl is the unique position and corresponds to the position of p. In step 1810, the matrix A (t-1 temporary matrix stored at the end of (t1-1) 1th iteration of the Gauss-Jordan method is retrieved, to this matrix, the new t-th added line is not the predetermined global combination of the packet pl but the new global received combination of pl contained in the line theme of D. Indeed, all the operations performed before the iteration remain valid, so there is no use of restart the entire modification process described in Figure 17. This reduction in the number of operations allows the decoder to reconstruct a resulting package as soon as possible.

A l'étape 1815, on relance, à la t1ième itération, l'algorithme de Gauss-Jordan décrit figure 17. A la fin de l'algorithme de Gauss-Jordan, le test de l'étape 1820 vérifie si T a M lignes non nulles. Si oui, on passe à l'étape 1830, sinon à l'étape 1825. L'étape 1825 est lancée à l'échec du test de l'étape 1820. Ceci signifie que même avec les paquets à recevoir, on n'arrivera pas à avoir une matrice qui décode l'ensemble des M paquets sources. Le décodage final expliqué figure 19 est alors lancé. Celui-ci détermine le nombre maximal de paquets sources décodables, la matrice de décodage associée et les paquets utiles associés (marqués momentanément utiles). Puis, on passe à l'étape 1835, dans laquelle l'ensemble des paquets notifiés utiles déjà reçus sont introduits dans l'algorithme de décodage au fil de l'eau. Le passage à l'étape 1830 indique que les M paquets sources sont décodables avec les paquets reçus et à recevoir. Les paquets, utilisés dans le décodage, sont marqués momentanément utiles. Une nouvelle matrice de décodage temporaire C-'prou est construite. Cette matrice de décodage temporaire, uniquement valable durant la période de la supertrame courante, est construite à partir de T. Puis, on passe à l'étape 1835, dans laquelle l'ensemble des paquets momentanément utiles déjà reçus sont introduits dans l'algorithme de décodage au fil de l'eau. La figure 19 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, correspondant à l'étape 1715 de la figure 17 et à l'étape 1645 de la figure 16. Cet algorithme est appelé : > soit au niveau d'un noeud relais R; (voir étape 1310, figure 13), 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; (voir étapes 1645, 1715 et 1825, sur les figures 16, 17 et 18 respectivement), quand celui-ci doit modifier sa matrice de décodage. Il est donc à noter que l'étape 1960 n'est pas implémentée dans les noeuds relais. Le paramètre de sortie est donc, au niveau des noeuds relais, le nombre de paquets décodables, nb_src_pkt_to_del, et au niveau des noeuds destinations, la matrice de décodage temporaire C-'prou. Pour déterminer le nombre maximal de paquets sources décodables, l'algorithme teste si les M paquets sources sont décodables. Si oui, l'algorithme est fini, sinon on teste si (M-1) paquets sources sont décodables, et ainsi de suite. A l'étape 1910, on initialise le nombre de paquets sources à supprimer, nb_src_pkt_to_del, à zéro. A l'étape de test 1915, on vérifie si ce nombre est bien strictement inférieur à M. Si oui, on passe à l'étape 1920, sinon à l'étape 1935. 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 (étape 1980, de fin de l'algorithme). At step 1815, the first iteration of the Gauss-Jordan algorithm described in FIG. 17 is restarted. At the end of the Gauss-Jordan algorithm, the test of step 1820 checks whether T has M lines. not zero. If yes, we go to step 1830, otherwise step 1825. Step 1825 is started to fail the test of step 1820. This means that even with packets to receive, we will not arrive. not to have a matrix that decodes the set of M source packages. The final decoding explained in FIG. 19 is then launched. This determines the maximum number of decodable source packets, the associated decoding matrix, and associated useful packets (marked momentarily useful). Then, we go to step 1835, in which the set of useful notified packets already received are introduced in the run-on decoding algorithm. The transition to step 1830 indicates that the M source packets are decodable with the packets received and to be received. The packets used in the decoding are momentarily marked useful. A new temporary decoding matrix C-'prou is constructed. This temporary decoding matrix, only valid during the period of the current superframe, is built from T. Then, we go to step 1835, in which all the momentarily useful packets already received are introduced into the algorithm. decoding over water. FIG. 19 describes an algorithm for determining the number of decodable source packets, and consequently for determining the associated decoding matrix, corresponding to step 1715 of FIG. 17 and step 1645 of FIG. 16. This algorithm is called:> either at a relay node R; (see step 1310, FIG. 13), to determine the impact on the destination nodes of the sending of a new global combination by the relay node; - And of course at a destination node D; (See steps 1645, 1715 and 1825, in FIGS. 16, 17 and 18 respectively), when the latter must modify its decoding matrix. It should therefore be noted that the step 1960 is not implemented in the relay nodes. The output parameter is therefore, at the relay nodes, the number of decodable packets, nb_src_pkt_to_del, and at the destination nodes, the temporary decoding matrix C-'prou. To determine the maximum number of decodable source packets, the algorithm tests whether the M source packets are decodable. If yes, the algorithm is finished, otherwise we test if (M-1) source packages are decodable, and so on. In step 1910, the number of source packets to be deleted, nb_src_pkt_to_del, is initialized to zero. In the test step 1915, it is checked whether this number is strictly lower than M. If yes, we go to step 1920, otherwise to step 1935. In the latter case, this means that no source packet is decodable, the variable nb_src_pkt_dec is initialized to zero and of course there is no decoding matrix (step 1980, end of the algorithm).

A l'étape 1920, on détermine le nombre d'ensemble de paquets sources à supprimer. Cette valeur nb_test est égale à la combinaison au sens mathématiques : C(M, nb_src_pkt_to_del) = M ! /(nb_src_pkt_to_del)!( M - nb_src_pkt_to_del) ! avec ! correspondant à l'opération factorielle. A l'étape 1920, on initialise aussi la variable iter à 1, compteur qui teste à chaque itération un nouvel ensemble de nb_src_pkt_to_del paquets sources associés à supprimer. A l'étape 1925, on détermine un ensemble de nb_src_pkt_to_del paquets sources à supprimer, ensemble différent pour chaque itération iter. A l'étape 1930, on détermine une matrice destination temporaire D';, sous- matrice de la matrice destination D;. Les paquets résultants contenant les paquets sources à supprimer, déterminés à l'étape 1920, ne sont pas pris en compte. Donc D'; correspond à la matrice destination D;, moins les colonnes correspondant aux paquets sources à supprimer, et moins les lignes qui avaient un coefficient non nul au niveau des colonnes correspondant aux paquets sources à supprimer. At step 1920, the number of sets of source packets to be deleted is determined. This value nb_test is equal to the combination in the mathematical sense: C (M, nb_src_pkt_to_del) = M! / (nb_src_pkt_to_del)! (M - nb_src_pkt_to_del)! with! corresponding to the factorial operation. In step 1920, the variable iter is also initialized to 1, a counter that tests at each iteration a new set of nb_src_pkt_to_delete associated source packets to be deleted. In step 1925, a set of nb_src_pkt_to_del source packages to be deleted, set different for each iteration iterated. In step 1930, a temporary destination matrix D ', sub-matrix of the destination matrix D; is determined. The resulting packets containing the source packets to be deleted, determined in step 1920, are not taken into account. So D '; corresponds to the destination matrix D; minus the columns corresponding to the source packets to be deleted, and minus the rows which had a non-zero coefficient at the level of the columns corresponding to the source packets to be deleted.

Puis, à l'étape 1940, on vérifie s'il reste des paquets sources, c'est-à-dire si la matrice D'; a encore des lignes. Si oui, on passe à l'étape 1945, sinon à l'étape 1965. A l'étape 1945, 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é uniquement des lignes non nulles de T) et les paquets résultants associés aux lignes de T'. Then, in step 1940, it is checked whether there remain source packets, that is to say if the matrix D '; still has lines. If yes, we go to step 1945, if not to step 1965. In step 1945, we search for the rank of the matrix D ', noted rand Di. For this, the Gauss-Jordan method is still used by triangulating the matrix D '. Let T be the triangulated matrix. The rank is the number of non-zero lines of T. Store in memory the matrix T '(consisting only of the non-zero lines of T) and the resulting packets associated with the lines of T'.

A l'étape 1950, 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écodable, on passe à l'étape 1955. Sinon la matrice T' est supprimée et on passe à l'étape 1965. At step 1950, it is checked whether the value of rank Di is equal to (M-nb_src_pkt_to_ del). If yes, all the source packages present in the matrix D '; are decodable, we go to step 1955. Otherwise the matrix T 'is deleted and we go to step 1965.

A l'étape 1955, on met à jour nb_src_pkt_dec(D;) à rand Di. Puis si le noeud est un noeud relais, l'algorithme est terminé (étape 1980). En revanche, si le noeud est un noeud destination, on passe à l'étape 1960 puis à l'étape 1985 avant la fin de l'algorithme (étape 1980). A l'étape 1960, 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 temporaire (valide pour la supertrame courante). De plus, les paquets mémorisés à l'étape 1945 sont marqués comme les paquets momentanément utiles. A l'étape 1985, l'ensemble des paquets momentanément utiles déjà reçus sont introduits dans l'algorithme de décodage au fil de l'eau. A l'étape 1965, 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 1975, sinon à l'étape 1970. A l'étape 1970, 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 1930. A l'étape 1975, on incrémente le nombre de paquets sources à supprimer nb_src_pkt_to_del, puis on revient à l'étape de test 1915. At step 1955, nb_src_pkt_dec (D;) is updated to rand Di. Then if the node is a relay node, the algorithm is complete (step 1980). On the other hand, if the node is a destination node, it goes to step 1960 and then to step 1985 before the end of the algorithm (step 1980). At step 1960, the matrix T 'is recovered, an inversion thereof is performed (T' is a square matrix of dimension (M-nb_src_pkt_to_del, M-nb_src_pkt_to_del)) and the inverse matrix C-'prou is stored. of T ', where C-'prou is the temporary decoding matrix (valid for the current superframe). In addition, packets stored in step 1945 are marked as momentarily useful packets. In step 1985, the set of momentarily useful packets already received are introduced into the run-on decoding algorithm. In step 1965, it is checked whether all the sets of nb_src_pkt_to_del have been tested, that is to say if the variable iter is equal to Nb test. If yes, we go to step 1975, if not to step 1970. In step 1970, the variable iter is incremented and a new set of nb_src_pkt_to_del source packages to be deleted is determined. Then, we return to step 1930. In step 1975, we increment the number of source packets to delete nb_src_pkt_to_del, then we return to the test step 1915.

Claims (22)

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 combinaison linéaire prédéterminée d'une partie de ladite pluralité de paquets de données attendus en entrée, 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 possédant une composition en paquet(s) source(s) attendue, conforme audit schéma de codage réseau prédéterminé, 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 à : I) détecter (510 à 530) un paquet utile altéré, défini comme un paquet utile qui n'est pas correctement reçu ou est correctement reçu mais ne possède pas une composition en paquet(s) source(s) attendue ; II) s'il est détecté un paquet utile altéré, déterminer (555, 565, 570), avant la fin de la réception de ladite pluralité de paquets de données, une nouvelle combinaison linéaire de paquets attendus en entrée 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, les paquets associés à ladite nouvelle combinaison linéaire étant dits paquets momentanément utiles ; III) avec la nouvelle combinaison linéaire de paquets attendus en entrée, construire (645, 840, 830, 1140), avant la fin de la réception de ladite pluralité de paquets de données attendus en entrée, au moins une partie dudit paquet résultant reconstitué, en utilisant les paquets momentanément utiles déjà correctement reçus. REVENDICATIONS1. A network encoding method in a mesh network comprising at least one relay node which, in accordance with a predetermined network coding scheme, expects to receive a plurality of data packets as input and is to output a predetermined resulting packet obtained in a combination predetermined linear pattern of a portion of said plurality of data packets expected at input, the data packets belonging to said portion being said useful packets and the data packets not belonging to said part being said to be redundant packet, each of the packets of input data expected having an expected source packet composition, in accordance with said predetermined network coding scheme, said method being implemented by at least one relay node and being characterized by including steps consisting of: I) detecting (510 to 530) an altered useful packet, defined as a useful packet that is not received or received correctly but does not have a source packet composition (s) expected; II) if an altered useful packet is detected, determining (555, 565, 570), before the end of receiving said plurality of data packets, a new linear combination of expected input packets to construct a resulting packet reconstituted using, in accordance with a modified network coding scheme, all or part of the redundant packets, the packets associated with said new linear combination being said momentarily useful packets; III) with the new linear combination of expected incoming packets, constructing (645, 840, 830, 1140), before the end of receiving said plurality of expected data packets at the input, at least a portion of said reconstructed resulting packet, using the momentarily useful packets already correctly received. 2. Procédé selon la revendication 1, caractérisé en ce que ladite étape II) comprend une étape IL1) (620, 625, 630, 640, 1115, 1120, 1125) consistant à déterminer, si elle existe, une nouvelle combinaison linéaire de paquets attendus en entrée permettant de construire un paquet résultant reconstitué identique au paquet résultant prédéterminé. 2. Method according to claim 1, characterized in that said step II) comprises a step IL1) (620, 625, 630, 640, 1115, 1120, 1125) of determining, if it exists, a new linear combination of packets. expected as input to construct a resultant reconstructed package identical to the predetermined resulting packet. 3. Procédé selon la revendication 2, caractérisé en ce que ladite étape IL1) comprend une étape (620) consistant à tester si ledit paquet utile altéré peut être remplacé par un paquet redondant reçu ou à recevoir par ledit noeud relais donné. 3. Method according to claim 2, characterized in that said step IL1) comprises a step (620) of testing whether said corrupted user packet can be replaced by a redundant packet received or to be received by said given relay node. 4. Procédé selon la revendication 2, caractérisé en ce que ladite étape IL1) comprend une exécution d'un mécanisme de récupération complet, comprenant des étapes consistant à (625, 710 à 735) : - déterminer une combinaison linéaire prédéterminée de paquets sources, associée à ladite combinaison linéaire prédéterminée de paquets attendus en entrée, et permettant d'obtenir ledit paquet résultant prédéterminé ; - construire un système linéaire A(3 = g, où 13 est un vecteur colonne des coefficients de ladite nouvelle combinaison linéaire de paquets attendus en entrée à déterminer, où g est un vecteur colonne des coefficients de ladite combinaison linéaire prédéterminée de paquets sources, et où A est une matrice de dimension (M,S), avec M le nombre de paquets sources et S le nombre de paquets attendus en entrée par ledit noeud relais donné, la matrice A étant définie de la manière suivante : * chaque ligne de la matrice A est associée à un paquet source, * chaque colonne de la matrice A est associée à un paquet attendu en entrée, * chaque élément aii de la matrice A représente : - soit le coefficient du paquet source i dans une composition en paquet(s) source(s) réelle du paquet attendu j, si le paquet attendu j a déjà été reçu, - soit le coefficient du paquet source i dans une composition en paquet(s) source(s) attendue du paquet attendu j, si le paquet attendu j n'a pas encore été reçu, - résoudre ledit système linéaire par une méthode de résolution prédéterminée, en mémorisant, à chaque itération k de ladite méthode de résolution prédéterminée, des opérations et une matrice temporaire A(k) ; - si le système linéaire admet une solution, déterminer ladite nouvelle 30 combinaison linéaire de paquets attendus en entrée, en fonction du vecteur colonne 13 de ladite solution. 15 20 25 4. Method according to claim 2, characterized in that said step IL1) comprises an execution of a complete recovery mechanism, comprising the steps of (625, 710 to 735): determining a predetermined linear combination of source packets, associated with said predetermined linear combination of expected incoming packets, and providing said predetermined resultant packet; constructing a linear system A (3 = g, where 13 is a column vector of the coefficients of said new linear combination of expected input packets to be determined, where g is a column vector of the coefficients of said predetermined linear combination of source packets, and where A is a matrix of dimension (M, S), with M the number of source packets and S the number of packets expected at input by said given relay node, the matrix A being defined as follows: * each line of the matrix A is associated with a source packet, * each column of matrix A is associated with an expected packet as input, * each element aii of matrix A represents: - either the coefficient of source packet i in a packet composition (s) ) the actual source (s) of the expected packet j, if the expected packet ja has already been received, - or the coefficient of the source packet i in a source packet composition (s) expected from the expected packet j, if the expected packet has not yet been received; - resolving said linear system by a predetermined resolution method, storing, at each iteration k of said predetermined resolution method, operations and a temporary matrix A (k); if the linear system admits a solution, determining said new linear combination of packets expected at the input, as a function of the column vector 13 of said solution. 15 20 25 5. Procédé selon la revendication 4, caractérisé en ce que, à chaque réception d'un desdits paquets momentanément utiles, il comprend des étapes consistant à (figure 12) : - détecter (510 à 530) un paquet momentanément utile altéré, défini comme un paquet momentanément utile qui n'est pas correctement reçu ou est correctement reçu mais ne possède pas une composition en paquet(s) source(s) attendue ; - s'il est détecté un paquet momentanément utile altéré, exécuter un mécanisme de récupération partiel, comprenant des étapes consistant à (1205 à 1235) : * déterminer le ou les paquet(s) attendu(s) altéré(s), y compris ledit paquet momentanément utile altéré, reçu(s) depuis une dernière exécution du mécanisme de récupération partiel ou depuis une exécution du mécanisme de récupération complet, un paquet attendu altéré étant défini comme un paquet attendu qui n'est pas correctement reçu ou est correctement reçu mais ne possède pas une composition en paquet(s) source(s) attendue ; * dans la matrice temporaire A(11- 1) mémorisée à une (t1 ù 1)ème itération de ladite méthode de résolution prédéterminée, modifier la ou les colonnes altérée(s) correspondant au(x) paquet(s) attendu(s) altéré(s), où tl est le rang du premier du ou des paquet(s) attendu(s) altéré(s) dans une séquence prédéterminée définissant l'ordre dans lequel ladite pluralité de paquets de données attendus en entrée sont attendus, ainsi que l'ordre dans lequel les colonnes de ladite matrice A sont classées, la ou les colonne(s) altérée(s) étant modifiées par les opérations mémorisées lors des (tl ù 1) premières itérations de ladite méthode de résolution prédéterminée ; * reprendre la résolution dudit système linéaire à la tlème itération de ladite méthode de résolution prédéterminée, en mémorisant, à chaque itération k de ladite méthode de résolution prédéterminée, des opérations et une matrice temporaire A) ; * si le système linéaire admet une solution, déterminer ladite deuxième combinaison linéaire de paquets attendus en entrée, en fonction du vecteur colonne 13 de ladite solution. 30 5. The method as claimed in claim 4, characterized in that, at each reception of one of said momentarily useful packets, it comprises the steps of (FIG. 12): detecting (510 to 530) a momentarily useful altered packet, defined as a momentarily useful packet that is not correctly received or received correctly but does not have a source packet composition (s) expected; - if a corrupted momentarily useful packet is detected, perform a partial recovery mechanism, comprising the steps of (1205-1235): * determine the expected packet (s), including said momentarily useful packet corrupted, received since a last execution of the partial recovery mechanism or since an execution of the full recovery mechanism, an altered expected packet being defined as an expected packet that is not correctly received or is correctly received but does not have a composition in source packet (s) expected; in the temporary matrix A (11-1) stored at a (t1 1 st) iteration of said predetermined resolution method, modifying the altered column (s) corresponding to the expected packet (s) altered, where t1 is the rank of the first of the expected packet (s) altered in a predetermined sequence defining the order in which said plurality of expected data packets are expected, as well as that the order in which the columns of said matrix A are classified, the altered column (s) being modified by the stored operations during the (tl ù 1) first iterations of said predetermined resolution method; resuming resolution of said linear system at the iteration of said predetermined resolution method, storing, at each iteration k of said predetermined resolution method, operations and a temporary matrix A); if the linear system admits a solution, determining said second linear combination of expected packets as input, according to the column vector 13 of said solution. 30 6. Procédé selon l'une quelconque des revendications 2 à 5, caractérisé en ce que, en cas d'échec de ladite étape IL1), ladite étape II) comprend une étape IL2) (555, 615, 10 15 20 25 15 20 25 30805 à 835, 1145), consistant à déterminer une nouvelle combinaison linéaire de paquets attendus en entrée permettant de construire un paquet résultant reconstitué le plus proche, selon au moins un critère déterminé, du paquet résultant prédéterminé (figure 8). 6. Method according to any one of claims 2 to 5, characterized in that, in the event of failure of said step IL1), said step II) comprises a step IL2) (555, 615, 2015). 30805-835, 1145), comprising determining a new linear combination of expected input packets for constructing a closest reconstructed result packet, according to at least one determined criterion, of the predetermined resultant packet (Fig. 8). 7. Procédé selon la revendication 6, caractérisé en ce que, à chaque réception d'un desdits paquets momentanément utiles, il comprend des étapes consistant à : - détecter (510 à 530) un paquet momentanément utile altéré, défini comme un paquet momentanément utile qui n'est pas correctement reçu ou est correctement reçu mais ne possède pas une composition en paquet(s) source(s) attendue ; - s'il est détecté un paquet momentanément utile altéré, réitérer les étapes IL2) et III). 7. Method according to claim 6, characterized in that, at each reception of one of said momentarily useful packets, it comprises the steps of: detecting (510 to 530) a momentarily useful altered packet, defined as a momentarily useful packet that is not correctly received or is correctly received but does not have a source packet composition (s) expected; if a momentarily useful, corrupted packet is detected, repeat steps IL2) and III). 8. Procédé selon l'une quelconque des revendications 6 et 7, caractérisé en ce que ladite étape IL2) comprend des étapes consistant à (910 à 975) : a) déterminer une nouvelle combinaison linéaire de paquets attendus en entrée permettant de construire un paquet résultant reconstitué 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é qui résulterait de l'envoi du paquet résultant reconstitué mentionné à l'étape a) ; c) en fonction de l'information obtenue à l'étape b), sélectionner la nouvelle combinaison linéaire déterminée à l'étape a) ou réitérer l'étape a) pour déterminer une autre nouvelle combinaison linéaire. The method according to any one of claims 6 and 7, characterized in that said step IL2) comprises steps consisting of (910 to 975): a) determining a new linear combination of expected packets as input to construct a packet resulting reconstituted containing source packets not contained in the predetermined resulting packet; b) obtaining relative information, for at least one other node participating in the predetermined network coding scheme, to a modified network coding scheme that would result from sending the reconstituted resulting packet mentioned in step a); c) based on the information obtained in step b), selecting the new linear combination determined in step a) or repeating step a) to determine another new linear combination. 9. Procédé selon la revendication 8, caractérisé en ce que l'étape a) comprend des étapes consistant à : i) déterminer une combinaison linéaire prédéterminée de paquets sources, permettant d'obtenir ledit paquet résultant reconstitué 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ù 13 est un vecteur colonne des coefficients de ladite nouvelle combinaison linéaire de paquets attendus en entrée à déterminer, où g est un vecteur colonne des coefficients de ladite combinaison linéaire prédéterminée de paquets sources, et où A est une matrice de dimension (M,S), avec M le nombre de paquets sources et S le nombre depaquets attendus en entrée par ledit noeud relais donné, la matrice A étant définie de la manière suivante : * chaque ligne de la matrice A est associée à un paquet source, * chaque colonne de la matrice A est associée à un paquet attendu en entrée, * chaque élément aii de la matrice A représente : - soit le coefficient du paquet source i dans une composition en paquet(s) source(s) réelle du paquet attendu j, si le paquet attendu j a déjà été reçu, - soit le coefficient du paquet source i dans une composition en paquet(s) source(s) attendue du paquet attendu j, si le paquet attendu j n'a pas encore été reçu, iii) résoudre ledit système linéaire par une méthode de résolution prédéterminée ; iv) si le système linéaire admet une solution, déterminer ladite nouvelle combinaison linéaire de paquets attendus en entrée, en fonction du vecteur colonne 13 de ladite solution, sinon réitération de l'étape i) avec une autre combinaison linéaire prédéterminée de paquets sources. The method according to claim 8, characterized in that step a) comprises the steps of: i) determining a predetermined linear combination of source packets, to obtain said reconstituted resulting packet containing source packets not contained in the predetermined resulting package; ii) constructing a linear system A (3 = g, where 13 is a column vector of the coefficients of said new linear combination of expected input packets to be determined, where g is a column vector of the coefficients of said predetermined linear combination of source packets, and where A is a matrix of dimension (M, S), with M the number of source packets and S the number of packets expected to be input by said given relay node, the matrix A being defined as follows: * each line of the matrix A is associated with a source packet, * each column of matrix A is associated with an expected packet as input, * each element aii of matrix A represents: - either the coefficient of source packet i in a packet composition (s) ) actual source (s) of the expected packet j, if the expected packet ja has already been received, - or the coefficient of the source packet i in a composition in source packet (s) expected from the expected packet j, if the packet waits it has not yet been received, iii) resolving said linear system by a predetermined resolution method; iv) if the linear system admits a solution, determining said new linear combination of expected packets as input according to the column vector 13 of said solution, otherwise repeating step i) with another predetermined linear combination of source packets. 10. Procédé selon l'une quelconque des revendications 8 et 9, caractérisé en ce que, 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é mentionné à l'étape a), est la 20 somme du nombre de paquets sources décodables par l'ensemble des noeuds destinations du réseau si le paquet résultant reconstitué mentionné à l'étape a) est supposé envoyé, et en ce que, dans l'étape c), la nouvelle combinaison linéaire déterminée à l'étape a) est sélectionnée si ladite information relative au schéma de codage réseau modifié est égale 25 au nombre de noeuds sources dans le réseau multiplié par le nombre de noeuds destinations dans le réseau. The method according to any one of claims 8 and 9, characterized in that, in step b), said information relating to the modified network coding scheme, which would result from the sending of the resulting reconstituted packet mentioned in FIG. step a), is the sum of the number of source packets decodable by the set of destination nodes of the network if the reconstituted resulting packet mentioned in step a) is assumed to be sent, and in that in step c) the new linear combination determined in step a) is selected if said information relating to the modified network coding scheme is equal to the number of source nodes in the network multiplied by the number of destination nodes in the network. 11. Procédé selon l'une quelconque des revendications 8 à 10, caractérisé en ce que, en cas d'échec des étapes a), b) et c), ladite étape IL2) comprend en outre des étapes consistant à (1405 à 1430) : 30 - déterminer une première nouvelle combinaison linéaire de paquets attendus en entrée, permettant de construire un premier paquet résultant reconstitué différent 10 15du 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 reconstitué, la première nouvelle combinaison linéaire étant associée à ladite première information sur le schéma de codage réseau modifié ; - parmi la ou les nouvelle(s) combinaison(s) linéaire(s) non sélectionnée(s) à l'étape c), sélectionner une deuxième nouvelle combinaison linéaire de paquets attendus en entrée, en fonction de ladite information, obtenue à l'étape b) pour chaque nouvelle combinaison linéaire non sélectionnée à l'étape c), sur le schéma de codage réseau modifié, la deuxième nouvelle combinaison linéaire étant associée à une deuxième information relative au schéma de codage réseau modifié ; - sélectionner entre les première et deuxième nouvelles combinaisons linéaires, en fonction des première et deuxième informations relatives au schéma de codage réseau modifié. 11. Method according to any one of claims 8 to 10, characterized in that, in case of failure of steps a), b) and c), said step IL2) further comprises steps of (1405 to 1430 Determining a first new linear combination of packets expected as input, making it possible to construct a first reconstituted resulting packet different from the predetermined resulting packet but containing only source packets included in the predetermined resulting packet; obtaining a first relative information, for at least one other node participating in the predetermined network coding scheme, to a modified network coding scheme that would result from sending the first reconstructed resultant packet, the first new linear combination being associated with said first information on the modified network coding scheme; among the new linear combination (s) not selected in step c), selecting a second new linear combination of packets expected at the input, according to said information, obtained at step b) for each new linear combination not selected in step c), on the modified network coding scheme, the second new linear combination being associated with a second piece of information relating to the modified network coding scheme; selecting between the first and second new linear combinations, according to the first and second information relating to the modified network coding scheme. 12. Procédé selon l'une quelconque des revendications 6 et 7, caractérisé en ce que ladite étape IL2) comprend une étape consistant à : - déterminer une nouvelle combinaison linéaire de paquets attendus en entrée permettant de construire un paquet résultant reconstitué différent du paquet résultant prédéterminé mais contenant uniquement des paquets sources inclus dans le paquet résultant prédéterminé. The method according to any one of claims 6 and 7, characterized in that said step IL2) comprises a step of: - determining a new linear combination of expected packets as input to construct a reconstituted resulting packet different from the resulting packet predetermined but containing only source packets included in the predetermined resulting packet. 13. Procédé de codage réseau dans un réseau maillé comprenant au moins un noeud 25 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 au moins un paquet source prédéterminé obtenu selon une combinaison linéaire prédéterminée d'une partie de ladite pluralité de paquets de données attendus en entrée, les paquets de données appartenant à ladite partie étant dits paquets utiles et les paquets de données 30 n'appartenant pas à ladite partie étant dits paquet redondants, chacun des paquets de 10 15 20données attendus en entrée possédant une composition en paquet(s) source(s) attendue, conforme audit schéma de codage réseau prédéterminé, 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 à : I) détecter (1605 à 1630) un paquet utile altéré, défini comme un paquet utile qui n'est pas correctement reçu ou est correctement reçu mais ne possède pas une composition en paquet(s) source(s) attendue ; II) s'il est détecté un paquet utile altéré, déterminer (1645, 1655, 1660), avant la fin de la réception de ladite pluralité de paquets de données, au moins une nouvelle combinaison linéaire de paquets attendus en entrée permettant de construire au moins un paquet source reconstitué en utilisant, selon un schéma de codage réseau modifié, tout ou partie des paquets redondants, les paquets associés à ladite au moins une nouvelle combinaison linéaire étant dits paquets momentanément utiles ; III) avec ladite au moins une nouvelle combinaison linéaire de paquets attendus en entrée, construire (1725, 1835, 1985), avant la fin de la réception de ladite pluralité de paquets de données attendus en entrée, au moins une partie dudit au moins un paquet source reconstitué, en utilisant les paquets momentanément utiles déjà correctement reçus. 13. A network coding method in a mesh network comprising at least one destination node which, according to a predetermined network coding scheme, expects to receive a plurality of data packets as input and must output at least one source packet. a predetermined predetermined linear combination of a portion of said plurality of input data packets, the data packets belonging to said portion being said useful packets and the data packets not belonging to said party being said packet redundant, each of the expected input data packets having an expected source packet composition, in accordance with said predetermined network coding scheme, said method being implemented by at least one destination node and being characterized in that it comprises the steps of: I) detecting (1605-1630) an altered useful packet, defined as me a useful package that is not correctly received or is correctly received but does not have a composition in source package (s) expected; II) if an altered useful packet is detected, determining (1645, 1655, 1660), before the end of the reception of said plurality of data packets, at least one new linear combination of expected input packets allowing to build at least one source packet reconstituted using, in accordance with a modified network coding scheme, all or part of the redundant packets, the packets associated with said at least one new linear combination being said momentarily useful packets; III) with said at least one new linear combination of packets expected to input, construct (1725, 1835, 1985), before the end of receiving said plurality of data packets expected at input, at least a portion of said at least one reconstituted source package, using momentarily useful packets already correctly received. 14. Procédé selon la revendication 13, caractérisé en ce que ladite étape II) comprend une étape IL1) (1705, 1710, 1720) consistant à déterminer, si elle existe, une nouvelle matrice de décodage identique à une matrice de décodage prédéterminée, permettant de construire un ensemble de paquets sources reconstitués identique à un ensemble de tous les paquets sources prédéterminés, chaque ligne de ladite nouvelle matrice de décodage définissant une nouvelle combinaison linéaire de paquets attendus en entrée permettant de construire un paquet source reconstitué identique à l'un des paquets sources prédéterminés. The method according to claim 13, characterized in that said step II) comprises a step IL1) (1705, 1710, 1720) of determining, if it exists, a new decoding matrix identical to a predetermined decoding matrix, allowing constructing a set of reconstituted source packets identical to a set of all the predetermined source packets, each line of said new decoding matrix defining a new linear combination of expected input packets for constructing a reconstituted source packet identical to one of predetermined source packets. 15. Procédé selon la revendication 14, caractérisé en ce que ladite étape IL1) comprend une exécution d'un mécanisme de récupération complet, comprenant des étapes consistant à (1705, 1710, 1720) :- construire une matrice D' de dimension (S, M), avec S le nombre de paquets attendus en entrée par ledit noeud destination donné et M le nombre de paquets sources, la matrice D' étant définie de la manière suivante : * chaque ligne de la matrice D' est associée à un paquet attendu en entrée, * chaque colonne de la matrice D' est associée à un paquet source, * chaque élément d,i de la matrice D' représente : - soit le coefficient du paquet source j dans une composition en paquet(s) source(s) réelle du paquet attendu i, si le paquet attendu i a déjà été reçu, - soit le coefficient du paquet source j dans une composition en paquet(s) source(s) attendue du paquet attendu i, si le paquet attendu i n'a pas encore été reçu, - construction d'une matrice résultante T à partir de la matrice D', par une méthode de triangulation prédéterminée prenant en compte les lignes les unes après les autres, en mémorisant, à chaque itération k de ladite méthode de triangulation prédéterminée, des opérations et une matrice temporaire A(k) ; - si la matrice résultante T a M lignes non nulles, construction de ladite nouvelle matrice de décodage à partir de la matrice résultante T. 15. Method according to claim 14, characterized in that said step IL1) comprises an execution of a complete recovery mechanism, comprising the steps of (1705, 1710, 1720): constructing a matrix D 'of dimension (S , M), with S the number of packets expected at input by said given destination node and M the number of source packets, the matrix D 'being defined as follows: * each row of matrix D' is associated with a packet expected at input, * each column of matrix D 'is associated with a source packet, * each element d, i of matrix D' represents: - either the coefficient of source packet j in a source packet composition (s) ( s) of the expected packet i, if the expected packet has already been received, - is the coefficient of the source packet j in a composition in source packet (s) expected from the expected packet i, if the expected packet i n ' has not yet been received, - construction of a resulting matrix T from the matrix D ', by a predetermined triangulation method taking into account the rows one after the other, by memorizing, at each iteration k of said predetermined triangulation method, operations and a temporary matrix A (k); if the resulting matrix T has M non-zero lines, constructing said new decoding matrix from the resulting matrix T. 16. Procédé selon la revendication 15, caractérisé en ce que, à chaque réception d'un desdits paquets momentanément utiles, il comprend des étapes consistant à : - détecter (1605 à 1630) un paquet momentanément utile altéré, défini comme un paquet momentanément utile qui n'est pas correctement reçu ou est correctement reçu mais ne possède pas une composition en paquet(s) source(s) attendue ; - s'il est détecté un paquet momentanément utile altéré, exécuter un mécanisme de récupération partiel, comprenant des étapes consistant à (1805, 1810, 1815, 1820, 1830) : * déterminer le ou les paquet(s) attendu(s) altéré(s), y compris ledit paquet momentanément utile altéré, reçu(s) depuis une dernière exécution du mécanisme de récupération partiel ou depuis une exécution du mécanisme de récupération complet, un paquet attendu altéré étant défini comme un 30paquet attendu qui n'est pas correctement reçu ou est correctement reçu mais ne possède pas une composition en paquet(s) source(s) attendue ; * dans la matrice temporaire A(tl - u mémorisée à une (tl û 1)ème itération de ladite méthode de résolution prédéterminée, modifier la ou les colonnes altérée(s) correspondant au(x) paquet(s) attendu(s) altéré(s), où tl est le rang du premier du ou des paquet(s) attendu(s) altéré(s) dans une séquence prédéterminée définissant l'ordre dans lequel ladite pluralité de paquets de données attendus en entrée sont attendus, ainsi que l'ordre dans lequel les lignes de ladite matrice D' sont classées, la ou les ligne(s) altérée(s) étant modifiées par les opérations mémorisées lors des (tl û 1) premières itérations de ladite méthode de triangulation prédéterminée ; * reprendre la construction de la matrice résultante T à la tlème itération de ladite méthode de triangulation prédéterminée, en mémorisant, à chaque itération k de ladite méthode de triangulation prédéterminée, des opérations et une matrice temporaire Au ; * si la matrice résultante T a M lignes non nulles, construction de ladite nouvelle matrice de décodage à partir de la matrice résultante T. 16. The method of claim 15, characterized in that, at each reception of one of said momentarily useful packets, it comprises the steps of: detecting (1605 to 1630) a momentarily useful altered packet, defined as a momentarily useful packet that is not correctly received or is correctly received but does not have a source packet composition (s) expected; - if a corrupted momentarily useful packet is detected, execute a partial recovery mechanism, comprising steps of (1805, 1810, 1815, 1820, 1830): * determine the expected packet (s) altered (s), including said corrupted momentarily useful packet, received since a last run of the partial recovery mechanism or since an execution of the full recovery mechanism, an altered expected packet being defined as an expected package that is not correctly received or correctly received but does not have a source packet composition (s) expected; * in the temporary matrix A (tl - u stored at one (tl û 1) th iteration of said predetermined resolution method, modify the altered column (s) corresponding to the (x) expected packet (s) altered (s), where t1 is the rank of the first of the expected packet (s) altered in a predetermined sequence defining the order in which said plurality of expected data packets are expected, as well as the order in which the rows of said matrix D 'are classified, the altered line (s) being modified by the operations stored during the (tl-1) first iterations of said predetermined triangulation method; constructing the resulting matrix T at the tth iteration of said predetermined triangulation method, storing, at each iteration k of said predetermined triangulation method, operations and a temporary matrix Au; * if the matrix resets subsequent T a M nonzero lines, construction of said new decoding matrix from the resulting matrix T. 17. Procédé selon l'une quelconque des revendications 14 à 16, caractérisé en ce que, en cas d'échec de ladite étape IL1), ladite étape II) comprend une étape IL2) (1825) 20 consistant à déterminer une nouvelle matrice de décodage différente d'une matrice de décodage prédéterminée, mais permettant de construire un nombre maximal de paquets sources reconstitués identiques à des paquets sources prédéterminés, chaque ligne de ladite nouvelle matrice de décodage définissant une nouvelle combinaison linéaire de paquets attendus en entrée permettant de construire un paquet source reconstitué 25 identique à l'un des paquets sources prédéterminés. 17. A method according to any one of claims 14 to 16, characterized in that, in the event of failure of said step IL1), said step II) comprises a step IL2) (1825) of determining a new matrix of decoding different from a predetermined decoding matrix, but making it possible to construct a maximum number of reconstituted source packets identical to predetermined source packets, each line of said new decoding matrix defining a new linear combination of packets expected as input to construct a reconstituted source package identical to one of the predetermined source packages. 18. Procédé selon la revendication 17, caractérisé en ce que, à chaque réception d'un desdits paquets momentanément utiles, il comprend des étapes consistant à : - détecter (1605 à 1630) un paquet momentanément utile altéré, défini comme un paquet momentanément utile qui n'est pas correctement reçu ou est correctement 30 reçu mais ne possède pas une composition en paquet(s) source(s) attendue ; 10 15- s'il est détecté un paquet momentanément utile altéré, réitérer les étapes IL2) et III). 18. A method according to claim 17, characterized in that, at each reception of one of said momentarily useful packets, it comprises the steps of: detecting (1605 to 1630) a momentarily useful altered packet, defined as a momentarily useful packet which is not correctly received or received but does not have a source packet composition (s) expected; If a momentarily corrupted packet is detected, repeat steps IL2) and III). 19. 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 à 12 et/ou le procédé selon au moins une des revendications 13 à 18, lorsque ledit programme est exécuté sur un ordinateur. 19. Computer program product downloadable from a communication network and / or recorded on a computer readable medium and / or executable by a processor, characterized in that it comprises program code instructions for the implementation of the method according to at least one of claims 1 to 12 and / or the method according to at least one of claims 13 to 18, when said program is run on a computer. 20. 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 à 12 et/ou le procédé selon au moins une des revendications 13 à 18. 20. A computer readable storage medium, possibly totally or partially removable, storing a computer program comprising a set of instructions executable by a computer to implement the method according to at least one of claims 1 to 12 and / or the process according to at least one of claims 13 to 18. 21. 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 combinaison linéaire prédéterminée d'une partie de ladite pluralité de paquets de données attendus en entrée, 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 possédant une composition en paquet(s) source(s) attendue, conforme audit schéma de codage réseau prédéterminé, ledit noeud relais donné étant caractérisé en ce qu'il comprend : - des moyens de détection, permettant de détecter un paquet utile altéré, défini comme un paquet utile qui n'est pas correctement reçu ou est correctement reçu mais ne possède pas une composition en paquet(s) source(s) attendue ; - des moyens de détermination, activés s'il est détecté un paquet utile altéré, permettant de déterminer, avant la fin de la réception de ladite pluralité de paquets de données, une nouvelle combinaison linéaire de paquets attendus en entrée 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, les 30paquets associés à ladite nouvelle combinaison linéaire étant dits paquets momentanément utiles ; - des moyens de construction, permettant de construire, avec la nouvelle combinaison linéaire de paquets attendus en entrée, et avant la fin de la réception de ladite pluralité de paquets de données attendus en entrée, au moins une partie dudit paquet résultant reconstitué, en utilisant les paquets momentanément utiles déjà correctement reçus. A relay node included in a mesh network and participating in a network coding method in said mesh network, said relay node, according to a predetermined network coding scheme, expecting to receive as input a plurality of data packets and to generate at the output a predetermined resulting packet obtained according to a predetermined linear combination of a part of said plurality of data packets expected at input, the data packets belonging to said part being said useful packets and the data packets not belonging to said part being said to be redundant packet, each of the expected data packets input having a composition in source packet (s) expected, in accordance with said predetermined network coding scheme, said given relay node being characterized in that it comprises: - detection means, for detecting an altered useful packet, defined as a useful packet that is not t not correctly received or received but does not have a source packet composition (s) expected; determination means, activated if an altered useful packet is detected, making it possible to determine, before the end of the reception of said plurality of data packets, a new linear combination of expected input packets making it possible to construct a resulting packet reconstituted using, in accordance with a modified network coding scheme, all or part of the redundant packets, the packets associated with said new linear combination being said momentarily useful packets; means for constructing, with the new linear combination of expected input packets, and before the end of receiving said plurality of expected data packets, at least a portion of said reconstituted resulting packet, using momentarily useful packets already correctly received. 22. 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 au moins un paquet source prédéterminé obtenu selon une combinaison linéaire prédéterminée d'une partie de ladite pluralité de paquets de données attendus en entrée, 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 possédant une composition en paquet(s) source(s) attendue, conforme audit schéma de codage réseau prédéterminé, ledit noeud destination donné étant caractérisé en ce qu'il comprend : - des moyens de détection, permettant de détecter un paquet utile altéré, défini comme un paquet utile qui n'est pas correctement reçu ou est correctement reçu mais ne possède pas une composition en paquet(s) source(s) attendue ; - des moyens de détermination, activés s'il est détecté un paquet utile altéré, déterminer, permettant de déterminer, avant la fin de la réception de ladite pluralité de paquets de données, au moins une nouvelle combinaison linéaire de paquets attendus en entrée permettant de construire au moins un paquet source reconstitué en utilisant, selon un schéma de codage réseau modifié, tout ou partie des paquets redondants, les paquets associés à ladite au moins une nouvelle combinaison linéaire étant dits paquets momentanément utiles ; - des moyens de construction, permettant de construire, avec ladite au moins une nouvelle combinaison linéaire de paquets attendus en entrée, et avant la fin de la réception de ladite pluralité de paquets de données attendus en entrée, au moins 25 30une partie dudit au moins un paquet source reconstitué, en utilisant les paquets momentanément utiles déjà correctement reçus. 22. A destination node included in a mesh network and participating in a network coding method in said mesh network, said destination node, according to a predetermined network coding scheme, expecting to receive as input a plurality of data packets and to generate in output at least one predetermined source packet obtained according to a predetermined linear combination of a part of said plurality of data packets expected at input, the data packets belonging to said part being said useful packets and the data packets not belonging said part being said redundant packet, each of the expected data packets having an expected source packet composition (s), according to said predetermined network coding scheme, said given destination node being characterized in that it comprises detection means for detecting an altered useful packet, defined as a p a useful aquet that is not correctly received or is correctly received but does not have a source packet composition (s) expected; determination means, activated if an altered useful packet is detected, determining, to determine, before the end of the reception of said plurality of data packets, at least one new linear combination of packets expected at the input allowing constructing at least one reconstituted source packet using, in accordance with a modified network coding scheme, all or part of the redundant packets, the packets associated with said at least one new linear combination being said momentarily useful packets; means of construction, making it possible to construct, with said at least one new linear combination of packets expected as input, and before the end of the reception of said plurality of data packets expected at input, at least a portion of said at least one a reconstituted source packet, using the momentarily useful packets already correctly received.
FR0858367A 2008-12-08 2008-12-08 FAST AND ROBUST NETWORK CODING METHOD FOR TRANSMISSION LOSSES IN A MESH NETWORK, RELAY NODE, DESTINATION NODE, COMPUTER PROGRAM PRODUCT, AND CORRESPONDING STORAGE MEDIUM. Expired - Fee Related FR2939586B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR0858367A FR2939586B1 (en) 2008-12-08 2008-12-08 FAST AND ROBUST NETWORK CODING METHOD FOR TRANSMISSION LOSSES IN A MESH NETWORK, RELAY NODE, DESTINATION NODE, COMPUTER PROGRAM PRODUCT, AND CORRESPONDING STORAGE MEDIUM.

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0858367A FR2939586B1 (en) 2008-12-08 2008-12-08 FAST AND ROBUST NETWORK CODING METHOD FOR TRANSMISSION LOSSES IN A MESH NETWORK, RELAY NODE, DESTINATION NODE, COMPUTER PROGRAM PRODUCT, AND CORRESPONDING STORAGE MEDIUM.

Publications (2)

Publication Number Publication Date
FR2939586A1 true FR2939586A1 (en) 2010-06-11
FR2939586B1 FR2939586B1 (en) 2011-04-22

Family

ID=40974424

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0858367A Expired - Fee Related FR2939586B1 (en) 2008-12-08 2008-12-08 FAST AND ROBUST NETWORK CODING METHOD FOR TRANSMISSION LOSSES IN A MESH NETWORK, RELAY NODE, DESTINATION NODE, COMPUTER PROGRAM PRODUCT, AND CORRESPONDING STORAGE MEDIUM.

Country Status (1)

Country Link
FR (1) FR2939586B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050010675A1 (en) * 2003-06-23 2005-01-13 Microsoft Corporation System and method for computing low complexity algebraic network codes for a multicast network

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050010675A1 (en) * 2003-06-23 2005-01-13 Microsoft Corporation System and method for computing low complexity algebraic network codes for a multicast network

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
FASOLO E: "Network coding techniques", INTERNET CITATION, 7 March 2004 (2004-03-07), pages 1 - 14, XP002484416, Retrieved from the Internet <URL:www.cs.virginia.edu/~yw5s/Network%20coding.ppt> *
KATTI S; RAHUL H; WENJUN HU; KATABI D; MEDARD M; CROWCROFT J: "XORs in the Air: Practical Wireless Network Coding", IEEE / ACM TRANSACTIONS ON NETWORKING, IEEE / ACM, NEW YORK, NY, US, vol. 14, no. 3, 1 June 2008 (2008-06-01), pages 497 - 510, XP011226939, ISSN: 1063-6692 *
RALF KOETTER AND MURIEL MÉDARD: "An Algebraic Approach to Network Coding", IEEE / ACM TRANSACTIONS ON NETWORKING, IEEE / ACM, NEW YORK, NY, US, vol. 11, no. 5, 1 October 2003 (2003-10-01), pages 782 - 795, XP007908088, ISSN: 1063-6692 *

Also Published As

Publication number Publication date
FR2939586B1 (en) 2011-04-22

Similar Documents

Publication Publication Date Title
EP3443678B1 (en) Method of decoding a polar code with inversion of low reliability bits
EP2274852B1 (en) Method of decoding a signal implementing a progressive construction of a decoding tree, corresponding computer program product and decoding device
EP2606583B1 (en) Method and system of selective relaying in a communication network comprising a plurality of sources, a relay and a reception device with detection by the relay of errors on the received estimated messages and transmission, from the relay to the reception device, of a signal representative of only the messages for which no errors were detected.
FR2778289A1 (en) ITERATIVE DECODING OF PRODUCT CODES
FR2905209A1 (en) Information block decoding method for signal receiver of wireless apparatus, involves storing blocks in input memory, and updating current indication for decoding one of blocks based on number of iterations performed to decode current block
EP3161986A1 (en) Method for dynamic and selective fd-dsdf transmission of a digital signal for a mamrc system with several full-duplex relays, and corresponding program product and relay device
FR2952252A1 (en) METHOD AND DEVICE FOR DECODING, COMPUTER PROGRAM PRODUCT, CORRESPONDING MEANS OF STORAGE AND CORRESPONDING DESTINATION NODE
EP1974472B1 (en) Fast encoding and decoding methods and related devices
EP1959572B1 (en) Decoding method with message passing and forced convergence
FR2960725A1 (en) METHOD AND DEVICE FOR CONFIGURING A GLOBAL ENCODING / DECODING SCHEME IN A COMMUNICATION NETWORK, COMPUTER PROGRAM PRODUCT AND CORRESPONDING STORAGE MEDIUM
FR3053193A1 (en) METHOD FOR DYNAMIC AND SELECTIVE FD-DSDF TRANSMISSION OF A DIGITAL SIGNAL FOR A MARC / MAMRC SYSTEM WITH FULL-DUPLEX RELAY AND LIMITED RETURN PATH, PROGRAM PRODUCT AND CORRESPONDING RELAY DEVICE
EP2478681B1 (en) Method for transmitting a digital signal for a marc system with a half-duplex relay, and corresponding program product and relay device
FR2939586A1 (en) Network coding method for wireless mesh communication network, involves constructing part of result packet with combination of expected input packets using momentarily used packets, before end of reception of expected input data packets
FR2939585A1 (en) Network coding method for wireless mesh communication network, involves constructing reconstituted result packet using all or part of redundant packets along modified network coding scheme, and transmitting reconstituted result packet
FR2939584A1 (en) Network coding method for wireless mesh communication network, involves constructing output notification identifying differences between combinations of source packets, and transmitting modified result packet and output notification
FR2922699A1 (en) ITERATIVE DECODING IN A MESH NETWORK, CORRESPONDING METHOD AND SYSTEM
FR2932630A1 (en) Network coding constructing method for transmitting data packets in wireless meshed communication network, involves constructing network coding implying sub-network with consistent set of selected source codes, destination and relay nodes
EP3057238B1 (en) Method for iterative decoding of lfsr sequences with low probability of false alarm
FR3061393A1 (en) METHODS OF ENCODING AND DECODING DATA PACKETS IN A GALOIS BODY
FR3060148A1 (en) MESSAGE TRANSMITTING METHOD, RECEIVING METHOD, TRANSMITTING DEVICE, RECEIVING DEVICE, AND COMMUNICATION SYSTEM THEREOF
EP2297896A1 (en) Method of quantum distribution of keys with continuous variables
FR2922390A1 (en) Coded packet&#39;s information modifying method for meshed wireless communication network, involves calculating new redundancy data of redundancy fields based on sub-matrix, new information and information in predetermined field
WO2018185402A1 (en) Methods for encoding and decoding data packets in a galois field
FR3013924A1 (en) METHOD AND DEVICE FOR ENCODING DIGITAL DATA PACKETS, AND METHOD AND DEVICE FOR CORRECTING DEPLETIONS
WO2024023234A1 (en) Quantum distribution methods and associated telecommunication devices

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20140829