FR2939585A1 - 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 - Google Patents

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 Download PDF

Info

Publication number
FR2939585A1
FR2939585A1 FR0858366A FR0858366A FR2939585A1 FR 2939585 A1 FR2939585 A1 FR 2939585A1 FR 0858366 A FR0858366 A FR 0858366A FR 0858366 A FR0858366 A FR 0858366A FR 2939585 A1 FR2939585 A1 FR 2939585A1
Authority
FR
France
Prior art keywords
packet
packets
source
predetermined
network coding
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
FR0858366A
Other languages
French (fr)
Other versions
FR2939585B1 (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 FR0858366A priority Critical patent/FR2939585B1/en
Publication of FR2939585A1 publication Critical patent/FR2939585A1/en
Application granted granted Critical
Publication of FR2939585B1 publication Critical patent/FR2939585B1/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/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
    • 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/02Arrangements for detecting or preventing errors in the information received by diversity reception
    • 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/0093Point-to-multipoint
    • 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 whether a used data packet is missing or the used data packet is received in a modified manner such that linear combination of source packets forming the modified used packet is not conformed to a predetermined network coding scheme. A reconstituted result packet is constructed using all or part of redundant packets along a modified network coding scheme in case of positive detection. The reconstituted result packet is transmitted. 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 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é. A method of network coding robust to 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 (tel la puissance radio reçue) entre deux noeuds communicants est connu. Les noeuds relais ont classiquement comme fonction de retransmettre un des paquets qu'ils ont reçus en entrée (fonction de routage). Dans le cadre d'un codage réseau, ces noeuds relais ont une nouvelle fonctionnalité : ils ont la capacité d'émettre un paquet résultant qui est une combinaison des paquets reçus en entrée. Le concept de codage réseau a été introduit par R. Ahlswede and co. (voir l'article : R. Ahlswede, N. Cai, S.-Y. R. Li and R.W. Yeung "Network Information Flow" I.E.E.E. Transactions on Information Theory Vol 46, No 4, pp 1204-1216, July 2000) et très rapidement, de nombreux articles ont démontré l'apport de ce nouveau concept, notamment en termes de gain en bande passante et en terme d'utilisation de la capacité de réseau. De plus, il a été montré que dans un cadre multicast (chaque message envoyé par un noeud source est destiné à l'ensemble des noeuds de Dt), les combinaisons linéaires dans un corps Fq suffisamment grand donnent un résultat optimal (en terme de gain). Dans la suite de la présente invention, on appelle schéma de codage réseau : • les noeuds relais combinant les paquets en entrée pour générer un paquet combiné appelé paquet résultant ; • pour ces noeuds relais, les paquets en entrée à combiner parmi l'ensemble des paquets reçus ; • à chaque paquet en entrée à combiner est associé un coefficient dans Fq. Ces noeuds relais et ces paquets (correspondants à des liens) participant au codage réseau sont considérés utiles, les autres sont considérés redondants. Les noeuds destinations reçoivent alors une pluralité de paquets (les paquets résultants des noeuds relais) qui sont une combinaison linéaire des paquets sources (paquets envoyés par les noeuds sources). Dans le cadre de l'invention, le schéma de codage utilisé est un schéma de codage optimisé (décrit par exemple dans la demande de brevet US2005/0010675) réduisant le nombre de noeuds relais et de paquets utiles participant au schéma de codage réseau afin de diminuer le nombre d'opérations et donc le temps CPU. Ce schéma est déterminé à l'initialisation du système en prenant en compte la topologie du système. 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, that is to say the set of radio qualities (such as the radio power received) between two communicating nodes is 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 intended for all the nodes of Dt), the linear combinations in a sufficiently large body Fq give an optimal result (in terms of gain ). In the remainder of the present invention, the term network coding scheme is defined as: • 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). 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.

Les paquets résultants émis par les noeuds relais sont donc prédéterminés (plus précisément leur combinaison linéaire associée). Mais le réseau sans-fil est sensible à des masquages causés par exemple par un être vivant traversant le champ de transmission. Les pertes de liens occasionnées par ces masquages peuvent modifier temporairement la topologie du réseau initiale, topologie sur laquelle le schéma de codage réseau prédéterminé a été calculé. Celui-ci n'est alors plus valide durant cette période, ce qui peut mener à l'incapacité des noeuds destinations à décoder l'ensemble des paquets sources du fait que ceux-ci sont tous liés entre eux dans les paquets reçus. The resulting packets emitted by the relay nodes are therefore predetermined (more precisely their associated linear combination). 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.

Il convient donc d'augmenter la robustesse du schéma de codage réseau face à ces pertes de liens (mesurée en nombre de paquets sources décodables par les noeuds destinations). 2.2 Prérequis et limites de l'état de la technique 2.2.1 Le corps Fe q=2s L'ensemble des opérations effectuées dans la présente invention est réalisée dans un corps fini noté Fq, constitué de q éléments. Dans le cadre de l'invention, les séquences d'information envoyées dans le réseau sont dans un contenant appelé paquet, qui a une taille fixe. s bits consécutifs d'un paquet constituent un symbole sur le corps Fq avec q=2s. Par exemple, un paquet de 1400 octets contient 1400 symboles si la taille du corps est 28 ou contient 700 symboles si la taille du corps est 216. Les opérations d'addition, de multiplication et de division s'effectuent alors symbole par symbole : > L'addition + s'effectue bit à bit avec la fonction classique XOR - Pour la multiplication . , un symbole de s bits, b0...bs_1, est transformé en polynôme : bo+b1X+..bs-1Xs-1• Un polynôme irréductible sur Fq est choisi. La multiplication entre deux symboles est alors obtenue par la multiplication classique entre deux polynômes modulo le polynôme irréductible. - La division est calculée à partir de l'algorithme d'Euclide. Des implémentations sont données par exemple dans le document N.R. Wagner. The laws of Cryptography with Java Code , disponible sur Internet à l'adresse : http://www.cs.utsa.edu/ùwagner/laws/FFM.html . 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). 2.2 Prerequisites and Limits of the State of the Art 2.2.1 The body Fe 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:> Addition + is done bit by bit with the classical function XOR - 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. - The division is calculated from the Euclidean algorithm. Implementations are given for example in the document N.R. 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 Y = ai.Ar avec A1...A1, 1 paquets en entrée et a1,.., a1 des coefficients dans Fq, ces =1 Therefore, in the remainder of the present description, when Y = ai.Ar is written with A1 ... A1, 1 input packets and a1, .., a1 coefficients in Fq, these = 1

opérations s'effectuent en réalité sur tous les symboles du paquet : yk = a, .a;` où yk et 1=1 operations are actually performed on all the symbols of the packet: yk = a, .a; `where yk and 1 = 1

ak sont respectivement le kième symbole des paquets Y et A et les opérations + et . s'effectuent dans Fq. ak are respectively the kth symbol of packets Y and A and the operations + and. take place in Fq.

2.2.2 Codage réseau 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 Rj doit combiner alors un ensemble de paquets reçus M1, M2,..., M1 parmi les paquets reçus. Le paquet résultant est alors égal à y, = a?Mi avec 1=1 a1' , az,...,a1' appartenant au corps fini Fq. Cette combinaison linéaire y, = a?Mi est la 1=1 représentation locale du codage réseau, appelée par la suite combinaison locale. Mais les paquets à combiner reçus en entrée peuvent être aussi eux même des paquets résultants provenant d'autre relais. Notons X1,...XM les paquets sources émis par les M noeuds sources. Il est alors clair que chaque paquet circulant dans le réseau est une combinaison linéaire des paquets X1,...XM . Le paquet précédemment cité y peut être m aussi ainsi représenté de la manière suivante : y, = g X; . Cette représentation est la 1=1 représentation globale du codage réseau. Elle prend en compte que chaque paquet reçu M; est aussi un paquet résultant combinant des paquets sources. Elle est appelée par la suite combinaison globale. Il est clair que les coefficients g3 se déduisent récursivement des coefficients de a1. 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 Rj must then combine a set of received packets M1, M2, ..., M1 among the received packets. The resulting packet is then equal to y, = a? Mi with 1 = 1 a1 ', az, ..., a1' belonging to the finite field Fq. This linear combination y, = a? Mi is the 1 = 1 local representation of the network coding, hereinafter called local combination. But the packets to combine received as input can be themselves also resulting packets from other relays. Let us denote by X1, ... XM the source packets sent by the M source nodes. It is then clear that each packet flowing in the network is a linear combination of X1, ... XM packets. The previously quoted packet y can be m also thus represented in the following way: y, = g X; . This representation is the 1 = 1 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 recursively deduced from the coefficients of a1.

Notation : les paquets reçus intervenant dans une combinaison locale sont appelés par la suite les paquets associés à la combinaison locale. Les paquets sources qui ont un coefficient non nul dans une combinaison globale sont appelés par la suite les paquets associés à la combinaison globale. Remarque : on peut associer une seule combinaison globale à une combinaison locale donnée mais pas l'inverse. En effet, à une combinaison globale, on peut associer plusieurs combinaisons locales en jouant sur le choix des paquets reçus M; à combiner. Dans le cadre de l'invention, chaque noeud relais mémorise la représentation globale de chaque paquet reçu en entrée dans une matrice, appelée matrice relais R=(r1,). Chaque ligne représente un paquet reçu, chaque colonne un paquet source, et chaque élément de la matrice r1i représente alors le coefficient du paquet source j de la combinaison linéaire globale du paquet reçu i. Le noeud destination di qui reçoit les paquets Y1,Y2,...,Y1' mémorise aussi la représentation globale de chaque paquet en entrée reçu dans une matrice, appelée matrice destination D=(d1i). Chaque ligne représente un paquet reçu et chaque colonne un paquet source, et chaque élément de la matrice d1i représente le coefficient du paquet source j de la combinaison linéaire globale du paquet reçu Y1. Le noeud destination doit alors résoudre le système linéaire constitué par l'ensemble des combinaisons linéaires m globales : Yi = du Xi j=1...1', soit d'un point de vue matriciel, Y=D X avec D la 1=1 matrice destination, Y le vecteur colonne des paquets reçus et X le vecteur colonne des paquets sources. La résolution de ce système linéaire est expliquée dans la partie suivante. Il est à noter que si le rang de D (au sens de l'algèbre linéaire) est égal au nombre de noeuds sources M alors les M paquets sources sont décodables. Sinon, il faut étudier plus précisément la matrice destination pour déterminer le nombre de paquets sources décodables. 2.2.2.2 Construction d'un codage réseau Dans un réseau maillé constitué de M sources et de N noeuds destinations, l'étape préliminaire avant de construire un schéma de codage réseau est de s'assurer qu'il existe un schéma de codage réseau vu la topologie du réseau. Cette phase se base sur des concepts de théorie des graphes et notamment sur une utilisation de l'algorithme de Ford-Fulkerson (se reporter à l'article "Maximum Flow through a Network" Canadian Journal of Mathematics, 8, pp 399-404, 1956). Notation: the received packets intervening in a local combination are called later 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. 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. 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 = (r1,). Each line represents a received packet, each column a source packet, and each element of the matrix r1i then represents the coefficient of the source packet j of the overall linear combination of the received packet i. 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 = (d1i). Each line represents a received packet and each column a source packet, and each element of the matrix d1i represents the coefficient of the source packet j of the overall linear combination of the received packet Y1. The destination node must then solve the linear system constituted by the set of global linear combinations m: Yi = of Xi j = 1 ... 1 ', ie from a matrix point of view, Y = DX with D la 1 = 1 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 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).

Le réseau est modélisé par un graphe G=(V,E), V étant un ensemble fini de K noeuds (appelés vertices en anglais), V= {xi, . . . , xK}, et E Ç V x V un ensemble fini d'arêtes qui connectent les noeuds. Dans le cadre de l'invention, l'ensemble E est un ensemble ordonné de couples (xi, xi), avec x; et xi appartenant à v, ces couples étant appelés arêtes connectées, arcs ou liens (appelés edges en anglais). Un noeud de V modélise une entité communicante dans le réseau (ordinateurs, hauts-parleurs, amplificateur) tandis qu'un arc (xi, xi) indique par exemple une communication radio suffisamment bonne (c'est-à-dire au dessus d'un certain seuil de puissance radio reçue) entre les deux entités communicantes x; et xi. 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 V 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.

De plus, on appelle chemin entre un noeud x1 et un noeud xp un ensemble ordonné de noeuds {x1,x2,..,xp} tel que (xi, xi+1) E E pour i = 1, . . . , (pùl). Un chemin peut aussi s'écrire {(x1,x2),..,(x1,x1+1),...,(xp_1,xp)} avec (xk,xk+1) E pour k = 1, ... , (pùl). On appelle k chemins disjoints, k ensembles qui n'ont pas deux noeuds consécutifs en commun, soit d'un point de vue graphique , deux arcs en commun. Notons T un ensemble de k chemins disjoints. On définit alors : 1. Soit (x, y) EE (un lien du graphe), (x, y) ET si et seulement s'il existe un chemin de T qui contient (x,y) 2. Soit x EV (un sommet du graphe), x ET si et seulement s'il existe un chemin de T qui contient x. On appelle deux chemins disjoints entre un ensemble S et un noeud d, deux ensembles ordonnés de noeuds {x1,x2,..,xp,d} et {y1,y2,..,yq,d} tels que : > (xi, xi+1) EE pour i = 1, ... , (pù1) et (xp, d) EE - (y, y+1) EE pour j = 1, ... , (qù1) et (yq, d) EE - x1 ES, Y1 ES et x1≠Y1 - `di =1..(p -1), `dj =1..(q -1), (xi, x1+1) ~ (y;, y;+1) et (xp, d) ~ (Yq,d) La définition se généralise très facilement pour un ensemble de k chemins disjoints. A partir de ces notions de la théorie des graphes, l'état de l'art donne la condition suivante : Soit S un ensemble de M noeuds sources, s'il existe M chemins disjoints entre S et chaque noeud destination de Dt, alors les M noeuds sources sont capables d'émettre en multicast à Dt si les noeuds relais sont autorisés à combiner linéairement leurs paquets entrants sur un corps fini suffisamment grand . Ce résultat est une conséquence directe de l'article précité de R. Ahlswede and co. L'invention se place dans le cadre où cette condition est vérifiée au démarrage du système. Par contre, durant la vie du système, il se peut que cette condition ne soit plus respectée, à cause de pertes temporaires de liens. Dans ce cas, aucun schéma de codage réseau n'existe permettant de décoder les M paquets sources. Les noeuds destinations ne peuvent donc plus décoder M paquets sources. Dans l'état de la technique, il existe principalement deux approches pour la construction d'un schéma de codage réseau en fonction de la connaissance ou pas de la topologie initiale du réseau : - Pour une topologie connue, un premier schéma déterministe de construction des coefficients basés sur une approche matricielle est donné dans l'article suivant : 15 R. Koetter, M. Médard, "An Algebraic Approach to Network coding" ACM transactions on Networking, Vol 11, Nos, October 2003". Le schéma de codage réseau obtenu selon cette première approche est appelé schéma de codage déterministe ; - Pour une topologie inconnue, une construction à la volée des coefficients tirés 20 aléatoirement est donnée dans l'article suivant : "Randomized distributed network coding" - Michelle Effros, Tracey Ho, David Karger, Ralf Koetter, Muriel Medard 20050152391. Le schéma de codage réseau obtenu selon cette seconde approche est appelé schéma de codage aléatoire . Dans la première approche, les coefficients sont calculés une fois pour toutes au 25 départ du système et donc durant la vie du système. Les noeuds destinations et les noeuds relais ont des opérations peu coûteuses car ils savent exactement ce qu'ils vont recevoir et transmettre. Dans la deuxième approche, les noeuds relais tirent aléatoirement les coefficients du paquet résultant à générer, ce qui nécessite un temps de traitement supplémentaire. 30 De plus, ils sont dans l'obligation d'envoyer les coefficients tirés aléatoirement dans le paquet résultant afin que les autres noeuds, et plus spécialement les noeuds destinations, 10 connaissent les combinaisons linéaires pour décoder. Or cette signalisation est d'autant plus grande que le corps est grand (chaque coefficient sera codé sur un nombre de bits plus important), et c'est autant de bande passante perdue. Or dans cette deuxième approche, plus le corps est grand plus les chances de réussite du décodage des paquets sources sont grandes. D'où la contradiction. Dans la première approche, le décodage est sûr de réussir car la construction réalisée à l'initialisation s'assure que c'est le cas. La première approche est donc plus performante que la deuxième en terme de gain en bande passante et en temps de calcul. Par contre, la deuxième approche est plus performante que la première sur les points suivants : • elle ne nécessite pas la connaissance de la topologie du réseau. Dans le cadre de la présente invention, on suppose que l'on dispose d'un moyen de récupérer la topologie du réseau, donc cet inconvénient de la première approche n'est pas pris en compte ; • elle est robuste aux pertes de lien contrairement à la première approche. En effet, vu qu'elle génère un paquet résultant avec une combinaison linéaire différente à chaque envoi, la perte de lien est transparente pour elle (bien que ne garantissant pas le décodage). Elle indique un coefficient nul pour le paquet qui devait arriver par ce lien. 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ùl). 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 - x1 ES, Y1 ES and x1 ≠ Y1 - `di = 1 .. (p -1),` dj = 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 Dt, then the M source nodes are able to multicast to Dt 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 Matrix-based coefficients are 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. As a first 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. 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.

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. 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.

Les paquets résultants sont ainsi prédéterminés. De la même manière, le noeud destination construit alors une sous-matrice de la matrice destination D, appelée la matrice codante et notée C, qui ne prend en compte que les paquets utiles (des lignes sont donc supprimées de D). A partir de C, une sous- matrice carrée de dimension (M,M) (le schéma optimisé assure cette propriété), le noeud destination calcule l'inverse de celle-ci C-1 (qui existe par construction du schéma) et décode ainsi les paquets sources : X=C-1Y, avec X le vecteur colonne des paquets sources et Y le vecteur colonne des paquets reçus. 2.2.3 Résolution d'un système linéaire Soit un système linéaire de n équations à p inconnues dans Fq : a11 31 + +alp~p = bl an1131 + +anpI3p =bn Avec [(31,... (3p] les p inconnues du système, ale, i=1..n,j=1..p les coefficients du système et [bl,...bn] les constantes du système. Pour résoudre ce système, on utilise par exemple la méthode du pivot de Gauss, aussi appelée élimination de Gauss-Jordan , qui est connue de l'homme du métier. D'autres résolutions matricielles sont possibles pour résoudre le système d'équation : décomposition LU, décomposition QR, Méthode de Cholesky. Elles sont directement applicables à la présente invention. Pour appliquer la méthode de Gauss, on associe au système la matrice suivante de dimension (n,p+1) : /a11 alp 1 ~ anl anp 'bn Sur cette matrice, l'algorithme de Gauss-Jordan réalise des opérations élémentaires ligne par ligne afin d'obtenir une matrice de la forme : 01 0 00000 1 a 1(r+1) a1p b1 ar(r+1) arp br 0 0 br+1 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 and noted 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 C-1 (which exists by construction of the schema) and decodes thus the source packets: X = C-1Y, with X the column vector of the source packets and Y the column vector of the packets received. 2.2.3 Resolution of a linear system Let a linear system of n equations with p unknowns in Fq: a11 31 + + alp ~ p = bl an1131 + + anpI3p = bn With [(31, ... (3p] the p unknowns of the system, ale, i = 1..n, j = 1..p the coefficients of the system and [b1, ... bn] the constants of the system To solve this system, we use for example the pivot method 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. In order to apply the Gauss method, the following matrix of dimension (n, p + 1) is associated with the system: ## EQU1 ## On this matrix, the Gauss-Jordan algorithm realizes elementary operations line by line in order to obtain a matrix of the form: ## EQU1 ##

o 0 bn Le système est dit compatible s'il admet au moins une solution. La compatibilité dépend de la valeur de r par rapport aux valeurs de n et de p : 1. Dans le cas où r est strictement inférieur à n et à p, deux cas se présentent : - Les coefficients br+1,..., bn sont nuls. Dans ce cas, le système est compatible et il existe une infinité de solution pour les [(31,... I. Les Il ,. • • Rr] sont les inconnues principales, les autres [(3r+i,... (3p] sont les inconnues secondaires. Pour résoudre le système, on fixe alors les [(3r+1,... (3p] qui deviennent des paramètres et on détermine les inconnues principales en résolvant le système linéaire en commençant par Rr puis (3r_1,... (31. - Il existe des coefficients br+1,..., bn non nuls. Le système est incompatible. 2. Dans le cas où r est égal à n et strictement inférieur à p, il existe une infinité de solution pour les [(31,... I. Les [(31,... (3n] sont les inconnues principales, les autres [(3n+1,... Rp] sont les inconnues secondaires. 3. Dans le cas où r est égal à p et strictement inférieur à n, deux cas se présentent : • Les coefficients br+1,..., bn sont nuls. Le système admet une solution p 1= b1,..,(3p= bp - Sinon le système est incompatible. 4. Si r est égal à p et à n, le système admet une unique solution : (31= b1,..,(3p= bp . 2.2.4 Limites de l'état de la technique Dans l'état de la technique, la gestion des pertes de paquets dans un schéma de codage réseau est principalement gérée par le schéma de codage aléatoire (deuxième approche décrite ci-dessus), du fait que celui-ci (contrairement au schéma de codage déterministe selon la première approche) est robuste aux pertes de lien (comme détaillé auparavant). En effet, avec le schéma de codage aléatoire, les noeuds relais effectuent systématiquement des opérations coûteuses pour combiner les paquets avec ou sans perte de paquets. Mais, considérant que les avantages de la première approche (en terme de gain en bande passante et en temps de calcul) sont primordiaux dans des applications hauts débits (comme détaillé auparavant), la présente invention se place dans le cadre où c'est cette première approche qui est utilisée (schéma de codage réseau en fonction de la connaissance de la topologie initiale du réseau). Or, dans ce cas, la gestion des pertes de paquets consiste à rechercher des schémas de codage réseau robustes dès la construction de ceux-ci. On essaie ainsi de s'assurer que les matrices de destination sont toujours capables de décoder l'ensemble des paquets sources envoyés par les noeuds sources pour un ensemble prédéfini de liens cassés. Mais les noeuds relais sont obligés d'utiliser l'ensemble des paquets qu'ils reçoivent, ce qui impose au niveau des noeuds relais un temps de calcul important et surtout systématique. 3. OBJECTIFS DE L'INVENTION L'invention, dans au moins un mode de réalisation, a notamment pour objectif de pallier ces différents inconvénients de l'état de la technique. Plus précisément, dans au moins un mode de réalisation de l'invention, un objectif est de fournir une technique de codage réseau adaptée à la transmission de paquets de données dans un réseau de communication maillé, cette technique permettant d'optimiser la gestion des pertes de paquets (c'est-à-dire des pertes de liens) dans le cas où on utilise un schéma de codage réseau déterministe (obtenu selon la première approche précitée). Au moins un mode de réalisation de l'invention a également pour objectif de fournir une telle technique qui soit transparente pour les noeuds sources. o 0 bn The system is said to be compatible if it admits at least one solution. The compatibility depends on the value of r with respect to the values of n and of p: 1. In the case where r is strictly smaller than n and p, two cases occur: - The coefficients br + 1, ..., bn are void. In this case, the system is compatible and there exists an infinity of solution for the [(31, ... I. The Il,. • • Rr] are the main unknowns, the others [(3r + i, ... (3p) are the secondary unknowns To solve the system, one fixes then the [(3r + 1, ... (3p] which become parameters and one determines the principal unknowns by solving the linear system starting with Rr then ( 3r_1, ... (31. - 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 the [(31, ... I. The [(31, ... (3n] are the main unknowns, the others [(3n + 1, ... Rp] are the secondary unknowns. In the case where r is equal to p and strictly less than n, two cases occur: • The coefficients br + 1, ..., bn are zero The system admits a solution p 1 = b1, .., (3p = bp - Otherwise the system is incompatible 4. If r is equal to p and n, the system admits a unique solution: (31 = b1, .., (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), This makes it (unlike the deterministic coding scheme according to the first approach) 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. But, considering that the advantages of the first approach (in terms of bandwidth gain and calculation time) are essential in high bit rate 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). In this case, packet loss management consists of looking for robust network coding schemes as soon as they are built. 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. 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 (that is, loss of links) in the case where a deterministic network coding scheme (obtained according to the above-mentioned first approach) is used. At least one embodiment of the invention also aims to provide such a technique that is transparent to the source nodes.

Au moins un mode de réalisation de l'invention a également pour objectif de fournir une telle technique qui soit transparente pour les noeuds destinations, si c'est possible, ou qui minimise l'impact sur la capacité du réseau (c'est-à-dire le nombre de paquets sources décodables par l'ensemble des noeuds destinations) si une telle transparence pour les noeuds destinations n'est pas possible. Un autre objectif d'au moins un mode de réalisation de l'invention est de fournir une telle technique qui soit simple à mettre en oeuvre et peu coûteuse. 4. EXPOSÉ DE L'INVENTION Dans un mode de réalisation particulier de l'invention, il est proposé un procédé de codage réseau dans un réseau maillé comprenant au moins un noeud relais qui, selon un schéma de codage réseau prédéterminé, s'attend à recevoir en entrée une pluralité de paquets de données et doit générer en sortie un paquet résultant prédéterminé obtenu selon une première combinaison linéaire prédéterminée d'une partie de ladite pluralité de paquets de données, les paquets de données appartenant à ladite partie étant dits paquets utiles et les paquets de données n'appartenant pas à ladite partie étant dits paquet redondants, chacun des paquets de données attendus en entrée étant formé, selon 15 ledit schéma de codage réseau prédéterminé, par une combinaison linéaire d'un ou plusieurs paquets sources, les paquets sources étant émis par des noeuds sources. Ledit procédé est mis en oeuvre par au moins un noeud relais donné et comprend des étapes consistant à : - détecter si au moins un paquet utile est manquant ou qu'il a été reçu modifié de sorte que la combinaison linéaire du ou des paquets sources formant ledit paquet utile modifié ne soit pas conforme au schéma de codage réseau prédéterminé ; - dans le cas d'une détection positive, construire un paquet résultant reconstitué en utilisant, selon un schéma de codage réseau modifié, tout ou partie des paquets redondants ; - transmettre le paquet résultant reconstitué. Ainsi, ce mode de réalisation particulier de l'invention repose sur une approche tout à fait nouvelle et inventive consistant à utiliser, au niveau des noeuds relais, les paquets reçus des liens non compris dans le schéma de codage réseau prédéterminé, appelé paquets redondants (paquets non utiles), et donc normalement non utilisés par les 30 noeuds relais (pas pris en compte dans le paquet résultant) et à effectuer de nouvelles opérations avec ces paquets redondants pour limiter l'impact de la perte de lien. En 20 25 d'autres termes, au niveau des noeuds relais, l'idée clé est d'utiliser les paquets redondants si la perte d'un lien touche la réception d'un paquet utile. Ainsi, à la détection d'une perte de lien (détection de l'impossibilité de générer le paquet résultant prédéterminé), on utilise un schéma de codage réseau alternatif et provisoire (schéma de codage réseau modifié) différent du schéma de codage prédéterminé. Ceci permet de limiter l'impact de ce changement provisoire de schéma de codage réseau (pour être dans le meilleur des cas transparent pour les noeuds destinations). De façon avantageuse, ladite étape consistant à construire un paquet résultant reconstitué comprend une étape consistant à déterminer une deuxième combinaison linéaire de paquets redondants et utiles, parmi une pluralité de paquets de données effectivement reçus par ledit noeud relais donné, permettant d'obtenir un paquet résultant reconstitué identique au paquet de données résultant prédéterminé à générer, si ladite deuxième combinaison linéaire de paquets redondants et utiles existe. At least one embodiment of the invention also aims to provide such a technique that is transparent to the destination nodes, if it is possible, or which minimizes the impact on the network capacity (ie ie, the number of decodable source packets by all the destination nodes) if such transparency for the destination nodes is not possible. 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 according to a first predetermined linear combination of a portion of said plurality of data packets, the data packets belonging to said party being said to be useful packets and the data packets not belonging to said part being said redundant packet, each of the expected data packets being formed, according to said predetermined network coding scheme, by a linear combination of one or more source packets, the packets sources being issued by source nodes. Said method is implemented by at least one relay node and comprises the steps of: - detecting whether at least one useful packet is missing or has been received modified so that the linear combination of the source packet (s) forming said modified useful packet does not conform to the predetermined network coding scheme; in the case of a positive detection, constructing a reconstructed resultant packet using, in accordance with a modified network coding scheme, all or part of the redundant packets; - transmit the resulting reconstituted packet. Thus, this particular embodiment of the invention is based on a completely new and inventive approach of using, at the relay node level, received packets links not included in the predetermined network coding scheme, called redundant packets ( packets not useful), and thus normally not used by the relay nodes (not taken into account in the resulting packet) and to perform new operations with these redundant packets to limit the impact of the loss of link. In other words, at the relay node level, the key idea is to use the redundant packets if the loss of a link touches the reception of a useful packet. Thus, when a link loss is detected (detection of the impossibility of generating the predetermined predetermined packet), an alternative and provisional network coding scheme (modified network coding scheme) different from the predetermined coding scheme is used. This makes it possible to limit the impact of this temporary change of network coding scheme (to be in the best case transparent for the destination nodes). Advantageously, said step of constructing a reconstructed resultant packet comprises a step of determining a second linear combination of redundant and useful packets, from a plurality of data packets actually received by said given relay node, to obtain a packet. resulting identical reconstituted to the predetermined resulting data packet to be generated, if said second linear combination of redundant and useful packets exists.

En d'autres termes, si c'est possible, la valeur des coefficients associés aux paquets redondants et utiles est choisie de telle manière que le paquet résultant reconstitué envoyé soit exactement le paquet résultant prédéterminé. De cette façon, l'opération effectuée dans le noeud relais donné (envoi du paquet résultant reconstitué au lieu du paquet résultant prédéterminé) est transparente pour tous les autres noeuds relais situés en aval, ainsi que pour les noeuds destinations. Avantageusement, ladite étape consistant à déterminer la deuxième combinaison linéaire de paquets redondants et utiles est réalisée en testant si chaque paquet utile détecté manquant peut être remplacé par un paquet redondant effectivement reçu par ledit noeud relais donné. In other words, if it is possible, the value of the coefficients associated with the redundant and useful packets is chosen such that the resulting reconstructed packet sent is exactly the predetermined resulting packet. In this way, the operation performed in the given relay node (sending the reconstructed resultant packet instead of the predetermined resulting packet) is transparent to all other downstream relay nodes, as well as to the destination nodes. Advantageously, said step of determining the second linear combination of redundant and useful packets is performed by testing whether each missing detected useful packet can be replaced by a redundant packet actually received by said given relay node.

Ainsi, l'opération transparente de construction du paquet résultant reconstitué est rapide et peu coûteuse. Selon une caractéristique avantageuse, ladite étape consistant à déterminer la deuxième combinaison linéaire de paquets redondants et utiles comprend des étapes consistant à : - déterminer une troisième combinaison linéaire prédéterminée de paquets sources, associée à ladite première combinaison linéaire prédéterminée de paquets utiles, et permettant d'obtenir ledit paquet résultant prédéterminé ; - construire un système linéaire A(3 = g, où (3 est un vecteur colonne des coefficients de ladite deuxième combinaison linéaire de paquets redondants et utiles à déterminer, où g est un vecteur colonne des coefficients de ladite troisième combinaison linéaire prédéterminée de paquets sources, et où A est une matrice de dimension (M,1), avec M le nombre de paquets sources et 1 le nombre de paquets effectivement reçus par ledit noeud relais donné, la matrice A étant définie de la manière suivante : * chaque ligne de la matrice A représente un paquet source, * chaque colonne de la matrice A représente un paquet effectivement reçu, * chaque élément aii de la matrice A représente le coefficient du paquet source i d'une quatrième combinaison linéaire de paquets sources permettant 15 d'obtenir le paquet effectivement reçu j ; - résoudre ledit système linéaire par une méthode prédéterminée ; - si le système linéaire admet une solution, déterminer ladite deuxième combinaison linéaire de paquets redondants et utiles, en fonction du vecteur colonne (3 de ladite solution. 20 Ainsi, l'opération transparente de construction du paquet résultant reconstitué permet d'aboutir de manière systématique si le système linéaire considéré admet une solution. De façon avantageuse, si ladite deuxième combinaison linéaire de paquets redondants et utiles n'existe pas, ladite étape consistant à construire un paquet résultant 25 reconstitué comprend des étapes consistant à : a) construire un paquet résultant contenant des paquets sources non contenus dans le paquet résultant prédéterminé ; b) obtenir une information relative, pour au moins un autre noeud participant au schéma de codage réseau prédéterminé, à un schéma de codage réseau modifié 30 qui résulterait de l'envoi du paquet résultant reconstitué construit à l'étape a) ; 10 c) en fonction de l'information obtenue à l'étape b), sélectionner le paquet résultant reconstitué construit à l'étape a) ou réitérer l'étape a) pour construire un autre paquet résultant. De cette façon, l'opération effectuée dans le noeud relais donné (envoi du paquet résultant reconstitué au lieu du paquet résultant prédéterminé) n'est pas transparente (pour tous les autres noeuds relais situés en aval, ainsi que pour les noeuds destinations), mais elle n'a pas d'impact sur la capacité du réseau (c'est-à-dire le nombre de paquets sources décodables par l'ensemble des noeuds destinations). En d'autres termes, si une construction transparente n'est pas réalisable, le noeud relais essaie de construire un paquet résultant qui n'a pas d'influence sur le réseau, c'est-à-dire qui ne diminue pas le nombre de paquets sources que peuvent décoder les noeuds destinations. Cette construction se base aussi sur l'utilisation des paquets redondants. Par contre, dans ce cas, le noeud relais doit notifier aux autres noeuds que le paquet résultant qu'il envoie ne se base pas sur la combinaison linéaire prédéterminée. Thus, the transparent construction operation of the resulting reconstituted packet is quick and inexpensive. According to an advantageous characteristic, said step of determining the second linear combination of redundant and useful packets comprises steps of: - determining a third predetermined linear combination of source packets, associated with said first predetermined linear combination of useful packets, and allowing obtaining said predetermined predetermined packet; constructing a linear system A (3 = g, where (3 is a column vector of the coefficients of said second linear combination of redundant and useful packets to be determined, where g is a column vector of the coefficients of said third predetermined linear combination of source packages , and where A is a matrix of dimension (M, 1), with M the number of source packets and 1 the number of packets actually received by said given relay node, the matrix A being defined as follows: * each line of matrix A represents a source packet, * each column of matrix A represents a packet actually received, * each element aii of matrix A represents the coefficient of source packet i of a fourth linear combination of source packages making it possible to obtain the packet actually received j - solving said linear system by a predetermined method - if the linear system admits a solution, determining said uxth linear combination of redundant and useful packets, depending on the column vector (3 of said solution. Thus, the transparent operation of construction of the reconstituted resulting packet makes it possible to end in a systematic way if the linear system considered admits a solution. Advantageously, if said second linear combination of redundant and useful packets does not exist, said step of constructing a reconstructed resulting packet comprises the steps of: a) constructing a resulting packet containing source packets not contained in the packet predetermined result; 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 reconstructed result packet constructed in step a); C) depending on the information obtained in step b), selecting the reconstructed resultant packet constructed in step a) or repeating step a) to construct another resulting packet. 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 construct is not feasible, the relay node tries to build a resulting packet that has no influence on the network, that is, that does not decrease the number source packages that can decode the destination nodes. This construction 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.

Avantageusement, l'étape a) comprend des étapes consistant à : i) déterminer une cinquième combinaison linéaire prédéterminée de paquets sources, permettant d'obtenir ledit paquet résultant contenant des paquets sources non contenus dans le paquet résultant prédéterminé ; ii) construire un système linéaire A(3 = g, où (3 est un vecteur colonne des coefficients de ladite deuxième combinaison linéaire de paquets redondants et utiles à déterminer, où g est un vecteur colonne des coefficients de ladite cinquième combinaison linéaire prédéterminée de paquets sources, et où A est une matrice de dimension (M,1), avec M le nombre de paquets sources et 1 le nombre de paquets effectivement reçus par ledit noeud relais donné, la matrice A étant définie de la manière suivante : * chaque ligne de la matrice A représente un paquet source, * chaque colonne de la matrice A représente un paquet effectivement reçu, * chaque élément aii de la matrice A représente le coefficient du paquet source i d'une sixième combinaison linéaire de paquets sources permettant d'obtenir le paquet effectivement reçu j ; iii) résoudre ledit système linéaire par une méthode prédéterminée ; 25 30 iv) si le système linéaire admet une solution, déterminer ladite deuxième combinaison linéaire de paquets redondants et utiles, en fonction du vecteur colonne (3 de ladite solution, sinon réitération de l'étape i) avec une autre cinquième combinaison linéaire prédéterminée de paquets sources. Advantageously, step a) comprises the steps of: i) determining a fifth predetermined linear combination of source packets, to obtain said resulting packet containing source packets not contained in the predetermined resulting packet; ii) constructing a linear system A (3 = g, where (3 is a column vector of the coefficients of said second linear combination of redundant and useful packets to be determined, where g is a column vector of the coefficients of said fifth predetermined linear combination of packets sources, and where A is a matrix of dimension (M, 1), with M the number of source packets and 1 the number of packets actually received by said given relay node, the matrix A being defined as follows: * each line of matrix A represents a source packet, * each column of matrix A represents a packet actually received, * each element aii of matrix A represents the coefficient of the source packet i of a sixth linear combination of source packages making it possible to obtain the package actually received; iii) resolving said linear system by a predetermined method; iv) if the linear system admits a solution, determining adite second linear combination of redundant and useful packets, depending on the column vector (3 of said solution, if not reiteration of step i) with another fifth predetermined linear combination of source packets.

Ainsi, l'opération (non transparente mais sans impact) de construction du paquet résultant reconstitué permet d'aboutir de manière systématique si l'un des systèmes linéaires, considérés lors d'itérations successives, admet une solution. De façon avantageuse, dans l'étape b), ladite information relative au schéma de codage réseau modifié, qui résulterait de l'envoi du paquet résultant reconstitué construit à l'étape a), est la somme du nombre de paquets sources décodables par l'ensemble des noeuds destinations du réseau si le paquet résultant reconstitué construit à l'étape a) est supposé envoyé. Dans l'étape c, le paquet résultant reconstitué construit à l'étape a) est sélectionné si ladite information relative au schéma de codage réseau modifié est égale au nombre de noeuds sources dans le réseau multiplié par le nombre de noeuds destination dans le réseau. Ainsi, le test sur l'information (relative au schéma de codage réseau modifié) permet d'assurer que l'opération (non transparente) est sans impact sur la capacité du réseau (c'est-à-dire le nombre de paquets sources décodables par l'ensemble des noeuds destinations). Thus, the operation (not transparent but without impact) of construction of the resulting reconstituted package allows to achieve systematic 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 constructed in step a), is the sum of the number of decodable source packets by the set of destination nodes of the network if the resulting reconstructed packet constructed in step a) is assumed to be sent. In step c, the reconstructed resulting packet constructed 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. 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).

Avantageusement, si ladite deuxième combinaison linéaire de paquets redondants et utiles n'existe pas, ladite étape consistant à construire un paquet résultant reconstitué comprend des étapes consistant à : - construire un premier paquet résultant, différent du paquet résultant prédéterminé mais contenant uniquement des paquets sources inclus dans le paquet résultant prédéterminé ; - obtenir une première information relative, pour au moins un autre noeud participant au schéma de codage réseau prédéterminé, à un schéma de codage réseau modifié qui résulterait de l'envoi du premier paquet résultant, le premier paquet résultant étant associé à ladite première information sur le schéma de codage réseau modifié ; - parmi le ou les paquets non sélectionné(s) à l'étape c) et contenant des paquets sources non contenus dans le paquet résultant prédéterminé, sélectionner un deuxième paquet résultant, en fonction de ladite information, obtenue à l'étape b) pour chaque paquet non sélectionné à l'étape c), sur le schéma de codage réseau modifié, le deuxième paquet résultant étant associé à une deuxième information relative au schéma de codage réseau modifié ; - sélectionner entre les premier et deuxième paquets résultants, en fonction des première et deuxième informations relatives au schéma de codage réseau modifié. Advantageously, if said second linear combination of redundant and useful packets does not exist, said step of constructing a reconstituted resulting packet comprises steps of: - constructing a first 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 resulting packet, the first resulting packet being associated with said first information on the modified network coding scheme; - among the packet or packets not selected in step c) and containing source packets not contained in the predetermined resulting packet, selecting a second resulting packet, based on said information, obtained in step b) for each packet not selected in step c), on the modified network coding scheme, the second resulting packet being associated with a second piece of information relating to the modified network coding scheme; selecting between the first and second resulting packets, according to the first and second information relating to the modified network coding scheme.

De cette façon, l'opération effectuée dans le noeud relais donné (envoi du paquet résultant reconstitué au lieu du paquet résultant prédéterminé) n'est pas transparente et a un impact sur la capacité du réseau, mais cet impact est minimisé. En d'autres termes, si aucune construction, qui n'ait pas d'impact sur le réseau, n'est possible, le noeud relais construit le paquet qui a le moins d'impact sur le réseau, c'est-à-dire celui qui dégrade le moins le réseau (toujours en nombre de paquets sources décodables pour l'ensemble des noeuds destination). Dans ce cas, le noeud relais doit aussi notifier aux autres noeuds que le paquet résultant qu'il envoie ne se base pas sur la combinaison linéaire prédéterminée. De façon avantageuse, si ladite deuxième combinaison linéaire de paquets redondants et utiles n'existe pas, ladite étape consistant à construire un paquet résultant reconstitué comprend une étape consistant à : - construire un paquet résultant, différent du paquet résultant prédéterminé mais contenant uniquement des paquets sources inclus dans le paquet résultant prédéterminé. Dans cette variante, si une opération transparente n'est pas possible, le noeud relais donné effectue directement une opération qui a un impact sur la capacité du réseau, mais cet impact est minimisé. Dans ce cas, le noeud relais doit aussi notifier aux autres noeuds que le paquet résultant qu'il envoie ne se base pas sur la combinaison linéaire prédéterminée. Avantageusement, si le paquet résultant reconstitué n'est pas identique au paquet de données résultant prédéterminé, le procédé comprend une étape supplémentaire consistant à transmettre une notification identifiant les différences entre la combinaison linéaire de paquets sources représentative dudit paquet résultant prédéterminé, et la combinaison linéaire de paquets sources représentative dudit paquet résultant reconstitué. Ainsi, tous les autres noeuds (relais ou destination) qui sont situés en aval du noeud relais donné et qui reçoivent le paquet résultant reconstitué ainsi que la notification correspondante, sont capables de déterminer comment le schéma de codage réseau a été modifié (temporairement) dans le noeud relais donné. Dans un autre mode de réalisation, l'invention concerne un procédé de codage réseau dans un réseau maillé comprenant au moins un noeud destination qui, selon un schéma de codage réseau prédéterminé, s'attend à recevoir en entrée une pluralité de paquets de données et doit générer en sortie une pluralité de paquets sources décodés obtenus chacun selon une combinaison linéaire prédéterminée d'une partie de ladite pluralité de paquets de données, les paquets de données appartenant à ladite partie étant dits paquets utiles et les paquets de données n'appartenant pas à ladite partie étant dits paquet redondants, chacun des paquets de données attendus en entrée étant formé, selon ledit schéma de codage réseau prédéterminé, par une combinaison linéaire d'un ou plusieurs paquets sources, les paquets sources étant émis par des noeuds sources. Ledit procédé est mis en oeuvre par au moins un noeud destination donné et comprend des étapes consistant à : - détecter si au moins un paquet utile est manquant ou qu'il a été reçu modifié de sorte que la combinaison linéaire du ou des paquets sources formant ledit paquet utile modifié ne soit pas conforme au schéma de codage réseau prédéterminé ; - dans le cas d'une détection positive, décoder les paquets de données utiles reçus, en fonction d'un schéma de codage réseau modifié, pour obtenir au moins un paquet source décodé. Ainsi, ce mode de réalisation particulier de l'invention repose sur une approche tout à fait nouvelle et inventive consistant à utiliser, au niveau des noeuds destination, les paquets reçus des liens non compris dans le schéma de codage réseau prédéterminé, appelé paquets redondants (paquets non utiles), et donc normalement non utilisés par les noeuds destination (pas pris en compte dans l'obtention de paquets sources décodés) et à effectuer de nouvelles opérations avec ces paquets redondants pour limiter l'impact de la perte de lien. En d'autres termes, au niveau des noeuds destination, l'idée clé est d'utiliser les paquets redondants si la perte d'un lien touche la réception d'un paquet utile. Ainsi, à la détection d'une perte de lien (détection de l'impossibilité de générer le paquet source décodé prédéterminé), on utilise un schéma de codage réseau alternatif et provisoire (schéma de codage réseau modifié) différent du schéma de codage prédéterminé. Ceci permet de limiter l'impact de ce changement provisoire de schéma de codage réseau. Avantageusement, ladite étape consistant à détecter si au moins un paquet utile est manquant ou qu'il a été reçu modifié, comprend une étape consistant à, pour au moins un paquet utile effectivement reçu : - détecter une notification reçue associée audit paquet utile effectivement reçu, ladite notification identifiant les différences entre la combinaison linéaire de paquets sources représentative du paquet utile attendu en entrée, et la combinaison linéaire de paquets sources représentative dudit paquet utile effectivement reçu. Ainsi, le noeud destination modifie son schéma de codage prédéterminé à la réception d'une notification associée à un paquet reçu en entrée, afin de prendre en compte la nouvelle combinaison de ce paquet reçu, de quantifier son impact sur le schéma de codage prédéterminé, et de modifier celui-ci afin de décoder un maximum de paquets sources. Dans un autre mode de réalisation, l'invention concerne un produit programme d'ordinateur téléchargeable depuis un réseau de communication et/ou enregistré sur un support lisible par ordinateur et/ou exécutable par un processeur. Ce produit programme d'ordinateur comprend des instructions de code de programme pour la mise en oeuvre du procédé précité (dans l'un quelconque de ses différents modes de réalisation), lorsque ledit programme est exécuté sur un ordinateur. Dans un autre mode de réalisation, l'invention concerne un moyen de stockage lisible par ordinateur, éventuellement totalement ou partiellement amovible, stockant un programme d'ordinateur comprenant un jeu d'instructions exécutables par un ordinateur pour mettre en oeuvre le procédé précité (dans l'un quelconque de ses différents modes de réalisation). Dans un autre mode de réalisation, l'invention concerne un noeud relais compris dans un réseau maillé et participant à un procédé de codage réseau dans ledit réseau maillé, ledit noeud relais, selon un schéma de codage réseau prédéterminé, s'attendant à recevoir en entrée une pluralité de paquets de données et devant générer en sortie un paquet résultant prédéterminé obtenu selon une première combinaison linéaire prédéterminée d'une partie de ladite pluralité de paquets de données, les paquets de données appartenant à ladite partie étant dits paquets utiles et les paquets de données n'appartenant pas à ladite partie étant dits paquet redondants, chacun des paquets de données attendus en entrée étant formé, selon ledit schéma de codage réseau prédéterminé, par une combinaison linéaire d'un ou plusieurs paquets sources, les paquets sources étant émis par des noeuds sources. Ledit noeud relais comprend : - des moyens de détection, permettant de détecter si au moins un paquet utile est manquant ou qu'il a été reçu modifié de sorte que la combinaison linéaire du ou des paquets sources formant ledit paquet utile modifié ne soit pas conforme au schéma de codage réseau prédéterminé ; - des moyens de construction, activés dans le cas d'une détection positive, permettant de construire un paquet résultant reconstitué en utilisant, selon un schéma de codage réseau modifié, tout ou partie des paquets redondants ; - des moyens de transmission, permettant de transmettre le paquet résultant reconstitué. Dans un autre mode de réalisation, l'invention concerne un noeud destination compris dans un réseau maillé et participant à un procédé de codage réseau dans ledit réseau maillé, ledit noeud destination, selon un schéma de codage réseau prédéterminé, s'attendant à recevoir en entrée une pluralité de paquets de données et devant générer en sortie une pluralité de paquets sources décodés obtenus chacun selon une combinaison linéaire prédéterminée d'une partie de ladite pluralité de paquets de données, les paquets de données appartenant à ladite partie étant dits paquets utiles et les paquets de données n'appartenant pas à ladite partie étant dits paquet redondants, chacun des paquets de données attendus en entrée étant formé, selon ledit schéma de codage réseau prédéterminé, par une combinaison linéaire d'un ou plusieurs paquets sources, les paquets sources étant émis par des noeuds sources. Ledit noeud destination comprend : - des moyens de détection, permettant de détecter si au moins un paquet utile est manquant ou qu'il a été reçu modifié de sorte que la combinaison linéaire du ou des paquets sources formant ledit paquet utile modifié ne soit pas conforme au schéma de codage réseau prédéterminé ; et - des moyens de décodage, activés en cas de détection positive, permettant de décoder les paquets de données utiles reçus, en fonction d'un schéma de codage réseau modifié, pour obtenir au moins un paquet source décodé. 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 construction, which does not have an impact on the network, is possible, the relay node builds 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, if said second linear combination of redundant and useful packets does not exist, said step of constructing a reconstructed resultant packet comprises a step of: - constructing a resulting packet, different from the predetermined resulting packet but containing only packets sources included in the resulting predetermined 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. Advantageously, if the resulting reconstructed packet is not identical to the predetermined resulting data packet, the method comprises an additional step of transmitting a notification identifying the differences between the linear combination of source packets representative of said predetermined resulting packet, and the linear combination. source packet representative of said reconstructed resultant packet. Thus, all the other nodes (relay or destination) which are located downstream of the given relay node and which receive the reconstituted resulting packet as well as the corresponding notification, are able to determine how the network coding scheme has been modified (temporarily) in the relay node given. 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 a plurality of decoded source packets each obtained in a predetermined linear combination of a portion of said plurality of data packets, the data packets belonging to said portion being said to be useful packets and the non-owned data packets said portion being said redundant packet, each of the expected data packets being formed, according to said predetermined network coding scheme, by a linear combination of one or more source packets, the source packets being transmitted by source nodes. The method is implemented by at least one destination node and comprises the steps of: - detecting whether at least one useful packet is missing or received modified so that the linear combination of the source packet (s) forming said modified useful packet does not conform to the predetermined network coding scheme; in the case of a positive detection, decoding the received useful data packets, according to a modified network coding scheme, to obtain at least one decoded source packet. Thus, this particular embodiment of the invention is based on a completely new and inventive approach of using, at the destination node level, received packets links not included in the predetermined network coding scheme, called redundant packets ( not useful packets), and thus normally not used by the destination nodes (not taken into account in obtaining decoded source packets) and to perform new operations with these redundant packets to limit the impact of the loss of link. In other words, at the destination node level, the key idea is to use the redundant packets if the loss of a link touches the reception of a useful packet. Thus, upon detecting a loss of link (detection of the impossibility of generating the predetermined decoded source packet), an alternative and provisional network coding scheme (modified network coding scheme) different from the predetermined coding scheme is used. This makes it possible to limit the impact of this temporary change of network coding scheme. Advantageously, said step of detecting whether at least one useful packet is missing or has been received modified comprises a step consisting of, for at least one useful packet actually received: detecting a received notification associated with said useful packet actually received , said notification identifying the differences between the linear combination of source packets representative of the expected useful packet input, and the linear combination of source packets representative of said useful packet actually received. Thus, the destination node modifies its predetermined coding scheme on receipt of a notification associated with a packet received as input, in order to take into account the new combination of this received packet, to quantify its impact on the predetermined coding scheme, and modify it to decode a maximum 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 first predetermined linear combination of a portion of said plurality of data packets, the data packets belonging to said portion being said useful packets and the packets of data not belonging to said part being said to be redundant packet, each of the expected data packets being formed, according to said predetermined network coding scheme, by a linear combination of one or more source packets, the source packets being transmitted by source nodes. Said relay node comprises: detection means, making it possible to detect whether at least one useful packet is missing or has been received modified so that the linear combination of the source packet or packets forming said modified useful packet does not comply the predetermined network coding scheme; - building means, activated in the case of a positive detection, for constructing a reconstructed resultant packet using, in accordance with a modified network coding scheme, all or part of the redundant packets; transmission means for transmitting the resulting reconstituted packet. 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 receive in inputting a plurality of data packets and having to output a plurality of decoded source packets each obtained in a predetermined linear combination of a portion of said plurality of 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 being formed, according to said predetermined network coding scheme, by a linear combination of one or more source packets, the source packets being issued by source nodes. Said destination node comprises: detection means, for detecting whether at least one useful packet is missing or has been received modified so that the linear combination of the source packet (s) forming said modified useful packet does not comply the predetermined network coding scheme; and decoding means, activated in case of positive detection, for decoding the received useful data packets, according to a modified network coding scheme, to obtain at least one decoded source packet.

Plus généralement, le noeud relais et le noeud destination selon l'invention comprennent des moyens de mise en oeuvre des procédés tels que décrits précédemment (dans l'un quelconque de leurs différents modes de réalisation). 5. LISTE DES FIGURES D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture de 15 la description suivante, donnée à titre d'exemple indicatif et non limitatif, et des dessins annexés, dans lesquels : - la figure 1 représente un exemple de réseau maillé sans fil dans lequel peut être mise en oeuvre la technique de codage réseau de l'invention ; - la figure 2 représente l'architecture d'un dispositif (noeud relais ou noeud destination) selon un mode de réalisation particulier de l'invention ; - la figure 3 décrit la structure d'un paquet notifiant une modification du schéma de codage prédéterminé, selon un mode de réalisation particulier de l'invention ; - les figures 4a, 4b et 4c décrivent des algorithmes, mis en oeuvre dans un noeud central, un noeud relais et un noeud destination respectivement, de construction d'un schéma de codage réseau prédéterminé, au démarrage du système ; - la figure 5 présente un organigramme d'un procédé de codage réseau selon un mode de réalisation particulier de l'invention, mis en oeuvre par un noeud relais pour construire et transmettre un paquet résultant ; - la figure 6 décrit un algorithme de reconstitution d'une combinaison locale, correspondant à l'étape 545 de la figure 5 ; 20 25 30 - la figure 7 décrit un algorithme de détermination d'une nouvelle combinaison locale à partir d'une combinaison globale, correspondant à l'étape 635 de la figure 6 ; - la figure 8 décrit un algorithme d'attribution d'un indice de confiance à une combinaison linéaire locale, correspondant à l'étape 740 de la figure 7 ; - la figure 9 décrit un algorithme de sélection de la combinaison linéaire globale qui a le moins d'impact sur le réseau, correspondant à l'étape 765 de la figure 7 ; - la figure 10 décrit un algorithme de reconstitution d'une combinaison locale associée à une combinaison globale la plus proche d'une autre combinaison globale, correspondant à l'étape 905 de la figure 9 ; - la figure 11 présente un organigramme d'un procédé de codage réseau selon un mode de réalisation particulier de l'invention, mis en oeuvre par un noeud destination pour décoder les paquets sources (c'est-à-dire obtenir des paquets sources décodés) ; et - la figure 12, correspondant à l'étape 810 de la figure 8 ou à l'étape 1145 de la figure 11, décrit un algorithme de détermination du nombre de paquets sources décodables, et par suite de détermination de la matrice de décodage associée. 6. DESCRIPTION DÉTAILLÉE Sur toutes les figures du présent document, les éléments et étapes identiques sont désignés par une même référence numérique. La figure 1 représente un exemple de réseau maillé sans fil dans lequel peut être mise en oeuvre la technique de codage réseau de l'invention. Le protocole d'accès au médium est de type TDMA (pour Time Division Multiple Access en anglais, ou accès multiple par répartition dans le temps en français), où durant une période fixe, appelée supertrame , chaque noeud du réseau a un accès unique au médium durant un temps de parole fixe appelée intervalle de temps (ou slot en anglais). Ce réseau est composé de trois noeuds sources, nommés respectivement NS 1, NS2 et NS3, et six noeuds qui sont à la fois des noeuds relais et des noeuds destinations, nommés NR/D1,..,NR/D6. Chaque lien de communication est représenté par une flèche indiquant le sens de la transmission. 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 appear on reading the following description, given by way of indicative and nonlimiting example, and the appended drawings, in which: FIG. example of a 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 flowchart of a network coding method according to a particular embodiment of the invention, implemented by a relay node to construct and transmit a resulting packet; FIG. 6 describes an algorithm for reconstituting a local combination, corresponding to step 545 of FIG. 5; Figure 7 depicts an algorithm for determining a new local combination from a global combination, corresponding to step 635 of Figure 6; FIG. 8 describes an algorithm for assigning a confidence index to a local linear combination, corresponding to step 740 of FIG. 7; FIG. 9 describes an algorithm for selecting the overall linear combination that has the least impact on the network, corresponding to step 765 of FIG. 7; FIG. 10 describes an algorithm for reconstituting a local combination associated with a global combination closest to another global combination, corresponding to step 905 of FIG. 9; FIG. 11 presents a flowchart of a network coding method according to a particular embodiment of the invention, implemented by a destination node for decoding the source packets (that is to say obtaining decoded source packets) ); and FIG. 12, corresponding to step 810 of FIG. 8 or step 1145 of FIG. 11, describes an algorithm for determining the number of decodable source packets, and consequently for determining the associated decoding matrix. . 6. 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 during a fixed period, called superframe, each node of the network has a unique access to 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.

Les quatre liens de communications en trait plein (comme par exemple entre les noeuds NS1 et NR/D1) représentent des paquets composés uniquement d'un paquet source provenant du noeud NS 1. Les trois liens de communications en petit pointillé (comme par exemple entre les noeuds NS2 et NR/D4) représentent des paquets composés uniquement d'un paquet source provenant du noeud NS2. Les deux liens de communications en grand pointillé (comme par exemple entre les noeuds NS3 et NR/D2) représentent des paquets composés uniquement d'un paquet source provenant du noeud NS3. 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. The three links of communications in small dots (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.

Les cinq autres liens de communications (par exemple entre les noeuds NR/D1 et NR/D3) représentent des paquets ayant subi du codage réseau et donc contenant une combinaison linéaire d'au moins deux paquets sources. Ne sont pas représentés des liens de communications qui sont soit victimes de masquages permanents, soit non utilisables du fait du protocole TDMA et des temps de parole successifs accordés à chaque noeud, les noeuds sources émettant en premier dans l'ordre de leur numérotation et ensuite tous les noeuds relais également dans l'ordre de leur numérotation. La figure 2 représente l'architecture d'un dispositif (noeud relais ou noeud destination) selon un mode de réalisation particulier de l'invention. Ce dispositif est représenté par le bloc 210, les blocs 230 (application) et 240 (émetteur/récepteur Radio Fréquence) correspondant à l'environnement de ce dispositif. L'interface Homme/Machine 212 permet à l'utilisateur de donner le graphe représentant le réseau afin de calculer le schéma de codage réseau de référence avec l'algorithme de Ford-Fulkerson. Ce schéma de codage réseau sera ensuite partagé entre tous les noeuds du réseau. La mémoire de données 216 permet de stocker les différentes copies des données émises par les noeuds sources et les différents noeuds relais. Ces données sont reçues par l'émetteur/récepteur Radio Fréquence 240 et transitent par le récepteur de paquets radio 215. Cette mémoire 216 permet également de stocker les matrices des différents noeuds intervenant dans le processus de codage réseau. 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. 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.

Le module de gestion de paquets de codage réseau, référencé 217, qui est segmenté en quatre sous modules, gère, aussi bien au niveau des noeuds relais que des noeuds destinations, les paquets de codage réseau. Le premier sous module 218 est un analyseur de notification permettant de savoir si le paquet reçu correspond bien au paquet attendu ou si des coefficients liés au codage réseau ont été modifiés. Le second sous module 219 permet lui la mise à jour des coefficients de codage réseau à utiliser soit pour la retransmission soit pour le décodage, en lieu et place des coefficients de référence stockés dans la mémoire de données 216. La mise à jour de ces coefficients s'effectue après l'analyse d'une notification correspondant à un paquet reçu. Le troisième sous module 220, de production de paquet codé, est utilisé par les noeuds relais. Il permet de générer le paquet résultant qui doit être envoyé. Ce paquet résultant est fonction (combinaison linéaire) de certains paquets reçus et de leurs coefficients associés. Une fois produit, le paquet résultant est stocké en mémoire de données afin d'être émis par le transmetteur de paquet radio 214. Le quatrième sous module 221 est utilisé lors de la phase de décodage. Il permet de construire une matrice de décodage en fonction des paquets reçus et de leurs coefficients associés (stockés dans la mémoire de donnée), et d'extraire de cette matrice les différents paquets sources. Une fois décodés, les paquets sources sont transmis à l'application 230 par le CPU 213. La figure 3 décrit la structure d'un paquet notifiant une modification du schéma de codage réseau prédéterminé. Dans un régime stable où aucune perte de paquet n'est détectée, un paquet est constitué uniquement d'une partie donnée 310, partie dans laquelle l'information transmise par les noeuds sources ou par les noeuds relais est contenue. Dans le cadre de la présente invention, cette partie donnée 310 est une combinaison linéaire des paquets sources envoyés par les noeuds sources, combinaison linéaire prédéterminée à l'initialisation du système. Si la partie données 310 ne contient pas cette combinaison linéaire prédéterminée de paquets sources (à cause d'une perte de lien), une partie notification 305 est ajoutée pour indiquer les coefficients de la combinaison linéaire qui ont été modifiés. Il est donc à noter que cette partie notification 305 n'est pas systématiquement présente dans le paquet. Pour chaque coefficient modifié, une information est introduite dans la partie notification 305. Cette information contient un identifiant 315 (respectivement 325) du paquet source associé au coefficient, ainsi que la nouvelle valeur du coefficient 320 (respectivement 330). Dans le cas particulier où un paquet source manque, la valeur du coefficient est mise à zéro. Les figures 4a, 4b et 4c décrivent des algorithmes, mis en oeuvre dans un noeud central, un noeud relais et un noeud destination respectivement, de construction d'un schéma de codage réseau prédéterminé, au démarrage du système. Le noeud central, qui est un des noeuds présents de la figure 1 (par exemple un des noeuds sources), a pour fonction de construire le schéma de codage réseau prédéterminé et de le diffuser à l'ensemble des autres noeuds (tel que décrit dans la figure 4a). A la réception de ce schéma de codage réseau par les autres noeuds du réseau, les noeuds relais stockent celui-ci (tel que décrit dans la figure 4b) et les noeuds destinations également (tel que décrit dans la figure 4c). On présente maintenant, en relation avec la figure 4a, l'algorithme mis en oeuvre dans le noeud central. A l'initialisation du système (étape 405), le noeud central récupère (étape 410) la topologie du réseau (c'est-à-dire récupère la qualité des communications entre les noeuds), la liste des noeuds sources et la liste des noeuds destinations. Cette topologie peut être connue des noeuds du réseau par construction, si le réseau est fixe et si le nombre de noeuds est constant. Il est aussi certain que ces informations peuvent être introduites par l'utilisateur après l'installation d'un système. Puis, dans l'étape 415, le noeud central construit le graphe de réseau G à partir de la topologie du réseau. Si la qualité d'une transmission entre deux entités est considérée bonne, par exemple si le rapport signal sur bruit (en anglais Signal Noise Ratio ) ou la puissance du signal reçu (en anglais Radio Signal Strength Indication ) est supérieur à un seuil donné (dépendant du type de la radio utilisée), la transmission est considérée valide, sinon non valide. Le graphe est alors construit de la manière suivante : chaque entité communicante est modélisée par un noeud du graphe et chaque communication considérée valide entre deux entités est modélisée par un lien entre deux noeuds (et donc chaque communication considérée non valide n'est pas modélisée dans le graphe). Puis, dans l'étape 420, le noeud central détermine le schéma de codage réseau prédéterminé. La méthode est expliquée dans la demande de brevet US2005/0010675 et reprise dans de nombreux articles de l'état de la technique. Les étapes sont les suivantes : > Rechercher les chemins disjoints Uj entre l'ensemble S des noeuds sources et chaque noeud destination Dj ; - Construction du sous-graphe G' de G ne contenant que les sommets et les liens appartenant à au moins un ensemble Uj ; - Déterminer les coefficients des combinaisons linéaires de telle manière que l'ensemble des matrices destinations soit de rang égal aux nombre de noeuds sources. Puis, dans l'étape 425, le noeud central diffuse les coefficients selon un protocole de diffusion prédéterminé. Plusieurs techniques de diffusion sont connues de l'homme du métier pour diffuser des informations dans un réseau maillé (par exemple de type inondation de données dans un protocole maillé, en anglais flooding protocol ). Pour un noeud relais (figure 4b), à la fin de l'étape de diffusion (425) par le noeud central, c'est-à-dire à la réception (étape 430) par le noeud relais des coefficients des combinaisons linéaires de l'ensemble des noeuds du réseau, le noeud relais garde en mémoire sa combinaison locale cmb_loc_pred, qu'il devra utiliser par la suite pour construire un paquet résultant prédéterminé, et construit une matrice relais et une matrice destination (étape 435). La matrice relais contient les combinaisons globales des paquets résultants des noeuds sources ou noeuds relais ayant eu accès au médium, durant la supertrame, avant la date d'accès au médium du noeud relais considéré. Les autres paquets, c'est-à-dire ceux envoyés par des noeuds qui ont eu l'accès au médium après le noeud relais considéré, ne sont pas pris en compte car ils ne sont pas utilisables (à cause de la contrainte que les combinaisons ne s'effectuent qu'avec des données envoyées durant la supertrame courante). De plus, les lignes correspondant aux paquets intervenants dans la combinaison cmb_loc_pred, c'est-à-dire les paquets utiles, sont marquées et sont considérées utiles. La matrice destination contient l'ensemble des combinaisons globales des paquets résultants reçus par les noeuds destinations. Ces deux matrices sont expliquées ci-dessus dans le paragraphe intitulé Codage réseau . Pour un noeud destination (figure 4c), à la fin de l'étape de diffusion (425) par le noeud central, c'est-à-dire à la réception (étape 440) par le noeud destination des coefficients des combinaisons linéaires de l'ensemble des noeuds du réseau, le noeud destination construit une matrice destination (étape 445). A partir de cette matrice destination et de l'algorithme de Gauss Jordan, le noeud destination définit (étape 450) une sous-matrice carrée de dimension (M,M) de D, notée C, inversible, de telle manière qu'on ait : Y' = C X, avec Y' un sous-vecteur du vecteur colonne Y des paquets reçus et X le vecteur des paquets sources, le sous-vecteur Y' incorporant uniquement les paquets reçus pris en compte dans C (les paquets utiles). De cette équation, on en déduit : X = C_' Y'. Le noeud destination garde en mémoire l'inverse de C, matrice appelée matrice de décodage qu'il utilisera directement à la réception des paquets. Après cette phase d'initialisation, chaque noeud source débute l'envoi des paquets sources sur le réseau, chaque noeud relais effectue sa combinaison locale et chaque noeud destination décode les paquets sources à partir de sa matrice de décodage. La figure 5 présente un organigramme d'un procédé de codage réseau selon un mode de réalisation particulier de l'invention, mis en oeuvre par un noeud relais pour construire et transmettre un paquet résultant. Les paramètres d'entrée sont les suivants : > Une pluralité de paquets combinés reçus, paquets combinant des paquets sources de la supertrame courante ; - La combinaison locale prédéterminée du noeud relais, noté cmb_loc_pred (ce qui inclut le sous-ensemble prédéterminé de paquets à combiner de la pluralité de paquets reçus) ; - La matrice relais R des combinaisons globales des paquets reçus avant l'accès au médium de ce noeud relais. Le paramètre de sortie est le paquet résultant, généré avec une notification si nécessaire (c'est-à-dire si cmb_loc_pred n'a pas pu être appliquée et qu'une modification a été nécessaire). 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 presents a flowchart of a network coding method according to a particular embodiment of the invention, implemented by a relay node to construct and transmit a resulting packet. The input parameters are as follows:> A plurality of received combined packets, packets combining source packets of the current super frame; - The predetermined local combination of the relay node, noted cmb_loc_pred (which includes the predetermined subset of packets to be combined of the plurality of received packets); The relay matrix R of the global combinations of the packets received before access to the medium of this relay node. The output parameter is the resulting package, generated with notification if necessary (that is, if cmb_loc_pred could not be applied and a change was necessary).

Cet algorithme se lance à une date fixée dans la supertrame (étape 500), c'est-à-dire à une date précédant l'accès au médium du noeud relais, période suffisante pour effectuer l'algorithme suivant (au détriment de ne pas prendre des paquets reçus si on estime que la période est trop courte entre la réception d'un paquet et l'envoi du paquet résultant). Dans l'étape 505, on détermine les paquets de données utiles non disponibles. Ce moyen se base par exemple sur des informations radio, telles que le rapport signal sur bruit (en anglais Signal Noise Ratio ) ou la puissance du signal reçu ( Radio Signal Strength Indication ). Si ces variables dépassent un seuil prédéfini, le paquet est considéré disponible, sinon non disponible. Puis, dans l'étape 510, on détermine la composition des paquets utiles disponibles. Si celui-ci n'a pas de notification (305, figure 3), la composition en paquets sources est donnée par la matrice de relais ; plus précisément, par la ligne correspondant au paquet reçu. Sinon, la notification est lue et on détermine la nouvelle composition du paquet en lisant les modifications indiquées par la notification, par rapport à la combinaison globale prédéterminée. A l'étape 515, une matrice de relais temporaire R' = r',i, valide uniquement pour l'exécution de cet algorithme dans la supertrame courante est créée si un paquet utile est considéré non disponible à l'étape 505 ou si un paquet utile a été modifié à l'étape 510. This algorithm starts at a fixed date in the superframe (step 500), that is to say at a date preceding the access to the medium of the relay node, sufficient time to perform the following algorithm (at the expense of not take packets received if it is estimated that the period is too short between receiving a packet and sending the resulting packet). In step 505, unavailable user data packets are determined. This means is based for example on radio information, such as the signal-on-noise ratio (Signal Noise Ratio) or the signal strength (Radio Signal Strength Indication). If these variables exceed a predefined threshold, the packet is considered available, if not available. Then, in step 510, the composition of the available useful packets is determined. If the latter does not have a notification (305, FIG. 3), the source packet composition is given by the relay matrix; more precisely, by the line corresponding to the received packet. Otherwise, the notification is read and the new composition of the packet is determined by reading the changes indicated by the notification, relative to the predetermined overall combination. In step 515, a temporary relay matrix R '= r', i, valid only for the execution of this algorithm in the current super frame is created if a useful packet is considered unavailable in step 505 or if a useful package was modified in step 510.

Elle est remplie de la manière suivante (étape 515) : - initialisation de la valeur des coefficients de la matrice relais temporaire à la valeur des coefficients de la matrice relais prédéterminée ; - les lignes correspondant aux paquets non disponibles, résultat de l'étape 505, deviennent des lignes nulles (tous les coefficients de la ligne sont mis à zéro) ; - les lignes correspondant aux paquets disponibles modifiés, résultat de l'étape 510, sont modifiées et prennent en compte les modifications de la notification : un élément r',i modifié signifie que le paquet associé à cette ligne a été modifié ; le paquet i a donc été reçu avec une notification. La colonne j correspond à l'identifiant (315 ou 325, figure 3) du paquet source 30 indiqué dans la notification. La nouvelle valeur de r',i correspond au coefficient (320 ou 330, figure 3) indiqué dans la notification. Dans l'étape 520, on vérifie si la matrice relais temporaire R' a été créée ou pas. Si oui, on passe à l'étape 530, sinon à l'étape 525. It is filled in the following manner (step 515): initialization of the value of the coefficients of the temporary relay matrix to the value of the coefficients of the predetermined relay matrix; the lines corresponding to the unavailable packets, result of step 505, become null lines (all the coefficients of the line are set to zero); the lines corresponding to the modified available packets, result of step 510, are modified and take into account the modifications of the notification: a modified element r ', i means that the packet associated with this line has been modified; package i has been received with a notification. Column j corresponds to the identifier (315 or 325, FIG. 3) of the source packet indicated in the notification. The new value of r ', i corresponds to the coefficient (320 or 330, figure 3) indicated in the notification. In step 520, it is checked whether the temporary relay matrix R 'has been created or not. If yes, proceed to step 530, otherwise step 525.

Dans l'étape 525, on construit le paquet résultant prédéterminé à partir des paquets reçus utiles et de la combinaison locale cmb_loc_pred. Ce paquet résultant prédéterminé sera envoyé au prochain accès au médium par le noeud relais. Par contre, si le test de l'étape 520 est positif, ceci indique qu'une perte de lien a eu lieu et a touché un paquet utile. La combinaison locale cmb_loc_pred n'est donc plus valide, une nouvelle est à définir. Pour cela, les paquets redondants reçus sont nécessaires. Dans un premier temps, l'algorithme détermine si les paquets redondants n'ont pas été impactés par une perte de liens, en exécutant les étapes 530 et 535 sur les paquets redondants (étapes identiques aux étapes 505 et 510 effectuées pour les paquets utiles). Puis l'étape 540 met à jour la matrice de relais temporaire R', de la même manière qu'à l'étape 515 effectuée pour les paquets utiles. A partir de la matrice de relais temporaire R', dans l'étape suivante 545, on reconstitue une nouvelle combinaison locale cmb_loc_nouv, on sélectionne les paquets reçus associés et on notifie les différences entre les combinaisons globales associées aux combinaisons locales cmb_loc_nouv et cmb_loc_pred (si différences !). Cette étape est expliquée ci-après en détail en relation avec la figure 6. Dans l'étape 550, on construit le paquet résultant à partir des paquets reçus sélectionnés et de la combinaison cmb_loc_nouv déterminée à l'étape 545. Si nécessaire, on construit également une notification (telle que décrite ci-dessus en relation avec la figure 3), pour indiquer la différence entre la combinaison envoyée et la combinaison prédéterminée. Ce paquet résultant et la notification (s'il y en a une) sont envoyés au prochain accès au médium par le noeud relais. Il est à noter que si la combinaison locale cmb_loc_nouv est la combinaison nulle, le noeud relais n'envoie pas de paquet résultant. La figure 6 correspond à l'étape 545 de la figure 5 et décrit l'algorithme de reconstitution d'une combinaison locale cmb_loc_nouv d'un noeud relais affecté par une perte de lien. In step 525, the predetermined resulting packet is constructed from the received useful packets and the local combination cmb_loc_pred. This predetermined resulting packet will be sent to the next access to the medium by the relay node. On the other hand, if the test of step 520 is positive, this indicates that a link loss has occurred and has hit a useful packet. The local combination cmb_loc_pred is therefore no longer valid, a new one has to be defined. For this, the redundant packets received are necessary. Initially, the algorithm determines whether the redundant packets have not been impacted by a loss of links, by executing the steps 530 and 535 on the redundant packets (steps identical to the steps 505 and 510 performed for the useful packets) . Then step 540 updates the temporary relay matrix R 'in the same manner as in step 515 performed for the useful packets. From the temporary relay matrix R ', in the next step 545, a new local combination cmb_loc_nouv is reconstructed, the associated received packets are selected and the differences between the global combinations associated with the local combinations cmb_loc_nouv and cmb_loc_pred are notified (if differences!). This step is explained below in detail in relation to FIG. 6. In step 550, the resulting packet is constructed from the selected received packets and the combination cmb_loc_nouv determined in step 545. If necessary, one builds also a notification (as described above in connection with Figure 3), to indicate the difference between the sent combination and the predetermined combination. This resulting packet and the notification (if there is one) are sent to the next access to the medium by the relay node. Note that if the local combination cmb_loc_nouv is the null combination, the relay node does not send a resulting packet. FIG. 6 corresponds to step 545 of FIG. 5 and describes the algorithm for reconstituting a local combination cmb_loc_nouv of a relay node affected by a loss of link.

Les paramètres d'entrée sont les suivants : - la combinaison locale prédéterminée du noeud relais, noté cmb_loc_pred (ce qui inclut le sous-ensemble prédéterminé de paquets à combiner de la pluralité de paquets reçus) ; - les matrices relais R et R' des combinaisons globales des paquets reçus avant l'accès au médium de ce noeud relais. Le paramètre de sortie est la nouvelle combinaison cmb_loc_nouv, et les paquets reçus associés. On rappelle qu'à une combinaison locale (liée aux paquets reçus) est associée une seule combinaison globale (liée aux paquets sources). Notons cmb_glob_pred la combinaison globale prédéterminée associée à la combinaison locale prédéterminée cmb_loc_pred. Au contraire, à une combinaison globale il est possible d'associer plusieurs combinaisons locales. Le but de l'invention est alors de trouver une nouvelle combinaison locale cmb_loc_nouv correspondant à la combinaison globale prédéterminée cmb_glob_pred (du fait que la combinaison locale prédéterminée cmb_loc_pred n'est plus disponible). Le principe est le suivant : d'une combinaison locale prédéterminée cmb_loc_pred, on détermine sa combinaison globale prédéterminée cmb_glob_pred et à partir de celle-ci, on détermine une nouvelle combinaison locale cmb loc nouv. The input parameters are as follows: - the predetermined local combination of the relay node, denoted cmb_loc_pred (which includes the predetermined subset of packets to be combined of the plurality of received packets); the relay matrices R and R 'of global combinations of the packets received before access to the medium of this relay node. The output parameter is the new combination cmb_loc_new, and the associated received packets. It is recalled that a local combination (linked to 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 object of the invention is then to find a new local combination cmb_loc_nouv corresponding to the predetermined global combination cmb_glob_pred (because the predetermined local combination cmb_loc_pred is no longer available). The principle is as follows: from a predetermined local combination cmb_loc_pred, one determines its predetermined global combination cmb_glob_pred and from this one determines a new local combination cmb loc nouv.

L'étape 605 vérifie si chaque paquet source de cmb_glob_pred est au moins dans un paquet reçu (condition nécessaire pour espérer reconstruire la combinaison globale cmb_glob_pred avec les paquets reçus). Pour cela, on vérifie qu'aucune colonne de la matrice R' correspondant à un paquet source de cmb_glob_pred n'est nulle (tous ses coefficients nuls). Si le test est positif (étape 610), on passe à l'étape 615 sinon à l'étape 625. Dans l'étape 615, on vérifie si une reconstitution rapide de cmb_glob_pred est possible par une nouvelle combinaison locale. Pour cela, on compare les lignes qui ont été modifiées entre R et R'. Pour chaque ligne modifiée et considérée utile pour la matrice R, on recherche si cette ligne de R est présente dans R' (forcément à une autre position de ligne car la ligne a été modifiée dans R'). Si oui, la nouvelle ligne est appelée ligne remplaçante. Si ce test est positif (étape 620), la reconstitution est transparente et une nouvelle combinaison locale est attribuée, cmb_loc_nouv (étape 640). Cette nouvelle combinaison locale est construite de la manière suivante : les valeurs des coefficients ne sont pas modifiées mais les coefficients ne sont plus attribués aux mêmes paquets reçus : les paquets correspondants aux lignes modifiées dans R' ne sont plus pris en compte et les coefficients correspondants aux paquets de ces dernières lignes sont maintenant attribués aux paquets des lignes remplaçantes. Si le test de l'étape 620 est négatif, on passe à l'étape 635. Dans l'étape 635, on reconstitue une combinaison locale cmb_loc_nouv. On tente de trouver dans un premier temps une combinaison locale correspondant à la combinaison globale prédéterminée. Si celle-ci réussit, la reconstitution est locale et est transparente pour les autres noeuds du réseau. Sinon, une notification est ajoutée au paquet résultant car la nouvelle combinaison locale cmb_loc_nouv correspond à une nouvelle combinaison globale. Cette étape 635 est décrite en détail ci-après en relation avec la figure 7. Step 605 checks whether each source package of cmb_glob_pred is at least in a received packet (a necessary condition to hope to reconstruct the global combination cmb_glob_pred with the 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 is positive (step 610), proceed to step 615 if not step 625. In step 615, it is checked whether rapid reconstitution of cmb_glob_pred is possible by a new local combination. For this, we compare the lines that have been modified between R and R '. For each line modified and considered useful for the matrix R, it is sought if this line of R is present in R '(necessarily at another line position because the line has been modified in R'). If so, the new line is called a successor line. If this test is positive (step 620), the reconstitution is transparent and a new local combination is assigned, cmb_loc_nouv (step 640). This new local combination 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 packets corresponding to the modified lines in R 'are no longer taken into account and the corresponding coefficients packets of these last lines are now assigned to the packets of the substitute lines. If the test of step 620 is negative, proceed to step 635. In step 635, a local combination cmb_loc_nouv is reconstituted. First, we try to find a local combination corresponding to the predetermined overall combination. If it succeeds, the reconstruction is local and is transparent for the other nodes of the network. Otherwise, a notification is added to the resulting packet because the new local combination cmb_loc_nouv is a new global combination. This step 635 is described in detail below in connection with FIG. 7.

Dans l'étape 625, on détermine une nouvelle combinaison locale cmb_loc_nouv associée à une combinaison globale cmb_glob_cand la plus proche de cmb_glob_pred car cette dernière ne peut être reconstituée avec les combinaisons globales de l'ensemble des paquets reçus (test de l'étape 610 négatif). On entend par plus proche : contenant le plus de paquets sources associés de cmb_glob_pred en interdisant des paquets sources non contenus dans cmb_glob_pred. Cette étape 625 est décrite en détail ci-après en relation avec la figure 10. Puis, on passe à l'étape 630, dans laquelle on notifie les paquets sources manquants contenus dans cmb_glob_pred et non contenus dans cmb_glob_cand. Ces paquets sources ne seront pas combinés dans le paquet résultant comme initialement prévu. Puis, fin de l'algorithme avec l'étape 640 qui mémorise la combinaison locale cmb loc nouv. La figure 7 correspond à l'étape635 de la figure 6 et décrit l'algorithme de détermination d'une nouvelle combinaison locale à partir d'une combinaison globale. Les paramètres d'entrée sont les suivants : > la combinaison locale prédéterminée du noeud relais cmb_loc_pred ; - la combinaison globale prédéterminée cmb_glob_pred donnée par le schéma de codage réseau à l'initialisation ; - la matrice relais R' des combinaisons globales des paquets reçus avant l'accès au médium de ce noeud relais. Le paramètre de sortie est une nouvelle combinaison locale cmb_loc_nouv relatif soit à cmb_glob_pred si c'est possible, soit à une autre combinaison globale proche de cmb_glob_pred (en terme de paquets sources). Il est à noter que cmb_loc_nouv ne peut être égale à cmb_loc_pred car R' est différent de R. Dans un premier temps (étape 705), le procédé sélectionne uniquement les 1 paquets reçus qui contiennent au moins un paquet source associé à cmb_glob_pred. Pour cela, la matrice R' est analysée ligne par ligne (une ligne représentant un message reçu). Sur la ligne courante testée i, on analyse s'il existe au moins un élément r'1i non nul avec j correspondant à une colonne d'un paquet source de cmb_glob_pred. Notons A la sous-matrice de R' engendrée par cette sélection (R' moins les lignes retirées). Dans une variante, cette étape 705 qui est une optimisation non indispensable, est omise. In step 625, a new local combination cmb_loc_nouv associated with a global combination cmb_glob_cand closest to cmb_glob_pred is determined because the latter can not be reconstituted with the global combinations of all the packets received (test of step 610 negative ). Closest means: Containing the most associated source packages of cmb_glob_pred by banning source packages not contained in cmb_glob_pred. This step 625 is described in detail below in connection with FIG. 10. Then, proceed to step 630, in which the missing source packets contained in cmb_glob_pred and not contained in cmb_glob_cand are notified. These source packages will not be combined in the resulting package as originally intended. Then, end of the algorithm with step 640 which stores the local combination cmb loc nouv. FIG. 7 corresponds to step 635 of FIG. 6 and describes the algorithm for determining a new local combination from a global combination. The input parameters are:> the predetermined local combination of the relay node cmb_loc_pred; the predetermined global combination cmb_glob_pred given by the network coding scheme upon initialization; the relay matrix R 'of the global combinations of the packets received before access to the medium of this relay node. The output parameter is a new local combination cmb_loc_nouv relative to either cmb_glob_pred if it is possible, or to another global combination close to cmb_glob_pred (in terms of source packages). It should be noted that cmb_loc_nouv can not be equal to cmb_loc_pred because R 'is different from R. At first (step 705), the method selects only the 1 received packets which contain at least one source package associated with cmb_glob_pred. For this, the matrix R 'is analyzed line by line (a line representing a message received). On the current line tested i, it is analyzed whether there is at least one non-zero element r'1i with j corresponding to a column of a source package of cmb_glob_pred. Note the sub-matrix of R 'generated by this selection (R' minus the lines removed). In a variant, this step 705, which is a non-essential optimization, is omitted.

Dans l'étape 710, on construit, à partir des paquets reçus restants à l'issue de l'étape 705, un système linéaire afin de déterminer les coefficients à attribuer à ces paquets. Notons (31,.., pi ces coefficients avec 1 le nombre de paquets reçus restants. Dans un premier temps, on essaie de construire une nouvelle combinaison locale cmb_loc_nouv associée à cmb_glob_pred. Pour chaque paquet source X1, il faut que le coefficient g1 associé à celui-ci dans cmb_glob_pred se retrouve dans la somme des paquets reçus de cmb_loc_nouv, c'est à dire qu'on doit avoir la relation : = g;, ]=1 pour chaque paquet source. On a donc un système linéaire : A(3 = g avec (3 le vecteur colonne des [(31,.., R1I, g=[gl,••,gM] le vecteur colonne de cmb_glob_pred et A une matrice de dimension (M,1) dont chaque coefficient aii est égal à r'i1. Rappelons que par définition gi est nul (respectivement non nul) si le paquet source associé n'est pas (respectivement est) dans cmb_glob_pred. Dans l'étape 715, on résout le système linéaire, créé dans l'étape 710, par la méthode de Gauss-Jordan. In step 710, from the received packets remaining at the end of step 705, a linear system is constructed to determine the coefficients to be assigned to these packets. Note (31, .., pi these coefficients with 1 the number of received packets remaining.) At first, we try to build a new local combination cmb_loc_nouv associated with cmb_glob_pred For each source package X1, it is necessary that the coefficient g1 associated to it in cmb_glob_pred is found in the sum of the packets received from cmb_loc_nouv, ie we must have the relation: = g ;,] = 1 for each source packet, so we have a linear system: A (3 = g with (3 the column vector of [(31, .., R1I, g = [gl, ••, gM] the column vector of cmb_glob_pred and A a matrix of dimension (M, 1) of which each coefficient aii is equal to r'i1 Remember that by definition gi is null (respectively non-zero) if the associated source package is not (respectively is) in cmb_glob_pred In step 715, we solve the linear system, created in l Step 710, by the method of Gauss-Jordan.

Puis le test de l'étape 720 vérifie que le système est compatible ou pas (admet une solution ou pas) (voir ci-dessus le paragraphe intitulé Résolution d'un système linéaire ). Si oui, on passe à l'étape 725, sinon à l'étape 760. Dans l'étape 725, on attribue alors les valeurs de [(31,.., (31] données par l'algorithme de Gauss-Jordan. Si le système admet une infinité de solutions, la valeur zéro est attribuée aux coefficients pi qui sont des inconnues secondaires. Puis, dans l'étape 730, on vérifie si la valeur des g1 du système linéaire résolu est bien nulle pour les paquets sources non associés à cmb_glob_pred. Si c'est le cas, ceci veut dire que la reconstitution du paquet a été transparente, on passe à l'étape 735. Si le test de l'étape 730 est négatif, on passe à l'étape 740. Ceci correspond au fait que nous avons trouvé une combinaison locale qui n'est pas associée à cmb_glob_pred (reconstitution non transparente). Des paquets sources ont été ajoutés dans cette combinaison locale qui ne sont pas dans cmb_glob_pred (le système linéaire de l'étape 720 n'a pas été résolu à la première itération). Then the test of step 720 verifies that the system is compatible or not (admits a solution or not) (see above the paragraph entitled Resolution of a linear system). If yes, proceed to step 725, otherwise step 760. In step 725, the values of [(31, .., (31] given by the Gauss-Jordan algorithm are then assigned. If the system admits an infinity of solutions, the value zero is assigned to the coefficients pi which are secondary unknowns, and then, in step 730, it is checked whether the value of the g1 of the linear system solved is zero for the non-source source packets. associated with cmb_glob_pred If this is the case, this means that the reconstitution of the packet has been transparent, we go to step 735. If the test of step 730 is negative, we go to step 740. This corresponds to the fact that we have found a local combination that is not associated with cmb_glob_pred (non-transparent reconstruction) Source packages have been added in this local combination that are not in cmb_glob_pred (the linear system of step 720 was not resolved at the first iteration).

Dans l'étape 735, on garde en mémoire la nouvelle combinaison locale cmb_loc_nouv donnée par définition par les valeurs de [(31,.., (31] et on marque l'utilité ou non aux paquets reçus ou à recevoir (les paquets associés aux coefficients non nuls sont marqué utiles, les autres sont marqués redondants). Puis fin de cet algorithme. In step 735, the new local combination cmb_loc_nouv given by definition by the values of [(31, .., (31] is kept in memory and the utility is indicated or not to the packets received or to receive (the associated packets non-zero coefficients are marked useful, others are marked redundant.) Then end of this algorithm.

Dans l'étape 740, on vérifie si les paquets sources ajoutés ont un impact ou pas sur le réseau. Ce test est décrit en détail ci-après en relation avec la figure 8. Si cet ajout n'a aucun impact, on passe à l'étape 745 sinon à l'étape 750. Dans l'étape 745, on notifie les coefficients des paquets sources différents entre le vecteur g et la combinaison globale cmb_glob_pred (les coefficients différents) puis on passe à l'étape 735. Dans l'étape 750, on mémorise la combinaison locale testée (mémorisation des [(31,.., pl]) et la combinaison globale testée (mémorisation des [g1,.., gM]) associée, ainsi que l'indice de confiance lié à cette combinaison locale testée (indice lié aussi à la combinaison globale testée, et donné par le test de l'étape 740) dans une liste appelée Scand, puis on passe à l'étape 755. In step 740, it is checked whether the added source packets have an impact or not on the network. This test is described in detail below in connection with FIG. 8. If this addition has no impact, step 745 is proceeded to if not at step 750. In step 745, the coefficients of the steps are notified. different source packets between the vector g and the global combination cmb_glob_pred (the different coefficients) then we go to step 735. In step 750, we memorize the local combination tested (storage of [(31, .., pl] ) and the overall combination tested (memorization of [g1, .., gM]) associated, as well as the confidence index related to this tested local combination (index also related to the overall combination tested, and given by the test of the step 740) in a list called Scand, then go to step 755.

Dans l'étape 755, on attribue des nouvelles valeurs pour les coefficients g; correspondant aux T paquets sources non associés à cmb_glob_pred (qui ont une valeur nulle dans celle-ci). Cette étape est associée à l'étape 760 qui vérifie si des valeurs pour les g; n'ont pas été testées. Plusieurs implémentations sont possibles pour ces deux étapes, comme par exemple : 1. On tire aléatoirement la valeur des T coefficients g; correspondant aux T paquets non associés sur le corps Fq à l'étape 755 (cette opération correspond à un essai) en vérifiant qu'on tire au moins une valeur non nulle. Puis, dans l'étape 760, on impose un nombre d'essais maximum. Si ce nombre d'essais maximum est franchi, le test est négatif, sinon positif. 2. On teste l'ensemble des valeurs possibles ce qui revient à tester (qT -1) possibilités. Quand ce nombre est atteint, on décide dans l'étape 760 que le test est négatif (sinon il est positif). L'implémentation 1 permet de limiter le temps de traitement mais n'est pas forcément optimale contrairement à la deuxième car des solutions peuvent être oubliées. L'implémentation 2 peut être très coûteuse en temps de traitement surtout en cas d'échec du test de l'étape 760. L'étape 765 sélectionne une combinaison locale par défaut associée à une combinaison globale qui impactera le moins possible le réseau. Cet algorithme est décrit en détail ci-après en relation avec la figure 9. Cette nouvelle combinaison locale est mémorisée dans la variable cmb_loc_nouv (étape 770), puis on passe à l'étape 775 dans laquelle on notifie les coefficients des paquets sources différents entre le vecteur g et la combinaison globale cmb_glob_pred (les coefficients différents). L'étape 775 correspond à la fin de cet algorithme. In step 755, new values are given for the coefficients g; corresponding to the T source packages not associated with cmb_glob_pred (which have a null value in it). This step is associated with step 760 which checks whether values for g; have not been tested. Several implementations are possible for these two steps, for example: 1. One draws randomly the value of the T coefficients g; corresponding to the T unassociated packets on the body Fq in step 755 (this operation corresponds to a test) by verifying that at least one non-zero value is drawn. Then, in step 760, a maximum number of tries is imposed. If this number of maximum tests is crossed, the test is negative, if not positive. 2. One tests the set of possible values which amounts to testing (qT -1) possibilities. When this number is reached, it is decided in step 760 that the test is negative (otherwise it is positive). The implementation 1 allows to limit the processing time but is not necessarily optimal unlike the second because solutions can be forgotten. Implementation 2 can be very expensive in processing time, especially in the event of failure of the test of step 760. Step 765 selects a default local combination associated with a global combination that will impact the network as little as possible. This algorithm is described in detail below in connection with FIG. 9. This new local combination is stored in the variable cmb_loc_nouv (step 770), then step 775 in which the coefficients of the different source packets are notified between the vector g and the global combination cmb_glob_pred (the different coefficients). Step 775 corresponds to the end of this algorithm.

La figure 8 décrit un algorithme d'attribution d'un indice de confiance à une combinaison linéaire locale, correspondant à l'étape 740 de la figure 7. L'indice de confiance mesure l'impact de la combinaison locale à envoyer sur le réseau. A l'initialisation du système, le schéma de réseau a été calculé de telle manière que tous les paquets sources envoyés dans le réseau peuvent être décodés par tous les noeuds destinations (note : la topologie du réseau n'est pas une contrainte dans la présente invention, elle peut même être surdimensionnée dans le contexte sans-fil, ce qui crée des paquets reçus redondants). Donc, si M est le nombre de noeuds sources (donc de paquets sources) et si N est le nombre de noeuds destinations, alors le nombre de paquets sources décodés dans le réseau est égal à : M * N. Cette variable, nombre de paquets sources décodés par le réseau, est l'indice de confiance de la combinaison locale. Pour mesurer cet indice, chaque noeud relais a besoin de l'ensemble des matrices de destination D; de tous les noeuds destinations du réseau. L'autre paramètre d'entrée est bien sûr la combinaison linéaire locale testée, appelée cmb_loc_test, mais plus spécifiquement la combinaison linéaire globale associée, notée cmb_glob_test, qui est différente de cmb_glob_pred. Le paramètre de sortie est l'indice de confiance de cmb_loc_test et par conséquent le fait de savoir si cmb_glob_test a un impact ou pas sur le réseau. Dans l'étape 805, on modifie les coefficients des matrices de destinations qui sont impactés par la combinaison cmb_glob_test. En d'autres termes, on modifie les éléments de chaque matrice de destination faisant intervenir les nouveaux coefficients de cmb_glob_test (modification de la ligne correspondant au paquet résultant que doit envoyer le noeud relais). Dans l'étape 810, on calcule l'indice de confiance de cmb_glob_test, c'est-à-dire le nombre de paquets sources décodables par l'ensemble des noeuds destinations. Le nombre de paquets sources décodables par un noeud destination D;, noté Nb_src_pkt_dec(D;), est déterminé par l'algorithme décrit ci-après en détail, en relation avec la figure 12. L'indice de confiance de cmb_glob_test, noté ind_conf(cmb_glob_test), est alors égal à : Ind_conf (cmb_glob_test) = ENb_src_pkt_dec(D;),i=1..N Cet indice est mémorisé à l'étape 815. Dans l'étape 820, on vérifie si l'indice de confiance de cmb_glob_test est égal à m * N. Si oui, cmb_glob_test n'a pas d'impact sur le réseau (étape 825), et le test de l'étape 740 de la figure 7 est positif. Sinon cmb_glob_test a un impact sur le réseau (étape 830), et le test de l'étape 740 de la figure 7 est négatif (au moins un noeud destination ne pourra pas décoder au moins un paquet source). FIG. 8 describes an algorithm for assigning a confidence index to a local linear combination, corresponding to step 740 of FIG. 7. The confidence index measures the impact of the local combination to be sent on the network . At system initialization, the network schema was computed in such a way that all source packets sent in the network can be decoded by all destination nodes (note: the network topology is not a constraint in the present invention, it can even be oversized in the wireless context, which creates redundant received packets). So, if M is the number of source nodes (hence source packets) and if N is the number of destination nodes, then the number of source packets decoded in the network is equal to: M * N. This variable, number of packets sources decoded by the network, is the confidence index of the local combination. To measure this index, each relay node needs all the matrices of destination D; of all network destination nodes. 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. In step 805, the coefficients of the destination matrices that are impacted by the combination cmb_glob_test are modified. In other words, we modify the elements of each destination matrix involving the new coefficients of cmb_glob_test (modification of the line corresponding to the resulting packet to be sent by the relay node). In step 810, the confidence index of cmb_glob_test is calculated, that is to say the number of source packets decodable by the set of destination nodes. The number of source packets decodable by a destination node D ;, denoted Nb_src_pkt_dec (D;), is determined by the algorithm described hereinafter in detail, in relation with FIG. 12. The confidence index of cmb_glob_test, denoted ind_conf (cmb_glob_test), is then equal to: Ind_conf (cmb_glob_test) = ENb_src_pkt_dec (D;), i = 1..N This index is stored in step 815. In step 820, it is checked whether the confidence index cmb_glob_test is equal to m * N. If yes, cmb_glob_test has no impact on the network (step 825), and the test in step 740 of Figure 7 is positive. Otherwise cmb_glob_test has an impact on the network (step 830), and the test of step 740 of FIG. 7 is negative (at least one destination node will not be able to decode at least one source packet).

La figure 9 décrit l'algorithme de sélection de la combinaison linéaire globale qui a le moins d'impact sur le réseau, correspondant à l'étape 765 de la figure 7. FIG. 9 describes the algorithm for selecting the overall linear combination that has the least impact on the network, corresponding to step 765 of FIG. 7.

Les paramètres d'entrée sont : - la combinaison globale prédéterminée cmb_glob pred, - l'ensemble Scand des combinaisons locales et globales testées durant l'algorithme de la figure 7 et rejetées par le test de l'étape 740 (figure 7). 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. 7 and rejected by the test of step 740 (FIG. 7).

Le paramètre de sortie est la combinaison linéaire locale associée à la combinaison globale qui a le moins d'impact sur le réseau. Vu que cet algorithme est appliqué lorsque l'algorithme de la figure 7 n'a trouvé aucune combinaison globale n'ayant pas d'impact sur le réseau, la combinaison locale trouvé a forcément un impact. Dans l'étape 905, on recherche une combinaison locale cmb_loc_candl associée à une combinaison globale cmb_glob_candl la plus proche de cmb_glob_pred. Par plus proche , on entend contenant le plus de paquets sources associés de cmb_glob_pred en interdisant des paquets sources non contenus dans cmb_glob_pred . Cet algorithme est décrit en détail ci-après, en relation avec la figure 10. Dans l'étape 910, on détermine l'indice de confiance de cmb_glob_candl en utilisant l'algorithme décrit ci-dessus en relation avec la figure 8. Dans l'étape 915, on sélectionne parmi l'ensemble Scand construit durant l'algorithme de la figure 7 (à l'étape 750), la combinaison globale cmb_glob_cand2 qui a le plus grand indice de confiance (un tri classique est effectué). Il est à noter que contrairement à la combinaison globale cmb_glob_candl, cmb_glob_cand2 contient des paquets sources de cmb_glob_pred mais aussi des paquets sources non contenus dans cmb_glob_pred. Dans l'étape 920, on compare les deux indices de confiance de cmb_glob_candl et cmb_glob_cand2. Si l'indice de confiance de globale cmb_glob_cand2 est plus grand que celui de cmb_glob_candl, alors on passe à l'étape 930, sinon à l'étape 925. 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 the algorithm of FIG. 7 has found no global combination having no impact on the network, the local combination found necessarily has an impact. In step 905, a local combination cmb_loc_candl associated with a global combination cmb_glob_candl closest to cmb_glob_pred is searched. 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 detail below, with reference to FIG. 10. In step 910, the cmb_glob_candl confidence index is determined using the algorithm described above in relation to FIG. In step 915, one selects among the set Scand constructed during the algorithm of FIG. 7 (in step 750), the overall combination cmb_glob_cand2 which has the highest confidence index (a conventional sort is performed). It should be noted that unlike the global combination cmb_glob_candl, cmb_glob_cand2 contains source packages of cmb_glob_pred but also source packages not contained in cmb_glob_pred. In step 920, 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 proceed to step 930, otherwise step 925.

Dans l'étape 925, on sélectionne alors la combinaison linéaire locale cmb_loc_candl. Dans l'étape 930, on sélectionne la combinaison locale associée à cmb_glob_cand2, combinaison locale qui avait été stockée dans Scand. La figure 10 décrit l'algorithme de reconstitution d'une combinaison locale associée à une combinaison globale la plus proche de la combinaison globale prédéterminée, correspondant à l'étape 905 de la figure 9. Par plus proche , on entend contenant le plus de paquets sources associés de cmb_glob_pred en interdisant des paquets sources non contenus dans cmb_glob_pred . Les paramètres d'entrée sont - la combinaison globale prédéterminée cmb_glob pred. Elle est constituée de P paquets sources associés (rappel : ce qui correspond à p coefficients non nuls parmi les M coefficients associés aux paquets sources). - La matrice relais R' des combinaisons globales des paquets reçus avant l'accès au médium de ce noeud relais. Le paramètre de sortie est une combinaison locale cmb_loc_cand et une combinaison globale associée cmb_glob_cand, qui est la combinaison globale la plus proche de cmb_glob_pred. Dans l'étape 1010, on initialise à 1 la variable nb_src_pkt_to_del correspondant au nombre de paquets sources associés à retirer de cmb_glob_pred. Dans l'étape 1015, on détermine le nombre de combinaisons globales différentes en supprimant nb_src_pkt_to_del paquets sources. Cette valeur nb_test est égale à la combinaison suivante au sens mathématiques (avec ! correspondant à l'opération factoriel) : C(P, nb_src_pkt_to_del) = P!/( nb_src_pkt_to_del)!( P - nb_src_pkt_to_del) ! Dans l'étape 1020, on initialise la variable iter à 1, variable correspondant à un compteur qui teste à chaque itération un nouvel ensemble de paquets sources associés à supprimer S_pkt(iter). Soit cmb_glob_cand la combinaison globale égale à cmb_glob_pred diminuée des paquets sources de S_pkt(iter) (les coefficients de ces paquets sources étant mis à zéro). Notons g'=[g'l,..,g'M] le vecteur colonne représentant cette combinaison globale cmb_glob_cand. Le but maintenant est de déterminer une combinaison locale cmb_loc_cand associée à cmb_glob_cand. Dans l'étape 1025, on construit alors, à partir de la matrice relais de R', un système linéaire afin de déterminer les coefficients à attribuer à cmb_loc_cand. Notons (3i,.., (31 ces coefficients avec 1 le nombre de paquets reçus. Pour chaque paquet source X;, il faut que le coefficient g';, associé à celui-ci dans cmb_glob_cand, se retrouve dans la somme des paquets reçus de cmb_loc_cand, c'est-à-dire qu'on doit avoir la relation : = , pour chaque paquet source. ]=1 On a donc un système linéaire : A(3 = g, avec (3 le vecteur colonne des inconnues [R1,.., R1], g'=[g'l,••,g'M] le vecteur colonne de cmb_glob_cand et A une matrice de dimension (M,1) dont chaque coefficient aii est égal à r'i1. Dans une variante, une étape supplémentaire de filtrage (non représentée sur la figure 10) peut être effectuée, similaire à l'étape 705 de la figure 7. Dans l'étape 1030, on résout le système linéaire créé dans l'étape 1025 par la méthode de Gauss-Jordan. In step 925, the local linear combination cmb_loc_candl is then selected. In step 930, the local combination associated with cmb_glob_cand2, the local combination that was stored in Scand, is selected. FIG. 10 describes the local combination reconstruction algorithm associated with a global combination closest to the predetermined global combination, corresponding to step 905 of FIG. 9. By closer, is meant containing the most packets associated sources of 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 (recall: which corresponds to p non-zero coefficients among the M coefficients associated with the source packets). The relay matrix R 'of the global combinations of the packets received before access to the medium of this relay node. The output parameter is a local combination cmb_loc_cand and an associated global combination cmb_glob_cand, which is the closest global combination to cmb_glob_pred. In step 1010, 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. In step 1015, 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 following combination in the mathematical sense (with! Corresponding to the factorial operation): C (P, nb_src_pkt_to_del) = P! / (Nb_src_pkt_to_del)! (P - nb_src_pkt_to_del)! In step 1020, the variable iter is initialized to 1, a variable corresponding to a counter that tests at each iteration a new set of associated source packets to delete S_pkt (iter). Let cmb_glob_cand the global combination equal to cmb_glob_pred minus the source packages of S_pkt (iter) (the coefficients of these source packages being 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. In step 1025, a linear system is then constructed from the relay matrix of R 'in order to determine the coefficients to be assigned to cmb_loc_cand. Note (3i, .., (31 these coefficients with 1 the number of packets received.) For each source packet X, the coefficient g ', associated with it in cmb_glob_cand, must be found in the sum of the packets received from cmb_loc_cand, that is to say we must have the relation: =, for each source package.] = 1 So we have a linear system: A (3 = g, with (3 the vector column of unknowns [R1, .., R1], g '= [g'l, ••, g'M] the column vector of cmb_glob_cand and A a matrix of dimension (M, 1) of which each coefficient aii is equal to r'i1 In a variant, an additional filtering step (not shown in FIG. 10) can be performed, similar to step 705 of FIG. 7. In step 1030, the linear system created in step 1025 is solved. by the method of Gauss-Jordan.

Puis, dans le test de l'étape 1035, on vérifie que le système est compatible ou pas (admet une solution ou pas). Si oui, on passe à l'étape 1040, sinon à l'étape 1050. Dans l'étape 1050, on vérifie si la variable iter est égale à Nb test, c'est-à-dire que toutes les combinaisons globales ont été testées avec un nombre de paquets sources associés supprimés égal à nb_src_pkt. Si le test de l'étape 1050 est négatif, on passe à l'étape 1065, dans laquelle on incrémente la variable iter et on sélectionne un nouvel ensemble de paquets sources associés à supprimer S_pkt(iter), puis on retourne à l'étape 1025. Si le test de l'étape 1050 est positif, on passe à l'étape 1055. Dans l'étape 1055, on vérifie si la variable nb_src_pkt_to_del est égale à p, le nombre de paquets sources associés dans cmb_glob_pred. Si oui, on passe à l'étape 1070, ceci correspond au fait qu'il n'y a plus de paquets sources disponibles à supprimer. Dans l'étape 1070, on renvoie alors les combinaisons locales et globales nulles. Si le test de l'étape 1055 est négatif, alors la variable nb_src_pkt_to_del est incrémentée (étape 1060) et on retourne à l'étape 1015. Dans l'étape 1040, on attribue les valeurs de [(31,.., (31] données par l'algorithme de Gauss-Jordan. Si le système admet une infinité de solutions, la valeur des coefficients pi associés aux inconnues secondaires est mise à zéro. Dans l'étape 1045, on mémorise la combinaison locale cmb_loc_cand associée au vecteur colonne [(31,.., (31] et la combinaison globale cmb_cand_glob associée au vecteur colonne g'MI. Then, in the test of step 1035, it is verified that the system is compatible or not (admits a solution or not). If yes, proceed to step 1040, otherwise step 1050. In step 1050, it is checked whether the variable iter is equal to Nb test, that is to say that all global combinations have been tested with a number of associated source packets deleted equal to nb_src_pkt. If the test of step 1050 is negative, proceed to step 1065, in which the variable iter is incremented and a new set of associated source packets to delete S_pkt (iter) is selected, then return to step 1025. If the test of step 1050 is positive, go to step 1055. In step 1055, it is checked whether the variable nb_src_pkt_to_del is equal to p, the number of associated source packets in cmb_glob_pred. If yes, we go to step 1070, this corresponds to the fact that there are no more source packages available to delete. In step 1070, then returns the local and global null combinations. If the test of step 1055 is negative, then the variable nb_src_pkt_to_del is incremented (step 1060) and one goes back to step 1015. In step 1040, the values of [(31, .., (31 ] If the system admits an infinity of solutions, the value of the coefficients pi associated with the secondary unknowns is set to 0. In step 1045, the local combination cmb_loc_cand associated with the column vector is memorized. [(31, .., (31] and the global combination cmb_cand_glob associated with the column vector g'MI.

La figure 11 décrit l'algorithme de décodage d'un noeud de destination (c'est-à-dire l'algorithme d'un procédé de codage réseau selon un mode de réalisation particulier de l'invention, mis en oeuvre par un noeud destination pour décoder les paquets sources et obtenir des paquets sources décodés). FIG. 11 describes the decoding algorithm of a destination node (that is to say the algorithm of a network coding method according to a particular embodiment of the invention, implemented by a node destination to decode source packets and obtain decoded source packets).

Cet algorithme se lance à la fin de la supertrame (étape 1100), lorsque tous les noeuds relais ont eu accès au médium durant la supertrame. A cette date, l'algorithme détermine les paquets de données utiles non disponibles (étape 1105). Ce moyen se base par exemple sur des informations radio, telles que le rapport signal sur bruit (en anglais Signal Noise Ratio ) ou la puissance du signal reçu ( Radio Signal Strength Indication ). Si ces variables dépassent un seuil prédéfini, le paquet est considéré disponible, sinon non disponible. Puis, dans l'étape 1110, on détermine la composition des paquets utiles disponibles. Si un paquet n'a pas de notification, la composition en paquets sources est donnée par la matrice de destination, plus précisément, par la ligne correspondant au paquet reçu. Sinon, la notification est lue et on détermine la nouvelle composition du paquet en lisant les modifications par rapport à la combinaison globale de la matrice destination, indiquées par la notification. A l'étape 1115, une matrice de destination temporaire D' = d',i, valide uniquement pour l'exécution de cet algorithme dans la supertrame courante est créée si un paquet utile est considéré non disponible à l'étape 1105 ou si un paquet utile a été modifié à l'étape 1110. Elle est remplie de la manière suivante (étape 1115) : - initialisation de la valeur des coefficients de la matrice destination temporaire à la valeur des coefficients de la matrice destination prédéterminée ; - les lignes correspondant aux paquets non disponibles, résultat de l'étape 1105, deviennent des lignes nulles (tous les coefficients de la ligne sont mis à zéro) ; - les lignes correspondant aux paquets disponibles modifiés, résultat de l'étape 1110, sont modifiées et prennent en compte les modifications de la notification : un élément d',i modifié signifie que le paquet associé à cette ligne i a été modifié ; la colonne j correspond à l'identifiant (315 ou 325, figure 3) du paquet source indiqué dans la notification ; la nouvelle valeur de d',i correspond à la nouvelle valeur du coefficient indiquée dans la notification (320 ou 330, figure 3). Dans l'étape 1120, on vérifie si la matrice destination temporaire D' a été créée ou pas. Si oui, on passe à l'étape 1130, sinon à l'étape 1125. This algorithm starts at the end of the superframe (step 1100), when all the relay nodes have access to the medium during the superframe. At this time, the algorithm determines the unavailable useful data packets (step 1105). This means is based for example on radio information, such as the signal-on-noise ratio (Signal Noise Ratio) or the signal strength (Radio Signal Strength Indication). If these variables exceed a predefined threshold, the packet is considered available, if not available. Then, in step 1110, the composition of the available useful packets is determined. If a packet has no notification, the source packet composition is given by the destination matrix, more precisely, by the line corresponding to the received packet. Otherwise, the notification is read and the new composition of the packet is determined by reading the changes from the overall combination of the destination matrix, indicated by the notification. In step 1115, a temporary destination matrix D '= d', i, valid only for the execution of this algorithm in the current superframe is created if a useful packet is considered unavailable at step 1105 or if a useful packet was modified in step 1110. It is filled in the following manner (step 1115): - initialization of the value of the coefficients of the temporary destination matrix to the value of the coefficients of the predetermined destination matrix; the lines corresponding to the unavailable packets, the result of step 1105, become null lines (all the coefficients of the line are set to zero); the lines corresponding to the modified available packets, result of the step 1110, are modified and take into account the modifications of the notification: a modified element of i means that the packet associated with this line i has been modified; column j corresponds to the identifier (315 or 325, FIG. 3) of the source packet indicated in the notification; the new value of d ', i is the new value of the coefficient given in the notification (320 or 330, Figure 3). In step 1120, it is checked whether the temporary destination matrix D 'has been created or not. If yes, proceed to step 1130, otherwise step 1125.

Dans l'étape 1125, on décode les paquets sources à partir de la matrice de décodage (prédéterminée ou modifiée si on vient de l'étape 1145). Par contre, si le test de l'étape 1120 est positif, ceci indique qu'une perte de lien a eu lieu et a touché un paquet utile. La matrice de décodage n'est donc plus valide, une nouvelle est à calculer. Pour cela, les paquets redondants reçus sont nécessaires. Dans un premier temps, l'algorithme détermine si ces paquets redondants n'ont pas été impactés par une perte de liens. On exécute alors les étapes 1130 et 1135 (qui sont les mêmes que les étapes 1105 et 1110) sur les paquets redondants. Dans l'étape 1140, on met à jour D' de la même manière que l'étape 1115. Dans l'étape 1145, on recalcule à partir de la matrice destination temporaire D' une matrice de décodage temporaire C-'prou qui décodera le maximum de paquet sources. Cette opération est décrite ci-après en détail en relation avec la figure 12. Cette matrice C-'prou n'est valable que durant la période de la supertrame courante. La figure 12, correspondant à l'étape 810 de la figure 8 ou à l'étape 1145 de la figure 11, décrit l'algorithme qui permet de déterminer le nombre de paquets sources décodables et par suite de déterminer la matrice de décodage associée. Cet algorithme est appelé : • au niveau d'un noeud relais R; (à l'étape 810 de la figure 8), pour déterminer l'impact, sur les noeuds destinations, de l'envoi d'une nouvelle combinaison globale par le noeud relais ; • et bien sûr, au niveau d'un noeud destination D; (à l'étape 1145 de la figure 11), quand celui-ci doit modifier sa matrice de décodage. Il faut noter que l'étape 1260 n'est pas implémentée dans les noeuds relais (car ceux-ci n'ont pas la nécessité d'effectuer le décodage). Le paramètre de sortie est donc - au niveau des noeuds relais, le nombre de paquets décodables, nb_src_pkt_dec ; - au niveau des noeuds destinations, la nouvelle matrice de décodage C-1 prov. In step 1125, the source packets are decoded from the decode matrix (predetermined or modified from step 1145). On the other hand, if the test in step 1120 is positive, this indicates that a link loss has occurred and has hit a useful packet. The decoding matrix is no longer valid, a new one has to be calculated. For this, the redundant packets received are necessary. As a first step, the algorithm determines whether these redundant packets have not been impacted by a loss of links. Steps 1130 and 1135 (which are the same as steps 1105 and 1110) are then executed on the redundant packets. In step 1140, D is updated in the same way as step 1115. In step 1145, a temporary decoding matrix C-'prou which decodes will be recalculated from the temporary destination matrix the maximum of source package. This operation is described below in detail in relation to FIG. 12. This matrix C ''prou is valid only during the period of the current superframe. FIG. 12, corresponding to step 810 of FIG. 8 or step 1145 of FIG. 11, describes the algorithm that makes it possible to determine the number of decodable source packets and consequently to determine the associated decoding matrix. This algorithm is called: • at a relay node R; (at step 810 of FIG. 8), 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; (at step 1145 of FIG. 11), when the latter must modify its decoding matrix. It should be noted that step 1260 is not implemented in the relay nodes (because these do not have the need to perform the decoding). The output parameter is therefore - at the relay node level, the number of decodable packets, nb_src_pkt_dec; at the destination node level, the new decoding matrix C-1 prov.

Pour déterminer le nombre maximum de paquets sources décodables, l'algorithme teste si les M paquets sources sont décodables. Si oui, l'algorithme est terminé, sinon on teste si (M-1) paquets sources sont décodables. Si oui, l'algorithme est terminé, sinon on teste si (M-2) paquets sources sont décodables, et ainsi de suite. To determine the maximum number of decodable source packets, the algorithm tests whether the M source packets are decodable. If yes, the algorithm is complete, otherwise we test if (M-1) source packages are decodable. If yes, the algorithm is complete, otherwise we test if (M-2) source packages are decodable, and so on.

Dans l'étape 1210, on initialise le nombre de paquets sources à supprimer, nb_src_pkt_to_del, à zéro. Dans le test de l'étape 1215, on vérifie si ce nombre est bien strictement inférieur à M. Si oui, on passe à l'étape 1220, sinon à l'étape 1235. Dans ce dernier cas, ceci signifie qu'aucun paquet source n'est décodable, la variable nb_src_pkt_dec est initialisée à zéro et bien sûr il n'y a pas de matrice de décodage, donc l'algorithme est terminé (étape 1280). Dans l'étape 1220, on détermine le nombre d'ensemble de paquets sources à supprimer. Cette valeur nb_test est égale à la combinaison suivante au sens mathématiques (avec ! correspondant à l'opération factoriel) : C(M, nb_src_pkt_to_del) = M ! /(nb_src_pkt_to_del)!( M - nb_src_pkt_to_del) ! Dans cette étape 1220, on initialise aussi la variable iter à 1, qui correspond à un compteur qui teste à chaque itération un nouvel ensemble de nb_src_pkt_to_del paquets sources associés à supprimer. L'étape 1225 détermine un ensemble de nb_src_pkt_to_del paquets sources à supprimer, ensemble différent pour chaque itération iter. In step 1210, the number of source packets to be deleted, nb_src_pkt_to_del, is initialized to zero. In the test of step 1215, it is checked whether this number is strictly lower than M. If yes, we go to step 1220, otherwise to step 1235. In the latter case, this means that no packet source is not decodable, the variable nb_src_pkt_dec is initialized to zero and of course there is no decoding matrix, so the algorithm is complete (step 1280). In step 1220, the number of sets of source packets to be deleted is determined. This value nb_test is equal to the following combination in the mathematical sense (with! Corresponding to the factorial operation): C (M, nb_src_pkt_to_del) = M! / (nb_src_pkt_to_del)! (M - nb_src_pkt_to_del)! In this step 1220, the variable iter is also initialized to 1, which corresponds to a counter which tests at each iteration a new set of nb_src_pkt_to_delete associated source packets to be deleted. Step 1225 determines a set of nb_src_pkt_to_del source packages to delete, different set for each iteration iterating.

L'étape 1230 détermine une nouvelle matrice de destination D'i, sous-matrice de la matrice destination D;. Les paquets résultants contenant les paquets sources à supprimer déterminé à l'étape 1220 ne sont pas pris en compte. Donc D'; correspond à la matrice destination Di, moins les colonnes correspondant aux paquets sources à supprimer, et moins les lignes qui avaient un coefficient non nul pour les colonnes correspondant aux paquets sources à supprimer. Puis, dans l'étape 1240, on vérifie s'il reste des paquets sources, c'est-à-dire si la matrice D'i a encore des lignes. Si non, on passe à l'étape 1265, si oui à l'étape 1245. Dans l'étape 1245, on recherche le rang de la matrice D';, noté rand Di. Pour cela, la méthode de Gauss-Jordan est encore utilisée en effectuant une triangulation de la matrice D';. Notons T la matrice triangulée. Le rang est le nombre de lignes non nulles de T. Stockons en mémoire la matrice T' (constituée uniquement des lignes non nulles de T) et les paquets résultants associés aux lignes de T'. Dans l'étape 1250, on vérifie si la valeur de rang Di est égale à (M-nb_src_pkt_to_ del). Si oui, tous les paquets sources présents dans la matrice D'; sont décodables, on passe à l'étape 1255. Sinon la matrice T' est supprimée et on passe à l'étape 1265. Dans l'étape 1255, on met à jour nb_src_pkt_dec(D;) à rand Di. Puis si le noeud est un noeud relais, l'algorithme est terminé (étape 1280). Sinon (c'est-à-dire si le noeud est un noeud destination), on passe à l'étape 1260 avant la fin de l'algorithme. Step 1230 determines a new destination matrix D'i, sub-matrix of destination matrix D ;. The resulting packets containing the source packets to be deleted determined in step 1220 are not taken into account. So D '; corresponds to the destination matrix Di, minus the columns corresponding to the source packets to be deleted, and minus the lines which had a non-zero coefficient for the columns corresponding to the source packets to be deleted. Then, in step 1240, it is checked whether there remain source packets, that is to say if the matrix D'i still has lines. If no, we go to step 1265, if yes to step 1245. In step 1245, 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'. In step 1250, 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 1255. Otherwise the matrix T 'is deleted and we go to step 1265. In step 1255, we update nb_src_pkt_dec (D;) to rand Di. Then if the node is a relay node, the algorithm is complete (step 1280). Otherwise (that is, if the node is a destination node), step 1260 is passed before the end of the algorithm.

Dans l'étape 1260, on récupère la matrice T', on effectue une inversion de celle-ci (T' est une matrice carrée de dimension (M-nb_src_pkt_to_del,M-nb_src_pkt_to_ del)) et on stocke la matrice inverse C-'prou de T', C-'prou étant la matrice de décodage provisoire. De plus, les paquets mémorisés à l'étape 1245 sont notés comme les paquets utiles provisoires. In step 1260, 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- 'is stored. T'prou, C-'prou being the temporary decoding matrix. In addition, the packets stored in step 1245 are noted as the provisional useful packets.

Dans l'étape 1265, on vérifie si tous les ensembles de nb_src_pkt_to_del ont été testés, c'est-à-dire si la variable iter est égale à Nb test. Si oui, on passe à l'étape 1275, sinon à l'étape 1270. Dans l'étape 1270, on incrémente la variable iter et on détermine un nouvel ensemble de nb_src_pkt_to_del paquets sources à supprimer. Puis, on retourne à l'étape 1230. Dans l'étape 1275, on incrémente le nombre de paquets sources à supprimer nb_src_pkt_to_del puis on revient à l'étape de test 1215. In step 1265, 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, proceed to step 1275, otherwise step 1270. In step 1270, the variable iter is incremented and a new set of nb_src_pkt_to_del source packets to be deleted is determined. Then, we return to step 1230. In step 1275, we increment the number of source packets to delete nb_src_pkt_to_del then we return to the test step 1215.

Claims (16)

REVENDICATIONS1. Procédé de codage réseau dans un réseau maillé comprenant au moins un noeud relais qui, selon un schéma de codage réseau prédéterminé, s'attend à recevoir en entrée une pluralité de paquets de données et doit générer en sortie un paquet résultant prédéterminé obtenu selon une première combinaison linéaire prédéterminée d'une partie de ladite pluralité de paquets de données, les paquets de données appartenant à ladite partie étant dits paquets utiles et les paquets de données n'appartenant pas à ladite partie étant dits paquet redondants, chacun des paquets de données attendus en entrée étant formé, selon ledit schéma de codage réseau prédéterminé, par une combinaison linéaire d'un ou plusieurs paquets sources, les paquets sources étant émis par des noeuds sources, ledit procédé étant mis en oeuvre par au moins un noeud relais donné et étant caractérisé en ce qu'il comprend des étapes consistant à : - détecter (505, 510, 515, 520) si au moins un paquet utile est manquant ou qu'il a été reçu modifié de sorte que la combinaison linéaire du ou des paquets sources formant ledit paquet utile modifié ne soit pas conforme au schéma de codage réseau prédéterminé ; - dans le cas d'une détection positive, construire (530, 535, 540, 545) un paquet résultant reconstitué en utilisant, selon un schéma de codage réseau modifié, tout ou partie des paquets redondants ; et - transmettre (550) le paquet résultant reconstitué. REVENDICATIONS1. A network encoding method in a mesh network comprising at least one relay node which, according to a predetermined network coding scheme, expects to receive a plurality of data packets as input and is to output a predetermined resultant packet obtained according to a first predetermined linear combination of a part of said plurality of data packets, 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 at the input being formed, according to said predetermined network coding scheme, by a linear combination of one or more source packets, the source packets being transmitted by source nodes, said method being implemented by at least one given relay node and being characterized in that it comprises the steps of: - detecting (505, 510, 515, 520) s i at least one useful packet is missing or has been received modified so that the linear combination of the source packet (s) forming said modified useful packet does not conform to the predetermined network coding scheme; in the case of a positive detection, constructing (530, 535, 540, 545) a resulting packet reconstructed using, in accordance with a modified network coding scheme, all or part of the redundant packets; and - transmitting (550) the resulting reconstituted packet. 2. Procédé selon la revendication 1, caractérisé en ce que ladite étape consistant à construire un paquet résultant reconstitué comprend une étape (615, 620, 640, 635, 735) consistant à déterminer une deuxième combinaison linéaire de paquets redondants et 25 utiles, parmi une pluralité de paquets de données effectivement reçus par ledit noeud relais donné, permettant d'obtenir un paquet résultant reconstitué identique au paquet de données résultant prédéterminé à générer, si ladite deuxième combinaison linéaire de paquets redondants et utiles existe. The method according to claim 1, characterized in that said step of constructing a reconstructed resultant packet comprises a step (615, 620, 640, 635, 735) of determining a second linear combination of redundant and useful packets, among a plurality of data packets actually received by said given relay node, for obtaining a reconstituted resulting packet identical to the predetermined resultant data packet to be generated, if said second linear combination of redundant and useful packets exists. 3. Procédé selon la revendication 2, caractérisé en ce que ladite étape consistant à 30 déterminer la deuxième combinaison linéaire de paquets redondants et utiles est réalisée 20en testant (615, 620) si chaque paquet utile détecté manquant peut être remplacé par un paquet redondant effectivement reçu par ledit noeud relais donné. A method according to claim 2, characterized in that said step of determining the second linear combination of redundant and useful packets is performed by testing (615, 620) whether each missing detected useful packet can be replaced by a redundant packet actually received by said given relay node. 4. Procédé selon la revendication 2, caractérisé en ce que ladite étape consistant à déterminer la deuxième combinaison linéaire de paquets redondants et utiles comprend des étapes consistant à : - déterminer (710) une troisième combinaison linéaire prédéterminée de paquets sources, associée à ladite première combinaison linéaire prédéterminée de paquets utiles, et permettant d'obtenir ledit paquet résultant prédéterminé ; - construire (710) un système linéaire A(3 = g, où (3 est un vecteur colonne des coefficients de ladite deuxième combinaison linéaire de paquets redondants et utiles à déterminer, où g est un vecteur colonne des coefficients de ladite troisième combinaison linéaire prédéterminée de paquets sources, et où A est une matrice de dimension (M,1), avec M le nombre de paquets sources et 1 le nombre de paquets effectivement reçus par ledit noeud relais donné, la matrice A étant définie de la manière suivante : * chaque ligne de la matrice A représente un paquet source, * chaque colonne de la matrice A représente un paquet effectivement reçu, * chaque élément aii de la matrice A représente le coefficient du paquet source i d'une quatrième combinaison linéaire de paquets sources permettant 20 d'obtenir le paquet effectivement reçu j ; - résoudre (715) ledit système linéaire par une méthode prédéterminée ; - si le système linéaire admet une solution (720), déterminer (725, 730, 735) ladite deuxième combinaison linéaire de paquets redondants et utiles, en fonction du vecteur colonne (3 de ladite solution. 25 The method of claim 2, characterized in that said step of determining the second linear combination of redundant and useful packets comprises steps of: - determining (710) a third predetermined linear combination of source packets associated with said first predetermined linear combination of useful packets, and for obtaining said predetermined resultant packet; constructing (710) a linear system A (3 = g, where (3 is a column vector of the coefficients of said second linear combination of redundant and useful packets to be determined, where g is a column vector of the coefficients of said third predetermined linear combination source packets, and where A is a matrix of dimension (M, 1), with M the number of source packets and 1 the number of packets actually received by said given relay node, the matrix A being defined as follows: each line of the matrix A represents a source packet, * each column of the matrix A represents a packet actually received, * each element aii of the matrix A represents the coefficient of the source packet i of a fourth linear combination of source packages allowing 20 to obtain the packet actually received; - to solve (715) said linear system by a predetermined method; - if the linear system admits a solution (720), terminating (725, 730, 735) said second linear combination of redundant and useful packets, depending on the column vector (3 of said solution. 25 5. Procédé selon l'une quelconque des revendications 2 à 4, caractérisé en ce que, si ladite deuxième combinaison linéaire de paquets redondants et utiles n'existe pas, ladite étape consistant à construire un paquet résultant reconstitué comprend des étapes consistant à : a) construire (760, 755, 715, 720, 725, 730) un paquet résultant contenant des 30 paquets sources non contenus dans le paquet résultant prédéterminé ; 15b) obtenir (740) une information relative, pour au moins un autre noeud participant au schéma de codage réseau prédéterminé, à un schéma de codage réseau modifié qui résulterait de l'envoi du paquet résultant modifié construit à l'étape a) ; c) en fonction de l'information obtenue à l'étape b), sélectionner (735) le paquet résultant modifié construit à l'étape a) ou réitérer l'étape a) pour construire un autre paquet résultant. The method according to any one of claims 2 to 4, characterized in that, if said second linear combination of redundant and useful packets does not exist, said step of constructing a reconstructed resultant packet comprises steps of: a ) constructing (760, 755, 715, 720, 725, 730) a resulting packet containing source packets not contained in the predetermined resultant packet; 15b) obtaining (740) 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 modified result packet constructed in step a); c) based on the information obtained in step b), selecting (735) the resulting modified packet constructed in step a) or repeating step a) to construct another resulting packet. 6. Procédé selon la revendication 5, caractérisé en ce que l'étape a) comprend des étapes consistant à : i) déterminer (755) une cinquième combinaison linéaire prédéterminée de paquets sources, permettant d'obtenir ledit paquet résultant contenant des paquets sources non contenus dans le paquet résultant prédéterminé ; ii) construire (755) un système linéaire A(3 = g, où (3 est un vecteur colonne des coefficients de ladite deuxième combinaison linéaire de paquets redondants et utiles à déterminer, où g est un vecteur colonne des coefficients de ladite cinquième combinaison linéaire prédéterminée de paquets sources, et où A est une matrice de dimension (M,1), avec M le nombre de paquets sources et 1 le nombre de paquets effectivement reçus par ledit noeud relais donné, la matrice A étant définie de la manière suivante : * chaque ligne de la matrice A représente un paquet source, * chaque colonne de la matrice A représente un paquet effectivement reçu, * chaque élément aii de la matrice A représente le coefficient du paquet source i d'une sixième combinaison linéaire de paquets sources permettant d'obtenir le paquet effectivement reçu j ; iii) résoudre (715) ledit système linéaire par une méthode prédéterminée ; iv) si le système linéaire admet une solution (720), déterminer (725) ladite deuxième combinaison linéaire de paquets redondants et utiles, en fonction du vecteur colonne (3 de ladite solution, sinon réitération de l'étape i) avec une autre cinquième combinaison linéaire prédéterminée de paquets sources. The method of claim 5, characterized in that step a) comprises steps of: i) determining (755) a fifth predetermined linear combination of source packets, thereby obtaining said resultant packet containing non-source source packets contained in the predetermined resulting packet; ii) constructing (755) a linear system A (3 = g, where (3 is a column vector of the coefficients of said second linear combination of redundant and useful packets to be determined, where g is a column vector of the coefficients of said fifth linear combination predetermined set of source packets, and where A is a matrix of dimension (M, 1), with M the number of source packets and 1 the number of packets actually received by said given relay node, the matrix A being defined as follows: * each row of the matrix A represents a source packet, * each column of the matrix A represents a packet actually received, * each element aii of the matrix A represents the coefficient of the source packet i of a sixth linear combination of source packages allowing to obtain the packet actually received; iii) to solve (715) said linear system by a predetermined method; iv) if the linear system admits a solution (720), d determining (725) said second linear combination of redundant and useful packets, based on the column vector (3 of said solution, if not reiteration of step i) with another fifth predetermined linear combination of source packets. 7. Procédé selon l'une quelconque des revendications 5 et 6, caractérisé en ce que, dans l'étape b), ladite information relative au schéma de codage réseau modifié, quirésulterait de l'envoi du paquet résultant modifié construit à l'étape a), est la somme du nombre de paquets sources décodables par l'ensemble des noeuds destinations du réseau si le paquet résultant modifié construit à l'étape a) est supposé envoyé, et en ce que, dans l'étape c, le paquet résultant modifié construit à l'étape a) est sélectionné si ladite information relative au schéma de codage réseau modifié est égale au nombre de noeuds sources dans le réseau multiplié par le nombre de noeuds destination dans le réseau. 7. Method according to any one of claims 5 and 6, characterized in that, in step b), said information relating to the modified network coding scheme, which would result from the sending of the resulting modified package built in step a), is the sum of the number of source packets decodable by the set of destination nodes of the network if the resulting modified packet constructed in step a) is assumed to be sent, and in that, in step c, the packet The modified resulting result constructed in step a) is selected if said information relating to the modified network encoding scheme is equal to the number of source nodes in the network multiplied by the number of destination nodes in the network. 8. Procédé selon l'une quelconque des revendications 5 à 7, caractérisé en ce que, si ladite deuxième combinaison linéaire de paquets redondants et utiles n'existe pas, ladite étape consistant à construire un paquet résultant reconstitué comprend des étapes consistant à : - construire (905) un premier paquet résultant, différent du paquet résultant prédéterminé mais contenant uniquement des paquets sources inclus dans le paquet résultant prédéterminé ; - obtenir (910) une première information relative, pour au moins un autre noeud participant au schéma de codage réseau prédéterminé, à un schéma de codage réseau modifié qui résulterait de l'envoi du premier paquet résultant, le premier paquet résultant étant associé à ladite première information sur le schéma de codage réseau modifié ; - parmi le ou les paquets non sélectionné(s) à l'étape c) et contenant des paquets sources non contenus dans le paquet résultant prédéterminé, sélectionner (915) un deuxième paquet résultant, en fonction de ladite information, obtenue à l'étape b) pour chaque paquet non sélectionné à l'étape c), sur le schéma de codage réseau modifié, le deuxième paquet résultant étant associé à une deuxième information relative au schéma de codage réseau modifié ; et - sélectionner (920, 925, 930) entre les premier et deuxième paquets résultants, en fonction des première et deuxième informations relatives au schéma de codage réseau modifié. The method according to any one of claims 5 to 7, characterized in that, if said second linear combination of redundant and useful packets does not exist, said step of constructing a reconstituted resulting packet comprises steps of: constructing (905) a first resulting packet different from the predetermined resulting packet but containing only source packets included in the predetermined resulting packet; obtaining (910) 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 resulting packet, the first resulting packet being associated with said first information on the modified network coding scheme; among the packet or packets not selected in step c) and containing source packets not contained in the predetermined resulting packet, selecting (915) a second resulting packet, according to said information, obtained at step b) for each packet not selected in step c), on the modified network coding scheme, the second resulting packet being associated with second information relating to the modified network coding scheme; and - selecting (920, 925, 930) between the first and second resulting packets, based on the first and second information relating to the modified network coding scheme. 9. Procédé selon l'une quelconque des revendications 2 à 4, caractérisé en ce que, si 30 ladite deuxième combinaison linéaire de paquets redondants et utiles n'existe pas, ladite 20 25étape consistant à construire un paquet résultant reconstitué comprend une étape consistant à : - construire (625) un paquet résultant, différent du paquet résultant prédéterminé mais contenant uniquement des paquets sources inclus dans le paquet résultant prédéterminé. 9. A method according to any one of claims 2 to 4, characterized in that, if said second linear combination of redundant and useful packets does not exist, said step of constructing a reconstituted resulting packet comprises a step of constructing (625) a resulting packet different from the predetermined resulting packet but containing only source packets included in the predetermined resulting packet. 10. Procédé selon l'une quelconque des revendications 1 à 9, caractérisé en ce que, si le paquet résultant reconstitué n'est pas identique au paquet de données résultant prédéterminé, le procédé comprend une étape supplémentaire (630, 745, 775) consistant à transmettre une notification (305) identifiant des différences entre la combinaison linéaire de paquets sources représentative dudit paquet résultant prédéterminé, et la combinaison linéaire de paquets sources représentative dudit paquet résultant reconstitué. The method of any one of claims 1 to 9, characterized in that, if the resulting reconstructed packet is not identical to the predetermined resultant data packet, the method comprises an additional step (630, 745, 775) of transmitting a notification (305) identifying differences between the linear combination of source packets representative of said predetermined resulting packet, and the linear combination of source packets representative of said reconstructed resultant packet. 11. Procédé de codage réseau dans un réseau maillé comprenant au moins un noeud destination qui, selon un schéma de codage réseau prédéterminé, s'attend à recevoir en entrée une pluralité de paquets de données et doit générer en sortie une pluralité de paquets sources décodés obtenus chacun selon une combinaison linéaire prédéterminée d'une partie de ladite pluralité de paquets de données, les paquets de données appartenant à ladite partie étant dits paquets utiles et les paquets de données n'appartenant pas à ladite partie étant dits paquet redondants, chacun des paquets de données attendus en entrée étant formé, selon ledit schéma de codage réseau prédéterminé, par une combinaison linéaire d'un ou plusieurs paquets sources, les paquets sources étant émis par des noeuds sources, ledit procédé étant mis en oeuvre par au moins un noeud destination donné et étant caractérisé en ce qu'il comprend des étapes consistant à : - détecter (1105, 1110, 1115, 1120) si au moins un paquet utile est manquant ou qu'il a été reçu modifié de sorte que la combinaison linéaire du ou des paquets sources formant ledit paquet utile modifié ne soit pas conforme au schéma de codage réseau prédéterminé ; et - dans le cas d'une détection positive, décoder (1130, 1135, 1140, 1145, 1125) les paquets de données utiles reçus, en fonction d'un schéma de codage réseau modifié, pour obtenir au moins un paquet source décodé. 30 A method of network coding 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 to output a plurality of decoded source packets each obtained in a predetermined linear combination of a portion of said plurality of data packets, the data packets belonging to said portion being said to be useful packets and the data packets not belonging to said portion being said to be redundant packet, each of data packets expected in input being formed, according to said predetermined network coding scheme, by a linear combination of one or more source packets, the source packets being transmitted by source nodes, said method being implemented by at least one node given destination and being characterized in that it comprises steps of: - detecting (11 05, 1110, 1115, 1120) if at least one useful packet is missing or has been received modified so that the linear combination of the source packet (s) forming said modified useful packet does not conform to the predetermined network coding scheme ; and - in the case of a positive detection, decoding (1130, 1135, 1140, 1145, 1125) the received payload packets, according to a modified network coding scheme, to obtain at least one decoded source packet. 30 12. Procédé selon la revendication 11, caractérisé en ce que ladite étape consistant à détecter si au moins un paquet utile est manquant ou qu'il a été reçu modifié, comprend une étape consistant à, pour au moins un paquet utile effectivement reçu : - détecter (1110) une notification reçue (305) associée audit paquet utile effectivement reçu, ladite notification identifiant les différences entre la combinaison linéaire de paquets sources représentative du paquet utile attendu en entrée, et la combinaison linéaire de paquets sources représentative dudit paquet utile effectivement reçu. 12. The method of claim 11, characterized in that said step of detecting whether at least one useful packet is missing or has been received modified comprises a step consisting of, for at least one useful packet actually received: detecting (1110) a received notification (305) associated with said actually received beneficial packet, said notification identifying the differences between the linear combination of source packets representative of the expected input packet, and the linear combination of source packets representative of said useful packet actually received . 13. Produit programme d'ordinateur téléchargeable depuis un réseau de communication et/ou enregistré sur un support lisible par ordinateur et/ou exécutable par un processeur, caractérisé en ce qu'il comprend des instructions de code de programme pour la mise en oeuvre du procédé selon au moins une des revendications 1 à 10 et/ou le procédé selon au moins une des revendications 11 et 12, lorsque ledit programme est exécuté sur un ordinateur. 13. 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 10 and / or the method according to at least one of claims 11 and 12, when said program is run on a computer. 14. Moyen de stockage lisible par ordinateur, éventuellement totalement ou partiellement amovible, stockant un programme d'ordinateur comprenant un jeu d'instructions exécutables par un ordinateur pour mettre en oeuvre le procédé selon au moins une des revendications 1 à 10 et/ou le procédé selon au moins une des revendications 11 et 12. 14. A computer readable 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 10 and / or the process according to at least one of claims 11 and 12. 15. Noeud relais compris dans un réseau maillé et participant à un procédé de codage réseau dans ledit réseau maillé, ledit noeud relais, selon un schéma de codage réseau prédéterminé, s'attendant à recevoir en entrée une pluralité de paquets de données et devant générer en sortie un paquet résultant prédéterminé obtenu selon une première combinaison linéaire prédéterminée d'une partie de ladite pluralité de paquets de données, les paquets de données appartenant à ladite partie étant dits paquets utiles et les paquets de données n'appartenant pas à ladite partie étant dits paquet redondants, chacun des paquets de données attendus en entrée étant formé, selon ledit schéma de codage réseau prédéterminé, par une combinaison linéaire d'un ou plusieurs paquets sources, les paquets sources étant émis par des noeuds sources, ledit noeud relais étant caractérisé en ce qu'il comprend :- des moyens de détection, permettant de détecter si au moins un paquet utile est manquant ou qu'il a été reçu modifié de sorte que la combinaison linéaire du ou des paquets sources formant ledit paquet utile modifié ne soit pas conforme au schéma de codage réseau prédéterminé ; et - des moyens de construction, activés dans le cas d'une détection positive, permettant de construire un paquet résultant reconstitué en utilisant, selon un schéma de codage réseau modifié, tout ou partie des paquets redondants ; - des moyens de transmission, permettant de transmettre le paquet résultant reconstitué. 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 predetermined packet obtained according to a first predetermined linear combination of a portion of said plurality of data packets, the data packets belonging to said party being said useful packets and the data packets not belonging to said party being said redundant packet, each of the expected data packets being formed, according to said predetermined network coding scheme, by a linear combination of one or more source packets, the source packets being transmitted by source nodes, said relay node being characterized in that it comprises: detection means, making it possible to detect whether at least ins a useful packet is missing or has been received modified so that the linear combination of the source packet (s) forming said modified useful packet does not conform to the predetermined network coding scheme; and - building means, activated in the case of a positive detection, for constructing a reconstructed resultant packet using, in accordance with a modified network coding scheme, all or part of the redundant packets; transmission means for transmitting the resulting reconstituted packet. 16. Noeud destination compris dans un réseau maillé et participant à un procédé de codage réseau dans ledit réseau maillé, ledit noeud destination, selon un schéma de codage réseau prédéterminé, s'attendant à recevoir en entrée une pluralité de paquets de données et devant générer en sortie une pluralité de paquets sources décodés obtenus chacun selon une combinaison linéaire prédéterminée d'une partie de ladite pluralité de paquets de données, les paquets de données appartenant à ladite partie étant dits paquets utiles et les paquets de données n'appartenant pas à ladite partie étant dits paquet redondants, chacun des paquets de données attendus en entrée étant formé, selon ledit schéma de codage réseau prédéterminé, par une combinaison linéaire d'un ou plusieurs paquets sources, les paquets sources étant émis par des noeuds sources, ledit noeud destination étant caractérisé en ce qu'il comprend : - des moyens de détection, permettant de détecter si au moins un paquet utile est manquant ou qu'il a été reçu modifié de sorte que la combinaison linéaire du ou des paquets sources formant ledit paquet utile modifié ne soit pas conforme au schéma de codage réseau prédéterminé ; - des moyens de décodage, activés en cas de détection positive, permettant de décoder les paquets de données utiles reçus, en fonction d'un schéma de codage réseau modifié, pour obtenir au moins un paquet source décodé. 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 at the output a plurality of decoded source packets each obtained in a predetermined linear combination of a portion of said plurality of data packets, the data packets belonging to said portion being said useful packets and the data packets not belonging to said part being said redundant packet, each of the data packets expected input being formed, according to said predetermined network coding scheme, by a linear combination of one or more source packets, the source packets being transmitted by source nodes, said destination node characterized in that it comprises: - detection means, allowing detecting whether at least one useful packet is missing or has been received modified so that the linear combination of the source packet (s) forming said modified useful packet does not conform to the predetermined network coding scheme; - Decoding means, activated in case of positive detection, for decoding the received payload data packets, according to a modified network coding scheme, to obtain at least one decoded source packet.
FR0858366A 2008-12-08 2008-12-08 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 FR2939585B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR0858366A FR2939585B1 (en) 2008-12-08 2008-12-08 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
FR0858366A FR2939585B1 (en) 2008-12-08 2008-12-08 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
FR2939585A1 true FR2939585A1 (en) 2010-06-11
FR2939585B1 FR2939585B1 (en) 2011-02-18

Family

ID=40967371

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0858366A Expired - Fee Related FR2939585B1 (en) 2008-12-08 2008-12-08 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) FR2939585B1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040243902A1 (en) * 2001-09-26 2004-12-02 Dieter Bruckner Replacement messages for identifying and preventing errors during the transmission of real time-critical data
US20050010675A1 (en) * 2003-06-23 2005-01-13 Microsoft Corporation System and method for computing low complexity algebraic network codes for a multicast network
US20080075080A1 (en) * 2006-09-27 2008-03-27 Dina Katabi Methods and apparatus for network coding
US20080117904A1 (en) * 2006-10-04 2008-05-22 Board Of Trustees Of Michigan State University Framework for network coding and cross-layer information exchange in presence of errors in the packets

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040243902A1 (en) * 2001-09-26 2004-12-02 Dieter Bruckner Replacement messages for identifying and preventing errors during the transmission of real time-critical data
US20050010675A1 (en) * 2003-06-23 2005-01-13 Microsoft Corporation System and method for computing low complexity algebraic network codes for a multicast network
US20080075080A1 (en) * 2006-09-27 2008-03-27 Dina Katabi Methods and apparatus for network coding
US20080117904A1 (en) * 2006-10-04 2008-05-22 Board Of Trustees Of Michigan State University Framework for network coding and cross-layer information exchange in presence of errors in the packets

Non-Patent Citations (2)

* 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 *

Also Published As

Publication number Publication date
FR2939585B1 (en) 2011-02-18

Similar Documents

Publication Publication Date Title
EP2274852B1 (en) Method of decoding a signal implementing a progressive construction of a decoding tree, corresponding computer program product and decoding device
EP3443678B1 (en) Method of decoding a polar code with inversion of low reliability bits
EP2119095B1 (en) Ciphering method using error correcting codes
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.
FR2912020A1 (en) Information transmission securing method for e.g. wireless communication network, involves encrypting address of destination node of network, and associating control information with address for each of divided portions
EP2415199B1 (en) Method for performing a cryptographic task in an electronic component
FR2849514A1 (en) CODE OF ALGEBRA GEOMETRY ADAPTED TO RAFALE ERRORS
EP1959572B1 (en) Decoding method with message passing and forced convergence
FR2952252A1 (en) METHOD AND DEVICE FOR DECODING, COMPUTER PROGRAM PRODUCT, CORRESPONDING MEANS OF STORAGE AND CORRESPONDING DESTINATION NODE
EP3639427A1 (en) Omamrc transmission method and system with slow-link adaptation
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
EP1989807B1 (en) Method and system for transmitting a message expressed by means of a polynomial
FR2948246A1 (en) METHOD AND DEVICE FOR ALLOCATING BANDWIDTH RELEASED IN A COMMUNICATION NETWORK, COMPUTER PROGRAM PRODUCT AND CORRESPONDING STORAGE MEDIUM
EP2704344A1 (en) Method for optimising resources of a data transmission and device implementing the method
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
EP3326294B1 (en) Method for determining a route in a plc network
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
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
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
FR2922699A1 (en) ITERATIVE DECODING IN A MESH NETWORK, CORRESPONDING METHOD AND SYSTEM
WO2018095817A1 (en) Coder and decoder using a quasi-cyclic semi-regular ldpc code of short length for low consumption applications such as remote reading
FR3064858B1 (en) METHODS OF ENCODING AND DECODING DATA PACKETS IN A GALOIS BODY
EP2462715B1 (en) Method for searching for an entity using a verifier device, and related devices
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

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20140829