GB2484662A - Network coding by grouping packets via a Galois field - Google Patents

Network coding by grouping packets via a Galois field Download PDF

Info

Publication number
GB2484662A
GB2484662A GB201017385A GB201017385A GB2484662A GB 2484662 A GB2484662 A GB 2484662A GB 201017385 A GB201017385 A GB 201017385A GB 201017385 A GB201017385 A GB 201017385A GB 2484662 A GB2484662 A GB 2484662A
Authority
GB
United Kingdom
Prior art keywords
source
data packets
packets
nodes
group
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
GB201017385A
Other versions
GB201017385D0 (en
GB2484662B (en
Inventor
Julien Sevin
Falk Tannhauser
Pierre Visa
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 GB201017385A priority Critical patent/GB2484662B/en
Publication of GB201017385D0 publication Critical patent/GB201017385D0/en
Publication of GB2484662A publication Critical patent/GB2484662A/en
Application granted granted Critical
Publication of GB2484662B publication Critical patent/GB2484662B/en
Active 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/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
    • H04L1/0077Cooperative 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/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0075Transmission of coding parameters to receiver
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Radio Transmission System (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

A mesh communication network comprising source nodes, relay nodes and destination nodes (s1-8) codes Time Division Multiplexed (TDMA) source packets (p1-24) group by group for linear combination with redundant packets at relay nodes to create combined packets (510-560, fig. 5A) which are relayed by specific node sets (515-565, fig. 5B), thus coding the network with enough redundancy to provide a minimum robustness R without unduly limiting bandwidth. Source data packets are divided into groups of maximum size K, each having optimal source node diversity, and combined using a generator matrix G having P rows and K columns of Galois field coefficients αij (340, fig. 3). Each destination node recovers the source packets from the combined packets via the Gauss-Jordan algorithm

Description

MESH NETWORKS
1. FIELD OF THE INVENTION
The field of the invention is that of wired or wireless mesh communications networks.
More specifically, the invention pertains to a technique for building a network coding scheme to be applied by a mesh network in order to transmit source data packets from a plurality of source nodes (i.e. in a multi-source context) to at least one destination node, through relay nodes retransmitting source data packets issued from source nodes.
In compliance with the general principle of network coding, the packets retransmitted by the relay nodes are linear combinations of the packets received at input by the relay nodes (from the source nodes). This technique has been proposed to increase the data rate and to efficiently utilize the network capacity while improving robustness.
2. TECHNOLOGICAL BACKGROUND
Let's consider a mesh communication network with a plurality of source nodes, a plurality of relay nodes and a plurality of destination nodes. Each source node sends a number of symbols, referred to as source symbols, intended to a set of destination nodes (for instance multicast transmissions). A symbol for purposes herein can be a bit, a block of bits, a packet and so on. The terms "symbol" and "packet" are also used interchangeably herein. The relay nodes forward packets in such a way that source packets are well-received by the destination nodes. The packets forwarded by the relay nodes are referred to as redundancy packets (or referred to as "combined packets") because the transmissions of these packets replace the transmissions of source packets.
For instance, in the context of TDMA ("time division multiple access") medium access type, each transmission uses a temporal slot which could be used by the transmission of a source packet. So one of the goals in a mesh network consists in minimizing the number of redundancy packets.
The classic strategy for a relay node is to select a set of packets to be forwarded among the received packets. This selection problem is referred to as "routing" problem and several routing protocols have been developed for mesh network.
But a new and better strategy wherein relay nodes are able to encode their received packets and more precisely to combine linearly their received packets in a suitable Galois Field was introduced by R. Ahlswede et al in 2000 (see: 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-12 16, July 2000). This promising concept is referred to as "Network coding" and very soon, many other articles were published demonstrating the contribution made by this new concept, especially in terms of S bandwidth gain and use of network capacity. So one of the key advantages of the network coding is to maximize the used bandwidth for a given topology and in this way, it is necessary to send less redundancy packets (packets sent by a relay node) with network coding than with routing.
Here below, the following shall be called a network coding scheme: * the relay nodes combining the packets at input to generate the redundancy packets; * for these redundancy packets, the input packets to be combined among all the received source packets; * each pair (input packet to be combined, redundancy packet generated from said input packet) has an associated coefficient in Galois Field Fq.
So, in the context of the network coding, each destination node receives source packets from source nodes and redundancy packets from relay nodes, a redundancy packet being a linear combination of source packets. From these two types of packets, each destination node recovers the source packets by performing a Gauss-Jordan algorithm for solving the corresponding linear equation system. This algorithm is costly and so the number of source packets with which network coding operates has to be limited.
But, this number depends on application layer of each source node and it is unrealistic to limit the source rate because of hardware complexity of the network coding. So the main problem is how to perform efficient network coding in multi-source context with low complexity architecture. The basic solution is to group the source packets and to perform the network coding group by group (a network coding scheme for each group).
Therefore, the next problem is how to select the source packets contained in each group, in particular in the context of a versatile environment. A versatile environment is an environment coping with mobile obstacles. Each mobile obstacle breaks randomly some point-to-point connections between the nodes.
For instance, let's assume that a group of packets, referred to as ref_group, has been created in such a way that all the source packets originate from the same source node, referred to as ref_src_node. For ref_group, a network code scheme is created in such a way that all the source packets are recovered by the intended destination nodes.
Let's take a destination node which is referred to as rcf_dest_node. This network coding scheme is based on a given topology, referred to as initial topology. Let's assume for this initial topology, ref_src_node and ref_dest_node are connected, so this network coding scheme takes into account this connection and in this way adjusts its network coding scheme, i.e. its number of redundancy packets. Indeed, the destination node takes into account the expected receptions of the source packets. If during the life of the system, a mobile obstacle breaks the connection between ref_src_node and ref dest node, the consequences can be dramatic because ref_dcst node receives no packet of ref_group and so it is very difficult for the destination node to recover these source packets excepted of course if the network coding scheme is over-dimensioned.
But in this case, the efficiency of the network coding scheme is bad because the number of redundancy packets is not minimized and the available bandwidth is not optimally used. On the other hand, if the network coding scheme reduces too much the number of combined packets, the consequences can be dramatic. Indeed, if a destination node doesn't receive enough packets, it may not recover any source packet due to the combination of the packets. So a well-adapted construction of the groups is necessary.
In the prior art related to network coding, there are several solutions to select packets to be combined but no solution takes into account the diversity brought by a multi-source network. No solution takes into account the number of source packets as a constraint, which is very crucial in high source rate. Indeed, the performances of the Gauss-Jordan algorithm become quickly catastrophic in terms of latency as soon as the number of source packets increases. As a matter of fact, its time complexity is 0(n3), n being the number of variables, in our case equal to the number of involved source packets. Hence it is better to launch several times this algorithm with few input parameters than one time with an important number of input parameters (the complexity of the algorithm being of course not linear with the number of parameters).
In the patent US 7349440 Bi ("System and method for broadcasting information over a network"), Chou and Al. describe a practical method in order to determine which packets to combine at relay node level. The solution introduces synchronization information in each packet (source packets and combined packets) in such a way only the synchronized packets are combined together. But the solution doesn't explain how to select the synchronized packets according to the number of source packets sent by each source node.
3. COALS OF THE INVENTION The invention, in at least one embodiment, is aimed especially at overcoming
these different drawbacks of the prior art.
More specifically, it is a goal of at least one embodiment of the invention to provide a technique for configuring a network coding scheme to be applied by a mesh network, this technique allowing to perform an efficient network coding in a multi-source context with a low complexity architecture.
It is an additional goal of at least one embodiment of the invention to provide a technique of this kind that is simple to implement and costs little.
4. SUMMARY OF THE INVENTION
A particular embodiment of the invention proposes a method for building a network coding scheme to be applied by a mesh network in order to transmit source data packets from a plurality of source nodes to at least one destination node through a plurality of relay nodes, said network coding scheme defining, at least, the source data packets to be used by the relay nodes to generate each of a plurality of combined data packets. Said method comprises a step of grouping source data packets into groups having a maximal predetermined size K, the step of grouping being performed so as to increase the diversity, per group, among the source nodes that originate the source data packets, wherein all the source data packets of one of said groups are used to generate one of said combined data packets.
The general principle is that of a particular grouping of the source packets (which is performed so as to increase, for each group, the diversity of source nodes from which are generated the source packets of this group). This novel and inventive approach allows to increase the Quality of Service in terms of robustness. In the context of a versatile environment (i.e. with mobile obstacles), the proposed solution allows to reduce the number of source packets not recovered by the destination nodes (using the source or combined packets they receive) due to the mobile obstacles, without adding too much overhead (i.e. without requiring that the network coding scheme is over-dimensioned).
In a linear combination of source packets, defining a combined packet, one or several of the coefficients applied to the source packets (and referred to as ct below) can
S
be null. For example, coefficient a21 (applied to source packet p5) can be null for a combined packet y defined by: y = a21.pS + a22.p3 + a23.p22 + a24.p8 Advantageously, the step of grouping source data packets is performed so that the number of source data packets that originate from a same source node per group is minimum.
Thus the diversity inside each group of source packets ("intra-group diversity") is optimal and the Quality of Service in terms of robustness is even increased.
Advantageously, the step of grouping source data packets is further performed so as to reduce the number of groups having a same list of source nodes from which the source data packets of the group originate.
Thus the diversity between groups of source packets ("inter-group diversity") is increased. Tn other words, the correlation between the groups of source packets is reduced, so the number of simultaneous same unrecovered source packets (i.e. source packets not recovered by the destination nodes) for two different groups is reduced. The Quality of Service in terms of robustness is even increased.
Advantageously, the step of grouping source data packets is further performed so that the number of groups having a same list of source nodes from which the source data packets of the group originate is minimum.
Thus the diversity between groups of source packets ("inter-group diversity") is optimal and the Quality of Service in terms of robustness is even increased.
Advantageously, said method comprises a step of determining, for each group of source data packets, a number of combined data packets to be generated by said plurality of relay nodes, and in that said step of determining a number of combined data packets is performed so that, for a given group, the number of combined data packets is equal to a predetermined value plus K minus the number of source data packets of said given group coming from different source nodes.
Thus the robustness of each group of source packets is similar. The number of redundant data (combined packet) is optimized. So the tradeoff between the robustness and the bandwidth has been obtained.A particular embodiment of the invention proposes a method for transmitting source data packets in a mesh network, from a plurality of source nodes to at least one destination node through a plurality of relay nodes, said method comprising the following steps, carried out by said plurality of relay nodes: -obtaining a network coding scheme defining, at least, the source data packets to be used by the relay nodes to generate each of a plurality of combined data packets; -generating said combined data packets according to said network coding scheme; and -transmitting said combined data packets; Said network coding scheme is such that each combined data packet is a combination of all the source data packets of one group among a plurality of groups, the groups having a maximal predetermined size K and resulting of a grouping of the source data packets performed so as to increase the diversity, per group, among the source nodes that originate the source data packets.
Another particular embodiment of the invention proposes a device for building a network coding scheme to be applied by a mesh network in order to transmit source data packets from a plurality of source nodes to at least one destination node through a plurality of relay nodes, said network coding scheme defining, at least, the source data packets to be used by the relay nodes to generate each of a plurality of combined data packets. Said device comprises means for grouping source data packets into groups having a maximal predetermined size K, the means for grouping being carried out so as to increase the diversity, per group, among the source nodes that originate the source data packets, wherein all the source data packets of one of said groups are used to generate one of said combined data packets.
Another embodiment of the present invention can provide a relay node, for use in a mesh network that transmits source data packets from a plurality of source nodes to at least one destination node through a plurality of relay nodes including the claimed relay node, the claimed relay node comprising: means for obtaining a network coding scheme defining, at least, the source data packets to be used by the relay nodes to generate each of a plurality of combined data packets; means for generating at least one said combined data packet according to said network coding scheme; and means for transmitting the generated combined data packet(s); wherein said network coding scheme is such that each combined data packet is a combination of all the source data packets of one group among a plurality of groups, the groups having a maximal predetermined size K and resulting of a grouping of the source data packets performed so as to increase the diversity, per group, among the source nodes that originate the source data packets.
A method or device for building a network coding scheme, or for transmitting source data packets, embodying the present invention may be implemented using electronic data processing means. Methods embodying the invention include computer-implemented methods.
In particular, a method or device for building a network coding scheme, or for transmitting source data packets, embodying the present invention may be implemented using a computer or processor that executes a program. Such a program may be provided by itself or may be carried by a carrier medium. The carrier medium may be a recording medium (or storage medium). The carrier medium may alternatively be a transmission medium. Thus, a program embodying the present invention may be transmitted in the form of a signal through a network. The carrier medium may be computer-readable.
Tn one particular embodiment, the invention pertains to a computer program product comprising program code instructions for implementing the above-mentioned method (in any of its different embodiments) when said program is executed on a computer.
In another particular embodiment, the invention pertains to a non-transitory computer-readable carrier medium, storing a program which, when executed by a computer or a processor in a device, causes the device to carry out the above-mentioned method (in any of its different embodiments).
5. LIST OF FIGURES Other features and advantages of embodiments of the invention shall appear from the following description, given by way of an indicative and non-exhaustive examples and from the appended drawings, of which: * Figure 1 represents a meshed network comprising multiple source nodes, in which the method for configuring can be implemented according to a particular embodiment of the invention; * Figure 2 is a functional block diagram of a network node described in figure 1, in a particular embodiment of the invention; * Figure 3 is a flowchart of a particular embodiment of the method according to the invention; * Figure 4 is a flowchart of a particular embodiment of the step 320 of figure 3, i.e. the algorithm for constructing groups of source packets; * Figure 5A illustrates an example of groups of packets obtained implementing a particular embodiment of the invention, in the context of figure 1; and * Figure SB illustrates an example of sets of nodes which generate the groups of packets of figure SA.
6. DETAILED DESCRIPTION
In all of the figures of the present document, identical elements and steps are designated by the same numerical reference sign.
Figure 1 represents an example of a meshed (wireless or wired) network comprising a plurality of communicating entities, referred to as nodes, on which the invention may be implemented. The network contains N=8 nodes denominated respectively Sl, S2, S3, 54, S5, S6, S7 and S8. By way of example, and not limitation, each node acts at once as a source node, a relay node and a destination node.
A node Si, when acting as a source node, generates a number N of packets, refelTed to as source packets. By way of example, each node sends 3 source packets: * The node Si sends the set 105 of 3 source packets, denominated respectively p1, p2 and p3; * The node S2 sends the set 115 of 3 source packets, denominated respectively p4, p5 and p6; * The node S3 sends the set 125 of 3 source packets, denominated respectively p7, p8andp9; * The node S4 sends the set 135 of 3 source packets, denominated respectively plO, p11 andpl2; * The node S5 sends the set 145 of 3 source packets, denominated respectively p13, p14 and p15; * The node S6 sends the set 155 of 3 source packets, denominated respectively p16, p17 and p18; * The node S7 sends the set 165 of 3 source packets, denominated respectively p19, p20 and p21; * The node S8 sends the set 175 of 3 source packets, denominated respectively p22,p23andp24.
Each source packet is composed of a predetermined, fixed number L of symbols issued from a predetermined Galois Field GF(q), q being the number of elements of said Galois Field. Hence said packets can be considered as vectors of the L-dimensional linear space GF(q)'i It is well known that the number of elements of a Galois Field is always a power of a prime number p (called the characteristic of the Galois Field), q = pm for some positive integer m. Due to the binary nature of the data transmitted in digital networks, said prime number p is usually chosen to be equal to 2. Furthermore, as the devices attached to the networks in question usually structure the binary information they treat in the form of bytes composed of 8 bits, m is advantageously chosen to be equal to 8. Hence, in a particular embodiment, q = 28 = 256 and the aforementioned data symbols are identical to bytes. However, it has to be understood that the applicability of present invention is not restricted to said choices of p and m. Introducing the structure of a Galois Field onto the data symbols composing data packets has the advantage of enabling the arithmetic operations of addition, subtraction, multiplication, division (except by 0) fulfilling well-known axioms of commutativity, associativity, inversibility and distributivity; said operations being useful for the implementation of network coding as well as error correction coding.
The medium access protocol is a time division multiple access (TDMA) protocol in which, for a fixed period also called a super-frame, each node Si of the network has access to the medium during one or several fixed time slots. In this technique, each node is a sender during specific time slots and a receiver during all the other time slots. So, with reference to the example of figure 1, each node Si, when acting as a source node, sends N source packets, equal to 3, by super-frame.
From the received packets, each relay node combines them linearly to generate packets referred to as combined packets (also called redundancy packets) (contrary to a routing scheme wherein a relay node forwards only received packets without combining).
To perform this combination, the invention introduces a new notion referred to as "group of source packets" in such a way that network coding is performed by group of source packets and it is mandated that only packets in the same group can be combined together.
In a particular embodiment, at the initialization of the system, the algorithm described in relation with figure 3 is launched to construct the groups of source packets and to determine the combined packets associated to each group. Let K be the maximal size of a group.
Considering the context of figure 1, an example of the outputs of this algorithm is depicted in figures 5A and SB.
As shown in figure 5A, six groups of packets are constructed: * the group 510 is composed respectively of the source packets p24, p7, plO and p14 (Remark: the order of these source packets is essential for matching the packets with the coefficients of the generator matrix described below).
* the group 520 is composed respectively of the source packets p5, p3, p22 and p8.
S * the group 530 is composed respectively of the source packets p9, p11, p20 and p16.
* the group 540 is composed respectively of the source packets pi3, p4, p2 and p12.
* the group 550 is composed respectively of the source packets p17, p15, p6 and p19.
* the group 560 is composed respectively of the source packets p21, p18, p23 and p1.
As shown in figure SB, for each group of source packets, four combined packets are generated. The relay nodes associated to the combined packets are the following: * for the group 510, the set of 4 combined packets is generated respectively by the nodes Si, 52, 56 and S7 (composing the set of nodes 515), which act here as relay nodes; * for the group 520, the set of 4 combined packets is generated respectively by the nodes S4, S5, S6 and S7 (composing the set of nodes 525), which act here as relay nodes; * for the group 530, the set of 4 combined packets is generated respectively by the nodes Si, S2, 55 and S8 (composing the set of nodes 535), which act here as relay nodes; * for the group 540, the set of 4 combined packets is generated respectively by the nodes S3, S6, S7 and S8 (composing the set of nodes 545), which act here as relay nodes; * for the group 550, the set of 4 combined packets is generated respectively by the nodes SI, S3, S4 and S8 (composing the set of nodes 555), which act here as relay nodes; * for the group 560, the set of 4 combined packets is generated respectively by the nodes S2, S3, S4 and S5 (composing the set of nodes 565), which act here as relay nodes.
At the end of the algorithm, each relay node knows which packets to be combined. The coefficients to be applied for each combination are stored in a matrix referred to as generator matrix G. Each relay node has this matrix. Each element of the matrix corresponds to a coefficient in GF(q). A coefficient located in the row and the th column, referred to as aj, corresponds to the coefficient applied to the jth source packet of the group in order to generate the ith combined packet. U is constructed so that S any K rows of U are linearly independent. In the particular embodiment, U is a generator matrix of a linear correction code with a length P and a dimension K, this code being denoted (P,K), i.e. this is a matrix formed by P rows and K columns. The code used in a particular embodiment is the Reed-Solomon code. P corresponds to the maximum number of combined packets which could be assigned to each group.
Applying to the above example, the node 55, acting as a relay node, must generate the second redundancy packet of the group 520 composed of the source packets p5, p3, p22 and p8. Referred to as y, this combined packet is constructed following these operations: y = a21.pS + a22.p3 + a23.p22 + a24.p8 To manage source packets and combined packets, TDMA protocol is used as follows: each combined packet sent by a relay node during a superframe n is composed of source packets sent in the superframe (n-i). Moreover, a node which is at once source node and relay node (as in the above example) sends in the same frame its source packets and its combined packets.
Each destination node manages group by group the reception of the packets. For each group, each destination node tries to recover the source packets of the group from the received source packets and the received combined packets. This is performed with the Gauss-Jordan algorithm.
Figure 2 illustrates the architecture of a network node described in figure 1 (node Si, S2, S3, S4, S5, S6, S7 and S8) in a particular embodiment of the invention.
A node comprises an application module 260, a communication module 200 and an RF sender/receiver module 240. Tt implements the different algorithms of the particular embodiment of the invention (presented in detail here below with reference to figures 3 and 4) without distinction as a program executed on a re-programmable computation machine (e.g. a PC, a DSP or a microcontroller) or on a dedicated computation machine (e.g. a set of logic gates such as an FPGA or an ASIC).
A particular embodiment of the structure of the communication module 200 is now presented in greater detail.
A central computation module (CPU) 210 executes the program code implementing the above-mentioned algorithms. A read-only memory (ROM) 225 stores the executable code of the programs, which, when same are executed by the CPU 210, enable implementation of the technique of the invention, e.g. according to the embodiment of figures 3 and 4. Upon initialization, the aforementioned program code instructions are transferred to a random access memory (RAM) 220 so as to be executed by the CPU 210. The RAM 220 likewise includes registers for storing the parameters required for this execution. The ROM 225 stores the variables needed for the invention,
such as for example:
* the generator matrix G; * the maximal size of a group K; * the minimal robustness R. A radio packet transmitter 230 transmits the packets, stored in the RAM 220, to the RE sender-receiver module 240.
A radio packet receiver 235 records the packets received from the RF sender-receiver module 240 in the RAIVI 220.
A manlmachine interface 215 is used so that the user enters the input parameters needed for the invention, not present in the memory, such as the network topology or (G,K,R) parameters if the user wishes to use other values than the ones memorized in the read-only memory 225.
The communication module 200 receives data through a receiver antenna 250 and sends data to the communication modules of the other nodes through a sender antenna 245.
The communication module 200 is also linked with the application module 260 as follows. For source nodes, the application module 260 gives source data to the communication module 200 so that it manages their transmission up to the destination nodes. For the destination nodes, the communication module 200 sends received data to the application module 260.
The algorithmic means needed are described in detail in the following parts.
Fiuure 3 is a flowchart of a particular embodiment of the method according to the invention, for configuring a network coding scheme.
This algorithm is implemented either in a centralized manner or in a distributed manner. In a centralized manner, a node, referred to as centralized node, is selected among the network nodes to perform this algorithm and to broadcast the output to all the network nodes. In a distributed manner, each node of the network performs this algorithm. By way of example, and not limitation, only the centralized version is described below but it is very easy to adapt it to the distributed version.
In steps 300 and 310, the centralized node gathers the network topology (list of connections between the nodes), the list of source nodes, the list of potential relay nodes, the list of destination nodes and the number of packets N sent by each source node Si.
These parameters are either memorized in the RAM 220 or are introduced by the user after the installation of the system via the module 215.
Next, in step 320, the centralized node constructs the groups of source packets from the information gathered in the steps 300 and 310. This algorithm will be precisely described below in connection with figure 4.
Next, in step 330, the centralized node determines the number of combined packets for each group of source packets. This value depends on a minimal value, referred to as the minimal robustness R, and the repartition of each group. Let's recall that the goal of the combined packets is to allow that each source packet intended to a set of destination nodes is well-received though some connections between the nodes are randomly broken by mobile obstacles during the life of the system. So R is fixed so as to be robust to a level of connection failures for a group composed of source packets coming from different source nodes. Indeed, a group composed of source packets not coming from different source nodes is more sensitive to obstacles. For instance, let's compare two groups with a given relay scheme to illustrate our purpose: Position in the First Second Third Fourth group Group 1 51 S8 S3 S5 Group2 51 51 S2 S5 The table indicates for each group of source packets the source node having generated the kth source packets of the group.
Let's assume a relay scheme with R equal to 1 with for instance the node S4 which acts here as a relay node. Let's take a destination node d. If the transmission between the destination node d and the source node Si is broken, the destination node d can recover the source packets of the group 1 from the source packets coming from the source nodes S8, S3, S5 and the combined packet coming from the relay node S4. But the destination node d can't recover the source packets of the group 2 because it doesn't receive enough packets. It receives only 3 packets, 2 source packets from source nodes S2 and S5 and one useless combined packet from relay node S4. Another packet is necessary. So, according to the distribution of the group, a group is more or less protected by the obstacles.
So in step 330, the centralized node allocates a number of combined packets for each group equal to R plus K minus the number of source packets coming from different source nodes. So each group is protected at the same level.
Next, in step 340, the centralized node determines or obtains the coefficients to be applied for each combined packet which is a linear combination of source packets (i.e. the coefficients of the generator matrix G).
Next, in step 350, the centralized node allocates a relay node for each combined packet according to the network topology gathered during the step 300. Several strategies are possible. For instance, for each combined packet (relative to a given group), the centralized node selects randomly one relay node among the nodes which don't generate source packets for the given group and which is connected with the nodes which generate the source packets.
Next, in step 360, the centralized node broadcasts parameters of network coding scheme to all the nodes of the network. More precisely, the parameters comprise: * the ordered list of source packets of each group of source packets. For example, to do it, we can consider that each source packet sent in the network has a unique identifier. Furthermore, if the number X of source packets allocated to a given group is less than K, a specific identifier is used to indicate each of the K-X "non-allocated" source packets (i.e. of the place which is not allocated in the repartition table disclosed below).
* the coefficients to be applied for each combined packet; * for each group of source packets, the list of relay nodes each allocated to one of the combined packet to generate for this group. This list is ordered so that each selected relay node knows the combination to be used.
These parameters are propagated in the whole network through some suitable broadcasting method, as spanning tree broadcasting or flooding, so as to reach all network nodes, enabling them to take into account the new coefficients in a synchronized manner at the start of a new super-frame.
FiQure 4 is a flowchart of a particular embodiment of the step 320 of figure 3, i.e. the algorithm for constructing groups of source packets.
The output of this algorithm, with reference to the example of figure 1, is given in the figure 5A with the groups 510, 520, 530, 540, 550 and 560.
Let's give another example of topology more complex to illustrate each step of this algorithm. We suppose that: * the node Si sends a set of 9 (Ni) source packets, denominated respectively p, p2, p3, p4., p5, p6, p7, p8 and p9; * the node S2 sends a set of 2 (N2) source packets, denominated respectively p 0 and p1 1; * the node S3 sends a set of 2 (N3) source packets, denominated respectively p12 andpl3; * the node S4 sends a set of 2 (N4) source packets, denominated respectively p14 and p15; * the node S5 sends a set of 2 (N5) source packets, denominated respectively p16 and p17; * the node S6 sends a set of 2 (N6) source packets, denominated respectively p18 and p19; * the node S7 sends a set of 2 (N7) source packets, denominated respectively p20 and p21; * the node S8 sends a set of 3 (N8) source packets, denominated respectively p22, p23 and p24.
Instep 405, the centralized node determines the number of groups of source packets to be generated, referred to as nb_groups, from the number of source packets N sent by each source node Si (information gathered during the step 310). It is equal to: * nb_group (E N + K 1)÷ K, where ± is the integer division and N the number of source nodes; or * nb_group =[N1J /K1 where [tj denotes the ceiling of x, i.e. the smallest integer? x.
Applied to the above example, nb_groups is equal to 6: (9+2+2+2+2+2+2+3) ÷4 In step 410, the centralized node initializes the variable i at the value 1.
In step 415, the centralized node performs an equi-repartition of the (N÷nb_groups) source packets of the node Si, among the nb_groups (where ÷ is the integer division). More precisely, if (N÷nb_groups)=A is strictly more than 0 (where ÷ is the integer division), each group has at least A source packets of the source node Si.
Applied to the example, only the node Sl (i.e. for i=1) checks the condition: (N1nb_groups)=(9±6) =1 is strictly superior to 0. The other source nodes don't check the condition: (N±nb groups)=0 for i?2. So one packet from the source node Si is placed in each group, so now at the end of this step 415, we have the following
repartition_table:
Groupi p1 Group2 p2 Group3 p3 Group4 p4 GroupS p5 Group6 p6 Where the symbol "?" means that the position is not yet allocated.
Next, in step 420, the centralized node updates the useful rate of each group j, refelTed to as useful rate[j], which corresponds to the number of allocated positions for each group. Applied to the example, each group has a useful rate equal to 1 at this stage.
Next, in step 425, the centralized node updates the number of packets to be allocated for the source node Si, referred to as nb_pkt_to_allot[i], which is equal to N - (N÷nbgroups)* nb_groups, where ± is the integer division. Applied to the example, the output of step 425 is: i 1 2 3 4 5 6 7 8 nb_pkttoallot[i] 3 2 2 2 2 2 2 3 Next, in step 430, the centralized node checks whether i is less than N. If so, next step is 435 else next step is 440.
In step 435, the centralized node increments by one unit the variable i and next the algorithm returns to step 415.
In step 440, the centralized node sorts the source nodes according to the number of packets to be allocated, nbpkt to allot. Let's denote by the symbol it the result of the sorting, i.e. ir(1) represents the first classified source node, ir(2) the second classified source node, etc. Sorting is performed in such a way: Sir(i)< Sit(j) ifnbpkttoallot[i]> nbpkt_to_allot[j]. Applied to the example, the result is as follows: S(1) S(2) S(3) S(4) S(5) S(6) S(7) S(8) S S S2 S3 S4 S 56 S7 Next, in step 445, the centralized node initializes the variable i at the value 1.
Next, in step 450, the centralized node performs a repartition of source packets of Sit(i) among the groups, based on the useful rate of each group: all the remaining source packets to be placed of the source Sm(i) arc placed in the groups having the minimum useful rate. The aforesaid remaining source packets arc the packets not placed in a group at the end of the equi-repartition step 415. If there are several choices, a random strategy is performed.
Next, in step 455, the centralized node updates the useful rate of each group which allocates a source packet of Sit(i). It increments by one unit the variable useful_rate[j] of group j if a source packet of Sir(i) has been placed in the group j in step 450.
Next, in step 460, the centralized node checks whether i is less than N. If so, next step is 465 else next step is 470.
In step 465, the centralized node increments by one unit the variable i and next the algorithm returns to step 450.
Applied to the example, the outputs of the set of steps 450, 455, 460 and 465 are detailed below.
For the source node Sir(1) corresponding to the source node Si, its 3 remaining source packets are distributed randomly among the 6 groups because at this level, all the groups have a useful rate equal to 1. Let's assume at the end of the stage, we have the following repartition: _____________ _____________ ___________ _______________ Groupi p1 1 Group 2 p2 p7 Group 3 p3 Group4 p4 p8 GroupS p5 p9 1 Group6 p6 The useful rate of each group is updated (step 455): j 1 2 3 4 5 6 EEfrate[i] 1 2 1 2 2 1 Next, for the source node Sit(2) corresponding to the source node S8, its 3 remaining source packets arc distributed in the groups having the minimum useful rate, that is to say the groups i, 3 and 6.
At the end of the algorithm, an example of distribution is the following one: Group 1 p1 p22 p12 p16 Group 2 p2 p7 plO p'7 Group 3 p3 p23 p14 p20 Group4 p4 p8 p11 p19 Group 5 p5 p9 p15 p21 Group 6 p6 p24 p13 p18 in step 470, the centralized node cheeks if all the groups have a different repartition, i.e. it cheeks whether the sets of source nodes wherein the source packets are coming from are different for each group. Let's display with the example, we can cheek that all the sets are different. _______________ ____________ _________________ Group 1 Si S8 S3 S5 Group 2 Si Si S2 S5 Group 3 51 S8 S4 S7 Group4 51 S8 S2 S6 Group 5 Si 51 S4 S7 Group 6 51 S8 S3 S6 if the cheek is positive, end of the algorithm in step 475. Otherwise, the algorithm returns to step 445. Indeed, thanks to the randonmess strategy of the step 450, the output should be different. But, if after P trials no repartition cheeks the test 470, the last group distribution is kept.
At the end of the algorithm, a group of source packets is not necessary complete, i.e can comprise less than K source packets (K being the maximal size of a group).

Claims (15)

  1. CLAIMS1. Method for building a network coding scheme to be applied by a mesh network in order to transmit source data packets from a plurality of source nodes to at least one destination node through a plurality of relay nodes, said network coding scheme S defining, at least, the source data packets to be used by the relay nodes to generate each of a plurality of combined data packets, said method comprising a step of grouping source data packets into groups having a maximal predetermined size K, the step of grouping being performed so as to increase the diversity, per group, among the source nodes that originate the source data packets, wherein all the source data packets of one of said groups are used to generate one of said combined data packets.
  2. 2. Method according to claim 1, wherein the step of grouping source data packets is performed so that the number of source data packets that originate from a same source node per group is a minimum.
  3. 3. Method according to any one of the claims 1 to 2, wherein the step of grouping source data packets is further performed so as to reduce the number of groups having a same list of source nodes from which the source data packets of the group originate.
  4. 4. Method according to claim 3, wherein the step of grouping source data packets is further performed so that the number of groups having a same list of source nodes from which the source data packets of the group originate is a minimum.
  5. 5. Method according to any one of the claims 1 to 4, wherein comprises a step of determining, for each group of source data packets, a number of combined data packets to be generated by said plurality of relay nodes, and in that said step of determining a number of combined data packets is performed so that, for a given group, the number of combined data packets is equal to a predetermined value plus K minus the number of source data packets of said given group coming from different source nodes.
  6. 6. Method for transmitting source data packets in a mesh network, from a plurality of source nodes to at least one destination node through a plurality of relay nodes, said method comprising the following steps, carried out by said plurality of relay nodes: -obtaining a network coding scheme defining, at least, the source data packets to be used by the relay nodes to generate each of a plurality of combined data packets; -generating said combined data packets according to said network coding scheme; and -transmitting said combined data packets; wherein said network coding scheme is such that each combined data packet is a combination of all the source data packets of one group among a plurality of groups, the groups having a maximal predetermined size K and resulting of a grouping of the source S data packets performed so as to increase the diversity, per group, among the source nodes that originate the source data packets.
  7. 7. Device for building a network coding scheme to be applied by a mesh network in order to transmit source data packets from a plurality of source nodes to at least one destination node through a plurality of relay nodes, said network coding scheme defining, at least, the source data packets to be used by the relay nodes to generate each of a plurality of combined data packets, said device comprising means for grouping source data packets into groups having a maximal predetermined size K, the means for grouping being carried out so as to increase the diversity, per group, among the source nodes that originate the source data packets, wherein all the source data packets of one of said groups are used to generate one of said combined data packets.
  8. 8. A relay node, for use in a mesh network that transmits source data packets from a plurality of source nodes to at least one destination node through a plurality of relay nodes including the claimed relay node, the claimed relay node comprising: -means for obtaining a network coding scheme defining, at least, the source data packets to be used by the relay nodes to generate each of a plurality of combined data packets; -means for generating at least one said combined data packet according to said network coding scheme; and -means for transmitting the generated combined data packet(s); wherein said network coding scheme is such that each combined data packet is a combination of all the source data packets of one group among a plurality of groups, the groups having a maximal predetermined size K and resulting of a grouping of the source data packets performed so as to increase the diversity, per group, among the source nodes that originate the source data packets.
  9. 9. A program which, when executed by a computer or processor, causes the computer or processor to carry out the method of any one of claims 1 to 6.
  10. 10. A program according to claim 9, carried by a carrier medium.
  11. 11. A program according to claim 10, wherein the carrier medium is a recording medium.
  12. 12. A program according to claim 10, wherein the carrier medium is a transmission medium.
  13. 13. A method, device or program for building a network coding scheme substantially as hereinbefore described with reference to the accompanying drawings.
  14. 14. A method, device or program for transmitting source data packets in a mesh network substantially as hereinbefore described with reference to the accompanying drawings.
  15. 15. A relay node substantially as hereinbefore described with reference to the accompanying drawings.
GB201017385A 2010-10-14 2010-10-14 Mesh networks Active GB2484662B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
GB201017385A GB2484662B (en) 2010-10-14 2010-10-14 Mesh networks

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB201017385A GB2484662B (en) 2010-10-14 2010-10-14 Mesh networks

Publications (3)

Publication Number Publication Date
GB201017385D0 GB201017385D0 (en) 2010-11-24
GB2484662A true GB2484662A (en) 2012-04-25
GB2484662B GB2484662B (en) 2012-12-12

Family

ID=43304582

Family Applications (1)

Application Number Title Priority Date Filing Date
GB201017385A Active GB2484662B (en) 2010-10-14 2010-10-14 Mesh networks

Country Status (1)

Country Link
GB (1) GB2484662B (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090003216A1 (en) * 2007-06-27 2009-01-01 Microsoft Corporation Multipath Forwarding Algorithms Using Network Coding
EP2264930A1 (en) * 2009-06-15 2010-12-22 Canon Kabushiki Kaisha Distributed code generation method and device

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090003216A1 (en) * 2007-06-27 2009-01-01 Microsoft Corporation Multipath Forwarding Algorithms Using Network Coding
EP2264930A1 (en) * 2009-06-15 2010-12-22 Canon Kabushiki Kaisha Distributed code generation method and device

Also Published As

Publication number Publication date
GB201017385D0 (en) 2010-11-24
GB2484662B (en) 2012-12-12

Similar Documents

Publication Publication Date Title
Topakkaya et al. Wireless network code design and performance analysis using diversity-multiplexing tradeoff
Keller et al. SenseCode: Network coding for reliable sensor networks
Srinathan et al. Optimal perfectly secure message transmission
CN101999218B (en) Network coded data communication
CN103023813B (en) Wobble buffer
JP5989346B2 (en) Data retransmission method and apparatus
Dong et al. A lightweight and density-aware reprogramming protocol for wireless sensor networks
US9647800B2 (en) Fulcrum network codes
Costa et al. Informed network coding for minimum decoding delay
Haas et al. Cluster-based cooperative communication with network coding in wireless networks
Zeng et al. Joint coding and scheduling optimization in wireless systems with varying delay sensitivities
CN107040334A (en) Loss for communication network restores agreement
EP2936717A1 (en) A transmitting and a receiving device and respective methods performed thereby for improving retransmissions in wireless networks
Biczók et al. Combining forward error correction and network coding in bufferless networks: A case study for optical packet switching
Chiti et al. An efficient network coding scheme with symbol combining: performance evaluation, optimization, and comparisons
WO2016129256A1 (en) Transmitting method, transmitting device, receiving method and receiving device
US8213349B2 (en) Method and device for antenna tracking
GB2484662A (en) Network coding by grouping packets via a Galois field
Jalil et al. Distributed channel coding for underwater acoustic cooperative networks
EP3876455B1 (en) Relays in structured ad hoc networks
Chen et al. Lightweight retransmission for random access in satellite networks
Gu et al. RCLTP: A rateless coding-based Licklider transmission protocol in space delay/disrupt tolerant network
Li et al. Random network coding based on adaptive sliding window in wireless multicast networks
CA2672416C (en) System and method for relaying turbo-coded piggyback messages
US8467416B2 (en) Deterministic rotational coding