WO2018185402A1 - Procédés de codage et de décodage de paquets de données dans un corps de galois - Google Patents

Procédés de codage et de décodage de paquets de données dans un corps de galois Download PDF

Info

Publication number
WO2018185402A1
WO2018185402A1 PCT/FR2018/050770 FR2018050770W WO2018185402A1 WO 2018185402 A1 WO2018185402 A1 WO 2018185402A1 FR 2018050770 W FR2018050770 W FR 2018050770W WO 2018185402 A1 WO2018185402 A1 WO 2018185402A1
Authority
WO
WIPO (PCT)
Prior art keywords
matrix
packets
data packet
binary
bits
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.)
Ceased
Application number
PCT/FR2018/050770
Other languages
English (en)
Inventor
Patrick Tortelier
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.)
Orange SA
Original Assignee
Orange SA
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 Orange SA filed Critical Orange SA
Publication of WO2018185402A1 publication Critical patent/WO2018185402A1/fr
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

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/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/134Non-binary linear block codes not provided for otherwise
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0076Distributed coding, e.g. network coding, involving channel coding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/158Finite field arithmetic processing
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/615Use of computational or mathematical techniques
    • H03M13/616Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations

Definitions

  • the present invention relates to communication or data recording systems in which, in order to improve the fidelity of transmission or storage, the data is subjected to a so-called "network coding" ("Network Coding”). .
  • Network Coding Network Coding
  • the invention relates more particularly to the transmission of data packets on a channel affected by packet losses.
  • a channel On such a channel, some packets are received perfectly (thanks to properly defined modulation and coding at the physical layer); however, other packets are not received, either because these packets are deleted due to congestion in a router, or because they are received in bad conditions (noise, interference) and can not be decoded correctly.
  • Such a transmission channel is called “erasing channel”, and lost packets are said to be "erased”.
  • Systems for transmitting packets on channels causing erasures include, for example:
  • eMBMS evolved Multimedia
  • VoLTE Voice over LTE
  • WebRTC Web Real-Time Communication
  • packets are called "blocks”, but the term “packets” will be used uniformly below.
  • the network coding (see for example the article by R. Koetter and M. Medard entitled “/ An algebraic approach to network coding", IEEE / ACM Transactions on Networking, Volume 1 1, No. 5, Oct. 2003, pages 782-795) consists in transmitting information in data packets of such that this information follows several paths in a distributed infrastructure including nodes that serve as relays (or routers).
  • the present invention relates more particularly to the case in which the relays can store and retransmit ("store and forward" in English) the useful data packets entering these relays, but can also, as illustrated in FIG. 1, retransmit packets of useful data that result from processing on these input packets, i.e., which constitute a certain function f of these input packets.
  • each payload packet consists of L symbols of m bits belonging to a binary extension body GF (2 m ).
  • GF binary extension body
  • Each relay can transfer the payload packets it receives without modification, or transmit on the output link a linear combination of packets received on the input links, it being understood that, as explained above (erase channel) , some packets sent by other nodes of the network may not have been received (in which case the relay does not try to find the deleted packets).
  • the transmission of information packets from a source S to a recipient (or receiver) D via an N network can be described by a graph (see FIG. 2) whose nodes represent relays such as that illustrated in FIG. and branches represent existing links between:
  • the source S emits a series of information packets said
  • One and the same packet P t may travel on several paths of the network N originating from S.
  • the recipient D may therefore receive a number n ⁇ k of useful data packets R t , each of which may be:
  • the N network relays perform linear combinations on the packets of the same stream (from the same source S to the same recipient D) with coefficients that can be determined once and for all, or be drawn at each application in the case of the so-called "random" network coding.
  • the packets received are in an order which may be different from that of the transmitted packets.
  • the topology of the network is not necessarily known to the recipient and / or the issuer. This means that the recipient receives a number n of packets which are each a linear combination of the packets P i emitted by the source S, which can be written as follows:
  • the matrix K In order to find these packets P ⁇ from the received packets R t , the matrix K must be known to the recipient, and, when it is known, it must be of rank k. In particular, the recipient must have a number n ⁇ k of received packets R t , otherwise the matrix would be of rank lower than k and the packets P j could not be traced back.
  • the present invention thus relates, in a first aspect, to a method of coding data packets in a network (N), comprising the following steps:
  • the conventional multiplication table consultation mechanism can be replaced by a set of binary operations carried out in a vectorial manner at the level of the symbols of said data packet P.
  • the present invention is therefore particularly advantageous because, if it allows a software implementation of encoding or decoding as state-of-the-art techniques, it also makes it possible to efficiently use an electronic circuit simultaneously with software means, or in their place.
  • VNF virtualized network function
  • said matrices M (a), for are extracted from a reference matrix T of dimension
  • said matrices M (a), for are extracted from a reference matrix T of dimension
  • the invention relates to various devices.
  • a device for coding data packets comprising means for:
  • M (a) is the binary matrix of dimensions mxm whose respective columns contain the binary coordinates of the respective elements ⁇ a, yy, ..., a m_1 a ⁇ , where a is a root of said primitive polynomial, obtaining the rows of said matrix Y by means of binary additions of rows of the matrix X in patterns determined by the rows of the matrix M (a);
  • said coding device further comprises means for extracting said matrices M (a), for a reference matrix T of dimension
  • the invention also relates, secondly, to a device for decoding data packets, comprising means for:
  • Q a P
  • Q a P
  • M (a) is the binary matrix of dimensions mxm whose respective columns contain the binary coordinates of the respective elements where a is a root of said primitive polynomial, obtaining the rows of said matrix Y by means of binary additions of rows of the matrix X in patterns determined by the rows of the matrix M ⁇ a);
  • said coding device further comprises means for extracting said matrices M (a), for a reference matrix T of dimension
  • the invention relates to:
  • a node referred to as a relay node, of a communication network, comprising a coding device as briefly described above, and
  • a node said destination node, of a communication network comprising a decoding device as briefly described above.
  • a node of a communication network may comprise both a coding device and a decoding device as briefly described above.
  • the invention relates to a communication network, comprising at least one relay node as briefly described above and at least one destination node as briefly described above.
  • said relay node and said destination node must, in order to be mutually compatible, use not only the same binary extension body GF (2 m ), ie the same value of m, but in addition the same representation of this body, that is to say, the same primitive polynomial.
  • the invention also relates to a computer program downloadable from a communication network and / or stored on a computer readable medium and / or executable by a microprocessor.
  • This computer program is notable in that it includes instructions for performing the steps of the data packet coding method succinctly set forth above. above, or the method of decoding data packets succinctly set forth above, when executed on a computer.
  • FIG. 1, described above, represents the operation carried out by a relay node in the network coding
  • FIG. 2 described above, schematically represents a transmission system T according to the invention
  • FIG. 3 schematically represents the structure of a data packet according to one embodiment of the invention
  • FIG. 4 represents the relationship between the operation carried out by a relay node R in the network coding, and the structure of the data packet transmitted by this relay node R,
  • FIG. 5 represents, at a relay node R, the relationship between the incoming data packets and the transmitted data packet
  • FIG. 6 represents, at a relay node R, the relationship between the incoming data packets and the data packet transmitted when an incoming data packet is erased
  • FIG. 7 schematically represents a relay node R according to one embodiment of the invention
  • FIG. 8 schematically represents a destination node D according to one embodiment of the invention.
  • FIG. 9 represents the representation of a vector of L symbols belonging to GF (2 m ) in the form of a binary matrix m ⁇ L.
  • the identifier When a relay R of the network N transmits an information packet without modifying it, the identifier is unchanged. When this relay performs a linear combination of information packets P i , the identifier contains the list of coefficients used, some of the coefficients being null, as illustrated.
  • each packet of useful data Y i being characterized by a vector of identifiers the identifier vector C of the outgoing data packet contains the linear combinations of the identifiers of the input packets, as illustrated in FIG. 5.
  • the operation done on the identifiers during the coefficient linear combination in GF (2 m ) is exactly the same as that performed on the payload packets; the relay R can therefore advantageously perform these two operations in one go.
  • the header of a payload packet R i received by the recipient D always correctly indicates the manner in which this payload packet R t was obtained from information packets P i initial. Therefore, after receiving the relevant data packets
  • the matrix K mentioned above will be known to the recipient, as required.
  • the recipient D proceeds as follows:
  • the source S does not wait for acknowledgment for each packet that it transmits
  • the recipient D does not send an acknowledgment when he receives an encoded packet
  • the recipient D extracts the identifier and has an equation
  • the recipient D checks whether the rank of the matrix of the system is equal to k, using any conventional method (for example the Gauss method); the article by C. Studholme and I. Blake entitled “Random matrices and codes for the erasure channel", Algorithmica, vol. 56, No. 4, pages 605 to 620 (2010), demonstrates that, in the case of a randomly filled matrix, the matrix is of rank equal to k with a high probability;
  • the recipient D waits for the reception of new packets until the condition of rank equal to k is checked; preferably, a limit n max is set to the number of packets transmitted by the source S, and the recipient D sends a negative acknowledgment (NACK) if he fails to obtain an invertible matrix after the end of the transmission of the n max packets; in this case, the source sends additional coded packets until decoding is possible;
  • NACK negative acknowledgment
  • FIG. 7 schematically represents a relay node R according to one embodiment of the invention.
  • the relay R comprises a reception module 10, an extraction module 11, a module 12 for computing the outgoing user data packet, a memory module 13, a building module 14 and a transmission module 15.
  • the input module 10 is adapted to receive incoming data packets from other nodes of the network N, and to transmit these incoming data packets to the extraction module 11.
  • the extraction module 11 is adapted to extract from each incoming packet its header (designated "H” in FIG. 7), and to transmit to the calculation module 12 the remainder of the incoming packet, ie say the set formed by a identifier vector C (,) and a payload data packet Y i (referred to as "payload" in FIG. 7).
  • the calculation module 12 is adapted to extract from each incoming packet its header (designated "H” in FIG. 7), and to transmit to the calculation module 12 the remainder of the incoming packet, ie say the set formed by a identifier vector C (,) and a payload data packet Y i (referred to as "payload" in FIG. 7).
  • this module can be integrated in the relay R as shown in FIG. 7, or constitute an external source that can be accessed by the relay R, and
  • the coefficients can be constant for a given relay R, or
  • the building module 14 is adapted to receive, on the one hand, the packet header H mentioned above, and on the other hand the set formed by the outgoing identifier vector C and the outgoing user data packet F ', and to build from these elements an outgoing data packet.
  • the transmission module 15 is adapted to receive the outgoing data packet from the building module 14, and to transmit this outgoing data packet on the network N.
  • FIG. 8 schematically represents a destination node D according to one embodiment of the invention.
  • the recipient D comprises a reception module 20, an extraction module 21, a building module 22, a second member module 23, a test module 27, an inversion module 26, a resolution module 24 and a transmission module 25.
  • the extraction module 21 is adapted to separate, in each packet received, its header (denoted by "H” in FIG. 8), its identifier vector and its payload packet R i .
  • the second member module 23 is adapted to receive from the extraction module 21, as and when receiving packets by the receiving module 20, the useful data packets and to add equal rows to these payload packets R i to the second member vector
  • the building module 22 is adapted to receive from the extraction module 21, as and when receiving packets by the receiving module 20, the identifier vectors and to add lines consisting of these identifiers to a matrix used to construct the matrix K.
  • test module 27 is adapted to receive, as packets are received by the receiving module 20, said matrix being constructed by the building module 22, and to determine whether the determinant of this module matrix is different from zero, that is to say if this matrix is regular (rank equal to k).
  • the reception module 20 is adapted to stop receiving packets
  • the inversion module 26 is adapted to calculate the inverse of the matrix K obtained.
  • the resolution module 24 is adapted to receive said second member vector from the second member module 23, as well as the inverse of the matrix K from the inversion module 26, and to calculate the product of these elements. two magnitudes by implementing the multiplication method in GF (2 m ) according to the invention, so as to retrieve the initial information packets.
  • the transmission module 25 is adapted to receive the information packets initials from the resolution module 24, and to transmit these information packets to the user of the destination node D.
  • the coding and decoding considered in the present invention are realized in a binary extension body GF (2 m ), where m> 1.
  • GF (2 m ) a binary extension body GF (2 m ), where m> 1.
  • a is a root of a predetermined primitive polynomial.
  • binary coordinates is the element whose binary coordinates are obtained as follows:
  • Y is the column vector containing the m binary coordinates of y
  • n 2 m - 1, of dimension mx (2 m + m - 2), previously constructed, whose columns contain the coordinates of a k for k ⁇ 0.
  • T which will be called "reference matrix”
  • the last (m - 1) columns are a simple copy of the first (m -1) columns.
  • M ⁇ a k ) is then the sub-matrix obtained by extracting the columns n (k + 1) to (k + m) from the reference matrix T, which will be noted as follows:
  • the invention may be implemented within the nodes, for example a relay node or a destination node of a communication network, by means of software and / or hardware components.
  • the present invention also relates to a computer system.
  • This computer system conventionally comprises a central processing unit controlling signals by a memory, as well as an input unit and an output unit.
  • this computer system may be used to execute a computer program comprising instructions for implementing any of the methods of encoding, or decoding, data packets according to the invention.
  • the invention also relates to a downloadable computer program from a communication network comprising instructions for executing the steps of a method of encoding, or decoding, data packets according to the invention, when it is run on a computer.
  • This computer program may be stored on a computer readable medium and may be executable by a microprocessor.
  • This program can use any programming language, and be in the form of source code, object code, or intermediate code between source code and object code, such as in a partially compiled form, or in any another desirable form.
  • the invention also relates to an information carrier, irremovable, or partially or completely removable, readable by a computer, and comprising instructions of a computer program as mentioned above.
  • the information carrier may be any entity or device capable of storing the program.
  • the medium may comprise storage means, such as a ROM, for example a CD ROM or a ROM of microelectronic circuit, or a magnetic recording means, such as a hard disk, or a USB flash drive ("USB flash drive").
  • the information medium may be a transmissible medium such as an electrical or optical signal, which may be conveyed via an electrical or optical cable, by radio or by other means.
  • the computer program according to the invention can in particular be downloaded to an Internet type network.
  • the information carrier may be an integrated circuit in which the program is embedded, the circuit being adapted to execute or to be used in performing any of the methods of encoding, or decoding, packets data according to the invention.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

La présente invention concerne un procédé de codage de paquets de données, comprenant les étapes suivantes : réception de r ≥1 l paquets de données utiles Y i constitué chacun par une combinaison linéaire, où les coefficients de ladite combinaison linéaire sont pris dans un corps d'extension GF(2 m ) défini au moyen d'un polynôme primitif choisi, des mêmes k ≥1 paquets d'information {P 1, P 2,..., P k} dits paquets initiaux, chaque paquet d'information contenant L ≥ 1 symboles constitués chacun d'une suite de m > 1 bits; calcul d'un paquet de données utiles sortant Y' constitué par une combinaison linéaire des paquets de données utiles Y i ;, où les coefficients α i sont pris dans ledit corps d'extension GF(2 m ); et émission dudit paquet de données utiles sortant Y'. Ledit procédé de codage est remarquable en ce que ladite étape de calcul du paquet de données utiles sortant Y' comprend au moins une sous-étape de multiplication Q = a P de tous les symboles d'un paquet de données P = (x 1,..., x L ) dans lequel x j pour j = 1,..., L, est un symbole composé d'une suite de m bits x ij , où i = 0,..., m - 1, par un même nombre α appartenant à GF(2 m ), et en ce que ladite multiplication est réalisée au moyen d'opérations binaires effectuées de manière vectorielle au niveau des symboles dudit paquet de données P. Application à la transmission de paquets de données binaires sur des canaux à effacements.

Description

PROCEDES DE CODAGE ET DE DECODAGE
DE PAQUETS DE DONNEES DANS UN CORPS DE GALOIS
La présente invention concerne les systèmes de communication ou d'enregistrement de données dans lesquels, afin d'améliorer la fidélité de la transmission ou du stockage, on soumet les données à un codage dit « de réseau » (« Network Coding » en anglais).
L'invention concerne plus particulièrement la transmission de paquets de données sur un canal affecté par des pertes de paquets. Sur un tel canal, certains paquets sont reçus parfaitement (grâce à une modulation et un codage convenablement définis au niveau de la couche physique) ; en revanche, d'autres paquets ne sont pas reçus, soit parce que ces paquets sont supprimés en raison d'une congestion dans un routeur, soit parce qu'ils sont reçus dans de mauvaises conditions (bruit, interférences) et ne peuvent être décodés correctement. Un tel canal de transmission est appelé « canal à effacements », et les paquets perdus sont dits « effacés ». Les systèmes de transmission de paquets sur des canaux provoquant des effacements comprennent par exemple :
- le stockage de masse, ainsi que le stockage distribué, systèmes dans lesquels les pertes de données sont dues à des pannes de disques durs ou de serveurs ;
- la diffusion en broadcast ou en multicast eMBMS (evolved Multimedia
Broadcast Multicast Services) en LTE (Long Term Evolution), pour la transmission de fichiers ou de programmes audiovisuels en continu (streaming) ; et
- la transmission en temps réel de la Voix ou de la Vidéo sur des canaux à pertes, tels que VoLTE (Voice over LTE) ou WebRTC (Web Real-Time Communication).
On notera que, dans certains de ces systèmes, les paquets sont appelés « blocs », mais on utilisera uniformément le terme de « paquets » ci-dessous.
On rappelle que le codage de réseau (cf. par exemple l'article de R. Koetter et M. Medard intitulé « /An algebraic approach to network coding », IEEE/ACM Transactions on Networking, vol. 1 1 , n ° 5, oct. 2003, pages 782 à 795) consiste à transmettre des informations dans des paquets de données de telle sorte que ces informations suivent plusieurs trajets dans une infrastructure distribuée comprenant des nœuds qui servent de relais (ou de routeurs).
La présente invention concerne plus particulièrement le cas dans lequel les relais peuvent stocker et retransmettre (« store and forward » en anglais) les paquets de données utiles entrant dans ces relais, mais peuvent aussi, comme illustré sur la figure 1 , retransmettre des paquets de données utiles qui résultent d'un traitement sur ces paquets d'entrée, c'est-à-dire qui constituent une certaine fonction f de ces paquets d'entrée.
On supposera que les paquets de données utiles contenus dans tous ces paquets de données ont tous le même nombre de bits. Si ce nombre est un multiple d'un entier m supérieur à 1 , on peut considérer que chaque paquet de données utiles est constitué de L symboles de m bits appartenant à un corps d'extension binaire GF(2m ) . On rappelle à cet égard que l'on appelle corps de Galois (noté GF(q) ) un ensemble de q éléments dont les éléments non-nuls peuvent être identifiés comme étant chacun égal à
Figure imgf000004_0001
pour une valeur correspondante de j , où j = 1,..., q - 1 , et où α est une racine
Figure imgf000004_0002
primitive de l'unité dans GF(q) ; lorsque, en particulier, q = 2m , où m > 1 , le corps de Galois est également appelé « corps d'extension binaire ».
Chaque relais peut transférer sans modification les paquets de données utiles qu'il reçoit, ou transmettre sur le lien de sortie une combinaison linéaire de paquets reçus sur les liens d'entrée, étant entendu que, comme expliqué ci- dessus (canal à effacements), certains paquets envoyés par d'autres nœuds du réseau peuvent ne pas avoir être reçus (auxquels cas le relais ne cherche pas à retrouver les paquets effacés).
Lorsque les paquets d'entrée X1, ... , Xn sont tous constitués de L éléments de GF(2m ) , une opération très simple sur ces paquets d'entrée consiste à effectuer une addition bit à bit (on rappelle que l'addition bit à bit est également appelée « OU exclusif », et notée « XOR ») des paquets d'entrée :
Figure imgf000004_0003
Une règle de calcul plus complexe du paquet de sortie Y met en œuvre des combinaisons linéaires des paquets d'entrée avec des coefficients
Figure imgf000005_0005
c'est-à-dire :
Figure imgf000005_0004
Figure imgf000005_0003
Cette relation entrée-sortie fait maintenant intervenir des multiplications dans le corps GF(2m ) . Par commodité de notation, nous représenterons ci-après l'opération XOR par le symbole usuel ( + ) de l'addition, de sorte que la relation précédente s'écrit :
Figure imgf000005_0001
La transmission de paquets d'information d'une source S vers un destinataire (ou récepteur) D via un réseau N peut être décrite par un graphe (voir figure 2) dont les nœuds représentent des relais tels que celui illustré sur la figure 1 , et les branches représentent les liens existants entre :
- la source et un ou plusieurs relais,
- le destinataire et un ou plusieurs relais, et
entre les relais eux-mêmes.
La source S émet une suite de paquets d'information dits
Figure imgf000005_0006
paquets initiaux. Un même paquet Pt peut circuler sur plusieurs chemins du réseau N issus de S. Le destinataire D peut donc recevoir un nombre n≥k de paquets de données utiles Rt , chacun d'entre eux pouvant être :
- une copie d'un des paquets s'il a été transmis par des nœuds
Figure imgf000005_0007
retransmettant sans modification les paquets qu'ils reçoivent, ou
- une combinaison linéaire de la forme
Figure imgf000005_0002
s'il est passé par des relais effectuant des combinaisons linéaires, les coefficients cUj étant pris dans un corps d'extension GF (2m ) ; les relais du réseau N effectuent des combinaisons linéaires sur les paquets d'un même flot (allant de la même source S vers le même destinataire D) avec des coefficients qui peuvent soit être déterminés une fois pour toutes, soit être tirés au sort à chaque application dans le cas du codage de réseau dit « aléatoire ».
Il faut noter que, les différents chemins entre la source S et le destinataire D ayant potentiellement des longueurs différentes (en nombre de branches) et des retards différents, les paquets reçus le sont dans un ordre qui peut être différent de celui des paquets émis. D'autre part la topologie du réseau n'est pas nécessairement connue du destinataire et/ou de l'émetteur. Cela signifie que le destinataire reçoit un nombre n de paquets qui sont chacun une combinaison linéaire des paquets Pi émis par la source S, ce que l'on peut écrire de la façon suivante :
Figure imgf000006_0001
Afin de retrouver ces paquets P} à partir des paquets reçus Rt , il faut que la matrice K soit connue du destinataire, et, lorsqu'elle est connue, qu'elle soit de rang k . Il faut en particulier que le destinataire dispose d'un nombre n≥k de paquets reçus Rt , sans quoi la matrice serait de rang inférieur à k et l'on ne pourrait pas remonter aux paquets Pj .
Cette technique du codage de réseau consiste donc en un codage/décodage au moyen d'un code sans rendement prédéfini (« rateless code » en anglais) à cause de la contrainte n≥ k, n pouvant être (théoriquement) infini. En fait il s'agit d'une instance des codes dits « codes fontaine » (« fountain codes » en anglais), avec les différences suivantes :
• il existe plus d'un chemin entre source et destinataire, et les paquets reçus par un même destinataire peuvent avoir suivi des chemins différents ;
• les combinaisons linéaires des paquets d'information Pj ne sont pas effectuées par la source mais par les éléments du réseau (codage distribué) ;
• les coefficients de ces combinaisons linéaires peuvent être prédéterminés et fixes dans le temps, ou bien être tirés au sort par les nœuds du réseau ; ce dernier cas (décrit dans l'article de T. Ho, M. Médard, R. Koetter, D.R. Karger, M. Effros, J. Shi, et B. Leong intitulé « A random linear Network Coding approach to multicast », IEEE Trans. Information Theory, vol. 52, n ° 10, oct. 2006, pages 4413 à 4430) est appelé « codage de réseau aléatoire » (« Random Linear Network Coding », ou RLNC, en anglais).
On notera que l'utilisation de codes sans rendement prédéfini pour récupérer les paquets perdus durant des phénomènes de congestion permet d'envisager la possibilité de mettre en œuvre des protocoles de transmission de données par paquets sans faire appel au mécanisme de contention classiquement utilisé pour éviter les collisions, d'où un gain en termes de simplicité de mise en œuvre et de rapidité d'exécution.
Cela étant, de simples considérations d'algèbre linéaire permettent de montrer que la résolution d'un système d'équations dans GF(2m) faisant intervenir des paquets de données peut être ramenée à des additions de paquets et à des multiplications d'un paquet par un même élément de GF(2m) , c'est-à- dire des combinaisons linéaires de paquets avec des coefficients pris dans GF(2m) . Dans le cadre de ces calculs, l'addition bit à bit est simple à mettre en œuvre, mais la multiplication dans GF(2m) repose classiquement sur un mécanisme logiciel de consultation de table de multiplication.
Or, lorsqu'il faut multiplier tous les éléments d'un vecteur donné
X = (x1; ... , xn) composé d'éléments de GF{2m) par un même élément a de GF{2m) , on ne peut pas consulter ladite table de multiplication de façon vectorielle ; autrement dit, il faut consulter la table pour chaque élément xi du vecteur, ce qui est d'autant plus lent que le vecteur est plus long.
La présente invention concerne donc, selon un premier aspect, un procédé de codage de paquets de données dans un réseau (N), comprenant les étapes suivantes :
- réception de r≥ 1 paquets de données utiles Yi constitué chacun par une combinaison linéaire
Figure imgf000007_0001
où les coefficients sont pris dans un corps d'extension GF (2m ) défini au
Figure imgf000008_0003
moyen d'un polynôme primitif choisi, des mêmes k≥1 paquets d'information dits paquets initiaux, chaque paquet d'information contenant
Figure imgf000008_0002
L≥ 1 symboles constitués chacun d'une suite de m > l bits ;
- calcul d'un paquet de données utiles sortant Y' constitué par une combinaison linéaire
Figure imgf000008_0004
desdits paquets de données utiles Yn où les coefficients «, sont pris dans ledit corps d'extension GF (2m ) ; et
- émission dudit paquet de données utiles sortant Y' .
Ledit procédé de codage est remarquable en ce que ladite étape de calcul du paquet de données utiles sortant y comprend au moins une sous-étape de multiplication Q = a - P de tous les symboles d'un paquet de données
P = (x1; ... , xL) dans lequel Xj , pour ; = 1, ... , L, est un symbole composé d'une suite de m bits xy , où i = 0, ... , m - 1, par un même nombre a appartenant à
GF (2m ) , et en ce que ladite multiplication est effectuée de la manière suivante : a) remplissage d'une matrice binaire X de dimension mx L en plaçant les bits xy composant chaque symbole Xj le long de la j -ième colonne de ladite matrice X ;
b) calcul de la matrice binaire
Y = M(a)x X ,
de dimension mx L , où M {a) est la matrice binaire de dimensions mx m dont les colonnes respectives contiennent les coordonnées binaires des éléments respectifs où a est une racine dudit polynôme primitif, en
Figure imgf000008_0001
obtenant les lignes de ladite matrice Y au moyen d'additions binaires de lignes de la matrice X selon des motifs déterminés par les lignes de la matrice M {a) ; et c) obtention du paquet de données dans lequel
Figure imgf000009_0001
chaque symbole yp pour j = 1,2, ... , L, est composé des m bits où
Figure imgf000009_0004
i = 0, ... , m - 1, situés sur la j -ième colonne de ladite matrice Y .
Grâce à ces dispositions, on peut remplacer le mécanisme classique de consultation de table de multiplication par un ensemble d'opérations binaires effectuées de manière vectorielle au niveau des symboles dudit paquet de données P. La présente invention est donc particulièrement avantageuse car, si elle permet une mise en œuvre logicielle du codage ou du décodage comme les techniques de l'état de l'art, elle permet aussi d'utiliser efficacement un circuit électronique simultanément à des moyens logiciels, ou à leur place.
On notera en particulier que le procédé selon l'invention se prête bien à la virtualisation. On peut en effet supposer que certaines fonctions nécessiteront le recours à des coprocesseurs matériels tels qu'un circuit logique programmable (« Field-Programmable Gâte Array », ou FPGA, en anglais), un processeur graphique (« Graphics Processing Unit », ou GPU, en anglais), ou un processeur de signal numérique (« Digital Signal Processor », ou DSP, en anglais), pour accélérer certains traitements nécessitant une grande puissance de calcul, tels que les traitements de chiffrement, mais aussi ceux introduits par le codage de canal et par le codage de réseau. La présente invention est donc particulièrement avantageuse dans le cadre d'une fonctionnalité de codage de réseau virtualisée (« Virtualized Network Function », ou VNF, en anglais) principalement écrite sous forme logicielle et recourant à un accélérateur matériel mettant en œuvre la multiplication dans GF (2m ) en mode paquet.
Selon des caractéristiques particulières, lesdites matrices M (a) , pour
Figure imgf000009_0003
sont extraites d'une matrice de référence T de dimension
Figure imgf000009_0002
Grâce à ces dispositions, on peut aisément obtenir les matrices M (a) sans aucun calcul, par simple lecture dans une unique matrice T construite et stockée préalablement à la mise en œuvre dudit procédé de codage.
Corrélativement, l'invention concerne un procédé de décodage de paquets de données, comprenant les étapes suivantes : - réception de n > 1 paquets de données codés
Figure imgf000010_0002
où, pour i = 1, ... , n, chaque paquet de données codé
Figure imgf000010_0001
est une combinaison linéaire des mêmes k≥1 paquets d'information Pj contenant chacun L≥1 symboles constitués d'une suite de m > l bits, et où les coefficients ct j sont pris dans un corps d'extension GF (2m ) défini au moyen d'un polynôme primitif choisi, et
- résolution du système formé par lesdites combinaisons linéaires, de manière à obtenir lesdits paquets d'information Pj .
Ledit procédé de décodage est remarquable en ce que ladite étape de résolution d'un système de combinaisons linéaires comprend au moins une sous-étape de multiplication Q = a - P de tous les symboles d'un paquet de données
P = (x1; ... , xL) dans lequel Xj , pour j = 1, ... , L, est un symbole composé d'une suite de m bits xy , où i = 0, ... , m - 1, par un même nombre a appartenant à
GF (2m ) , et en ce que ladite multiplication est effectuée de la manière suivante : a) remplissage de la matrice binaire X de dimension m x L en plaçant les bits xy composant chaque symbole le long de la j -ième colonne
Figure imgf000010_0003
de ladite matrice X ;
b) calcul de la matrice binaire
Y = M(a)x X ,
de dimension mxL , où la matrice M (a) est la matrice binaire de dimensions mxffl dont les colonnes respectives contiennent les coordonnées binaires des éléments respectifs où a est une racine dudit polynôme
Figure imgf000010_0004
primitif, en obtenant les lignes de ladite matrice Y au moyen d'additions binaires de lignes de la matrice X selon des motifs déterminés par les lignes de la matrice M (a) ; et c) obtention du paquet de données Q = (y1; ... , yL), dans lequel chaque symbole yp pour j = 1,2, ... , L, est composé des m bits où
Figure imgf000011_0003
i = 0, ... , m - 1, situés sur la j -ième colonne de ladite matrice Y .
Les avantages offerts par ce procédé de décodage sont essentiellement les mêmes que ceux offerts par le procédé de codage corrélatif succinctement exposé ci-dessus.
Selon des caractéristiques particulières, lesdites matrices M (a) , pour
Figure imgf000011_0002
sont extraites d'une matrice de référence T de dimension
Figure imgf000011_0001
Grâce à ces dispositions, on peut aisément obtenir les matrices M (a) sans aucun calcul, par simple lecture dans une unique matrice T construite et stockée préalablement à la mise en œuvre dudit procédé de décodage.
Selon un deuxième aspect, l'invention concerne divers dispositifs.
Elle concerne ainsi, premièrement, un dispositif de codage de paquets de données, comprenant des moyens pour :
- recevoir r≥l paquets de données utiles Yi constitué chacun par une combinaison linéaire
Figure imgf000011_0004
; i
où les coefficients sont pris dans un corps d'extension GF (2m ) défini au
Figure imgf000011_0007
moyen d'un polynôme primitif choisi, des mêmes k≥1 paquets d'information dits paquets initiaux, chaque paquet d'information contenant
Figure imgf000011_0006
L≥ 1 symboles constitués chacun d'une suite de m > l bits ;
- calculer un paquet de données utiles sortant y constitué par une combinaison linéaire
Figure imgf000011_0005
des paquets de données utiles Z , où les coefficients «, sont pris dans ledit corps d'extension GF (2m ) ; et
- émettre ledit paquet de données utiles sortant y . Ledit dispositif de codage est remarquable en ce qu'il comprend en outre, dans le but d'effectuer au moins une multiplication Q = a P , requise pour le calcul du paquet de données utiles sortant Y\ de tous les symboles d'un paquet de données P = (x1; ... , xL) dans lequel xj t pour j = l, ... , L, est un symbole composé d'une suite de m bits où i = 0, ... , m - 1, par un même nombre a
Figure imgf000012_0003
appartenant à GF (2m ) , des moyens pour :
- remplir une matrice binaire X de dimension mx L en plaçant les bits xy composant chaque symbole Xj le long de la j -ième colonne de ladite matrice x ;
- calculer la matrice binaire
Y = M(a)x X ,
de dimension mxL , où M (a) est la matrice binaire de dimensions m x m dont les colonnes respectives contiennent les coordonnées binaires des éléments respectifs {a, aa, ... , am_1a}, où a est une racine dudit polynôme primitif, en obtenant les lignes de ladite matrice Y au moyen d'additions binaires de lignes de la matrice X selon des motifs déterminés par les lignes de la matrice M (a) ; et
- obtenir le paquet de données , dans lequel chaque
Figure imgf000012_0002
symbole yj t pour j = 1,2, ... , L, est composé des m bits yy , où i = 0, ... , m - 1, situés sur la j' -ième colonne de ladite matrice Y .
Selon des caractéristiques particulières, ledit dispositif de codage comprend en outre des moyens pour extraire lesdites matrices M (a) , pour d'une matrice de référence T de dimension
Figure imgf000012_0004
Figure imgf000012_0005
L'invention concerne aussi, deuxièmement, un dispositif de décodage de paquets de données, comprenant des moyens pour :
- recevoir n > \ paquets de données codés où, pour
Figure imgf000012_0001
i = 1, ... , n, chaque paquet de données codé
Figure imgf000013_0001
est une combinaison linéaire des mêmes k≥1 paquets d'information Pj contenant chacun L≥1 symboles constitués d'une suite de m > l bits, et où les coefficients sont pris dans un corps d'extension défini au moyen
Figure imgf000013_0003
Figure imgf000013_0002
d'un polynôme primitif choisi ; et
- résoudre le système formé par lesdites combinaisons linéaires, de manière à obtenir lesdits paquets d'information Pj .
Ledit dispositif de décodage est remarquable en ce qu'il comprend en outre, dans le but d'effectuer au moins une multiplication Q = a P , requise pour la résolution dudit système de combinaisons linéaires, de tous les symboles d'un paquet de données dans lequel pour est un
Figure imgf000013_0004
Figure imgf000013_0008
Figure imgf000013_0009
symbole composé d'une suite de m bits xy , où i = 0, ... , m - 1, par un même nombre a appartenant à GF (2m ) , des moyens pour :
- remplir une matrice binaire X de dimension mx L en plaçant les bits xy composant chaque symbole Xj le long de la j -ième colonne de ladite matrice X ;
- calculer la matrice binaire
Figure imgf000013_0005
de dimension mx L , où M(a) est la matrice binaire de dimensions m x m dont les colonnes respectives contiennent les coordonnées binaires des éléments respectifs
Figure imgf000013_0006
où a est une racine dudit polynôme primitif, en obtenant les lignes de ladite matrice Y au moyen d'additions binaires de lignes de la matrice X selon des motifs déterminés par les lignes de la matrice M {a) ; et
- obtenir le paquet de données dans lequel chaque
Figure imgf000013_0010
symbole pour j = 1,2, ... , L, est composé des m bits où
Figure imgf000013_0007
Figure imgf000013_0011
i = 0, ... , m - 1, situés sur la j -ième colonne de ladite matrice Y . Selon des caractéristiques particulières, ledit dispositif de codage comprend en outre des moyens pour extraire lesdites matrices M (a) , pour d'une matrice de référence T de dimension
Figure imgf000014_0001
mx(2m + m - 2) .
Selon un troisième aspect, l'invention concerne :
- un nœud, dit nœud relais, d'un réseau de communication, comprenant un dispositif de codage tel qu'exposé succinctement ci-dessus, et
- un nœud, dit nœud destinataire, d'un réseau de communication comprenant un dispositif de décodage tel qu'exposé succinctement ci-dessus.
Naturellement, un nœud d'un réseau de communication peut comprendre à la fois un dispositif de codage et un dispositif de décodage tels qu'exposés succinctement ci-dessus.
Les avantages offerts par ces dispositifs et ces nœuds sont essentiellement les mêmes que ceux offerts par les procédés corrélatifs succinctement exposés ci-dessus.
On notera qu'il est possible de réaliser ces dispositifs dans le contexte d'instructions logicielles et/ou dans le contexte de circuits électroniques.
Selon un quatrième aspect, l'invention concerne un réseau de communication, comprenant au moins un nœud relais tel que décrit succinctement ci-dessus et au moins un nœud destinataire tel que décrit succinctement ci-dessus.
On notera que dans un tel réseau de communication, ledit nœud relais et ledit nœud destinataire doivent, pour être mutuellement compatibles, utiliser non seulement le même corps d'extension binaire GF (2m ) , c'est-à-dire la même valeur de m , mais en outre la même représentation de ce corps, c'est-à-dire le même polynôme primitif.
L'invention vise également un programme d'ordinateur téléchargeable depuis un réseau de communication et/ou stocké sur un support lisible par ordinateur et/ou exécutable par un microprocesseur. Ce programme d'ordinateur est remarquable en ce qu'il comprend des instructions pour l'exécution des étapes du procédé de codage de paquets de données succinctement exposé ci- dessus, ou du procédé de décodage de paquets de données succinctement exposé ci-dessus, lorsqu'il est exécuté sur un ordinateur.
Les avantages offerts par ce programme d'ordinateur sont essentiellement les mêmes que ceux offerts par lesdits procédés.
D'autres aspects et avantages de l'invention apparaîtront à la lecture de la description détaillée ci-dessous de modes de réalisation particuliers, donnés à titre d'exemples non limitatifs. La description se réfère aux figures qui l'accompagnent, dans lesquelles :
- la figure 1 , décrite ci-dessus, représente l'opération effectuée par un nœud relais dans le codage de réseau,
- la figure 2, décrite ci-dessus, représente schématiquement un système de transmission T selon l'invention,
- la figure 3 représente schématiquement la structure d'un paquet de données selon un mode de réalisation de l'invention,
- la figure 4 représente la relation entre l'opération effectuée par un nœud relais R dans le codage de réseau, et la structure du paquet de données transmis par ce nœud relais R,
- la figure 5 représente, au niveau d'un nœud relais R, la relation entre les paquets de données entrants et le paquet de données transmis,
- la figure 6 représente, au niveau d'un nœud relais R, la relation entre les paquets de données entrants et le paquet de données transmis lorsqu'un paquet de données entrant est effacé,
- la figure 7 représente schématiquement un nœud relais R selon un mode de réalisation de l'invention,
- la figure 8 représente schématiquement un nœud destinataire D selon un mode de réalisation de l'invention, et
- la figure 9 représente la représentation d'un vecteur de L symboles appartenant à GF(2m) sous la forme d'une matrice binaire m x L .
On va expliquer pour commencer comment on peut, selon un mode de réalisation de l'invention, transporter dans chaque paquet de données transmis les informations sur la manière dont ce paquet de données transmis a été construit à partir de paquets d'information Pi initiaux (émis par la source S). Pour ce faire, comme illustré sur la figure 3, on insère, par exemple entre l'en-tête (désigné par « header » sur les figures 3, 4, 5 et 6), et la partie utile (désignée par « payload » sur ces mêmes figures) du paquet de données, une suite C de k symboles de m bits égaux aux coefficients dans GF(2m) de la décomposition du paquet de données utiles transmis sur k paquets d'information Pi .
Par conséquent, les identifiants des paquets Pi initiaux sont respectivement égaux à C = (0, ... ,0,1,0, ... ,0), où 1 est le i-ème symbole de m bits, les autres symboles étant nuls.
Lorsqu'un relais R du réseau N transmet un paquet d'information sans le modifier, l'identifiant est inchangé. Lorsque ce relais effectue une combinaison linéaire de paquets d'information Pi , l'identifiant contient la liste des coefficients utilisés, certains des coefficients pouvant être nuls, comme illustré
Figure imgf000016_0003
sur la figure 4.
Lorsqu'un relais R effectue une combinaison linéaire :
Figure imgf000016_0002
de paquets de données utiles Yi déjà codés par d'autres nœuds du réseau, chaque paquet de données utiles Yi étant caractérisé par un vecteur d'identifiants
Figure imgf000016_0005
le vecteur d'identifiants C du paquet de données sortant contient les combinaisons linéaires des identifiants des paquets d'entrée, comme illustré sur la figure 5.
Ainsi, l'opération faite sur les identifiants lors de la combinaison linéaire à coefficients dans GF(2m) est exactement la même que celle effectuée sur les paquets de données utiles ; le relais R peut donc avantageusement faire ces deux opérations en une seule fois.
On notera que cette méthode fonctionne même en cas de perte de paquets. Par exemple, si un relais R devait combiner trois paquets de données utiles mais qu'il n'a pas reçu ce dernier pour une raison quelconque,
Figure imgf000016_0004
il calcule la combinaison des paquets de données utiles Y1 et Y2 , et indique dans l'en-tête les coefficients résultant de cette combinaison, comme illustré sur la
Figure imgf000016_0001
figure 6. Autrement dit, l'en-tête d'un paquet de données utiles Ri reçu par le destinataire D indique toujours correctement la manière dont ce paquet de données utiles Rt a été obtenu à partir de paquets d'information Pi initiaux. Par conséquent, suite à la réception des paquets de données utiles
Figure imgf000017_0002
la matrice K mentionnée ci-dessus sera connue du destinataire, comme requis.
On notera également que la mise en œuvre de cette méthode ne nécessite pas de connaître la topologie du réseau, puisque l'information sur la manière dont les paquets ont été codés est transportée dans les paquets eux- mêmes. Elle est dite non-cohérente dans la littérature technique.
Pour retrouver les paquets d'information à partir des
Figure imgf000017_0001
paquets reçus, le destinataire D procède comme suit :
- la source S n'attend pas d'acquittement pour chaque paquet qu'elle transmet ;
- le destinataire D n'envoie pas d'acquittement lorsqu'il reçoit un paquet codé ;
- pour chaque paquet de données utiles
Figure imgf000017_0003
reçu, le destinataire D extrait l'identifiant on dispose ainsi d'une équation
Figure imgf000017_0004
linéaire :
Figure imgf000017_0005
- dès que le destinataire D dispose de n≥k telles équations, il vérifie si le rang de la matrice du système est égal à k , en utilisant n'importe quelle méthode classique (par exemple la méthode de Gauss) ; l'article de C. Studholme et I. Blake intitulé « Random matrices and codes for the erasure channel », Algorithmica, vol. 56, n ° 4, pages 605 à 620 (2010), démontre que, dans le cas d'une matrice remplie aléatoirement, la matrice est de rang égal à k avec une grande probabilité ;
- si le rang est inférieur à k , le destinataire D attend la réception de nouveaux paquets jusqu'à ce que la condition de rang égal à k soit vérifiée ; de préférence, on fixe une limite nmax au nombre de paquets émis par la source S, et le destinataire D envoie un acquittement négatif (NACK) s'il n'arrive pas à obtenir une matrice inversible après la fin de la transmission des nmax paquets ; dans ce cas, la source envoie des paquets codés supplémentaires jusqu'à ce que le décodage soit possible ;
- une fois que cette condition est vérifiée, on résout le système linéaire suivant :
Figure imgf000018_0001
ce qui fait intervenir des opérations d'addition/soustraction, et de multiplication des symboles d'un paquet par un même scalaire a e GF (2M ) , opérations que l'on peut, grâce à l'invention, effectuer par paquets, c'est-à-dire de manière parallélisée.
La figure 7 représente schématiquement un nœud relais R selon un mode de réalisation de l'invention.
Le relais R comporte un module de réception 10, un module d'extraction 1 1 , un module 12 de calcul du paquet de données utiles sortant, un module mémoire 13, un module de construction 14 et un module de transmission 15.
Le module d'entrée 10 est adapté à recevoir des paquets de données entrants de la part d'autres nœuds du réseau N, et à transmettre ces paquets de données entrants au module d'extraction 1 1 . Le module d'extraction 1 1 est adapté à extraire de chaque paquet entrant son en-tête (désigné par « H » sur la figure 7), et à transmettre au module de calcul 12 le reste du paquet entrant, c'est-à-dire l'ensemble formé par un vecteur d'identifiants C(,) et un paquet de données utiles Yi (désigné par « payload » sur la figure 7). Le module de calcul
12 est adapté à puiser les coefficients ai dans le module mémoire 13 pour calculer, en parallèle :
- le paquet de données utiles sortant
Figure imgf000018_0002
- le vecteur d'identifiants sortant dont les composantes sont
Figure imgf000018_0004
Figure imgf000018_0003
en mettant en œuvre le procédé de multiplication dans GF(2m) selon l'invention.
On notera, concernant le module mémoire 13, que : - ce module peut être intégré dans le relais R comme représenté sur la figure 7, ou constituer une source externe consultable par le relais R, et
- les coefficients peuvent être constants pour un relais R donné, ou
Figure imgf000019_0004
varier à chaque nouveau paquet entrant dans le relais R (par exemple au moyen d'un tirage au sort).
Le module de construction 14 est adapté à recevoir, d'une part l'en-tête de paquet H mentionné précédemment, et d'autre part l'ensemble formé par le vecteur d'identifiants sortant C et le paquet de données utiles sortant F' , et à construire à partir de ces éléments un paquet de données sortant.
Enfin, le module de transmission 15 est adapté à recevoir le paquet de données sortant de la part du module de construction 14, et à transmettre ce paquet de données sortant sur le réseau N.
La figure 8 représente schématiquement un nœud destinataire D selon un mode de réalisation de l'invention.
Le destinataire D comporte un module de réception 20, un module d'extraction 21 , un module de construction 22, un module de second membre 23, un module de test 27, un module d'inversion 26, un module de résolution 24 et un module de transmission 25.
Le module d'extraction 21 est adapté à séparer, dans chaque paquet reçu, son en-tête (désigné par « H » sur la figure 8), son vecteur d'identifiants et son paquet de données utiles Ri .
Figure imgf000019_0002
Le module de second membre 23 est adapté à recevoir de la part du module d'extraction 21 , au fur et à mesure des réceptions de paquets par le module de réception 20, les paquets de données utiles
Figure imgf000019_0005
et à ajouter des lignes égales à ces paquets de données utiles Ri au vecteur de second membre
Figure imgf000019_0001
De même, le module de construction 22 est adapté à recevoir de la part du module d'extraction 21 , au fur et à mesure des réceptions de paquets par le module de réception 20, les vecteurs d'identifiants et à
Figure imgf000019_0003
ajouter des lignes constituées de ces identifiants à une matrice servant à construire la matrice K .
De même, le module de test 27 est adapté à recevoir, au fur et à mesure des réceptions de paquets par le module de réception 20, ladite matrice en construction de la part du module de construction 22, et à déterminer si le déterminant de cette matrice est différent de zéro, c'est-à-dire si cette matrice est régulière (rang égal à k ).
Lorsque ce n'est pas le cas, le fonctionnement décrit ci-dessus continue. Lorsque c'est le cas, le module de réception 20 est adapté à arrêter de recevoir des paquets, et le module d'inversion 26 est adapté à calculer l'inverse de la matrice K obtenue. Le module de résolution 24 est adapté à recevoir ledit vecteur de second membre de la part du module de second membre 23, ainsi que l'inverse de la matrice K de la part du module d'inversion 26, et à calculer le produit de ces deux grandeurs en mettant en œuvre le procédé de multiplication dans GF(2m ) selon l'invention, de façon à retrouver les paquets d'information initiaux.
Figure imgf000020_0001
Enfin, le module de transmission 25 est adapté à recevoir les paquets d'information
Figure imgf000020_0002
initiaux de la part du module de résolution 24, et à transmettre ces paquets d'information à l'utilisateur du nœud destinataire D.
Comme expliqué ci-dessus, le codage et le décodage considérés dans la présente invention sont réalisés dans un corps d'extension binaire GF(2m ) , où m > 1 . On entend par là qu'à tout symbole donné composé de m bits xy , où on associe l'élément de GF(2m ) , noté dont les
Figure imgf000020_0006
Figure imgf000020_0005
coordonnées binaires sur une base canonique
Figure imgf000020_0003
choisie sont précisément lesdits bits xy ; autrement dit :
Figure imgf000020_0004
où a est une racine d'un polynôme primitif prédéterminé.
On va expliquer à présent comment on peut effectuer la multiplication dans GF(2m ) uniquement au moyen d'additions binaires (XOR). Prenons un exemple dans le corps GF(24 ) construit à partir du polynôme primitif a vérifie l'équation :
Figure imgf000021_0006
Le
Figure imgf000021_0010
résultat de la multiplication de l'élément de
Figure imgf000021_0007
coordonnées binaires par l'élément de
Figure imgf000021_0011
Figure imgf000021_0008
coordonnées binaires
Figure imgf000021_0012
est l'élément
Figure imgf000021_0009
dont les coordonnées binaires sont obtenues comme suit :
Figure imgf000021_0013
Figure imgf000021_0014
par définition de la matrice M (a) , dont les colonnes successives sont constituées par les coordonnées binaires des éléments a , a a , a2 a et a3 a de
GF(24 ) successivement. Pour calculer ces colonnes, on notera, par exemple, que
Figure imgf000021_0002
On procède de la même façon pour a2 a et a3 a . Le résultat final est :
Figure imgf000021_0001
Dans le cas général d'un corps GF(2m) pour m quelconque, on calcule :
Figure imgf000021_0003
où :
• X est le vecteur colonne contenant les m coordonnées binaires
Figure imgf000021_0004
• Y est le vecteur colonne contenant les m coordonnées binaires de y , et
Figure imgf000021_0005
• la matrice est la matrice binaire mx m dont les
Figure imgf000022_0003
colonnes contiennent les coordonnées binaires des éléments
Figure imgf000022_0001
de GF(2m) , soit
Figure imgf000022_0002
On dira que la matrice M (a) est « l'équivalent binaire » de l'élément a pour la multiplication dans GF(2m) .
Comme tous les éléments non-nuls de GF(2m) peuvent être écrits sous la forme
Figure imgf000022_0004
pour un certain entier 0 < k≤ 2m - 2 , on peut se contenter de considérer les matrices
Figure imgf000022_0005
associées aux puissances consécutives de a .
On notera que toutes ces matrices peuvent être obtenues en consultant une « grande » matrice binaire
Figure imgf000022_0006
où n = 2m — 1, de dimension mx(2m + m - 2), construite préalablement, dont les colonnes contiennent les coordonnées de ak pour k≥ 0 . Dans cette matrice T , que l'on appellera « matrice de référence », les (m - 1) dernières colonnes sont une simple copie des (m -1) premières colonnes. M{ak ) est alors la sous- matrice obtenue en extrayant les colonnes n ° (k + 1) à (k + m) de la matrice de référence T , ce que l'on notera ainsi :
Figure imgf000022_0007
Par définition, le produit de deux éléments est égal à
Figure imgf000022_0008
de sorte que la matrice associée au
Figure imgf000022_0009
produit , que l'on peut lire directement dans la matrice de
Figure imgf000022_0010
référence T ; on peut ainsi obtenir très simplement le produit des matrices par :
Figure imgf000023_0004
Figure imgf000023_0005
De la même manière, la matrice associée à l'inverse d'un élément
Figure imgf000023_0007
est
Figure imgf000023_0001
puisque
Figure imgf000023_0006
qui est la matrice identité.
Si l'on prend le même exemple sur GF(24) (construit à partir du polynôme primitif la matrice de référence T est donnée
Figure imgf000023_0009
par :
Figure imgf000023_0008
de sorte que, par exemple :
Figure imgf000023_0002
On vérifie facilement, par exemple, que le produit des matrices binaires est bien égal à comme prévu.
Figure imgf000023_0013
Figure imgf000023_0014
En poursuivant le même exemple, on trouve :
Figure imgf000023_0003
de sorte que , ou encore
Figure imgf000023_0010
Figure imgf000023_0011
Comme autre exemple, la multiplication par
Figure imgf000023_0012
dans GF (24 ) est donnée par le produit matriciel :
Figure imgf000024_0001
On notera que cette expression n'utilise que des XORs des coordonnées binaires
Figure imgf000024_0003
de l'élément x .
On peut ainsi commodément effectuer la multiplication de tout élément x de GF(2m) par tout élément a e GF (2m ) sur la base de l'équation (1 ) ci-dessus et des sous-matrices de la matrice de référence T , ce qui ne fait intervenir que des XORs des coordonnées de x .
On va expliquer à présent comment on peut utiliser cette méthode pour effectuer la multiplication par tout élément a e GF (2M ) au niveau des paquets.
Le produit matriciel de l'équation (1 ) peut être aisément parallélisé lorsque chaque xi est un vecteur binaire de longueur L . Par exemple, la multiplication par un élément a dans GF(24 ) devient :
Figure imgf000024_0004
où, avantageusement, toutes les opérations sont effectuées dans GF{2) .
On utilisera ci-après la notation pour dénoter
Figure imgf000024_0005
la ligne n ° i d'une matrice x de dimension mx L ; le produit matriciel ci-dessus peut alors être commodément vu comme mettant en œuvre des XORs de ces lignes x(i,-). Par exemple, la multiplication par présentée ci-dessus
Figure imgf000024_0006
peut être commodément écrite sous la forme :
Figure imgf000024_0002
Les considérations ci-dessus expliquent comment on peut, au cours du codage ou du décodage dans un corps de Galois GF(2m) , où m > l , défini au moyen d'un polynôme primitif prédéterminé, calculer un paquet Q = a P , où le nombre a appartient à GF(2m) , et P est un paquet de données P = (x1; ... , xL), dans lequel Xj , pour j = 1,2, ... , L„ avec L≥ 1 , est un symbole composé d'une suite de m bits xtj , où i = 0, ... , m - 1.
Selon le présent mode de réalisation, on met en œuvre les sous-étapes suivantes.
a) On remplit une matrice binaire X de dimension mx L en plaçant les bits xtj composant chaque symbole Xj le long de la j -ième colonne, comme illustré schématiquement sur la figure 9. On désigne par
Figure imgf000025_0005
la i -ème ligne, où i = 0, ... , m - 1, de cette matrice X . Autrement dit, si l'on regarde le paquet P comme une ligne de bits numérotés de 1 à mx L , la ligne est définie
Figure imgf000025_0006
par :
Figure imgf000025_0002
b) On calcule la matrice binaire Y , de dimension mx L , au moyen du produit matriciel :
Figure imgf000025_0001
où la matrice M (a) est l'équivalent binaire, défini ci-dessus, de l'élément a . Comme expliqué ci-dessus, effectuer ce produit matriciel revient à calculer les lignes de la matrice Y par des XORs de lignes de la matrice X , selon des motifs binaires déterminés par les lignes de la matrice M (a) . On opère ainsi, avantageusement, de manière vectorielle sur les L symboles du paquet P . c) On obtient finalement le paquet dans lequel
Figure imgf000025_0003
chaque symbole yp pour j = 1,2, ... , L, est composé des m bits ytj , où i = 0, ... , m - 1, situés sur la j -ième colonne de la matrice Y obtenue précédemment. Autrement dit, il suffit de lire la matrice Y colonne par colonne.
On va, pour terminer, expliquer comment on peut utiliser cette méthode pour effectuer, toujours au niveau des paquets, la multiplication par n'importe quelle matrice A dont les éléments aUj appartiennent à
Figure imgf000025_0004
En effet, une telle matrice peut être aisément transformée en une matrice binaire, que l'on appellera « image binaire » de la matrice A , en remplaçant tous ses éléments par leurs équivalents binaires mxm définis ci-
Figure imgf000026_0001
dessus.
L'invention peut être mise en œuvre au sein des nœuds, par exemple un nœud relais ou un nœud destinataire d'un réseau de communication, au moyen de composants logiciels et/ou matériels.
Les composants logiciels pourront être intégrés à un programme d'ordinateur classique de gestion de nœud de réseau. C'est pourquoi, comme indiqué ci-dessus, la présente invention concerne également un système informatique. Ce système informatique comporte de manière classique une unité centrale de traitement commandant par des signaux une mémoire, ainsi qu'une unité d'entrée et une unité de sortie. De plus, ce système informatique peut être utilisé pour exécuter un programme d'ordinateur comportant des instructions pour la mise en œuvre de l'un quelconque des procédés de codage, ou de décodage, de paquets de données selon l'invention.
En effet, l'invention vise aussi un programme d'ordinateur téléchargeable depuis un réseau de communication comprenant des instructions pour l'exécution des étapes d'un procédé de codage, ou de décodage, de paquets de données selon l'invention, lorsqu'il est exécuté sur un ordinateur. Ce programme d'ordinateur peut être stocké sur un support lisible par ordinateur et peut être exécutable par un microprocesseur.
Ce programme peut utiliser n'importe quel langage de programmation, et se présenter sous la forme de code source, code objet, ou de code intermédiaire entre code source et code objet, tel que dans une forme partiellement compilée, ou dans n'importe quelle autre forme souhaitable.
L'invention vise aussi un support d'informations, inamovible, ou partiellement ou totalement amovible, lisible par un ordinateur, et comportant des instructions d'un programme d'ordinateur tel que mentionné ci-dessus.
Le support d'informations peut être n'importe quelle entité ou dispositif capable de stocker le programme. Par exemple, le support peut comprendre un moyen de stockage, tel qu'une ROM, par exemple un CD ROM ou une ROM de circuit microélectronique, ou un moyen d'enregistrement magnétique, tel qu'un disque dur, ou encore une clé USB (« USB flash drive » en anglais).
D'autre part, le support d'informations peut être un support transmissible tel qu'un signal électrique ou optique, qui peut être acheminé via un câble électrique ou optique, par radio ou par d'autres moyens. Le programme d'ordinateur selon l'invention peut être en particulier téléchargé sur un réseau de type Internet.
En variante, le support d'informations peut être un circuit intégré dans lequel le programme est incorporé, le circuit étant adapté pour exécuter ou pour être utilisé dans l'exécution de l'un quelconque des procédés de codage, ou de décodage, de paquets de données selon l'invention.

Claims

R E V E N D I C A T I O N S
1 . Procédé de codage de paquets de données dans un réseau (N), comprenant les étapes suivantes :
- réception de r≥1 paquets de données utiles Yi constitué chacun par une combinaison linéaire
Figure imgf000028_0001
où les coefficients sont pris dans un corps d'extension GF(2m ) défini au
Figure imgf000028_0002
moyen d'un polynôme primitif choisi, des mêmes k≥1 paquets d'information dits paquets initiaux, chaque paquet d'information contenant L≥ 1
Figure imgf000028_0003
symboles constitués chacun d'une suite de m > l bits ;
- calcul d'un paquet de données utiles sortant Y' constitué par une combinaison linéaire
Figure imgf000028_0004
desdits paquets de données utiles Y où les coefficients αi sont pris dans ledit corps d'extension GF(2m ) ; et
- émission dudit paquet de données utiles sortant Y' ;
caractérisé en ce que ladite étape de calcul du paquet de données utiles sortant Y' comprend au moins une sous-étape de multiplication
Figure imgf000028_0009
de tous les symboles d'un paquet de données dans lequel pour
Figure imgf000028_0007
Figure imgf000028_0010
est un symbole composé d'une suite de m bits
Figure imgf000028_0005
Figure imgf000028_0011
où par un même nombre a appartenant à GF(2m ) , et en ce
Figure imgf000028_0006
que ladite multiplication est effectuée de la manière suivante :
a) remplissage d'une matrice binaire X de dimension mx L en plaçant les bits composant chaque symbole Xj le long de la -ième colonne
Figure imgf000028_0008
de ladite matrice X ;
b) calcul de la matrice binaire
Figure imgf000029_0003
de dimension mx L , où M (a) est la matrice binaire de dimensions mx m dont les colonnes respectives contiennent les coordonnées binaires des éléments respectifs est une racine dudit polynôme primitif, en
Figure imgf000029_0006
obtenant les lignes de ladite matrice Y au moyen d'additions binaires de lignes de la matrice X selon des motifs déterminés par les lignes de la matrice M (a) ; et
c) obtention du paquet de données dans lequel
Figure imgf000029_0005
chaque symbole yp pour j = 1,2, ... , L, est composé des m bits ytj , où i = 0, ... , m - 1, situés sur la j -ième colonne de ladite matrice Y .
2. Procédé de codage selon la revendication 1 , caractérisé en ce que lesdites matrices sont extraites d'une
matrice de référence T de dimension mx (2m + m - 2) .
3. Procédé de codage selon la revendication 1 ou la revendication 2, dans lequel chacun desdits paquets de données utiles Yi est contenu dans un paquet de données contenant en outre un vecteur d'identifiants
Figure imgf000029_0001
comprenant lesdits coefficients et dans lequel ledit paquet de données utiles
F' est contenu dans un paquet de données contenant en outre un vecteur d'iden ifiants sortant
Figure imgf000029_0002
caractérisé en ce que le calcul dudit vecteur d'identifiants sortant C est effectué au moyen des mêmes opérations et simultanément au calcul dudit paquet de données utiles sortant F' .
4. Procédé de décodage de paquets de données, comprenant les étapes suivantes : - réception de n > 1 paquets de données codés où, pour
Figure imgf000030_0007
i = 1, ... , n, chaque paquet de données codé
Figure imgf000030_0001
est une combinaison linéaire des mêmes k≥\ paquets d'information Pj contenant chacun L≥1 symboles constitués d'une suite de m > l bits, et où les coefficients ct j sont pris dans un corps d'extension GF(2m ) défini au moyen d'un polynôme primitif choisi, et
- résolution du système formé par lesdites combinaisons linéaires, de manière à obtenir lesdits paquets d'information Pj ,
caractérisé en ce que ladite étape de résolution d'un système de combinaisons linéaires comprend au moins une sous-étape de multiplication de tous
Figure imgf000030_0005
les symboles d'un paquet de données dans lequel xr pour
Figure imgf000030_0004
j = l, ... , L, est un symbole composé d'une suite de m bits où
Figure imgf000030_0006
i = 0, ... , m - 1, par un même nombre a appartenant à GF(2m ) , et en ce que ladite multiplication est effectuée de la manière suivante :
a) remplissage d'une matrice binaire X de dimension mx L en plaçant les bits xtj composant chaque symbole Xj le long de la j -ième colonne de ladite matrice X ;
b) calcul de la matrice binaire
Figure imgf000030_0002
de dimension mx L , où la matrice M {a) est la matrice binaire de dimensions lux»! dont les colonnes respectives contiennent les coordonnées binaires des éléments respectifs où a est une racine dudit polynôme
Figure imgf000030_0003
primitif, en obtenant les lignes de ladite matrice Y au moyen d'additions binaires de lignes de la matrice X selon des motifs déterminés par les lignes de la matrice M {a) ; et c) obtention du paquet de données dans lequel
Figure imgf000031_0010
chaque symbole yp pour j = 1,2, ... , L, est composé des m bits où
Figure imgf000031_0011
i = 0, ... , m - 1, situés sur la j -ième colonne de ladite matrice Y .
5. Procédé de décodage selon la revendication 4, caractérisé en ce que lesdites matrices sont extraites d'une
Figure imgf000031_0001
matrice de référence T de dimension
Figure imgf000031_0002
6. Dispositif de codage de paquets de données, comprenant des moyens pour :
- recevoir r≥l paquets de données utiles Yi constitué chacun par une combinaison linéaire
Figure imgf000031_0003
où les coefficients cf sont pris dans un corps d'extension GF(2m ) défini au moyen d'un polynôme primitif choisi, des mêmes k≥1 paquets d'information dits paquets initiaux, chaque paquet d'information contenant
Figure imgf000031_0005
L≥1 symboles constitués chacun d'une suite de m > l bits ;
- calculer un paquet de données utiles sortant F' constitué par une combinaison linéaire
Figure imgf000031_0004
des paquets de données utiles Yn où les coefficients «, sont pris dans ledit corps d'extension GF(2m ) ; et
- émettre ledit paquet de données utiles sortant F' ;
caractérisé en ce qu'il comprend en outre, dans le but d'effectuer au moins une multiplication requise pour le calcul du paquet de données utiles
Figure imgf000031_0007
sortant F' , de tous les symboles d'un paquet de données
Figure imgf000031_0006
dans lequel pour j = 1, ... , L, est un symbole composé d'une suite de m bits
Figure imgf000031_0009
Figure imgf000031_0008
Figure imgf000032_0002
par un même nombre a appartenant à GF(2m ) , des moyens pour :
- remplir une matrice binaire X de dimension mx L en plaçant les bits
Figure imgf000032_0012
composant chaque symbole Xj le long de la j -ième colonne de ladite matrice X ;
- calculer la matrice binaire
Figure imgf000032_0001
de dimension mx L , où M (a) est la matrice binaire de dimensions m x m dont les colonnes respectives contiennent les coordonnées binaires des éléments respectifs a est une racine dudit polynôme primitif, en
Figure imgf000032_0003
obtenant les lignes de ladite matrice Y au moyen d'additions binaires de lignes de la matrice X selon des motifs déterminés par les lignes de la matrice M (a) ; et
- obtenir le paquet de données ), dans lequel chaque
Figure imgf000032_0007
symbole
Figure imgf000032_0004
pour
Figure imgf000032_0006
est composé des m bits où
Figure imgf000032_0011
Figure imgf000032_0005
situés sur la j -ième colonne de ladite matrice Y .
7. Dispositif de codage selon la revendication 6, caractérisé en ce qu'il comprend en outre des moyens pour extraire lesdites matrices M (a) , pour d'une matrice de référence T de dimension
Figure imgf000032_0008
8. Dispositif de codage selon la revendication 6 ou la revendication 7, caractérisé en ce que, chacun desdits paquets de données utiles Yi étant contenu dans un paquet de données contenant en outre un vecteur d'identifiants
Figure imgf000032_0009
comprenant lesdits coefficients et ledit paquet de données utiles F' étant
Figure imgf000032_0010
contenu dans un paquet de données contenant en outre un vecteur d'identifiants sortant
Figure imgf000033_0001
il comprend en outre des moyens pour effectuer le calcul dudit vecteur d'identifiants sortant C au moyen des mêmes opérations et simultanément au calcul dudit paquet de données utiles sortant F' .
9. Dispositif de décodage de paquets de données, comprenant des moyens pour :
- recevoir n > \ paquets de données codés où, pour
Figure imgf000033_0003
i = 1, ... , n, chaque paquet de données codé
Figure imgf000033_0002
est une combinaison linéaire des mêmes k > \ paquets d'information Pj contenant chacun L≥1 symboles constitués d'une suite de m > l bits, et où les coefficients ct j sont pris dans un corps d'extension GF(2m ) défini au moyen d'un polynôme primitif choisi ; et
- résoudre le système formé par lesdites combinaisons linéaires, de manière à obtenir lesdits paquets d'information Pj ;
caractérisé en ce qu'il comprend en outre, dans le but d'effectuer au moins une multiplication Q = a P , requise pour la résolution dudit système de combinaisons linéaires, de tous les symboles d'un paquet de données dans lequel est un symbole composé d'une
Figure imgf000033_0004
Figure imgf000033_0006
suite de m bits par un même nombre a appartenant à
Figure imgf000033_0005
GF(2m ) , des moyens pour :
- remplir une matrice binaire X de dimension mx L en plaçant les bits xtj composant chaque symbole Xj le long de la j -ième colonne de ladite matrice X ;
- calculer la matrice binaire
Figure imgf000033_0007
de dimension mx L , où M (a) est la matrice binaire de dimensions m x m dont les colonnes respectives contiennent les coordonnées binaires des éléments respectifs est une racine dudit polynôme primitif, en
Figure imgf000034_0002
obtenant les lignes de ladite matrice Y au moyen d'additions binaires de lignes de la matrice X selon des motifs déterminés par les lignes de la matrice M (a) ; et
- obtenir le paquet de données dans lequel chaque
Figure imgf000034_0003
symbole yp pour j = l,2, ... , L„ est composé des m bits où
Figure imgf000034_0005
situés sur la j -ième colonne de ladite matrice Y .
Figure imgf000034_0004
10. Dispositif de décodage selon la revendication 9, caractérisé en ce qu'il comprend en outre des moyens pour extraire lesdites matrices M (a) , pour d'une matrice de référence T de dimension
Figure imgf000034_0001
1 1 . Nœud, dit nœud relais (R), d'un réseau de communication (N), caractérisé en ce qu'il comprend un dispositif de codage selon l'une quelconque des revendications 6 à 8.
12. Nœud, dit nœud destinataire (D), d'un réseau de communication (N), caractérisé en ce qu'il comprend un dispositif de décodage selon la revendication 9 ou la revendication 10.
13. Réseau de communication (N), comprenant au moins un nœud relais (R) selon la revendication 1 1 et au moins un nœud destinataire (D) selon la revendication 12.
14. Moyen de stockage de données inamovible, ou partiellement ou totalement amovible, comportant des instructions de code de programme informatique pour l'exécution des étapes d'un procédé de codage de paquets de données selon l'une quelconque des revendication 1 à 3, ou d'un procédé de décodage de paquets de données selon la revendication 4 ou la revendication 5.
15. Programme d'ordinateur téléchargeable depuis un réseau de communication et/ou stocké sur un support lisible par ordinateur et/ou exécutable par un microprocesseur, caractérisé en ce qu'il comprend des instructions pour l'exécution des étapes d'un procédé de codage de paquets de données selon l'une quelconque des revendication 1 à 3, ou d'un procédé de décodage de paquets de données selon la revendication 4 ou la revendication 5, lorsqu'il est exécuté sur un ordinateur.
PCT/FR2018/050770 2017-04-03 2018-03-29 Procédés de codage et de décodage de paquets de données dans un corps de galois Ceased WO2018185402A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1752861 2017-04-03
FR1752861A FR3064858B1 (fr) 2017-04-03 2017-04-03 Procedes de codage et de decodage de paquets de donnees dans un corps de galois

Publications (1)

Publication Number Publication Date
WO2018185402A1 true WO2018185402A1 (fr) 2018-10-11

Family

ID=59253681

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2018/050770 Ceased WO2018185402A1 (fr) 2017-04-03 2018-03-29 Procédés de codage et de décodage de paquets de données dans un corps de galois

Country Status (2)

Country Link
FR (1) FR3064858B1 (fr)
WO (1) WO2018185402A1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN119210468A (zh) * 2024-09-18 2024-12-27 北京科技大学 数据编码方法、装置、存储介质及电子设备

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
AISHWARYA NAGARAJAN ET AL: "Galois field hardware architectures for network coding", ARCHITECTURES FOR NETWORKING AND COMMUNICATIONS SYSTEMS, ACM, 2 PENN PLAZA, SUITE 701 NEW YORK NY 10121-0701 USA, 25 October 2010 (2010-10-25), pages 1 - 9, XP058122870, ISBN: 978-1-4503-0379-8, DOI: 10.1145/1872007.1872051 *
C. STUDHOLME; I. BLAKE: "Random matrices and codes for the erasure channel", ALGORITHMICA, vol. 56, no. 4, 2010, pages 605 - 620, XP019781960
HAINING FAN ET AL: "A survey of some recent bit-parallel GF(2n) multipliers", FINITE FIELDS AND THEIR APPLICATIONS, vol. 32, no. 32, 1 March 2015 (2015-03-01), US, pages 5 - 43, XP055431227, ISSN: 1071-5797, DOI: 10.1016/j.ffa.2014.10.008 *
NICOLA PETRA ET AL: "High speed galois fields GF(2m) multipliers", CIRCUIT THEORY AND DESIGN, 2007. ECCTD 2007. 18TH EUROPEAN CONFERENCE ON, IEEE, PISCATAWAY, NJ, USA, 27 August 2007 (2007-08-27), pages 468 - 471, XP031257785, ISBN: 978-1-4244-1341-6 *
R. KOETTER; M. MEDARD: "An algebraic approach to network coding", IEEE/ACM TRANSACTIONS ON NETWORKING, vol. 11, no. 5, 2003, pages 782 - 795, XP007908088, DOI: doi:10.1109/TNET.2003.818197
T. HO; M. MÉDARD; R. KOETTER; D.R. KARGER; M. EFFROS; J. SHI; B. LEONG: "A random linear Network Coding approach to multicast", IEEE TRANS. INFORMATION THEORY, vol. 52, no. 10, October 2006 (2006-10-01), pages 4413 - 4430

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN119210468A (zh) * 2024-09-18 2024-12-27 北京科技大学 数据编码方法、装置、存储介质及电子设备
CN119210468B (zh) * 2024-09-18 2025-05-02 北京科技大学 数据编码方法、装置、存储介质及电子设备

Also Published As

Publication number Publication date
FR3064858A1 (fr) 2018-10-05
FR3064858B1 (fr) 2019-10-18

Similar Documents

Publication Publication Date Title
ES2401177T3 (es) Procedimiento y sistema para transmitir y recibir información usando códigos de reacción en cadena
TWI485992B (zh) 猛禽碼之編碼加速裝置與方法
EP2606583B1 (fr) Procédé et système de relayage sélectif dans un réseau de communication comprenant plusieurs sources, un relais et un dispositif de reception avec détection, au niveau du relais, d&#39;erreurs sur les messages estimés reçus des sources et transmission, du relais vers le dispositif de réception, d&#39;un signal représentatif des seuls messages pour lesquels aucune erreur n&#39;a été détectée.
FR2785743A1 (fr) Dispositif et procede d&#39;adaptation des turbocodeurs et des decodeurs associes a des sequences de longueur variable
EP1974472B1 (fr) Procedes d&#39;encodage et de decodage rapides et dispositifs associes
FR2849514A1 (fr) Code de geometrie algebrique adapte aux erreurs en rafale
EP3161986A1 (fr) Procede de transmission dynamique et selectif fd-dsdf d&#39;un signal numerique pour un systeme mamrc avec plusieurs relais full-duplex, produit programme et dispositif relais correspondants
Grospellier Constant time decoding of quantum expander codes and application to fault-tolerant quantum computation
FR3053193A1 (fr) Procede de transmission dynamique et selectif fd-dsdf d&#39;un signal numerique pour un systeme marc/mamrc avec relais full-duplex et une voie de retour limitee, produit programme et dispositif relais correspondants
FR2905209A1 (fr) Procede et dispositif de decodage de blocs encodes avec un code ldpc
FR2952252A1 (fr) Procede et dispositif de decodage, produit programme d&#39;ordinateur, moyen de stockage correspondants et noeud destination correspondants
FR2960725A1 (fr) Procede et dispositif de configuration d&#39;un schema d&#39;encodage/decodage global dans un reseau de communication, produit programme d&#39;ordinateur et moyen de stockage correspondants
WO2018185402A1 (fr) Procédés de codage et de décodage de paquets de données dans un corps de galois
EP2833555B1 (fr) Procede ameliore de decodage d&#39;un code correcteur avec passage de message, en particulier pour le decodage de codes ldpc ou codes turbo
EP0463598A1 (fr) Circuit de décodage de codes convolutionnels pour l&#39;exécution de l&#39;étape de stockage et d&#39;exploration inverse des chemins survivants d&#39;un algorithme de viterbi
WO2015197990A1 (fr) Procédé de transmission dynamique et sélectif fd-dsdf d&#39;un signal numérique pour un système marc avec un relais full-duplex, produit programme et dispositif relais correspondants
EP1905157B1 (fr) Procede et systeme d&#39;encodage d&#39;une sequence de donnees
WO2018115648A1 (fr) Codage et de décodage de paquets de données dans un corps de galois
WO2013054054A1 (fr) Codage et decodage correcteur d&#39;erreurs
FR3060148A1 (fr) Procede d&#39;emission d&#39;un message, procede de reception, dispositif d&#39;emission, dispositif de reception et systeme de communication associes
FR3013924A1 (fr) Procede et dispositif de codage de paquets de donnees numeriques, et procede et dispositif de correction d&#39;effacements
FR2960726A1 (fr) Procede de transmission de symboles codes, procede de decodage, produit programme d&#39;ordinateur, moyen de stockage et nœuds correspondants.
Huang A Parallelized Implementation of Raptorq Using Nvidia Cuda
EP3057238B1 (fr) Méthode de décodage itératif de séquences lfsr à faible probabilité de fausse alarme
FR2939585A1 (fr) Procede de codage reseau robuste a des pertes de transmission dans un reseau maille, noeud relais, noeud destination, produit programme d&#39;ordinateur et moyen de stockage correspondants.

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18718884

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18718884

Country of ref document: EP

Kind code of ref document: A1