WO2017161158A1 - Method for exploiting diversity with network coding - Google Patents

Method for exploiting diversity with network coding Download PDF

Info

Publication number
WO2017161158A1
WO2017161158A1 PCT/US2017/022772 US2017022772W WO2017161158A1 WO 2017161158 A1 WO2017161158 A1 WO 2017161158A1 US 2017022772 W US2017022772 W US 2017022772W WO 2017161158 A1 WO2017161158 A1 WO 2017161158A1
Authority
WO
WIPO (PCT)
Prior art keywords
batch
packets
relay node
node
operating
Prior art date
Application number
PCT/US2017/022772
Other languages
French (fr)
Inventor
Dapeng Oliver Wu
Jiade LI
Qiuyuan Huang
Yun Zhu
Original Assignee
University Of Florida Research Foundation, Incorporated
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 University Of Florida Research Foundation, Incorporated filed Critical University Of Florida Research Foundation, Incorporated
Publication of WO2017161158A1 publication Critical patent/WO2017161158A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/34Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4604LAN interconnection over a backbone network, e.g. Internet, Frame Relay
    • H04L12/462LAN interconnection over a bridge based backbone
    • H04L12/4625Single bridge functionality, e.g. connection of two networks over a single bridge
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/02Hierarchically pre-organised networks, e.g. paging networks, cellular networks, WLAN [Wireless Local Area Network] or WLL [Wireless Local Loop]
    • H04W84/04Large scale networks; Deep hierarchical networks
    • H04W84/042Public Land Mobile systems, e.g. cellular systems
    • H04W84/047Public Land Mobile systems, e.g. cellular systems using dedicated repeater stations

Definitions

  • the network code encodes K native packets to produce N encoded packets, where N is greater than K such that the encoded packets comprise redundant information.
  • receiving an indication of the size of the first portion comprises receiving a header associated with the second batch comprising the indication.
  • the second relay node comprises a cell of a 5G network.
  • a method of operating a sink node in a communication system comprises a source node, the sink node, a first relay node and a second relay node in which the source node transmits a first batch of encoded packets encoding a plurality of native packets.
  • the method comprises, at the sink node, receiving a first plurality of encoded packets from the first relay node, receiving a second plurality of encoded packets from the second relay node and decoding the first plurality of packets and second plurality of packets as a batch encoded with a network code to recover a third plurality of native packets.
  • the first plurality of encoded packets and the second plurality of encoded packets are encoded with a network code.
  • the network code is such that information representing the third plurality of native packets is distributed across the first plurality of encoded packets and the second plurality of native packets.
  • the second plurality of encoded packets has fewer packets then the first plurality of encoded packets.
  • the first plurality of encoded packets and the second plurality of encoded packets are received in the same frame of a network protocol used by the communication system.
  • the sink node comprises a handset.
  • FIG. 2 is a a graph of the logical flow of Helper /;
  • FIGs. 3a and 3b are graphs showing comparisons of transfer matrices
  • FIG. 4 is a graph of the header structure of a Miss and Forward (MF) packet
  • FIG. 5 is a graph of the selection process for Helper B
  • FIG. 9 is a graph of the throughput of MF and Batched Sparse codes (BATS) versus number of hops under different loss rates;
  • FIG. l ib is a graph of throughput for different coding schemes versus SNR, under fading channel;
  • FIG. 12 is a graph of throughput for different coding schemes versus loss probability;
  • FIG. 14a is a graph of throughputs for different coding scheme versus number of hops, under a channel loss rate of 0.1;
  • FIG. 14b is a graph of throughputs for different coding scheme versus number of hops, under a channel loss rate of 0.3.
  • a relay node may retransmit a second batch of encoded packets conveying that information to a sink node, as in a conventional communication system using network coding.
  • the relay may nonetheless pass on a second batch of encoded packets.
  • the second batch may have fewer packets than the first batch, reflecting the fact that the relay has less information to retransmit.
  • a second relay node may serve as a "helper" for a first relay node.
  • the helper node may provide a third batch of encoded packets to the sink node. This third batch of packets may contain enough encoded packets that the combination of the second batch and the third batch supplies enough information to recreate the full set of native packets represented by the first batch of encoded packets.
  • the second and third batches are formed by randomly mixing portions of the first batch, such that, if the sink nodes receives a sufficient number of packets from the second and third batches combined, it will have enough information to recreate the native packets represented by the first batch - regardless of which relay node retransmitted the packets received at the sink.
  • the first relay node may be aware of the second relay node such that the relays may coordinate their actions.
  • nodes in a network may, from time to time, communicate with nearby nodes using a handshaking protocol that allows a relay node to identify a nearby node that will serve as a helper.
  • the helper node may identify the relay node for which it is a helper as a result of that handshaking.
  • the relay may communicate to the helper the number of encoded packets in a first batch it correctly received.
  • the helper may use that information to determine the number of encoded packets to transmit in the third batch.
  • the helper may also determine times at which to transmit based on action of an associated relay node.
  • the network protocol may divide time into time slots and frames, with a full rank batch, of the size that would be transmitted by the source node, being transmitted in one frame.
  • the first and second relay nodes may coordinate transmission such that the second and third batches are transmitted in a frame.
  • next-generation wireless networks [REFs. 21, 22]
  • the aforementioned "help” is readily available and can be exploited.
  • another relay node such as relay node HI
  • the packets received from relay node HI provide remedy to the ones received from relay node Rl. Rather than having Rl transmit all N recoded packets, the more efficient way is to let HI help share Rl's task by recoding and forwarding the missed packets.
  • Miss-and-F orward MF
  • MF is based on a new logical topology as shown in FIG. la, in which an unexploited relay H in the vicinity of a relay R, herein referred to as "helper", is chosen to be coupled with the relay R.
  • the batched sparse codes generated from the source node, are recoded by the relay and its corresponding helper in a cooperative fashion where the helper node captures missed information and provides remedy.
  • an exemplary systematic design for MF is provided along with discussions of some practical issues including packets structure, helper selection, and runtime rank estimation.
  • the disclosed design may be simulated along with several reference designs such as BATS codes, fountain codes and RLNC, in a TDMA multi-hop network.
  • the disclosed design may achieve significant gain over fountain codes and existing network coding schemes. More importantly, the achieved throughput is only 5% lower than the theoretical upper bounds calculated under the optimal operating condition according to some embodiments.
  • MF may be derived from BATS codes [REF. 21].
  • BATS codes achieve both low decoding complexity and high resistance to the channel loss.
  • MF extends the original BATS codes to better exploit the massive relays in ultra dense networks.
  • MF relies on a pair of relay and helper nodes to perform cooperative recoding.
  • a source node may want to transmit a file consisting of K native packets to a destination sink node (Node L + 1) over L hops.
  • Each packet denoted by a column vector in IF ⁇ , has T symbols in a finite field IF ⁇ , where q is the field size.
  • the set of K native packets is denoted by the following matrix:
  • precoding may be performed, similar to RaptorQ (RQ) code [REF. 4] .
  • RQ RaptorQ
  • the precoding may be achieved by a traditional erasure code such as LDPC and Reed-Solomon code.
  • the output packets are further encoded by the outer encoder of MF.
  • the outer code of MF may be the same as the outer code of a BATS codes.
  • a source node encodes the K native packets into a number of batches, each containing M coded packets.
  • the number of batches may be any number.
  • the t-th batch Xi is generated from a subset B t c B (B G Wq XK ) by the following operation:
  • G t G ⁇ ⁇ is herein called the generator matrix of the t-th batch; B t G IFq Xdt ; Xi G IFq XM .
  • Matrix G t may be randomly generated, with all entries independently and identically chosen from Wq according to a uniform distribution.
  • Y ⁇ i +1 represents the set of packets in the t-th batch that is correctly received by Relay I + 1 from Relay I
  • Y i t is the set of packets totally received at Relay I.
  • the recoding behavior of the Relay I may be summarized as the following formula:
  • Helper I may overhear packets sent from both Relay I— 1 and Relay I and deal with different situations accordingly.
  • the Helper stores all the correctly received packets in a batch from Relay I— 1 in its local buffer as described in Eqn. 4, expecting them missed at Relay I .
  • Helper I overhears those packets and regards them as a command to start to recode and send its own.
  • the number of recoded packets sent by Relay I may be contained in the field "Sent Num" in the packet header, so Helper I knows how to recode according to Eqn. 5 and Eqn. 7.
  • Helper I may also keep a local variable N current to denote the ID of its currently processing batch. If the overheard packet does not belong to the batch it holds, Helper / will ignore this packet.
  • N packet is the batch ID of the incoming packet.
  • decoding is performed at the sink Node L + 1 to reconstruct the K native packets.
  • BP belief propagation
  • n number of received batches required for decoding
  • M is the rank distribution of transfer matrix
  • is the degree distribution to be optimized
  • ⁇ ( ⁇ , h, ⁇ ) is defined in Eqn. (19) of REF. 9, the entirety of which is incorported herein by reference, and is a linear function of both h and ⁇ .
  • may be set to be the precoding rate according to an embodiment.
  • n * may be calculated from the optimal degree distribution ⁇ * according to the sufficient conditions for successful decoding [REF. 9],
  • n' number of batches required for decoding
  • d max max ⁇ d ⁇ d > 0 ⁇ is the
  • n * may be calculated from ⁇ * ,
  • n * min ⁇ n': f(n', a, ⁇ , K, h, ⁇ * ) > 0, Va E [0,1] ⁇ , (Eqn. 12)
  • E 1 and E 2 are the loss matrices for BATS codes, and H 2 G ⁇ ⁇ .
  • H 2 G W q Xm the number of packets the relay send, one may have H 2 G W q Xm , H 2 G ⁇ ⁇ ( ⁇ m
  • H 2 may be split into H 2 and H 2 , which have the same dimension as H 2 and H 2 respectively.
  • H 2 and H 2 are still random matrices, and Eqn. 20 can be rewritten as follows:
  • the form of two matrix multiple in Eqn. 21 illustrates that the effects of the transfer matrix can be divided into two parts.
  • the first part are the matrices [E[H 2 ,EiH 2 ] and [ ⁇ , ⁇ ] on the left side. They summarize the overall impacts that a batch of packets are subject to during the first hop including loss from channel and recoding from relay.
  • the second part are the erasure matrices on the right side, which represent the effect of channel loss only, since the second hop does not involve recoding.
  • H MF and H BATS Specifically, it should be the larger one between the two.
  • the final rank loss for BATS codes is two, while that for MF is one.
  • the gain of MF over BATS codes all comes from the first hop where diversity exists.
  • Eqn. 21 also reveals that under the scenario where helper nodes exist, MF will downgrade into BATS codes if the channel loss and E are identical. Although there is still a chance for this to happen, this probability is low. On average, the MF scheme disclosed in the current invention may achieve a higher rank distribution by exploiting the diversity.
  • FIG. 4 An example header structure according to some embodiments for MF is shown in FIG. 4. Apart from the basic fields used for coding, there may be two special fields named NC Switch and Sent Num.
  • the NC switch may consist of two bits to indicate one of the following four schemes is used: 1) MF, 2) BATS, 3) RLNC, 4) Fountain code.
  • the NC switch if the NC switch equals 00, MF is enabled.
  • the Sent Num may be an 8-bit integer which plays a role only when MF is enabled and a helper is pre-assigned. The function of the Sent Num according to an embodiment was described in section 2.3.4 above.
  • H may be chosen as Helper B.
  • the relays along the routed path broadcast beacons sequentially so that the candidates nearby can hear.
  • This beacon message may bring three kinds of information about the relay itself: 1) the IP address, 2) the location, and 3) the IP address of the next hop.
  • next hop IP is available for every relay.
  • a candidate hears multiple beacons from different relays and may conduct a self-checking process to verify the candidate' s qualification as a helper.
  • the self-checking process for the candidate involves 1) determining the relay node it tries to help and 2) checking if it is in selective region of this relay. Task 1) may be achieved by exploiting location information in the beacons.
  • task 2) one candidate may turn to the IP and next IP information from all received beacons to see whether it is possible to construct the IP chain as shown in FIG.7. Note that according to an aspect of some embodiments, the prerequisite for constructing this IP chain is it stands in the right selective region 510 in FIG.5. If passes the self-checking, the candidate may compute sum distance based on Eqn. 22 and send a response back to inform Relay B of the the sum distance value.
  • Relay B may simply choose the helper according to Eqn. 23 and broadcast the confirming message to inform all the candidates of the result. The ones who are not chosen will not be involved in the data transmission phase.
  • MF doesn't require every relay has its helper. If no one is within the selective region, the relay will recode in the same way as BATS codes.
  • the source node may transmit certain number of full-rank batches as "pilot batches".
  • the pilot batches can be generated from arbitrary degree distribution as long as they satisfy the full-rank property.
  • the actual rank K will be known at the destination by the decoding process.
  • the destination sink node can generate a histogram from the rank of them, which approximates the actual rank distribution of the end-to-end transfer matrix.
  • the estimated rank distribution is then returned to the source node using a single M-sized feedback.
  • end-to-end acknowledgment (e.g., in TCP) may be used.
  • Eqn. 9 may be used to compute the theoretical throughput for both BATS 910, 930, 950 and MF 920, 940, 960.
  • the results are plotted in FIG.9.
  • all throughputs are normalized to the capacity of a single hop network without any packet loss.
  • the results show that MF can achieve higher throughput than BATS under different loss rate and number of hops in the example.
  • the throughput of both MF and BATS decreases, but MF has lower slope compared with BATS. This is because more number of hops will lead to more use of diversity.
  • the throughput gain is higher under a worse channel. MF is more resistant to the higher loss rate compared with BATS codes. For example, when the channel loss is 0.3, the throughput gain may be around 30%.
  • the performance of MF may be examined in a TDMA two-hop network.
  • TDMA is used because retransmission can be naturally turned off, and there are less out-of-control factors from the MAC layer.
  • the time slots assigned to neighboring nodes are non-overlapping so that inter-user interference is negligible.
  • the transmit buffer has enough capacity for the relay node.
  • packet losses are mainly caused by channel error and blocking effect.
  • the service rate of each node can be controlled by the number of time slots assigned to it.
  • the network protocol may divide time into time slots and frames, with a full rank batch, of the size that would be transmitted by the source node, being transmitted in one frame.
  • the relay and helper nodes may coordinate transmission such that their batches of packets are transmitted in a frame.
  • the throughput performances of MF according to the example analysis are compared with BATS codes, fountain codes and RLNC.
  • RLNC the original file is divided into many subsets, each subset containing 64 packets. The next subset is sent after receiving ACK of a previous one from the destination node. While for BATS codes and proposed MF, the original file will constantly generates batches of packets.
  • UDP is used for transportation layer protocol and static routing in the network layer.
  • two end nodes simultaneously start to transmit a 16 MByte file (16000 native packets) to each other.
  • the file throughput (in Gbps) is calculated by dividing the file size by the transmission time. The transmission time is measured from the start of file transmission until all native packets are correctly recovered and reconstructed. Since inter-session network coding is not addressed in this embodiment, the performance metric is one way throughput. In each example, twenty files are transmitted and the average value recorded.
  • the data rate Rs is chosen to be 1G bits/s.
  • the actual tested throughput is divided by Rs for normalization before used as metric.
  • Table 1 experimental parameters used according to an example analysis
  • MF may achieve better performance than BATS codes. Averagely, MF can have 0.05 more absolute normalized throughput. Depending on the SNR, the relative gain can be larger as the SNR goes down. But if SNR is too small, the performance of two scheme may be equal. [00151] Compared with AWGN channel, fading channel should have larger SNR value to achieve the same throughput under both BATS codes and MF.
  • the real channel condition may change with time, and it is hard to predict the channel condition with 100% accuracy.
  • BATS codes if the channel loss rate increases for some reason, the throughput will degrade a lot.
  • a solution for this problem is to over estimate the channel loss rate. With this safety margin, the performance may degrade less.
  • FIG.12 shows results according to three exemplary schemes: 1) MF scheme with the same distribution with BATS codes, 2) BATS codes with 30% over estimation of channel loss rate, and 3) the original BATS codes.
  • the estimated loss rate is 0.1 in this non-limiting example.
  • the blockage rate is changed under different channel loss rates, and the corresponding throughput is measured.
  • the results 1310, 1320, 1330, 1340, 1350, 1360, 1370 are plotted in FIG.13, which show that in this non- limiting example:
  • the MF experiment may be extended to multihop communications.
  • the set up of the experimental analysis may be the same as described in the sections above.
  • MF is the best among all schemes in terms of throughput.
  • the gain grows with the 1) number of hops and 2) the loss rate of channel.
  • the reason for the gain growth can be explained as follows. First, as the number of hops increases, diversity can be exploited more times and the gain can be accumulated. Besides, regarding the diversity within one hop, when the channel's loss rate is higher, the helper tends to capture more missed information and thus gives more help. These results may verify the effectiveness of the MF method under a range of channel conditions and hops.
  • MF has advantage when it comes to the throughput degradation per hop.
  • the slope of MF is only one-fifth of that of BATS codes, which makes MF especially favorable under massive relays.
  • a smart phone or other portable electronic device may include a camera, capable of capturing still or video images.
  • a computing device may include sensors such as a global positioning system (GPS) to sense location and inertial sensors such as a compass, an inclinometer and/o ran accelerometer.
  • GPS global positioning system
  • the operating system may include utilities to control these devices to capture data from them and make it available to applications executing on the computing device.
  • Such a computer readable storage medium or media can be transportable, such that the program or programs stored thereon can be loaded onto one or more different computers or other processors to implement various aspects of the present invention as discussed above.
  • the term "computer-readable storage medium” encompasses only a computer-readable medium that can be considered to be a manufacture (i.e., article of manufacture) or a machine.
  • the invention may be embodied as a computer readable medium other than a computer-readable storage medium, such as a propagating signal.

Abstract

Disclosed here is Miss-and-Forward (MF), a new method for loss-tolerant information spreading, in which a special relay called "helper" is assigned to exploit the rich diversity. In accordance to some embodiments, a network coding based scheme is disclosed which has the ability to restore the "missed" information and in the meanwhile retains the benefit of state-of-the-art batched sparse coding. A systematical design is provided to address practical issues such as helper selection and rank distribution estimation. Both numerical and simulation results show that the MF method outperforms fountain codes and existing network coding schemes, providing an information spreading technique that is well suited for use with ultra-dense networks by taking advantage of the densely deployed relays in new network settings, such as in 5G networks.

Description

METHOD FOR EXPLOITING DIVERSITY WITH NETWORK CODING
RELATED APPLICATIONS
[0001] This application claims priority to and the benefit of U.S. Provisional Patent Application Number 62/309,823, entitled "METHOD FOR EXPLOITING DIVERSITY WITH NETWORK CODING," filed March 17, 2016. The entire contents of the foregoing are hereby incorporated herein by reference.
BACKGROUND
[0002] Mobile data demand is growing explosively. Some industry and academic experts predict a 1000-fold demand increase by 2020 [REF. 1]. In order to offer the lOOOx increase in data rates and throughput, small cells densely deployed underlying the conventional homogeneous macrocells are emerging as a promising candidate for the fifth generation (5G) mobile broadband [REF. 2]. Densely deployed as fixed entities and owned by infrastructure providers, the small cells serve as relays for the traffic between user and access point in the wireless backhual. Therefore there is a need for efficient and reliable information spreading technique that exploits those massive relays in such new network deployment.
SUMMARY
[0003] According to some embodiments, a method of operating a communication system is provided. The communication system comprises a source node, a sink node, a first relay node and a second relay node. The method comprises encoding a plurality of packets and transmitting a first batch of encoded packets at the source node. The method comprises receiving a first portion of the first batch of encoded packets, re-coding the first portion of the transmitted packets to produce a second batch of encoded packets and transmitting the second batch of encoded packets at the first relay node. The method comprises receiving a second portion of the first batch of encoded packets, re-coding the second portion of the transmitted packets to produce a third batch of encoded packets and transmitting the third batch of encoded packets at the second relay node. The method also comprises receiving at least a portion of the second batch and at least a portion of the third batch, and reconstructing the plurality of packets from the received portion of the second batch and the received portion of the third batch at the sink node. Each of the second batch and the third batch has a batch size smaller than the first batch.
[0004] According to some embodiments, the method of operating a communication system further comprises communicating between the first relay node and the second relay node a number of packets in the first portion.
[0005] According to some embodiments, re-coding the second portion of the transmitted packets to produce the third batch of encoded packets comprises producing the third batch with a batch size based on a difference between a number of packets in the first batch and the number of packets in the first portion.
[0006] According to some embodiments, communicating between the first relay node and the second relay node the number of packets in the first portion comprises communicating over a side channel.
[0007] According to some embodiments, communicating between the first relay node and the second relay node the number of packets in the first portion comprises transmitting the number in a header associated with the second batch.
[0008] According to some embodiments, the acts of transmitting the first batch, the second batch and the third batch each comprises transmitting a respective header associated with the batch comprising the same batch number.
[0009] According to some embodiments, the communication operates with a TDMA protocol in which a plurality of packets are transmitted in frames comprising a plurality of time slots; and the second batch and the third batch are transmitted in the same frame.
[0010] According to some embodiments, the communication system is a 5G wireless network.
[0011] According to some embodiments, a method of operating a second relay node is provided in a communication system comprising a source node, a sink node, a first relay node and the second relay node in which the source node transmits a first batch of encoded packets encoding a plurality of native packets, and the first relay node transmits a second batch of encoded packets based on a received first portion of the first batch. The method comprises, at the relay node: receiving a second portion of the first batch, receiving an indication of the size of the first portion and transmitting a third batch of encoded packets based on the received portion of the first batch. The third batch has a size selected based on the indication of the size of the first portion and the third batch conveys information comprising a random mix of information received in the second portion.
[0012] According to some embodiments, transmitting the third batch of encoded packets comprises encoding the encoded packets using a network code.
[0013] According to some embodiments, the network code encodes K native packets to produce N encoded packets, where N is greater than K such that the encoded packets comprise redundant information.
[0014] According to some embodiments, receiving an indication of the size of the first portion comprises receiving a header associated with the second batch comprising the indication.
[0015] According to some embodiments, the method of operating a second relay node further comprises engaging in a handshake protocol with the first relay node such that the second relay node is designated as a helper of the first relay node prior to receiving the second portion of the first batch.
[0016] According to some embodiments, the second relay node comprises a cell of a 5G network.
[0017] According to some embodiments, a method of operating a sink node in a communication system is provided. The communication system comprises a source node, the sink node, a first relay node and a second relay node in which the source node transmits a first batch of encoded packets encoding a plurality of native packets. The method comprises, at the sink node, receiving a first plurality of encoded packets from the first relay node, receiving a second plurality of encoded packets from the second relay node and decoding the first plurality of packets and second plurality of packets as a batch encoded with a network code to recover a third plurality of native packets.
[0018] According to some embodiments, the first plurality of encoded packets and the second plurality of encoded packets are encoded with a network code.
[0019] According to some embodiments, the network code is such that information representing the third plurality of native packets is distributed across the first plurality of encoded packets and the second plurality of native packets.
[0020] According to some embodiments, the second plurality of encoded packets has fewer packets then the first plurality of encoded packets. [0021] According to some embodiments, the first plurality of encoded packets and the second plurality of encoded packets are received in the same frame of a network protocol used by the communication system.
[0022] According to some embodiments, the sink node comprises a handset.
[0023] Aspects of the above-described embodiments may be used alone or in any suitable combination.
[0024] The foregoing is a non-limiting summary of the invention, which is defined by the attached claims.
BRIEF DESCRIPTION OF DRAWINGS
[0025] The accompanying drawings are not intended to be drawn to scale. In the drawings, each identical or nearly identical component that is illustrated in various figures is represented by a like numeral. For purposes of clarity, not every component may be labeled in every drawing. In the drawings:
[0026] FIGs. la and lb are schematic illustrations showing basic building unit and network topology structure for Miss-and-Forward;
[0027] FIG. 2 is a a graph of the logical flow of Helper /;
[0028] FIGs. 3a and 3b are graphs showing comparisons of transfer matrices;
[0029] FIG. 4 is a graph of the header structure of a Miss and Forward (MF) packet;
[0030] FIG. 5 is a graph of the selection process for Helper B;
[0031] FIG. 6 is a graph of the handshake protocol for determining the helper;
[0032] FIG. 7 is a graph of the constructed Internet Protocol (IP) chain for candidate P;
[0033] FIG. 8 is a graph of the rank distribution of 9 hops under a loss rate of 0.2;
[0034] FIG. 9 is a graph of the throughput of MF and Batched Sparse codes (BATS) versus number of hops under different loss rates;
[0035] FIG. 10 is a graph of an exemplary application of MF in a two hop cellar network;
[0036] FIG. 11a is a graph of throughput for different coding schemes versus Signal- Noise-Ratio (SNR), under Additive white Gaussian noise (AWGN) channel;
[0037] FIG. l ib is a graph of throughput for different coding schemes versus SNR, under fading channel; [0038] FIG. 12 is a graph of throughput for different coding schemes versus loss probability;
[0039] FIG. 13a is a graph of throughput for different coding schemes versus blockage rate, under a channel loss rate of 0.1;
[0040] FIG. 13b is a graph of throughput for different coding schemes versus blockage rate, under a channel loss rate of 0.3;
[0041] FIG. 14a is a graph of throughputs for different coding scheme versus number of hops, under a channel loss rate of 0.1;
[0042] FIG. 14b is a graph of throughputs for different coding scheme versus number of hops, under a channel loss rate of 0.3.
DETAILED DESCRIPTION
[0043] The inventors have recognized and appreciated a network protocol that provides high throughput in a network comprising multiple nodes that can serve as relays for communicating packets transmitted between other nodes in the network, even in a lossy environment. Such a scenario may occur, for example, in a 5G network in which there are multiple small cells, communicating wirelessly.
[0044] In accordance with some embodiments, one or more relay nodes may facilitate transmission between a source node and a sink node. In some embodiments, the sink node may comprise a handset. Transmissions may be formatted as batches of encoded packets, with encoding that enables partial communication even in the presence of noise that may cause loss of encoded packets. The coding may introduce redundant information about native packets being communicated such that, with minor loss of encoded packets, the remaining encoded packets contain enough information to recreate the native packets. If a relay node receives a sufficient number of encoded packets from a first batch transmitted from a source node, the relay may retransmit a second batch of encoded packets conveying that information to a sink node, as in a conventional communication system using network coding.
[0045] When the channel loss is so severe that the relay receives a portion of a batch of encoded packets that is insufficient to recreate all native packets, the relay may nonetheless pass on a second batch of encoded packets. The second batch, however, may have fewer packets than the first batch, reflecting the fact that the relay has less information to retransmit.
[0046] To make up for the information missing from the second batch, a second relay node may serve as a "helper" for a first relay node. The helper node may provide a third batch of encoded packets to the sink node. This third batch of packets may contain enough encoded packets that the combination of the second batch and the third batch supplies enough information to recreate the full set of native packets represented by the first batch of encoded packets. In accordance with some embodiments, the second and third batches are formed by randomly mixing portions of the first batch, such that, if the sink nodes receives a sufficient number of packets from the second and third batches combined, it will have enough information to recreate the native packets represented by the first batch - regardless of which relay node retransmitted the packets received at the sink.
[0047] The first relay node may be aware of the second relay node such that the relays may coordinate their actions. In some embodiments, nodes in a network may, from time to time, communicate with nearby nodes using a handshaking protocol that allows a relay node to identify a nearby node that will serve as a helper. Conversely, the helper node may identify the relay node for which it is a helper as a result of that handshaking. Once the relay and helper nodes establish an association, the relay, for example, may communicate to the helper the number of encoded packets in a first batch it correctly received. The helper may use that information to determine the number of encoded packets to transmit in the third batch. In some embodiments, the helper may also determine times at which to transmit based on action of an associated relay node. For example, the network protocol may divide time into time slots and frames, with a full rank batch, of the size that would be transmitted by the source node, being transmitted in one frame. The first and second relay nodes may coordinate transmission such that the second and third batches are transmitted in a frame.
[0048] 1. Introduction
[0049] Store-and-F orward is a straightforward and prevailing solution that is sometimes used in densely deployed relay networks. However, the inventors have recognized and appreciated that, due to the lossy nature of wireless channels, the throughput degradation caused by packet loss is serious, especially as the number of hops increases. Forward error correction (FEC) approaches have been proposed to address the packet loss, which include both fixed-rate codes (Reed-Solomon codes, LDPC codes) and rateless codes (fountain codes [REF. 14]). With the low encoding/decoding complexity as well as capacity achieving capability, fountain codes (e.g., LT codes, Raptor codes [REF. 4]) is a competitive candidate for single hop transmissions. However, when the number of hops increases, the packets loss will accumulate and hold back the performance. Under an L- hop network with per-hop packet loss ratio ε, the upper bound for the end-to-end throughput is (1— e)L.
[0050] The inventors have recognized that to alleviate the accumulated loss, network coding [REFs. 5-8] may be introduced to realize loss-tolerant information spreading through Code-and-Forward. Compared with Store-and-Forward, in which redundant packets are injected only from a source node, Code-and-Forward refills the information at intermediate ones. Specifically, to compensate for the packet losses at each hop, a relay node transmits random linear combinations of the packets it has received. As long as the number of combined packets is larger than a sutiable threshold value, the above mentioned random linear network coding (RLNC) may achieve an end-to-end throughput of 1— ε for the same L-hop lossy network [REF. 9]. Coexisted with the throughput gain are the computational complexity and the excessive coefficient overhead [REF. 10]. To address this problem, the packets of a file may be partitioned into subsets (or segment [REF. 11], generation [REF. 12], block [REF. 13], batch [REF. 14], trunk [REFs. 15, 16]). More recently, joint fountain coding and network coding schemes have been proposed [REFs. 9, 17-19, 20]. The inventors have recognized that Batched Sparse (BATS) codes [REF. 9], as the state-of-art coding scheme among the proposed coding schemes, has the ability to achieve the balance between throughput and lower complexity/overhead.
[0051] Although Code-and-Forward greatly improves throughput by recoding, it suffers from a fundamental limitation. In the example situation shown in FIG. lb, where a source node S intends to send K naive packets to a sink node R2. According to Code- and-Forward, those K native packets are coded into N packets and transmitted to relay node Rl over a lossy channel. In the case of less than N— K packet losses, Rl can fully compensate by recoding the received packets into N packets without any loss of source information. However, in the case of more than N— K packet losses, certain packets are permanently lost no matter how Rl recodes its received packets. These permanently lost packets are herein referred to as "missed packets" to distinguish them from the lost ones in the first case. These missed packets cannot be compensated by Rl itself, but may be compensated through the "help" from other nodes.
[0052] The inventors have recognized that due to the dense deployments of next- generation wireless networks [REFs. 21, 22], the aforementioned "help" is readily available and can be exploited. According to aspects of some embodiments, as shown in FIG. lb, under the dense network assumption, there may exist another relay node, such as relay node HI, that overhears these "missed" packets and helps to "forward" them directly to sink node R2. From the perspective of R2, the packets received from relay node HI provide remedy to the ones received from relay node Rl. Rather than having Rl transmit all N recoded packets, the more efficient way is to let HI help share Rl's task by recoding and forwarding the missed packets. Although the same amount of redundancy can also be transmitted by Rl, it is less efficient as it cannot compensate for the missed packets. The underlying reason is that the packets received by Rl and HI went through independent fading channels, and the packets lost in HI are likely to be different from those in Rl. This wireless channel diversity has been exploited by the above mentioned method of "Miss-and-F orward" .
[0053] Disclosed here is a new method for loss-tolerant information spreading that exploits rich diversity in the dense network setting. The method is herein referred to as Miss-and-F orward (MF). MF is based on a new logical topology as shown in FIG. la, in which an unexploited relay H in the vicinity of a relay R, herein referred to as "helper", is chosen to be coupled with the relay R.
[0054] According to some embodiments, disclosed here are design and implementation of a delicate network coding protocol that is able to support the method described above and in the meanwhile retain the benefit of low complexity and high throughput of BATS codes [REF. 21]. Specifically, the batched sparse codes, generated from the source node, are recoded by the relay and its corresponding helper in a cooperative fashion where the helper node captures missed information and provides remedy.
[0055] To better understand the design and operation of MF, its throughput is analyzed from the decoding perspective. First, an upper bound of final throughput may be directly decided by the rank distribution. Based on this observation, the advantage of MF over BATS codes may be illustrated by comparing their rank distributions. To achieve the upper bound, a numerical estimation of the rank distribution and computation of the theoretical throughput of MF are provided. Details of the analysis are discussed in the sections below. Results show that compared with BATS codes, MF has a more preferable rank distribution, which may result in 5%— 30% throughput gain according to some embodiments.
[0056] According to aspects of the current invention, an exemplary systematic design for MF is provided along with discussions of some practical issues including packets structure, helper selection, and runtime rank estimation. The disclosed design may be simulated along with several reference designs such as BATS codes, fountain codes and RLNC, in a TDMA multi-hop network. In some embodiments, the disclosed design may achieve significant gain over fountain codes and existing network coding schemes. More importantly, the achieved throughput is only 5% lower than the theoretical upper bounds calculated under the optimal operating condition according to some embodiments.
[0057] 2. Miss-and-F orward description
[0058] In this section, a description of the Miss-and-F orward framework according to some embodiments is provided. From the coding perspective, MF may be derived from BATS codes [REF. 21]. As a state-of-the-art intra-session coding scheme, BATS codes achieve both low decoding complexity and high resistance to the channel loss. MF extends the original BATS codes to better exploit the massive relays in ultra dense networks. Compared with BATS codes whose recoding process is carried out by a single relay, MF relies on a pair of relay and helper nodes to perform cooperative recoding.
[0059] 2.1. Source coding of MF
[0060] In some embodiments, a source node (Node 1) may want to transmit a file consisting of K native packets to a destination sink node (Node L + 1) over L hops. Each packet, denoted by a column vector in IF^, has T symbols in a finite field IF^ , where q is the field size. The set of K native packets is denoted by the following matrix:
B = [blt b2, - , bK], (Eqn. 1)
where bt is the i-th native packet. Herein when treating packets as elements of a set, one may write bt G B.
[0061] The following provides a descritipn of precoding, outer code and inner code according to some embodiments. [0062] 2.1.1 Precoding of MF
[0063] At a source node, precoding may be performed, similar to RaptorQ (RQ) code [REF. 4] . In one non-limiting example, the precoding may be achieved by a traditional erasure code such as LDPC and Reed-Solomon code. After precoding, the output packets are further encoded by the outer encoder of MF.
[0064] 2.1.2 Outer Code of MF
[0065] The outer code of MF may be the same as the outer code of a BATS codes. In one example, a source node encodes the K native packets into a number of batches, each containing M coded packets. The number of batches may be any number. The t-th batch Xi is generated from a subset Bt c B (B G WqXK) by the following operation:
Xi = BiGb (Eqn. 2)
where Gt G ψ^ιΧΜ is herein called the generator matrix of the t-th batch; Bt G IFqXdt; Xi G IFqXM. Similar to fountain codes, Bt may be randomly generated by two steps: 1) sample a given degree distribution Ψ = (Ψ1( Ψ2, · ·· , Ψ ·) and obtain a degree dt with probability Ψώ ; 2) uniformly and randomly choose dt packets from B to form Bt. Matrix Gt may be randomly generated, with all entries independently and identically chosen from Wq according to a uniform distribution.
[0066] 2.2. Relay recoding of MF
[0067] After receiving packets from both a previous relay and a helper, a relay node encodes the packets properly, and sends them to the next one according to some embodiments. In MF, the relay recoding differs that of BATS codes in that the recoding process will not generate a full batch with size M. If the packet loss is severe at the previous hop, recoding to a full batch may bring too much unwanted redundancy which impairs the efficiency. Thus instead, less than M packets may be recoded and sent by the relay in MF, leaving the remaining part to the helper. One may use
Figure imgf000011_0001
to denote the number of recoded packets in the t-th batch at Relay I. Accordingly, the recoding matrix
„Mxmi i
is given as G It
[0068] Y^i+1 represents the set of packets in the t-th batch that is correctly received by Relay I + 1 from Relay I, and Yi t is the set of packets totally received at Relay I. According to an aspect of the current invention, the recoding behavior of the Relay I may be summarized as the following formula:
Y ϊί-R,ι+ι -—
Figure imgf000012_0001
(Eqn. 3)
where is an mfi X mf{ diagonal matrix whose entry is one if the corresponding packet is correctly received by Relay I + 1, and is zero otherwise. Eqn. 3 indicates MF follows batch-wise transmission in this embodiment.
[0069] 2.3. Helper recoding of MF
[0070] The helper is an important part in the MF method that distinguishes it from prior art systems. According to some aspects of the current invention, the helper is responsible for three major tasks during data transmission: 1) overhearing from previous relay and storing packets in a batch; 2) coordinating with its coupled relay to know how it should recode; and 3) recoding and sending remedies to the next one. In the sections below each of the above tasks is discussed using mathematical formula, followed by a demonstration of how the helper node may accomplish the tasks smoothly with its logical flow.
[0071] 2.3.1 Receiving batch
[0072] According to an aspect of the current invention, Zt i+1 denotes the set of packets in the i-th batch that are correctly overheard by Helper I + 1, the flow may evolve as follows:
ι =
Figure imgf000012_0002
(Eqn. 4)
where E ^ is the erasure matrix for the hop from Relay I to Helper I + 1. Note that Eqn. 4 shares the same form as Eqn. 3, with the only difference in the erasure matrix. In some embodiments, the helper may overhear packet information from the previous relay using communication from a side channel.
[0073] 2.3.2 Recoding and sending [0074] According to an aspect of the current invention, ¾+1 denotes the set of packets that are correctly received by Relay I + 1 from Helper I. Different from Zt i+1 in Eqn. 4, focuses on transmission from the helper to the relay. Their relationship is given as follows:
¾+i = ¾¾¾ (Eqn. 5) where G Ψ 1,1-1 1,1 is the recoding matrix of an RLNC for the i-th batch at Helper I, and Eft is the corresponding erasure matrix for the hop from Helper I to Relay I + 1. Together with Y^i+ 1 in (3), one may have
Yi,i+i = [ YiRi+v YiHi+i] (Eqn. 6)
at the receiving side. Yt i+1 then becomes the input for relay recoding as shown in (Eqn. 3).
[0075] 2.3.3 Coordination with the relay
[0076] One key component in some embodiments is the choice of the dimension of recoding matrix for the relay and the helper, i.e. choice for the parameters
Figure imgf000013_0001
and mg. According to an aspect, one may prefer that the helper become a smart node which only sends an extra part that brings missed information. To achieve this,
Figure imgf000013_0002
may be chosen to be the number of successfully received packets at Relay I. This value equals M minus the number of zero columns in Yi t . Since the recoding at relay side does not change the number of packets, the helper can simply compute mg as follows:
Figure imgf000013_0003
[0077] In this example, MF does not require extra channel use.
[0078] 2.3.4 Logical flow of the helper
[0079] To accomplish tasks described above in a methodical manner, according to some embodiments Helper I may overhear packets sent from both Relay I— 1 and Relay I and deal with different situations accordingly.
[0080] According to some embodiments, on the one hand, the Helper stores all the correctly received packets in a batch from Relay I— 1 in its local buffer as described in Eqn. 4, expecting them missed at Relay I . On the other hand, when Relay I recodes and sends the current batch, Helper I overhears those packets and regards them as a command to start to recode and send its own. Note that mg, the number of recoded packets sent by Relay I, may be contained in the field "Sent Num" in the packet header, so Helper I knows how to recode according to Eqn. 5 and Eqn. 7.
[0081] In some embodiments, with sequentially incoming batches, Helper I may also keep a local variable Ncurrent to denote the ID of its currently processing batch. If the overheard packet does not belong to the batch it holds, Helper / will ignore this packet. A detailed logical flow of Helper I is shown in FIG.2, where Npacket is the batch ID of the incoming packet.
[0082] In summary, the intelligence of the helper node resides in two aspects. Firstly, the helper contains innovative packets out of diversity, so it may bring the missed information back to the data stream; Secondly, the number of packets it sends is dynamically changed according to the demand, which may be just to the point to make a full batch.
[0083] 2.4. Decoding of MF
[0084] According to some embodiments, decoding is performed at the sink Node L + 1 to reconstruct the K native packets. In one non-limiting example, similar to a raptor code, belief propagation (BP) may be used to decode the outer code and inner code of MF.
[0085] 3. Throughput analysis
[0086] In the sections below, a discussion of the throughput of MF according to some embodiments is provided from the decoding perspective. First, a theoretically derivation is provided for the relationship between upper bound of throughput and rank distribution; then, the rank distribution of MF is focused to prove that it is preferable than that of BATS codes according to some embodiments.
[0087] 3.1. Degree distribution
[0088] Similar to fountain codes, a good degree distribution design is important to the performance of a MF scheme. For Miss and Forward, the optimization of the outer code may be similar to that of BATS codes. In order to recover η K native packets with linear complexity, the optimal degree distribution Ψ* may be obtained by solving the following optimization problem [REF. 9] : max
ψ
s. t. Ω(χ, /ι, Ψ) + - ln(l - x) > 0, 0 < x < η,
n
d xV(d) = l, V(d)≥0, Vd,
(Eqn. 8)
where n is number of received batches required for decoding, h = [hr L, r = 0, ··· , M is the rank distribution of transfer matrix, Ψ is the degree distribution to be optimized, and Ω(χ, h, Ψ) is defined in Eqn. (19) of REF. 9, the entirety of which is incorported herein by reference, and is a linear function of both h and Ψ. To fully recover a file, η may be set to be the precoding rate according to an embodiment.
[0089] 3.2. Achievable throughput analysis
[0090] According to aspects of an analysis, n* denotes the numbers of of batches required to recover the original file under perfect. The respective normalized throughputs are:
Figure imgf000015_0001
(Eqn. 9)
[0091] Accordingly, once n* is determined, the theoretical throughput of MF may be computed. According to an aspect of some analysis and as described in detail below, n* may be calculated from the optimal degree distribution Ψ* according to the sufficient conditions for successful decoding [REF. 9],
[0092] First, define a condition function below
Figure imgf000015_0002
(Eqn. 10)
where n' is number of batches required for decoding, dmax = max{d^d > 0} is the
d
ct ~\~ b 1 maximal degree with non-zero probability, /a<¾(x) =∑ =a_1 ( j ) 7 (1 x^a+b-i-j s me regularized incomplete beta function, and is defined as follows: [(1 - qr-£)(l - q~i+1) - (1 - q"i+r_1)< r > 0,
, r = 0.
[0093] According to Thm-1 in REF. 21, the entirety of which is incorporated herein by reference, to successfully recover the original file with high probability, the following condition is sufficient and necessary:
/(η', a, η, K, h, Ψ) > 0, Va E [0,1]- (Eqn. 11)
[0094] Then, n* may be calculated from Ψ*,
n* = min{n': f(n', a, η, K, h, Ψ*) > 0, Va E [0,1]}, (Eqn. 12)
WEN
[0095] By plugging Eqn. 12 into Eqn. 9, the achievable throughput may be calculated.
[0096] 3.3. Rank distribution
[0097] It can be concluded from Eqn. 8 and Eqn. 12 that the theoretical throughput for MF is determined by the rank distribution h. Since a higher rank will lead to higher throughput, it is desired to investigate the rank of the transfer matrix of MF.
[0098] 3.3.1 Transfer matrix of MF
[0099] At the destination sink node (Node L + 1), denote by Yt the t-th received batch of the flow, one may have
Yi = Yi,i+i = [ YiRi+v YiHi+i] (Eqn. 13)
= (Eqn. 14)
= [ ¾-ι¾-ι£¾-ι¾¾] (Eqn. 15)
(Eqn. 16)
= XiHu (Eqn. 17)
where Ht is the transfer matrix for the t-th batch. The specific rank for Ht is given as hi = rank(Hi), (Eqn. 18)
which satisfies
hi~h. (Eqn. 19)
[00100] Eqn. 15 shows the status of the received batch of MF is a second order
Markov chain: Yt i+1 is actually dependent on both Yi t and Going backward along this chain, Eqn.17 can be derived. However, it is unrealistic to have explicit formula for h in Eqn. 19. A numerical experiment is provided in detail in the sections below in order to calculate the rank distribution of MF. [00101] 3.3.2 Comparison with BATS
[00102] In an example analysis with a two-hop network, insights on why MF outperforms BATS codes may be provided by comparing the rank of their transfer matrices. In this example, for notation simplicity, only one batch is focused on thus sub- index i is left out. The transfer matrix of MF, as well as BATS codes [REF. 9] are given as follows:
(HMF - r[ ErxtHj2RErr2t, ExliHj2HEr2di], ^ 2Q)
^BATS - [E1H2E2],
where E1 and E2 are the loss matrices for BATS codes, and H2 G Ψ^χΜ. Denote by m the number of packets the relay send, one may have H2 G Wq Xm , H2 G ψ^χ(Μ m
[00103] To understand whether the rank of HMF is higher than that of HBATS and for convenience of comparison, one may rewrite HBATS in the same form as HMF. Specifically, H2 may be split into H2 and H2 , which have the same dimension as H2 and H2 respectively. Clearly, H2 and H2 are still random matrices, and Eqn. 20 can be rewritten as follows:
I M MF - Y h\ n , hx H2 t 2,
(Eqn. 21)
{HBATS = [ E1 , E1H ]E2, where E'? =
Figure imgf000017_0001
[00104] The form of two matrix multiple in Eqn. 21 illustrates that the effects of the transfer matrix can be divided into two parts. The first part are the matrices [E[H2,EiH2] and [Ε^^,Ε^^] on the left side. They summarize the overall impacts that a batch of packets are subject to during the first hop including loss from channel and recoding from relay. The second part are the erasure matrices on the right side, which represent the effect of channel loss only, since the second hop does not involve recoding.
[00105] Viewing Eqn. 21 from a different angle, for both schemes, the transfer matrix is actually a random matrix, [H2,H2] or [ H2, H2], multiplied by some different erasure matrices from both the left and the right side. Thus to compare the rank of HMF and HBATS, one may start with these two random matrices, and look into how different erasure matrices bring different rank losses to them. Shown in the first column of FIG.3 are these two basic random matrices 310, 320, where the grey color denotes random variables in finite field. The next section will explain and visualize the rank-losing process caused by erasure matrices according to an aspect in some analysis.
[00106] To begin with, the following provides a discussion of the rank loss caused by the first hop and looks into the difference between [ E^H^, E^H^] and [ EXH , EXH \ . According to aspects of some analysis, because the helper node is in the vicinity of the relay, all channels may have almost the same condition in the following analysis. In one non-limiting example, there may be two packets lost in a batch so that there are two zeros in the diagonal of the matrices E , E , and as shown in the middle column in FIG.3, where the white part stands for zero entries. In the second matrix 340 in FIG.3b, the left part 342 and the right part 344 of the matrix are corresponding to
Figure imgf000018_0001
respectively. Since they share the same erasure matrix E , the zero entries reside in the same row 343, 345. As a result, the rank loss is two. Since this rank loss is caused by zero entries in a row, one may call it horizontal rank loss. However, with the diversity caused by two different paths, E and are different and thus the zero entries lie in different rows 331, 333 in Hf and as shown in the middle matrix 330 in FIG. 3a. Since there is no all-zero row in the matrix, the horizontal rank loss does not happen.
[00107] Then, the effects brought by E'2 and E2 are compared. In one example, one packet may be lost for both cases. As a result, one column 356, 366 in both [ E Hf , E1 H2 ] 350 and [ EXH\, E^H^ 360 will be replaced with zero entries as shown in the last column in FIG. 3. Accordingly, one may call it vertical rank loss. Clearly this loss is one for both schemes.
[00108] The final rank loss should consider both horizontal and vertical losses in
HMF and HBATS. Specifically, it should be the larger one between the two. In the example operationin FIG. 3, the final rank loss for BATS codes is two, while that for MF is one. In this example, the gain of MF over BATS codes all comes from the first hop where diversity exists.
[00109] In another scenario, when during the second hop, two or more packets are lost, MF will have the same rank loss as BATS codes since the vertical rank loss is dominant under such particular condition. However, since the packet loss is a pure random process, as long as MF wins part of the games, the average performance will be better. More importantly, in scenarios in which there are r hops instead of two, wherein r > 2, the gain can propagate with snowball effect since diversity exists in r— 1 hops out of r.
[00110] Eqn. 21 also reveals that under the scenario where helper nodes exist, MF will downgrade into BATS codes if the channel loss and E are identical. Although there is still a chance for this to happen, this probability is low. On average, the MF scheme disclosed in the current invention may achieve a higher rank distribution by exploiting the diversity.
[00111] 4. Practical design
[00112] In this section, discussion for some fundamental issues for the system design in some embodiments are provided. Specific design features derived from these design issues may be applied in a network, which may be otherwise implemented using known network hardware and software design techniques.
[00113] 4.1. Packet structure of MF
[00114] In some embodiments, the packet header may be designed based on the practical intra-session network coding header structure in REF. 20. With cooperative recoding, some more information should also be contained in the header.
[00115] An example header structure according to some embodiments for MF is shown in FIG. 4. Apart from the basic fields used for coding, there may be two special fields named NC Switch and Sent Num.
[00116] According to an aspect of the example embodiment, the NC switch may consist of two bits to indicate one of the following four schemes is used: 1) MF, 2) BATS, 3) RLNC, 4) Fountain code. In this example, if the NC switch equals 00, MF is enabled. According to a non-limiting example, the Sent Num may be an 8-bit integer which plays a role only when MF is enabled and a helper is pre-assigned. The function of the Sent Num according to an embodiment was described in section 2.3.4 above.
[00117] 4.2. Helper selection
[00118] In some embodiments, the selection of helpers along the route of an end- to-end flow may be determined before the data flow starts. This selection of helper may relate to many factors such as instant link quality, nodes availability, etc. The helper selection may be based on geographical information in some embodiments.
[00119] In some embodiments, to select the helper, a hierarchical selection approach may be adopted. To avoid the situation that a candidate is selected as a helper by multiple relays, every candidate may only try to help the relay that stands nearest to it. For instance, in the exemplary situation shown in FIG. lb, a Helper B should be found within all possible nearby relay stations H , H2, and H3. First of all, to ensure all the links can enjoy a relatively low packet loss ratio, only the nodes that reside within the transmission range of both the previous and the next relay, i.e. from selective region 510 shown in FIG. 5 may be picked. Any suitable technique for determining range may be used, such as signal strength measurement, round trip delay time measurements or historical data rates or data loss information. In this way, H3 is obsoleted for being outside. One may denote the remaining set of candidates as C. Then, the one that is most beneficial in a geographical sense in C may be picked. The following sum distance may be used as a metric to measure one' s geographical suitability to serve as Helper B:
Figure imgf000020_0001
where \HtA \ and \HtC \ are the distances from Ht to Relay A and Relay C respectively. Accordingly, the best candidate should be the one with minimal sum distance according to some embodiments:
Hi = minDStf. .(Eqn. 23)
[00120] In the example shown in FIG. lb, H may be chosen as Helper B.
[00121] FIG. 6 shows an example diagram for a three step handshake protocol designed based on the selecting algorithm described above. In this protocol, every relay station may know its own location according to a non-limiting example of the embodiments.
[00122] 4.2.1 Relay beaconing
[00123] In some embodiments, the relays along the routed path broadcast beacons sequentially so that the candidates nearby can hear. This beacon message may bring three kinds of information about the relay itself: 1) the IP address, 2) the location, and 3) the IP address of the next hop. According to an aspect, since routing happens ahead of the beacon message broadcast, next hop IP is available for every relay.
[00124] 4.2.2 Candidates responding
[00125] In some embodiments, a candidate hears multiple beacons from different relays and may conduct a self-checking process to verify the candidate' s qualification as a helper. The self-checking process for the candidate involves 1) determining the relay node it tries to help and 2) checking if it is in selective region of this relay. Task 1) may be achieved by exploiting location information in the beacons. For task 2), one candidate may turn to the IP and next IP information from all received beacons to see whether it is possible to construct the IP chain as shown in FIG.7. Note that according to an aspect of some embodiments, the prerequisite for constructing this IP chain is it stands in the right selective region 510 in FIG.5. If passes the self-checking, the candidate may compute sum distance based on Eqn. 22 and send a response back to inform Relay B of the the sum distance value.
[00126] 4.2.3 Relay confirming
[00127] After receiving multiple responses from candidates, Relay B may simply choose the helper according to Eqn. 23 and broadcast the confirming message to inform all the candidates of the result. The ones who are not chosen will not be involved in the data transmission phase.
[00128] Note that once assigned, the helper may know the IP address of the previous hop and the next hop in the transmission phase by referring to the IP chain. In some embodiments, no more sub-routing process is needed.
[00129] According to some embodiments, MF doesn't require every relay has its helper. If no one is within the selective region, the relay will recode in the same way as BATS codes.
[00130] 4.3. Rank distribution estimation
[00131] According to an aspect of the current invention, there may not be an explicit formula to compute the rank distribution for Miss-and-Forward. In some embodiments, loss ratio information collected for every single hop, with some beaconing overhead, may not enable generation of a right distribution for MF within a reasonable time. Therefore, in some embodiments an end-to-end rank estimation of transfer matrix may be used which requires a very small amount of feedback.
[00132] In some embodiments, there may be no knowledge at the source node about what kind of degree distribution should be used. According to an aspect, the source node may transmit certain number of full-rank batches as "pilot batches". The pilot batches can be generated from arbitrary degree distribution as long as they satisfy the full-rank property. As those pilot batches reach the destination sink node, the actual rank K will be known at the destination by the decoding process. After receiving sufficient batches, the destination sink node can generate a histogram from the rank of them, which approximates the actual rank distribution of the end-to-end transfer matrix. The estimated rank distribution is then returned to the source node using a single M-sized feedback. In one example embodiment, to ensure a reliable delivery of this important information, end-to-end acknowledgment (e.g., in TCP) may be used.
[00133] The benefit of this rank estimation method is three-fold. First, no knowledge of the actual path each packet went through and the packet loss ratio of every hop is needed. Second, the feedback amount Θ(Μ) is negligible compared to the file size Θ(Κ). Third, different from the pilot signal in wireless communications that is considered as pure overhead, the pilot batches in the embodiments disclosed above may provide information about the source file, so the efficiency can be guaranteed.
[00134] 5. Performance evaluation
[00135] In this section, the performance of the Miss-and-Forward method according to some embodiments disclosed herein is evaluated and compared with other existing information spreading schemes. First, numerical experiment is used to demonstrate the effectiveness of MF from a theoretical perspective; Then, simulations are conducted in a serial network with TDM A as the medium access control protocol to show 1) the priority of MF over others from a practical sense and 2) the effect of number of helpers exploited in MF, according to some exemplary analysis.
[00136] 5.1 Numerical result
[00137] First, a quantitative analysis of the rank distribution and throughput of MF based on the example analysis discussed in section 3 is provided. The analysis result is compared with that of the BATS codes [REF. 9] as discussed in detail below. With no explicit formula for h in Eqn.19, numerical approaches may be used to obtain a practical rank distribution. In one example, for a L hops ad-hoc network with per-hop loss rate ε, 5000 full-rank batches of packets are generated at the source node, each batching containing M packets (M = 16 for all example experiments unless otherwise stated). At the destination sink node, the number of times that a k-t (0 < k < M) rank batch appears is recorded. And accordingly, the rank distribution is the discrete probability distribution estimated.
[00138] Once the rank distribution h is obtained, one may optimize the degree distributions according to Eqn. 8 and calculate the achievable throughputs from Eqn. 12. [00139] 5.1.1 Rank distribution
[00140] In a non-limitng example, a 9 hops path with 0.2 loss ratio is provided and the corresponding exemplary rank distribution of both BATS 820 and MF 810 is calculated and shown in FIG.8. Compared with BATS codes, the rank distribution of the example MF has relatively higher density on the higher ranks. Specifically, MF may achieve 2-3 fewer rank losses than BATS codes on average. Without being bound by any particular theory of operation, the inventors theorize that the reason for the difference is that MF takes advantage of diversity so that missed rank can be captured by the helpers.
[00141] 5.1.2 Achievable throughput
[00142] According to the same example analysis, after information for rank distribution is collected, Eqn. 9 may be used to compute the theoretical throughput for both BATS 910, 930, 950 and MF 920, 940, 960. The results are plotted in FIG.9. For convenience, all throughputs are normalized to the capacity of a single hop network without any packet loss. The results show that MF can achieve higher throughput than BATS under different loss rate and number of hops in the example. As the number of hops increases, the throughput of both MF and BATS decreases, but MF has lower slope compared with BATS. This is because more number of hops will lead to more use of diversity. Besides, the throughput gain is higher under a worse channel. MF is more resistant to the higher loss rate compared with BATS codes. For example, when the channel loss is 0.3, the throughput gain may be around 30%.
[00143] 5.2 Miss-and-Forward under two-hop network
[00144] In one non-limiting example, the performance of MF may be examined in a TDMA two-hop network. In this example, TDMA is used because retransmission can be naturally turned off, and there are less out-of-control factors from the MAC layer.The time slots assigned to neighboring nodes are non-overlapping so that inter-user interference is negligible. The transmit buffer has enough capacity for the relay node. In an example, packet losses are mainly caused by channel error and blocking effect. The service rate of each node can be controlled by the number of time slots assigned to it. According to an aspect of some embodiments, the network protocol may divide time into time slots and frames, with a full rank batch, of the size that would be transmitted by the source node, being transmitted in one frame. The relay and helper nodes may coordinate transmission such that their batches of packets are transmitted in a frame. [00145] The throughput performances of MF according to the example analysis are compared with BATS codes, fountain codes and RLNC. For RLNC, the original file is divided into many subsets, each subset containing 64 packets. The next subset is sent after receiving ACK of a previous one from the destination node. While for BATS codes and proposed MF, the original file will constantly generates batches of packets. In this example analysis, UDP is used for transportation layer protocol and static routing in the network layer. As a non-limiting example, in all experiments, two end nodes simultaneously start to transmit a 16 MByte file (16000 native packets) to each other. Specific parameters used in the example analysis are listed in Table 1. The file throughput (in Gbps) is calculated by dividing the file size by the transmission time. The transmission time is measured from the start of file transmission until all native packets are correctly recovered and reconstructed. Since inter-session network coding is not addressed in this embodiment, the performance metric is one way throughput. In each example, twenty files are transmitted and the average value recorded.
[00146] According to an aspect of the example analysis, the data rate Rs is chosen to be 1G bits/s. The actual tested throughput is divided by Rs for normalization before used as metric.
[00147] Table 1: experimental parameters used according to an example analysis
Figure imgf000024_0001
[00148] 5.2.1 Under different channel condition
[00149] According to one exmaple analysis, the SNR value is changed from low value to the high vale, and the normalized throughput of MF and BATS codes are evaluted under AWGN channel as well as fading channel. BPSK is used as the modulation scheme. The result 1110, 1120, 1130, 1140, 1150, 1160, 1170, 1180 as illustrated in FIG.11 shows that:
[00150] In both AWGN and fading channel, MF may achieve better performance than BATS codes. Averagely, MF can have 0.05 more absolute normalized throughput. Depending on the SNR, the relative gain can be larger as the SNR goes down. But if SNR is too small, the performance of two scheme may be equal. [00151] Compared with AWGN channel, fading channel should have larger SNR value to achieve the same throughput under both BATS codes and MF.
[00152] 5.2.2 Under unexpected loss
[00153] According to an aspect of an analysis, the real channel condition may change with time, and it is hard to predict the channel condition with 100% accuracy. For BATS codes, if the channel loss rate increases for some reason, the throughput will degrade a lot. In some embdiments, a solution for this problem is to over estimate the channel loss rate. With this safety margin, the performance may degrade less. FIG.12 shows results according to three exemplary schemes: 1) MF scheme with the same distribution with BATS codes, 2) BATS codes with 30% over estimation of channel loss rate, and 3) the original BATS codes. The estimated loss rate is 0.1 in this non-limiting example.
[00154] According to the results 1210, 1120, 1230 in the analysis in FIG. 12:
[00155] Even with only a little increase on loss probability, the performance of
BATS codes, no matter with or without safety margin, will degrade dramatically, while MF has much better performance. The result demonstrates the stability of MF.
[00156] Although safety margin lead to some performance gain, it may lower the throughput of the normal case, where the actual loss rate equals 0.1. However, MF can achieve the best performance on normal case while gain the benefit of stability.
[00157] 5.2.3 Under blockage channel
[00158] In one example analysis, the blockage rate is changed under different channel loss rates, and the corresponding throughput is measured. The results 1310, 1320, 1330, 1340, 1350, 1360, 1370 are plotted in FIG.13, which show that in this non- limiting example:
[00159] MF is the best among all schemes in terms of throughput. The gain grows with the 1) blockage rate and 2) the loss rate of channel. Without being bound by any particular theroy of oeprations, the inventors tehorize that the reason for this can be explained as follows. First, as the blockage rate increases, the direct traffic will not work effectively but MF can exploit the second path. Besides, regarding the diversity within one hop, when the channel's loss rate is higher, the helper tends to capture more missed information and thus gives more help. These results may verify the effectiveness of the MF method. [00160] 5.3 Miss-and-Forward under multi-hop TDMA network
[00161] In some analysis, the MF experiment may be extended to multihop communications. The set up of the experimental analysis may be the same as described in the sections above.
[00162] 5.3.1 Under different hops and loss rate
[00163] Table 2: Slope comparison under 0.1 loss channel
Figure imgf000026_0001
[00164] In this example, the number of hops are changed under different channel loss rate, and the corresponding throughput is measured. The results 1410, 1420, 1430, 1440, 1450, 1460, 1470, 1480 are plotted in FIG.14, which show that:
MF is the best among all schemes in terms of throughput. In this non-limiting example, there are 5%-30% throughput gain over BATS codes, and the gain is even more significant when compared with RLNC and fountain codes. The gain grows with the 1) number of hops and 2) the loss rate of channel. The reason for the gain growth can be explained as follows. First, as the number of hops increases, diversity can be exploited more times and the gain can be accumulated. Besides, regarding the diversity within one hop, when the channel's loss rate is higher, the helper tends to capture more missed information and thus gives more help. These results may verify the effectiveness of the MF method under a range of channel conditions and hops.
[00165] MF has advantage when it comes to the throughput degradation per hop.
As shown in Table 2, the slope of MF is only one-fifth of that of BATS codes, which makes MF especially favorable under massive relays.
[00166] In the exemple experimental analysis described in section 5.3, the experimental throughput result of MF is only 5% lower than the analytical throughput calculated under perfect rank estimation as shown in FIGs. 9, 14. This means that in some embodiments the analysis and design are consistent between theory and practice.
[00167] 5.3.2 With different number of helpers
[00168] In some embodiments, it is not required that every relay in the path should find a helper. In a non-limiting example of a 9 hop network, the number of helpers that can be exploited is fixed and throughput of MF scheme is measured. In this example, the maximum number of helpers is 8, and if no helper exists, the scheme is actually BATS codes. The measured results from the analysis are presented in Table 3.
[00169] Table 3: Throughput under different number of helpers exploited
Figure imgf000028_0001
[00170] It can be concluded from the results that as the number of helpers goes larger, the throughput is better. When more helpers are involved in the transmission, more diversity can be exploited. This trade off may be implemented in systems, in which additional nodes may be deployed to serve as helpers, or some nodes may be implemented with additional message processing capability to serve as helpers to more than one other near-by node or to otherwise impact the availability of a helper node for one or more of the relays in the system. Moreover, the number of nodes available tos erve as helpers for other nodes may be selected in deploying a system based on packet loss rate, with more helpers used. Further, the number of nodes available to act as helpers may be non-uniformly distributed over the coverage area of a wireless network, with more helper nodes in areas where higher packet loss rates are expected.
[00171] 6 Conclusion
[00172] Disclosed here is a Miss-and-Forward (MF) coding method for the emerging ultra dense network applications. In some embodiments, by designing a new cooperative recoding scheme, the assigned helper nodes in vicinity can "forward" the
"missed" information. In some embodiments, the reason for better performance of MF lies in a more desirable rank distribution. In addition, some important design issues such as helper selection and rank distribution estimation have been discussed. Experiment results show that in some embodiments the MF method achieves higher throughput than fountain codes and existing network coding schemes.
[00173] Having thus described several aspects of at least one embodiment of this invention, it is to be appreciated that various alterations, modifications, and improvements will readily occur to those skilled in the art.
[00174] Such alterations, modifications, and improvements are intended to be part of this disclosure, and are intended to be within the spirit and scope of the invention. Further, though advantages of the present invention are indicated, it should be appreciated that not every embodiment of the invention will include every described advantage. Some embodiments may not implement any features described as advantageous herein and in some instances. Accordingly, the foregoing description and drawings are by way of example only.
[00175] The above-described embodiments of the present invention can be implemented in any of numerous ways. For example, processing of encoding, decoding, recoding packets may be implemented using hardware, software or a combination thereof. When implemented in software, the software code can be executed on any suitable processor or collection of processors, whether provided in a single computer or distributed among multiple computers. Such processors may be implemented as integrated circuits, with one or more processors in an integrated circuit component, including commercially available integrated circuit components known in the art by names such as CPU chips, GPU chips, microprocessor, microcontroller, or co-processor. The embodiments may be implemented in connection with a network interface, such as with a wireless network interface. Nodes may be implemented in dedicated nodes such as a cellular base station or a cell controller, although other suitable types of nodes may be used, such as a sink node based on a portable computing device or mobile phone device.
[00176] Depending on the nature of the computing device, one or more additional elements may be present. For example, a smart phone or other portable electronic device may include a camera, capable of capturing still or video images. In some embodiments, a computing device may include sensors such as a global positioning system (GPS) to sense location and inertial sensors such as a compass, an inclinometer and/o ran accelerometer. The operating system may include utilities to control these devices to capture data from them and make it available to applications executing on the computing device.
[00177] As another example, in some embodiments, a computing device may include a network interface to implement a personal area network. Such an interface may operate in accordance with any suitable technology, including a Bluetooth, Zigbee or an 802.11 ad hoc mode, for example.
[00178] Alternatively, a processor may be implemented in custom circuitry, such as an ASIC, or semicustom circuitry resulting from configuring a programmable logic device. As yet a further alternative, a processor may be a portion of a larger circuit or semiconductor device, whether commercially available, semi-custom or custom. As a specific example, some commercially available microprocessors have multiple cores such that one or a subset of those cores may constitute a processor. Though, a processor may be implemented using circuitry in any suitable format.
[00179] Further, it should be appreciated that a computer may be embodied in any of a number of forms, such as a rack-mounted computer, a desktop computer, a laptop computer, or a tablet computer. Additionally, a computer may be embedded in a device not generally regarded as a computer but with suitable processing capabilities, including a Personal Digital Assistant (PDA), a smart phone or any other suitable portable or fixed electronic device.
[00180] Also, a computer may have one or more input and output devices. These devices can be used, among other things, to present a user interface. Examples of output devices that can be used to provide a user interface include printers or display screens for visual presentation of output and speakers or other sound generating devices for audible presentation of output. Examples of input devices that can be used for a user interface include keyboards, and pointing devices, such as mice, touch pads, and digitizing tablets. As another example, a computer may receive input information through speech recognition or in other audible format. In the embodiment illustrated, the input/output devices are illustrated as physically separate from the computing device. In some embodiments, however, the input and/or output devices may be physically integrated into the same unit as the processor or other elements of the computing device. For example, a keyboard might be implemented as a soft keyboard on a touch screen. Alternatively, the input/output devices may be entirely disconnected from the computing device, and functionally integrated through a wireless connection.
[00181] Such computers may be interconnected by one or more networks in any suitable form, including as a local area network or a wide area network, such as an enterprise network or the Internet. Such networks may be based on any suitable technology and may operate according to any suitable protocol and may include wireless networks, wired networks or fiber optic networks.
[00182] Also, the various methods or processes outlined herein may be coded as software that is executable on one or more processors that employ any one of a variety of operating systems or platforms. Additionally, such software may be written using any of a number of suitable programming languages and/or programming or scripting tools, and also may be compiled as executable machine language code or intermediate code that is executed on a framework or virtual machine.
[00183] In this respect, the invention may be embodied as a computer readable storage medium (or multiple computer readable media) (e.g., a computer memory, one or more floppy discs, compact discs (CD), optical discs, digital video disks (DVD), magnetic tapes, flash memories, circuit configurations in Field Programmable Gate Arrays or other semiconductor devices, or other tangible computer storage medium) encoded with one or more programs that, when executed on one or more computers or other processors, perform methods that implement the various embodiments of the invention discussed above. As is apparent from the foregoing examples, a computer readable storage medium may retain information for a sufficient time to provide computer-executable instructions in a non-transitory form. Such a computer readable storage medium or media can be transportable, such that the program or programs stored thereon can be loaded onto one or more different computers or other processors to implement various aspects of the present invention as discussed above. As used herein, the term "computer-readable storage medium" encompasses only a computer-readable medium that can be considered to be a manufacture (i.e., article of manufacture) or a machine. Alternatively or additionally, the invention may be embodied as a computer readable medium other than a computer-readable storage medium, such as a propagating signal. [00184] The terms "code", "program" or "software" are used herein in a generic sense to refer to any type of computer code or set of computer-executable instructions that can be employed to program a computer or other processor to implement various aspects of the present invention as discussed above. Additionally, it should be appreciated that according to one aspect of this embodiment, one or more computer programs that when executed perform methods of the present invention need not reside on a single computer or processor, but may be distributed in a modular fashion amongst a number of different computers or processors to implement various aspects of the present invention.
[00185] Computer-executable instructions may be in many forms, such as program modules, executed by one or more computers or other devices. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Typically the functionality of the program modules may be combined or distributed as desired in various embodiments.
[00186] Also, data structures may be stored in computer-readable media in any suitable form. For simplicity of illustration, data structures may be shown to have fields that are related through location in the data structure. Such relationships may likewise be achieved by assigning storage for the fields with locations in a computer-readable medium that conveys relationship between the fields. However, any suitable mechanism may be used to establish a relationship between information in fields of a data structure, including through the use of pointers, tags or other mechanisms that establish relationship between data elements.
[00187] Various aspects of the present invention may be used alone, in combination, or in a variety of arrangements not specifically discussed in the embodiments described in the foregoing and is therefore not limited in its application to the details and arrangement of components set forth in the foregoing description or illustrated in the drawings. For example, aspects described in one embodiment may be combined in any manner with aspects described in other embodiments.
[00188] Also, the invention may be embodied as a method, of which an example has been provided. The acts performed as part of the method may be ordered in any suitable way. Accordingly, embodiments may be constructed in which acts are performed in an order different than illustrated, which may include performing some acts simultaneously, even though shown as sequential acts in illustrative embodiments.
[00189] The indefinite articles "a" and "an," as used herein in the specification and in the claims, unless clearly indicated to the contrary, should be understood to mean "at least one."
[00190] The phrase "and/or," as used herein in the specification and in the claims, should be understood to mean "either or both" of the elements so conjoined, i.e., elements that are conjunctively present in some cases and disjunctively present in other cases. Multiple elements listed with "and/or" should be construed in the same fashion, i.e., "one or more" of the elements so conjoined. Other elements may optionally be present other than the elements specifically identified by the "and/or" clause, whether related or unrelated to those elements specifically identified. Thus, as a non-limiting example, a reference to "A and/or B", when used in conjunction with open-ended language such as "comprising" can refer, in one embodiment, to A only (optionally including elements other than B); in another embodiment, to B only (optionally including elements other than A); in yet another embodiment, to both A and B (optionally including other elements); etc.
[00191] As used herein in the specification and in the claims, the phrase "at least one," in reference to a list of one or more elements, should be understood to mean at least one element selected from any one or more of the elements in the list of elements, but not necessarily including at least one of each and every element specifically listed within the list of elements and not excluding any combinations of elements in the list of elements. This definition also allows that elements may optionally be present other than the elements specifically identified within the list of elements to which the phrase "at least one" refers, whether related or unrelated to those elements specifically identified. Thus, as a non-limiting example, "at least one of A and B" (or, equivalently, "at least one of A or B," or, equivalently "at least one of A and/or B") can refer, in one embodiment, to at least one, optionally including more than one, A, with no B present (and optionally including elements other than B); in another embodiment, to at least one, optionally including more than one, B, with no A present (and optionally including elements other than A); in yet another embodiment, to at least one, optionally including more than one, A, and at least one, optionally including more than one, B (and optionally including other elements); etc.
[00192] Use of ordinal terms such as "first," "second," "third," etc., in the claims to modify a claim element does not by itself connote any priority, precedence, or order of one claim element over another or the temporal order in which acts of a method are performed, but are used merely as labels to distinguish one claim element having a certain name from another element having a same name (but for use of the ordinal term) to distinguish the claim elements.
[00193] Also, the phraseology and terminology used herein is for the purpose of description and should not be regarded as limiting. The use of "including," "comprising," or "having," "containing," "involving," and variations thereof herein, is meant to encompass the items listed thereafter and equivalents thereof as well as additional items.
LIST OF REFERENCES
[00194] The following references are hereby incorporated by reference in their entireties:
[00195] [REF. 1] Rudolf Ahlswede, Ning Cai, Shuo-Yen Robert Li, and
Raymond W Yeung. Network information flow. Information Theory, IEEE Transactions on, 46(4): 1204-1216, 2000.
[00196] [REF. 2] Arash Asadi, Qing Wang, and Vincenzo Mancuso. A survey on device-to-device communication in cellular networks. Communications Surveys & Tutorials, IEEE, 16(4): 1801-1819, 2014.
[00197] [REF. 3] Naga Bhushan, Junyi Li, Durga Malladi, Rob Gilmore, Dean
Brenner, Aleksandar Damnjanovic, Ravi Sukhavasi, Chirag Patel, and Stefan Geirhofer. Network densification: the dominant theme for wireless evolution into 5g. Communications Magazine, IEEE, 52(2):82-89, 2014.
[00198] [REF. 4] Szymon Chachulski, Michael Jennings, Sachin Katti, and Dina
Katabi. Trading structure for randomness in wireless opportunistic routing, volume 37. ACM, 2007.
[00199] [REF. 5] Philip A Chou, Yunnan Wu, and Kamal Jain. Practical network coding. 2003. [00200] [REF. 6] Soheil Feizi, Daniel E Lucani, and Muriel Medard. Tunable sparse network coding. In Proc. of the Int. Zurich Seminar on Comm, pages 107-110, 2012.
[00201] [REF. 7] Soheil Feizi, Daniel E Lucani, Chres W Sorensen, Ali
Makhdoumi, and Muriel Medard. Tunable sparse network coding for multicast networks. In Network Coding (NetCod), 2014 International Symposium on, pages 1-6. IEEE, 2014.
[00202] [REF. 8] Anoosheh Heidarzadeh and Amir H Banihashemi. Overlapped chunked network coding. In Information Theory Workshop (ITW), 2010 IEEE, pages 1- 5. IEEE, 2010.
[00203] [REF. 9] Tracey Ho, Ralf Koetter, Muriel Medard, David R Karger, and
Michelle Effros. The benefits of coding over routing in a randomized setting. 2003.
[00204] [REF. 10] Qiuyuan Huang, Kairan Sun, Xin Li, and Dapeng Oliver Wu.
Just fun: A joint fountain coding and network coding approach to loss -tolerant information spreading. In Proceedings of the 15th ACM international symposium on Mobile ad hoc networking and computing, pages 83-92. ACM, 2014.
[00205] [REF. 11] Ralf Koetter and Muriel Medard. An algebraic approach to network coding. IEEE/ACM Transactions on Networking (TON), 11(5):782-795, 2003.
[00206] [REF. 12] Shuo-Yen Robert Li, Raymond W Yeung, and Ning Cai.
Linear network coding. Information Theory, IEEE Transactions on, 49(2):371-381, 2003.
[00207] [REF. 13] Desmond S Lun, Muriel MeDard, Ralf Koetter, and Michelle
Effros. On coding for reliable communication over packet networks. Physical Communication, l(l):3-20, 2008.
[00208] [REF. 14] David JC MacKay. Fountain codes. IEE Proceedings-
Communications, 152(6): 1062-1068, 2005.
[00209] [REF. 15] Joon-Sang Park, Mario Gerla, Desmond S Lun, Yunjung Yi, and Muriel Medard. Codecast: a network-coding-based ad hoc multicast protocol. Wireless Communications, IEEE, 13(5):76-81, 2006.
[00210] [REF. 16] Charith Perera, Arkady Zaslavsky, Peter Christen, and
Dimitrios Georgakopoulos. Context aware computing for the internet of things: A survey. Communications Surveys & Tutorials, IEEE, 16(l):414-454, 2014. [00211] [REF. 17] Amin Shokrollahi. Raptor codes. Information Theory, IEEE
Transactions on, 52(6):2551-2567, 2006.
[00212] [REF. 18] Bin Tang, Shenghao Yang, Yitong Yin, Baoliu Ye, and Sanglu
Lu. Expander graph based overlapped chunked codes. In Information Theory Proceedings (ISIT), 2012 IEEE International Symposium on, pages 2451-2455. IEEE, 2012.
[00213] [REF. 19] Mea Wang and Baochun Li. Lava: A reality check of network coding in peer-to-peer live streaming. In INFOCOM 2007. 26th IEEE International Conference on Computer Communications. IEEE, pages 1082-1090. IEEE, 2007.
[00214] [REF. 20] Shenghao Yang, Raymond W Yeung, Jay HF Cheung, and
Hoover HF Yin. Bats: Network coding in action. In Communication, Control, and Computing (Allerton), 2014 52nd Annual Allerton Conference on, pages 1204-1211. IEEE, 2014.
[00215] [REF. 21] Shenghao Yang and Raymond W Yeung. Batched sparse codes. Information Theory, IEEE Transactions on, 60(9):5322-5346, 2014.
[00216] [REF. 22] Qualcomm data challenge. https://www.qualcomm.com/documents/rising-meet-1000x-mobile-data-challenge.
Accessed: March 2015.

Claims

CLAIMS What is claimed is:
1. A method of operating a communication system comprising a source node, a sink node, a first relay node and a second relay node, the method comprising:
at the source node:
encoding a plurality of packets;
transmitting a first batch of encoded packets;
at the first relay node:
receiving a first portion of the first batch of encoded packets; re-coding the first portion of the transmitted packets to produce a second batch of encoded packets;
transmitting the second batch of encoded packets;
at the second relay node:
receiving a second portion of the first batch of encoded packets;
re-coding the second portion of the transmitted packets to produce a third batch of encoded packets;
transmitting the third batch of encoded packets; and
at the sink node:
receiving at least a portion of the second batch and at least a portion of the third batch; and
reconstructing the plurality of packets from the received portion of the second batch and the received portion of the third batch,
wherein each of the second batch and the third batch has a batch size smaller than the first batch.
2. The method of operating the communication system of claim 1, further comprising:
communicating between the first relay node and the second relay node a number of packets in the first portion.
3. The method of operating the communication system of claim 2, wherein: re-coding the second portion of the transmitted packets to produce the third batch of encoded packets comprises producing the third batch with a batch size based on a difference between a number of packets in the first batch and the number of packets in the first portion.
4. The method of operating the communication system of claim 2, wherein:
communicating between the first relay node and the second relay node the number of packets in the first portion comprises communicating over a side channel.
5. The method of operating the communication system of claim 2, wherein:
communicating between the first relay node and the second relay node the number of packets in the first portion comprises transmitting the number in a header associated with the second batch.
6. The method of operating the communication system of claim 1, wherein:
the acts of transmitting the first batch, the second batch and the third batch each comprises transmitting a respective header associated with the batch comprising a same batch identifier.
7. The method of operating the communication system of claim 1, wherein:
the communication operates with a TDMA protocol in which a plurality of packets are transmitted in frames comprising a plurality of time slots; and
the second batch and the third batch are transmitted in the same frame.
8. The method of operating the communication system of claim 1, wherein:
the communication system is a 5G wireless network.
9. A method of operating a second relay node in a communication system comprising a source node, a sink node, a first relay node and the second relay node in which the source node transmits a first batch of encoded packets encoding a plurality of native packets, and the first relay node transmits a second batch of encoded packets based on a received first portion of the first batch, the method comprising, at the relay node:
receiving a second portion of the first batch;
receiving an indication of the size of the first portion;
transmitting a third batch of encoded packets based on the received portion of the first batch, the third batch having a size selected based on the indication of the size of the first portion, the third batch conveying information comprising a random mix of information received in the second portion.
10. The method of operating a second relay node of claim 9, wherein:
transmitting the third batch of encoded packets comprises encoding the encoded packets using a network code.
11. The method of operating a second relay node of claim 10, wherein:
wherein the network code encodes K native packets to produce N encoded packets, where N is greater than K such that the encoded packets comprise redundant information.
12. The method of operating a second relay node of claim 9, wherein:
receiving an indication of the size of the first portion comprises receiving a header associated with the second batch comprising the indication.
13. The method of operating a second relay node of claim 9, further comprising: prior to receiving the second portion of the first batch, engaging in a handshake protocol with the first relay node such that the second relay node is designated as a helper of the first relay node.
14. The method of operating a second relay node of claim 9, wherein:
the second relay node comprises a cell of a 5G network.
15. A method of operating a sink node in a communication system comprising a source node, the sink node, a first relay node and a second relay node in which the source node transmits a first batch of encoded packets encoding a plurality of native packets, the method comprising, at the sink node:
receiving a first plurality of encoded packets from the first relay node;
receiving a second plurality of encoded packets from the second relay node;
decoding the first plurality of packets and second plurality of packets as a batch encoded with a network code to recover a third plurality of native packets.
16. The method of operating a sink node of claim 15, wherein:
the first plurality of encoded packets and the second plurality of encoded packets are encoded with a network code.
17. The method of operating a sink node of claim 16, wherein:
the network code is such that information representing the third plurality of native packets is distributed across the first plurality of encoded packets and the second plurality of native packets.
18. The method of operating a sink node of claim 15, wherein:
the second plurality of encoded packets has fewer packets then the first plurality of encoded packets.
19. The method of operating a sink node of claim 15, wherein:
the first plurality of encoded packets and the second plurality of encoded packets are received in the same frame of a network protocol used by the communication system.
20. The method of operating a sink node in a communication system of claim 15, wherein:
the sink node comprises a handset.
PCT/US2017/022772 2016-03-17 2017-03-16 Method for exploiting diversity with network coding WO2017161158A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201662309823P 2016-03-17 2016-03-17
US62/309,823 2016-03-17

Publications (1)

Publication Number Publication Date
WO2017161158A1 true WO2017161158A1 (en) 2017-09-21

Family

ID=59851862

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2017/022772 WO2017161158A1 (en) 2016-03-17 2017-03-16 Method for exploiting diversity with network coding

Country Status (1)

Country Link
WO (1) WO2017161158A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019158010A1 (en) * 2018-02-13 2019-08-22 华为技术有限公司 Resource management method, device and system
CN112436920A (en) * 2020-11-23 2021-03-02 南通大学 Network coding and decoding method suitable for multi-hop relay communication

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070177579A1 (en) * 2006-01-27 2007-08-02 Avaya Technology Llc Coding and packet distribution for alternative network paths in telecommunications networks
US20080025323A1 (en) * 2006-07-28 2008-01-31 Samsung Electronics Co., Ltd. Multi-layer multi-hop wireless system
US20080310348A1 (en) * 2005-12-02 2008-12-18 Koninklijke Philips Electronics, N.V. Wireless Systems and Methods Including Cooperative Communication Medium Access Control
WO2011113200A1 (en) * 2010-03-17 2011-09-22 Nokia Corporation Method and apparatus for broadcasting/multicasting retransmission based on network coding
US20120128009A1 (en) * 2010-11-23 2012-05-24 The Chinese University Of Hong Kong Subset coding for communication systems
WO2014074802A1 (en) * 2012-11-09 2014-05-15 Interdigital Patent Holdings, Inc. Controlling traffic in information centric networks
US8750316B2 (en) * 2004-06-18 2014-06-10 Verizon Laboratories Inc. Systems and methods for providing distributed packet loss concealment in packet switching communications networks
US20160021597A1 (en) * 2013-03-14 2016-01-21 Google Inc. Optimizing packet/frame forwarding or routing in a wireless backhaul transport system
WO2016022982A1 (en) * 2014-08-08 2016-02-11 University Of Florida Research Foundation, Inc. Joint fountain coding and network coding for loss-tolerant information spreading

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8750316B2 (en) * 2004-06-18 2014-06-10 Verizon Laboratories Inc. Systems and methods for providing distributed packet loss concealment in packet switching communications networks
US20080310348A1 (en) * 2005-12-02 2008-12-18 Koninklijke Philips Electronics, N.V. Wireless Systems and Methods Including Cooperative Communication Medium Access Control
US20070177579A1 (en) * 2006-01-27 2007-08-02 Avaya Technology Llc Coding and packet distribution for alternative network paths in telecommunications networks
US20080025323A1 (en) * 2006-07-28 2008-01-31 Samsung Electronics Co., Ltd. Multi-layer multi-hop wireless system
WO2011113200A1 (en) * 2010-03-17 2011-09-22 Nokia Corporation Method and apparatus for broadcasting/multicasting retransmission based on network coding
US20120128009A1 (en) * 2010-11-23 2012-05-24 The Chinese University Of Hong Kong Subset coding for communication systems
WO2014074802A1 (en) * 2012-11-09 2014-05-15 Interdigital Patent Holdings, Inc. Controlling traffic in information centric networks
US20160021597A1 (en) * 2013-03-14 2016-01-21 Google Inc. Optimizing packet/frame forwarding or routing in a wireless backhaul transport system
WO2016022982A1 (en) * 2014-08-08 2016-02-11 University Of Florida Research Foundation, Inc. Joint fountain coding and network coding for loss-tolerant information spreading

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019158010A1 (en) * 2018-02-13 2019-08-22 华为技术有限公司 Resource management method, device and system
CN110166580A (en) * 2018-02-13 2019-08-23 华为技术有限公司 Method, equipment and the system of resource management
CN110166580B (en) * 2018-02-13 2021-12-24 华为技术有限公司 Resource management method, equipment and system
CN112436920A (en) * 2020-11-23 2021-03-02 南通大学 Network coding and decoding method suitable for multi-hop relay communication
CN112436920B (en) * 2020-11-23 2021-10-26 南通大学 Network coding and decoding method suitable for multi-hop relay communication

Similar Documents

Publication Publication Date Title
US10530526B2 (en) Joint fountain coding and network coding for loss-tolerant information spreading
Lun et al. Network coding for efficient wireless unicast
US11678247B2 (en) Method and apparatus to enhance routing protocols in wireless mesh networks
US9860022B2 (en) Method, apparatus, and protocol for improving performance in a wireless network
US10880202B2 (en) Joint fountain coding and network coding for loss-tolerant information spreading
James et al. Performance analysis of fountain codes in multihop relay networks
US10623082B2 (en) Joint fountain code and network coding for multiple-source-multiple-destination wireless communication
WO2017161148A1 (en) Method for congestion relief with network coding
WO2017161158A1 (en) Method for exploiting diversity with network coding
Gómez et al. Enhanced opportunistic random linear source/network coding with cross-layer techniques over wireless mesh networks
KR101109658B1 (en) Multicast routing method using network coding scheme in wireless mobile multihop network system
Pahlevani et al. Network coding for hop-by-hop communication enhancement in multi-hop networks
Levorato et al. Integrated cooperative opportunistic packet forwarding and distributed error control in MIMO ad hoc networks
Vingelmann et al. All-to-all data dissemination with network coding in dynamic MANETs
Goel et al. On the optimal ARQ distribution for low-latency communication over line-of-sight dominated multi-hop networks
Firoiu et al. CONCERTO: Experiences with a real-world MANET system based on network coding
Zhu et al. Miss and forward: Exploiting diversity with intrasession network coding
Grohmann et al. SourceShift: resilient routing in highly dynamic wireless mesh networks
Wang et al. Deriving pareto-optimal performance bounds for 1 and 2-relay wireless networks
Pahlevani et al. On the packet loss correlation in wireless mesh networks: channel models and practical schemes
Stann et al. RBP: Reliable broadcast propagation in wireless networks
James et al. Spectrally efficient packet recovery in delay constrained rateless coded multihop networks
Hiramuki et al. Performance comparison of ARQ schemes for network coding in ad hoc networks
Garrido et al. When tcp and network coding meet wireless links
Modir Towards a new generation of IoT based on network coding for the Industry 4.0

Legal Events

Date Code Title Description
NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17767553

Country of ref document: EP

Kind code of ref document: A1