WO2010085212A1 - Method and system for linear network coding in broadcast systems - Google Patents

Method and system for linear network coding in broadcast systems Download PDF

Info

Publication number
WO2010085212A1
WO2010085212A1 PCT/SG2010/000015 SG2010000015W WO2010085212A1 WO 2010085212 A1 WO2010085212 A1 WO 2010085212A1 SG 2010000015 W SG2010000015 W SG 2010000015W WO 2010085212 A1 WO2010085212 A1 WO 2010085212A1
Authority
WO
WIPO (PCT)
Prior art keywords
packets
buffer
receivers
batch
coding
Prior art date
Application number
PCT/SG2010/000015
Other languages
French (fr)
Inventor
Wai-Leong Yeow
Anh Tuan Hoang
Chen-Khong Tham
Original Assignee
Agency For Science, Technology And Research
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 Agency For Science, Technology And Research filed Critical Agency For Science, Technology And Research
Publication of WO2010085212A1 publication Critical patent/WO2010085212A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/1874Buffer management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1829Arrangements specially adapted for the receiver end
    • H04L1/1854Scheduling and prioritising arrangements

Definitions

  • the present invention relates broadly to a method and system for linear network coding in broadcast systems.
  • the transmitting (broadcasting) node forms linear combinations of one or more packets and broadcast the combinations to the receiving nodes. This is to differentiate from the conventional scheduling operation, when each individual data packet is broadcasted until being successfully received by all the receivers.
  • a method of linear network coding in a lossy network with link-by-link feedback comprising the steps of buffering incoming packets in a first buffer; moving a batch of packets from the first buffer into a second buffer having a maximum operating size, K max ; applying linear coding on the batch of packets in the second buffer; transmitting the coded packets to receivers of the network; flushing the second buffer once all receivers have decoded the batch of packets; and refilling the second buffer with a new batch of packets from the first buffer.
  • the method may further comprise dynamically adjusting K max based on respective occupancies of the first and second buffers.
  • K max may be adjusted based on respective averages of the occupancies of the first and second buffer.
  • the respective averages may comprise one of a group consisting of a mean over a period of time, a running average, a moving average over a sliding time window; and a weighted moving average.
  • Applying the linear coding may comprise applying a selection algorithm based on combinations of the packets in the second buffer.
  • the selection algorithm may comprise sorting the combinations according to priority.
  • the priority may be based on a current delay of the packets in each combination and a number of packets that can be decoded if each combination is received.
  • the method may further comprise, when all but one of the receivers have decoded all packets in the batch, transmitting remaining packets without coding in a highest priority first order to said one of the receivers.
  • the method may further comprise controlling in which time slots feedback from the receivers is to be provided to the.transmitter.
  • Said controlling may comprise determining, after feedback from the receivers has been received in one time slot, the number of packets, K u , that have not been decoded by all receivers, and instructing the receivers to only sent feedback after the next K u time slots.
  • a system for linear network coding in a lossy network with link-by-link feedback comprising a first buffer for buffering incoming packets; means for moving a batch of packets from the first buffer into a second buffer having a maximum operating size, K max ; means for applying linear coding on the batch of packets in the second buffer; means for transmitting the coded packets to receivers of the network; means for flushing the second buffer once all receivers have decoded the batch of packets; and means for refilling the second buffer with a new batch of packets from the first buffer.
  • the system may further comprise means for dynamically adjusting K max based on respective occupancies of the first and second buffers.
  • K max may be adjusted based on respective averages of the occupancies of the first and second buffer.
  • the respective averages may comprise one of a group consisting of a mean over a period of time, a running average, a moving average over a sliding time window; and a weighted moving average.
  • the means for applying the linear coding may apply a selection algorithm based on combinations of the packets in the second buffer.
  • the selection algorithm may comprise sorting the combinations according to priority.
  • the priority may be based on a current delay of the packets in each combination and a number of packets that can be decoded if each combination is received.
  • the means for transmitting may transmit remaining packets without coding in a highest priority first order to said one of the receivers.
  • the system may further comprise means for controlling in which time slots feedback from the receivers is to be provided to the transmitter.
  • Said means for controlling may determine, after feedback from the receivers has been received in one time slot, the number of packets, K u , that have not been decoded by all receivers, may instruct the receivers to only sent feedback after the next K 0 time slots.
  • a data storage medium having computer code means for instructing a computing device to execute a method of linear network coding in a lossy network with link-by-link feedback, the method comprising the steps of buffering incoming packets in a first buffer; moving a batch of packets from the first buffer into a second buffer having a maximum operating size, K max ⁇ applying linear coding on the batch of packets in the second buffer; transmitting the coded packets to receivers of the network; flushing the second buffer once all receivers have decoded the batch of packets; and refilling the second buffer with a new batch of packets from the first buffer.
  • Figure 1 shows a schematic drawing illustrating a buffering architecture at a broadcast station/transmitter of a broadcast network according to an example embodiment.
  • Figure 2 shows a flowchart illustrating the buffering operation of the transmitter according to an example embodiment.
  • Figure 3 shows a flowchart illustrating updating the size of the coding buffer by the transmitter, according to an example embodiment.
  • Figure 4 shows a flowchart illustrating calculating the feedback interval by the transmitter or a receiver, according to an example embodiment.
  • Figure 5 shows a flowchart illustrating the decoding operation by the receiver according to an example embodiment.
  • Figure 6 shows a graph of comparative data for delay performance against network load.
  • Figure 7 shows another graph of comparative data for delay performance against arrival rate.
  • Figure 8 shows another graph of comparative data for delay performance against network load.
  • Figure 9 shows a graph of percentage gain in average delay per packet for 2 nodes, with a channel 1 node fixed at 0.2 and the other varied.
  • Figure 10 shows a graph of percentage gain in average delay per packet for 2 nodes, with the channel of one node fixed at 0.4 and the other varied.
  • Figure 11 shows a graph illustrating a comparison between a static maximum number of packets in the coding buffer and a dynamic maximum number of packets in the coding buffer.
  • Figure 12 shows another graph illustrating a comparison between a static maximum number of packets in the coding buffer and an optimal number of packets in the coding buffer.
  • Figure 13 shows a flow chart illustrating a method of linear network coding according to an example embodiment.
  • Figure 14 shows a schematic diagram illustrating a computer system fir implementing a method and system according to an example embodiment.
  • Embodiments of the present invention introduce a queueing mechanism that helps reduce delay when network coding is used in broadcast scenarios.
  • the mechanism includes of: i) a method of organizing packets at the transmitter into queueing and coding buffers in tandem to restrict the number of packets being processed each time ii) an efficient algorithm that determines which packets should be coded/scheduled for each transmission/broadcast and iii) an iterative procedure to determine the optimal parameter for (i).
  • the mechanisms in example embodiments are generally referred to as Dynamic Queueing Dynamic Coding (DQDC) in this description.
  • DQDC Dynamic Queueing Dynamic Coding
  • Dynamic Queueing Dynamic Coding can achieve the inherent throughput gain of network coding while ensuring the delay performance of all users is also improved.
  • the description focuses on broadcast scenarios, i.e., when one transmitter is required to transmit the same data to one or more receivers.
  • the present specification also discloses apparatus for performing the operations of the methods.
  • Such apparatus may be specially constructed for the required purposes, or may comprise a general purpose computer or other device selectively activated or reconfigured by a computer program stored in the computer.
  • the algorithms and displays presented herein are not inherently related to any particular computer or other apparatus.
  • Various general purpose machines may be used with programs in accordance with the teachings herein.
  • the construction of more specialized apparatus to perform the required method steps may be appropriate.
  • the structure of a conventional general purpose computer will appear from the description below.
  • the present specification also implicitly discloses a computer program, in that it would be apparent to the person skilled in the art that the individual steps of the method described herein may be put into effect by computer code.
  • the computer program is not intended to be limited to any particular programming language and implementation thereof. It will be appreciated that a variety of programming languages and coding thereof may be used to implement the teachings of the disclosure contained herein.
  • the computer program is not intended to be limited to any particular control flow. There are many other variants of the computer program, which can use different control flows without departing from the spirit or scope of the invention.
  • Such a computer program may be stored on any computer readable medium.
  • the computer readable medium may include storage devices such as magnetic or optical disks, memory chips, or other storage devices suitable for interfacing with a general purpose computer.
  • the computer readable medium may also include a hard-wired medium such as exemplified in the Internet system, or wireless medium such as exemplified in the GSM mobile telephone system.
  • the computer program when loaded and executed on such a general-purpose computer effectively results in an apparatus that implements the steps of the preferred method.
  • the invention may also be implemented as hardware modules. More particular, in the hardware sense, a module is a functional hardware unit designed for use with other components or modules. For example, a module may be implemented using discrete electronic components, or it can form a portion of an ' entire electronic circuit such as an Application Specific Integrated Circuit (ASIC). Numerous other possibilities exist. Those skilled in the art will appreciate that the system can also be implemented as a combination of hardware and software modules.
  • ASIC Application Specific Integrated Circuit
  • Fig. 1 shows a schematic diagram illustrating a lossy network 100 with link-by- link feedback, such as a network with packet erasure broadcast channel, embodying a system for linear network coding according to an example embodiment.
  • a queueing buffer 104 At the broadcast station 102 (transmitter), two buffers are implemented, namely a queueing buffer 104, and a coding buffer 106. Transmission from the broadcast station 102 occurs simultaneously to a plurality of receivers e.g. 108, 110, 112, experiencing respective packet erasure channel conditions.
  • Incoming packets 114 are buffered in the queueing buffer 104, from which packets are moved to the coding buffer 106, the coding buffer 106 having a maximum operating size K max .
  • the broadcast station 102 applies linear coding on the packets in the coding buffer only. Once the batch of packets has been decoded by all receivers 108, 110, 112, the coding buffer is flushed, and refilled from the queueing buffer.
  • Fig. 2 shows the operation of the transmitter 102 (Fig. 1) in the example embodiment.
  • the functions carried out by the transmitter are the process include to optimize the coding buffer size (step 200), the ranking of different coding combinations (step 206), and determination of feedback intervals (step 210).
  • the ranking operation may also be skipped if there is no feedback information from the receivers. In that case, old ranking of combinations can be reused.
  • the transmitter after optimizing the coding buffer size at step 200, fills the coding buffer with packets from the queueing buffer to the determined coding buffer size, at step 202. Subsequently, at step 204 the new batch of packets in the coding buffer is processed for coding at step 204, including generating all possible combinations. Next, the ranking of the different coding combinations is performed at step 206, followed by transmission of a linear coding of the highest-ranked combination at step 208. In this example embodiment, the linear coded combination is formed by multiplying random non-zero coefficients to packets of that combination and adding them under Galois Field operations. A header indicating what coefficients are used for each packet is sent along with that transmission. Next, the feedback interval is determined at step 210. At step 212, a determination is made whether feedback is needed / expected to be received for this particular timeslot. If not, the transmitter estimates the system state at step 214. There are a different ways to estimate the system state, including, but not limited to:
  • Ranking at step 206 is then based on this estimated state.
  • step 218 it is determined whether all receivers have correctly decoded all packets. If not, the process returns to step 206. On the other hand, if yes, the coding buffer is flushed at step 220, and the process reverts to step 200.
  • Fig. 3 illustrates the algorithms involved in the transmitter updating the optimized size of the coding buffer, in the example embodiment. More particular, at step 300, the maximum coding buffer size K max is set to an initial value K m ⁇ t ⁇ al . Next, at step 302, the number of packets in both the queueing buffer and the coding buffer respectively are measured in T time slots. Different averages may be used, as will be described in more detail below.
  • K max is updated using an algorithm depending on the averages measured in step 302, again as will be described in more detail below.
  • a determination is made whether there is convergence. If there is no convergence the process returns to step 302, whereas if there is convergence, the process stops and the updated value for K max is being used.
  • the operating size of the coding buffer K max determines how efficient channel utilization is, and also how large the delay overhead is due to network coding.
  • K max gets smaller, the delay overhead due to network coding lowers and transmission delay decreases. But, the channel may not be efficiently utilized and packets suffer more delay from the increased queueing delay.
  • K max gets larger, the queueing delay decreases as a result of efficient channel utilization. But, the delay overhead due to network coding rises and packets suffer more delay from the increased transmission delay. Both queueing and transmission delays are non-linear with respect to K max , and there exists an optimal operating point for K max where the total delay is minimized.
  • the optimal K max depends on channel conditions, packet arrival statistics and the coding/broadcasting mechanism used. Taking all these factors into account, the optimal
  • K max in the example embodiment occurs when the average occupancy of the queueing buffer B is equal to that of the coding buffer B c .
  • Running average continually compute the average buffer occupancy.
  • Moving average compute the average buffer occupancy over a sliding window.
  • Weighted moving average - buffer occupancy is viewed as a time-series.
  • the mean is computed over a weighted average of the series over a sliding window where the weights are heavier on recent points.
  • Exponential average - buffer occupancy is viewed as a time-series.
  • the mean is computed over a weighted average of the series where the weights decay exponentially over time.
  • Exponential moving average - a combination of the (3) and (5). There is a sliding window where the average is computed with exponentially decaying weights.
  • the above estimation and update procedures can either be done periodically at fixed time intervals or on every repeatable event, e.g. clearing of the coding buffer.
  • Fig. 4 shows that either full feedback or limited feedback modes can be applied.
  • full feedback mode all receivers send back their receiving status after every slot.
  • limited feedback mode receivers only report to BS at some predetermined time. This time, called feedback interval, depends on the overall system state. As an example, BS can set the next feedback interval to be equal to the maximum number of packets still not being decoded by the receivers.
  • step 400 the system determines whether it has been set to operate in full feedback mode (or limited feedback mode). If yes, the feedback interval /b/ ⁇ te/ va/ is set to 1 , and returned for use in the operation of the transmitter as illustrated for example above with reference to Fig. 2. If not, i.e. the system is set to limited feedback mode, fb mterva ⁇ is calculated in step 404, as a function of the system state. Details of the calculation in an example embodiment will be described below. The calculated value for fb, nterva ⁇ is then returned.
  • full feedback mode or limited feedback mode
  • the ranking of packet combinations specified uses knowledge of the state of R receivers. This feedback information can be sent at the end of every time slot (i.e. full feedback mode). However, the amount of feedback and computation can be reduced if after receiving the feedback from all R users in a particular slot, the Base Station (BS) calculates K 11 - the number of undecoded packets in the coding buffer, and instructs the receivers to only send the next feedback after the next K 11 time slots. When doing this, BS can rank coded combinations by either assuming the most recent feedback state information or estimating the state information.
  • Fig. 5 depicts the operation of the receiver in the example embodiment. Similar to the operation of the transmitter, this is based on batches.
  • step 500 it is determined whether there is start of a new batch. If yes, the receiving database is initiated in step 502, and a combination received from the transmitter at step 504. At step 506, it is determined whether the receipt was successful. If yes, the receiver performs decoding of packets at step 508, followed by updating the receiving database at step 510.
  • step 512 the receiver either determines the relevant feedback interval, using the same process as described above with reference to Fig. 3, or the feedback interval is received from BS.
  • step 514 it is determined whether feedback is to be sent in this time slot, and if yes, the feedback is sent in step 516. If not, the process proceeds to step 518.
  • step 518 it is determined whether all packets in the batch have been decoded.
  • the number of packets in each batch can be determined from the header of each transmission.
  • the process returns to step 500. If not, the process returns to step 504.
  • the transmitter repeatedly broadcasts network- coded packets to the receiving nodes until all receiving nodes have received and decoded all packets. In every round of broadcast, the transmitter selects some packets from the coding buffer according to a selection algorithm and combines them using network coding into a single coded packet. The resultant coded packet is then broadcasted to ail receiving nodes. Nodes that correctly receive the coded packet attempt to decode immediately. The transmitter then begins a new round of broadcast.
  • the packet selection algorithm in the example embodiment selects packets based on combinations. There are a total of 2 K -1 packet combinations for a batch of K packets, e.g. ⁇ p ⁇ , p 3 ⁇ and (P 1 , p 2 ⁇ are two different combinations of packets P 1 , p 2 and p 3 . Each combination has a priority value that is tied to delay performance.
  • One special case of the algorithm is when all but one receiving node has received and decoded all packets in the coding buffer. Packets will then be sent directly in unicast mode to the last receiving node in a highest priority-first manner without any network coding being performed. This is regardless of how the priority is computed and whether step 3) is performed.
  • Priority is computed based on the current delay of the packets in each combination ⁇ and how many packets can ⁇ decode if correctly received
  • receiving a combination can result in more than 1 packet being decoded.
  • a node has already received coded packets as combinations p t ⁇ p 3 and p 2 ⁇ p 3 . Based on current information, there is no way to decode any of those three packets.
  • the receiving node upon receiving any one of the three packets ⁇ p, ⁇ , ⁇ p 2 ⁇ or ⁇ p 3 ⁇ from the transmitter, the receiving node can simultaneously decode p,, p 2 and p 3 . This is also true if e.g. the transmitter sends combination p ! ⁇ 2 p 2 .
  • Combination ⁇ is a binary vector of length K in which packet / is included in that combination if its /-th element equals 1. Denote by D ⁇ ) the set of packets which ⁇ can decode for a node r. Then the priority of ⁇ is
  • d p is the current delay of packet p and c r is the channel quality of receiver r.
  • the set D ⁇ ⁇ ) can be computed based on the state of receiver r. Upon reception of a new combination, every receiver attempts to decode it using the Gauss-Jordan elimination method [5]. This facilitates immediate decoding whenever possible.
  • E r be the reduced echelon matrix produced from the Gauss-Jordan elimination after each decoding attempt.
  • the matrix E r describes the state of receiver r. If r has not received any coded or uncoded packet p, then row p of the matrix E r consists of all zeros, vice versa. If r has received packet p, then element (p, p) of the matrix E r is 1 and the other elements of the row p are zeros, vice versa.
  • the positions of the rest of the rows indicate packets that the receiver has received but has yet to decode.
  • the way to test the condition of the first summation in Eqn. 1 in the example embodiment is as follows.
  • the matrix E r may be large with a large K max .
  • a receiver can send a binary matrix of the same dimension of the matrix E r instead as feedback, in an example emboidment. It is a binary summary of the matrix E r where a '1' denotes a non-zero element in of E r the same position, vice versa.
  • the example embodiment can provide a significant performance improvement against a single buffer system which uses the existing ARQ scheme [4] that is designed for achieving low-delays.
  • c is a measure of channel quality and is between 0 and 1, where a larger value indicates better channel quality).
  • the system- wide performance is much higher.
  • One special case in one embodiment of the algorithm is when all but one receiving node has received and decoded all packets in the coding buffer. Packets will then be sent directly to the last receiving node in a highest priority-first manner without any network coding being performed.
  • the delay gain in this special case is shown in Figs. 9 and 10, which uses the worst-case selection method as reference: select all packets at every round up till the last node, leading to the maximum delay. As can be seen from Figs. 9 and 10, the gain is always positive for all channel conditions and is most significant when the difference in the channel conditions between the receiving nodes is the largest.
  • Figs. 11 and 12 two different embodiments are being compared: the case with a static K max and the case with an optimal K max obtained using the iterative procedure described above.
  • K max is either too large or too small, the average packet delay is not at optimum.
  • the iterative procedure described above in one embodiment is able to continually determine the best K max for different traffic and channel conditions.
  • the method and system of the example embodiment can be implemented on a computer system 800, schematically shown in Figure 8. It may be implemented as software, such as a computer program being executed within the computer system 800, and instructing the computer system 800 to conduct the method of the example embodiment.
  • the computer system 800 comprises a computer module 802, input modules such as a keyboard 804 and mouse 806 and a plurality of output devices such as a display 808, and printer 810.
  • the " computer module 802 is connected to a computer network 812 via a suitable transceiver device 814, to enable access to e.g. the Internet or other network systems such as Local Area Network (LAN) or Wide Area Network (WAN).
  • LAN Local Area Network
  • WAN Wide Area Network
  • the computer module 802 in the example includes a processor 818, a Random Access Memory (RAM) 820 and a Read Only Memory (ROM) 822.
  • the computer module 802 also includes a number of Input/Output (I/O) interfaces, for example I/O interface 824 to the display 808, and I/O interface 826 to the keyboard 804.
  • I/O Input/Output
  • the components of the computer module 802 typically communicate via an interconnected bus 828 and in a manner known to the person skilled in the relevant art.
  • the application program is typically supplied to the user of the computer system 800 encoded on a data storage medium such as a CD-ROM or flash memory carrier and read utilising a corresponding data storage medium drive of a data storage device 830.
  • the application program is read and controlled in its execution by the processor 818.
  • Intermediate storage of program data maybe accomplished using RAM 820.
  • Embodiments of the present invention introduce an effective DQDC mechanism that can achieve the inherent throughput gain of network coding while ensuring the delay performance of all users is also improved.
  • the proposed DQDC mechanism in example embodiments consists of: i) a method of organizing packets at the transmitter into queueing buffer and coding buffer in tandem to restrict the number of packets being processed each time ii) an efficient algorithm that determines what packets should be coded for each transmission/broadcast and iii) an iterative procedure to determine the optimal parameter for (i).
  • Embodiments of the present invention can have of the following features:
  • a dual-buffering system at the transmitter (broadcast station) side consisting of a queueing buffer followed by a coding buffer.
  • the coding buffer has a maximum operating size of K max . This is a parameter which can be tuned dynamically for optimum performance.
  • Network coding can only be carried out over packets in the coding buffer. A packet is excluded from coding if it has been successfully decoded by all receiving nodes (receivers).
  • Newly arriving packets will be first stored in the queueing buffer and not allowed to enter the coding buffer.
  • the transmitter simply uses all the packets available in the queueing buffer.
  • FIG. 13 shows a flow chart illustrating a method of linear network coding according to an example embodiment.
  • incoming packets are buffered, in a first buffer.
  • a batch of packets is moved from the first buffer into a second buffer having a maximum operating size, K max .
  • linear coding is applied on the batch of packets in the second buffer.
  • the coded packets are transmitted to receivers of the network.
  • the second buffer is flushed once all receivers have decoded the batch of packets.
  • the second buffer is refilled with a new batch of packets from the first buffer.
  • Embodiments of the present invention can be applied for reliable downlink transfers.
  • Some examples of potential applications are:
  • DVD Digital Video Broadcast
  • Wireless LAN Multicasts / Broadcasts e.g.
  • Wireless audio systems - common components in the audio channels can be broadcasted to wireless speakers.
  • Wireless Sensor networks Reprogramming nodes on-the-fly.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

A method and system for linear network coding in a lossy network with link-by-link feedback. The method comprises the steps of buffering incoming packets in a first buffer; moving a batch of packets from the first buffer into a second buffer having a maximum operating size, K?max#191; applying linear coding on the batch of packets in the second buffer; transmitting the coded packets to receivers of the network; flushing the second buffer once all receivers have decoded the batch of packets; and refilling the second buffer with a new batch of packets from the first buffer.

Description

Method and System for Linear Network Coding in Broadcast
Systems
FIELD OF INVENTION
The present invention relates broadly to a method and system for linear network coding in broadcast systems.
BACKGROUND
In a broadcast system based on a lossy network with link-by-link feedback, when one node is required to transmit the same data to multiple other nodes, it has been shown that the use of network coding can increase system capacity [1 ,2]. In network coding, or simply coding hereinafter, the transmitting (broadcasting) node forms linear combinations of one or more packets and broadcast the combinations to the receiving nodes. This is to differentiate from the conventional scheduling operation, when each individual data packet is broadcasted until being successfully received by all the receivers.
While the throughput/capacity gain of network coding in broadcast scenarios is well agreed upon, its effect in terms of queueing and transmission delay varies greatly depending on specific scenarios. For example, in [3], it has been shown that network coding reduces packet transmission delay when the system is symmetric, i.e., all receiving users see the same statistical erasure channel. However, in asymmetric systems, where some users experience a much worse erasure channel than others, it can be shown that network coding can seriously increase delay experienced by users with worse channels.
Existing approaches in employing network coding for broadcast transmission can be classified into two categories, i.e. those assuming that data packets arrive in batches of fixed size, and those assuming that data packets arrive in a stochastic manner.
For the first category, as packets arrive in batches of fixed sizes, it is natural to carry out network coding on all arriving packets. As an example, in [3], it is assumed that each time, a file consisting of K packets arrive to the transmitter buffer. The transmitter then carries out network coding over the K packets.
For the second category, as packets arrive in a stochastic manner, the number of packets available for transmission (and coding) varies over time. The control decisions then are how many packet should be coded and in what manner. In [4], a scheme is proposed to ensure that, in each successful reception, every receiving node gets some new information. This guarantees that the capacity of broadcast communication with network coding is achieved.
There are two shortcomings of the approach in [3]. First, it cannot be efficiently applied to scenarios in which individual packets arrive in stochastic manner. This is because in that case, the transmitter may not have enough packets to code at a fixed size. Second, for asymmetric systems in which some users have much worse channels than the rest, the delay of these users will be large.
The shortcoming of the approach in [4] is that, for asymmetric systems in which some receiving users have much worse channels than the rest, the delay of these users can grow unbounded. This is because, when receiving users with good channel conditions finish their reception, new packets will be added to the coding process and this increases the decoding time of the worse-off users.
A need therefore exists to provide a method and system for linear network coding that seeks to address at least one of the above problems.
SUMMARY
In accordance with a first aspect of the present invention there is provided a method of linear network coding in a lossy network with link-by-link feedback, the method comprising the steps of buffering incoming packets in a first buffer; moving a batch of packets from the first buffer into a second buffer having a maximum operating size, Kmax; applying linear coding on the batch of packets in the second buffer; transmitting the coded packets to receivers of the network; flushing the second buffer once all receivers have decoded the batch of packets; and refilling the second buffer with a new batch of packets from the first buffer.
The method may further comprise dynamically adjusting Kmax based on respective occupancies of the first and second buffers.
Kmax may be adjusted based on respective averages of the occupancies of the first and second buffer.
The respective averages may comprise one of a group consisting of a mean over a period of time, a running average, a moving average over a sliding time window; and a weighted moving average.
Applying the linear coding may comprise applying a selection algorithm based on combinations of the packets in the second buffer.
The selection algorithm may comprise sorting the combinations according to priority.
The priority may be based on a current delay of the packets in each combination and a number of packets that can be decoded if each combination is received.
The method may further comprise, when all but one of the receivers have decoded all packets in the batch, transmitting remaining packets without coding in a highest priority first order to said one of the receivers.
The method may further comprise controlling in which time slots feedback from the receivers is to be provided to the.transmitter.
Said controlling may comprise determining, after feedback from the receivers has been received in one time slot, the number of packets, Ku, that have not been decoded by all receivers, and instructing the receivers to only sent feedback after the next Ku time slots.
In accordance with a second aspect of the present invention there is provided a system for linear network coding in a lossy network with link-by-link feedback, the system comprising a first buffer for buffering incoming packets; means for moving a batch of packets from the first buffer into a second buffer having a maximum operating size, Kmax; means for applying linear coding on the batch of packets in the second buffer; means for transmitting the coded packets to receivers of the network; means for flushing the second buffer once all receivers have decoded the batch of packets; and means for refilling the second buffer with a new batch of packets from the first buffer.
The system may further comprise means for dynamically adjusting Kmax based on respective occupancies of the first and second buffers.
Kmax may be adjusted based on respective averages of the occupancies of the first and second buffer.
The respective averages may comprise one of a group consisting of a mean over a period of time, a running average, a moving average over a sliding time window; and a weighted moving average.
The means for applying the linear coding may apply a selection algorithm based on combinations of the packets in the second buffer.
The selection algorithm may comprise sorting the combinations according to priority.
The priority may be based on a current delay of the packets in each combination and a number of packets that can be decoded if each combination is received.
When all but one of the receivers have decoded all packets in the batch, the means for transmitting may transmit remaining packets without coding in a highest priority first order to said one of the receivers. The system may further comprise means for controlling in which time slots feedback from the receivers is to be provided to the transmitter.
Said means for controlling may determine, after feedback from the receivers has been received in one time slot, the number of packets, Ku, that have not been decoded by all receivers, may instruct the receivers to only sent feedback after the next K0 time slots.
In accordance with a third aspect of the present invention there is provided a data storage medium having computer code means for instructing a computing device to execute a method of linear network coding in a lossy network with link-by-link feedback, the method comprising the steps of buffering incoming packets in a first buffer; moving a batch of packets from the first buffer into a second buffer having a maximum operating size, Kmax\ applying linear coding on the batch of packets in the second buffer; transmitting the coded packets to receivers of the network; flushing the second buffer once all receivers have decoded the batch of packets; and refilling the second buffer with a new batch of packets from the first buffer.
BRIEF DESCRIPTION OF THE DRAWINGS
Embodiments of the invention will be better understood and readily apparent to one of ordinary skill in the art from the following written description, by way of example only, and in conjunction with the drawings, in which:
Figure 1 shows a schematic drawing illustrating a buffering architecture at a broadcast station/transmitter of a broadcast network according to an example embodiment. Figure 2 shows a flowchart illustrating the buffering operation of the transmitter according to an example embodiment.
Figure 3 shows a flowchart illustrating updating the size of the coding buffer by the transmitter, according to an example embodiment. Figure 4 shows a flowchart illustrating calculating the feedback interval by the transmitter or a receiver, according to an example embodiment.
Figure 5 shows a flowchart illustrating the decoding operation by the receiver according to an example embodiment. Figure 6 shows a graph of comparative data for delay performance against network load.
Figure 7 shows another graph of comparative data for delay performance against arrival rate.
Figure 8 shows another graph of comparative data for delay performance against network load.
Figure 9 shows a graph of percentage gain in average delay per packet for 2 nodes, with a channel 1 node fixed at 0.2 and the other varied.
Figure 10 shows a graph of percentage gain in average delay per packet for 2 nodes, with the channel of one node fixed at 0.4 and the other varied. Figure 11 shows a graph illustrating a comparison between a static maximum number of packets in the coding buffer and a dynamic maximum number of packets in the coding buffer.
Figure 12 shows another graph illustrating a comparison between a static maximum number of packets in the coding buffer and an optimal number of packets in the coding buffer.
Figure 13 shows a flow chart illustrating a method of linear network coding according to an example embodiment.
Figure 14 shows a schematic diagram illustrating a computer system fir implementing a method and system according to an example embodiment.
DETAILED DESCRIPTION
Embodiments of the present invention introduce a queueing mechanism that helps reduce delay when network coding is used in broadcast scenarios. In one embodiment the mechanism includes of: i) a method of organizing packets at the transmitter into queueing and coding buffers in tandem to restrict the number of packets being processed each time ii) an efficient algorithm that determines which packets should be coded/scheduled for each transmission/broadcast and iii) an iterative procedure to determine the optimal parameter for (i). The mechanisms in example embodiments are generally referred to as Dynamic Queueing Dynamic Coding (DQDC) in this description.
Dynamic Queueing Dynamic Coding (DQDC), can achieve the inherent throughput gain of network coding while ensuring the delay performance of all users is also improved. The description focuses on broadcast scenarios, i.e., when one transmitter is required to transmit the same data to one or more receivers.
Some portions of the description which follows are explicitly or implicitly presented in terms of algorithms and functional or symbolic representations of operations on data within a computer memory. These algorithmic descriptions and functional or symbolic representations are the means used by those skilled in the data processing arts to convey most effectively the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities, such as electrical, magnetic or optical signals capable of being stored, transferred, combined, compared, and otherwise manipulated.
Unless specifically stated otherwise, and as apparent from the following, it will be appreciated that throughout the present specification, discussions utilizing terms such as "queueing", "buffering", "calculating", "determining", "replacing", "generating", "initializing", "outputting", or the like, refer to the action and processes of a computer system, or similar electronic device, that manipulates and transforms data represented as physical quantities within the computer system into other data similarly represented as physical quantities within the computer system or other information storage, transmission or display devices.
The present specification also discloses apparatus for performing the operations of the methods. Such apparatus may be specially constructed for the required purposes, or may comprise a general purpose computer or other device selectively activated or reconfigured by a computer program stored in the computer. The algorithms and displays presented herein are not inherently related to any particular computer or other apparatus. Various general purpose machines may be used with programs in accordance with the teachings herein. Alternatively, the construction of more specialized apparatus to perform the required method steps may be appropriate. The structure of a conventional general purpose computer will appear from the description below.
In addition, the present specification also implicitly discloses a computer program, in that it would be apparent to the person skilled in the art that the individual steps of the method described herein may be put into effect by computer code. The computer program is not intended to be limited to any particular programming language and implementation thereof. It will be appreciated that a variety of programming languages and coding thereof may be used to implement the teachings of the disclosure contained herein. Moreover, the computer program is not intended to be limited to any particular control flow. There are many other variants of the computer program, which can use different control flows without departing from the spirit or scope of the invention.
Furthermore, one or more of the steps of the computer program may be performed in parallel rather than sequentially. Such a computer program may be stored on any computer readable medium. The computer readable medium may include storage devices such as magnetic or optical disks, memory chips, or other storage devices suitable for interfacing with a general purpose computer. The computer readable medium may also include a hard-wired medium such as exemplified in the Internet system, or wireless medium such as exemplified in the GSM mobile telephone system. The computer program when loaded and executed on such a general-purpose computer effectively results in an apparatus that implements the steps of the preferred method.
The invention may also be implemented as hardware modules. More particular, in the hardware sense, a module is a functional hardware unit designed for use with other components or modules. For example, a module may be implemented using discrete electronic components, or it can form a portion of an' entire electronic circuit such as an Application Specific Integrated Circuit (ASIC). Numerous other possibilities exist. Those skilled in the art will appreciate that the system can also be implemented as a combination of hardware and software modules.
Fig. 1 shows a schematic diagram illustrating a lossy network 100 with link-by- link feedback, such as a network with packet erasure broadcast channel, embodying a system for linear network coding according to an example embodiment. At the broadcast station 102 (transmitter), two buffers are implemented, namely a queueing buffer 104, and a coding buffer 106. Transmission from the broadcast station 102 occurs simultaneously to a plurality of receivers e.g. 108, 110, 112, experiencing respective packet erasure channel conditions. Incoming packets 114 are buffered in the queueing buffer 104, from which packets are moved to the coding buffer 106, the coding buffer 106 having a maximum operating size Kmax. The broadcast station 102 applies linear coding on the packets in the coding buffer only. Once the batch of packets has been decoded by all receivers 108, 110, 112, the coding buffer is flushed, and refilled from the queueing buffer.
The operation of the example embodiment will now be described in more detail with reference to Fig. 2 to Fig. 5.
Fig. 2 shows the operation of the transmitter 102 (Fig. 1) in the example embodiment. The functions carried out by the transmitter are the process include to optimize the coding buffer size (step 200), the ranking of different coding combinations (step 206), and determination of feedback intervals (step 210). Note that the ranking operation (step 206) may also be skipped if there is no feedback information from the receivers. In that case, old ranking of combinations can be reused.
In more detail, the transmitter, after optimizing the coding buffer size at step 200, fills the coding buffer with packets from the queueing buffer to the determined coding buffer size, at step 202. Subsequently, at step 204 the new batch of packets in the coding buffer is processed for coding at step 204, including generating all possible combinations. Next, the ranking of the different coding combinations is performed at step 206, followed by transmission of a linear coding of the highest-ranked combination at step 208. In this example embodiment, the linear coded combination is formed by multiplying random non-zero coefficients to packets of that combination and adding them under Galois Field operations. A header indicating what coefficients are used for each packet is sent along with that transmission. Next, the feedback interval is determined at step 210. At step 212, a determination is made whether feedback is needed / expected to be received for this particular timeslot. If not, the transmitter estimates the system state at step 214. There are a different ways to estimate the system state, including, but not limited to:
(i) PESSIMISTIC - assume none of the receivers has received the last transmission;
(ii) OPTIMISTIC - assume every receiver has received the last transmission; and
(iii) PROBABILISTIC - assume a receiver has received the last transmission if the history of reception is more than 50%.
Ranking at step 206 is then based on this estimated state.
If feedback is being received in this timeslot, the feedback is obtained and the system state updated accordingly in step 216.
In step 218, it is determined whether all receivers have correctly decoded all packets. If not, the process returns to step 206. On the other hand, if yes, the coding buffer is flushed at step 220, and the process reverts to step 200.
Fig. 3 illustrates the algorithms involved in the transmitter updating the optimized size of the coding buffer, in the example embodiment. More particular, at step 300, the maximum coding buffer size Kmax is set to an initial value Kmιtιal. Next, at step 302, the number of packets in both the queueing buffer and the coding buffer respectively are measured in T time slots. Different averages may be used, as will be described in more detail below.
In step 304, Kmax is updated using an algorithm depending on the averages measured in step 302, again as will be described in more detail below. At step 306, a determination is made whether there is convergence. If there is no convergence the process returns to step 302, whereas if there is convergence, the process stops and the updated value for Kmaxis being used.
In the example embodiment, the operating size of the coding buffer Kmax determines how efficient channel utilization is, and also how large the delay overhead is due to network coding. When Kmax gets smaller, the delay overhead due to network coding lowers and transmission delay decreases. But, the channel may not be efficiently utilized and packets suffer more delay from the increased queueing delay. Conversely, when Kmax gets larger, the queueing delay decreases as a result of efficient channel utilization. But, the delay overhead due to network coding rises and packets suffer more delay from the increased transmission delay. Both queueing and transmission delays are non-linear with respect to Kmax, and there exists an optimal operating point for Kmax where the total delay is minimized.
The optimal Kmax depends on channel conditions, packet arrival statistics and the coding/broadcasting mechanism used. Taking all these factors into account, the optimal
Kmax in the example embodiment occurs when the average occupancy of the queueing buffer B is equal to that of the coding buffer Bc . The following iterative procedure allows the system to adapt the two buffer sizes and arrive at the optimal values in one embodiment:
1. Start with an arbitrary value (K,nrtιaι) of Kmax.
2. Compute Bq and Bc the average buffer occupancies for both buffers.
3. Update Kmax to be a linear combination of both average buffer occupancies used, i.e. [cBq
Figure imgf000013_0001
where c is some constant in between 0 and 1. 4. Repeat to Step 2.
When Kmax is continually updated, the above procedure is also robust in that it can adapt to changes in arrival traffic and channel conditions automatically.
Example measurement procedures of buffer occupancy are listed as below. Note that this list is non-exhaustive.
Simple average - count the total buffer occupancy over a period and compute its mean.
Running average - continually compute the average buffer occupancy. Moving average - compute the average buffer occupancy over a sliding window.
Weighted moving average - buffer occupancy is viewed as a time-series. The mean is computed over a weighted average of the series over a sliding window where the weights are heavier on recent points. Exponential average - buffer occupancy is viewed as a time-series. The mean is computed over a weighted average of the series where the weights decay exponentially over time.
Exponential moving average - a combination of the (3) and (5). There is a sliding window where the average is computed with exponentially decaying weights.
Example formulas for the various Kmax updates are listed as below. Note that this list is non-exhaustive.
Simple update - /Cmax <- [cBq
Figure imgf000014_0001
where 0<c<1 is some constant. Weighted update - The last few values of Kmax are stored. The new Kmax is then a weighted combination of the stored values and [cBq
Figure imgf000014_0002
Exponential update - Kmax <- (i-α)κmax +α[cBg
Figure imgf000014_0003
where α is a tunable parameter.
Average update - Kmax <- +(i-c)Bc], where n is the iteration
Figure imgf000014_0004
number.
The above estimation and update procedures can either be done periodically at fixed time intervals or on every repeatable event, e.g. clearing of the coding buffer.
Fig. 4 shows that either full feedback or limited feedback modes can be applied.
In full feedback mode, all receivers send back their receiving status after every slot. In limited feedback mode, receivers only report to BS at some predetermined time. This time, called feedback interval, depends on the overall system state. As an example, BS can set the next feedback interval to be equal to the maximum number of packets still not being decoded by the receivers.
In the example illustrated in Fig. 4, at step 400 the system determines whether it has been set to operate in full feedback mode (or limited feedback mode). If yes, the feedback interval /b/πte/va/ is set to 1 , and returned for use in the operation of the transmitter as illustrated for example above with reference to Fig. 2. If not, i.e. the system is set to limited feedback mode, fbmtervaι is calculated in step 404, as a function of the system state. Details of the calculation in an example embodiment will be described below. The calculated value for fb,ntervaι is then returned.
The ranking of packet combinations specified (compare step 206, Fig. 2) uses knowledge of the state of R receivers. This feedback information can be sent at the end of every time slot (i.e. full feedback mode). However, the amount of feedback and computation can be reduced if after receiving the feedback from all R users in a particular slot, the Base Station (BS) calculates K11 - the number of undecoded packets in the coding buffer, and instructs the receivers to only send the next feedback after the next K11 time slots. When doing this, BS can rank coded combinations by either assuming the most recent feedback state information or estimating the state information.
Fig. 5 depicts the operation of the receiver in the example embodiment. Similar to the operation of the transmitter, this is based on batches.
More particular, at step 500, it is determined whether there is start of a new batch. If yes, the receiving database is initiated in step 502, and a combination received from the transmitter at step 504. At step 506, it is determined whether the receipt was successful. If yes, the receiver performs decoding of packets at step 508, followed by updating the receiving database at step 510.
If the receipt was not successful, the process proceeds to step 512. In step 512, the receiver either determines the relevant feedback interval, using the same process as described above with reference to Fig. 3, or the feedback interval is received from BS.
In step 514, it is determined whether feedback is to be sent in this time slot, and if yes, the feedback is sent in step 516. If not, the process proceeds to step 518.
In step 518, it is determined whether all packets in the batch have been decoded. The number of packets in each batch can be determined from the header of each transmission.
If all packets in the batch have been decoded, the process returns to step 500. If not, the process returns to step 504. In the example embodiment, the transmitter repeatedly broadcasts network- coded packets to the receiving nodes until all receiving nodes have received and decoded all packets. In every round of broadcast, the transmitter selects some packets from the coding buffer according to a selection algorithm and combines them using network coding into a single coded packet. The resultant coded packet is then broadcasted to ail receiving nodes. Nodes that correctly receive the coded packet attempt to decode immediately. The transmitter then begins a new round of broadcast.
The packet selection algorithm in the example embodiment selects packets based on combinations. There are a total of 2K -1 packet combinations for a batch of K packets, e.g. {pΛ, p3} and (P1, p2} are two different combinations of packets P1, p2 and p3. Each combination has a priority value that is tied to delay performance.
The selection algorithm in the example embodiment runs as follows:
1) Combinations are sorted according to priority.
2) The combination with the highest priority will be picked.
One special case of the algorithm is when all but one receiving node has received and decoded all packets in the coding buffer. Packets will then be sent directly in unicast mode to the last receiving node in a highest priority-first manner without any network coding being performed. This is regardless of how the priority is computed and whether step 3) is performed.
Priority is computed based on the current delay of the packets in each combination ς and how many packets can ς decode if correctly received Sometimes, receiving a combination can result in more than 1 packet being decoded. For example, a node has already received coded packets as combinations ptθ p3 and p2θ p3. Based on current information, there is no way to decode any of those three packets. However, upon receiving any one of the three packets {p,}, {p2} or {p3} from the transmitter, the receiving node can simultaneously decode p,, p2 and p3. This is also true if e.g. the transmitter sends combination p!©2 p2. Combination ς is a binary vector of length K in which packet / is included in that combination if its /-th element equals 1. Denote by D^ς) the set of packets which ς can decode for a node r. Then the priority of ς is
Figure imgf000017_0001
where dp is the current delay of packet p and cr is the channel quality of receiver r.
The set D^ ς) can be computed based on the state of receiver r. Upon reception of a new combination, every receiver attempts to decode it using the Gauss-Jordan elimination method [5]. This facilitates immediate decoding whenever possible. Let Er be the reduced echelon matrix produced from the Gauss-Jordan elimination after each decoding attempt. The matrix Er describes the state of receiver r. If r has not received any coded or uncoded packet p, then row p of the matrix Er consists of all zeros, vice versa. If r has received packet p, then element (p, p) of the matrix Er is 1 and the other elements of the row p are zeros, vice versa. The positions of the rest of the rows indicate packets that the receiver has received but has yet to decode. The way to test the condition of the first summation in Eqn. 1 in the example embodiment is as follows. A packet p is in DX ς) if the combination ς increases the rank of Er and a new combination ς'= ς + p (i.e., includes packets p and that of the combination ς) does not increases the rank further.
The matrix Er may be large with a large Kmax. In order to reduce the size of each feedback and simplify computation at the transmitter, a receiver can send a binary matrix of the same dimension of the matrix Er instead as feedback, in an example emboidment. It is a binary summary of the matrix Er where a '1' denotes a non-zero element in of Er the same position, vice versa.
As shown in Fig. 6, the example embodiment can provide a significant performance improvement against a single buffer system which uses the existing ARQ scheme [4] that is designed for achieving low-delays. Bad users with c = 0.5 suffer more in terms of delay in the ARQ scheme (c is a measure of channel quality and is between 0 and 1, where a larger value indicates better channel quality). As a result, the system- wide performance is much higher.
A performance improvement can still be observed (especially at high loads) in an alternative embodiment , where the packet selection algorithm is omitted. In this case, all
K packets are always combined using random linear coding (RLC). This is illustrated in
Fig. 7. The results illustrate improvement due to the dual queue system and an iterative procedure for the optimal Kmax in such an embodiment.
As can be observed in Fig. 8, the degrade in performance with limited feedback against that of per slot feedback in different embodiments is somewhat negligible for low arrival rates but noticeable at high loads. The maximum difference in average delay is about "0.5 slots at arrival rate = 0.3 and is in any event small compared to the existing ARQ scheme in Fig. 6.
One special case in one embodiment of the algorithm is when all but one receiving node has received and decoded all packets in the coding buffer. Packets will then be sent directly to the last receiving node in a highest priority-first manner without any network coding being performed. The delay gain in this special case is shown in Figs. 9 and 10, which uses the worst-case selection method as reference: select all packets at every round up till the last node, leading to the maximum delay. As can be seen from Figs. 9 and 10, the gain is always positive for all channel conditions and is most significant when the difference in the channel conditions between the receiving nodes is the largest.
In Figs. 11 and 12, two different embodiments are being compared: the case with a static Kmax and the case with an optimal Kmax obtained using the iterative procedure described above. When Kmax is either too large or too small, the average packet delay is not at optimum. The iterative procedure described above in one embodiment is able to continually determine the best Kmax for different traffic and channel conditions.
The method and system of the example embodiment can be implemented on a computer system 800, schematically shown in Figure 8. It may be implemented as software, such as a computer program being executed within the computer system 800, and instructing the computer system 800 to conduct the method of the example embodiment.
The computer system 800 comprises a computer module 802, input modules such as a keyboard 804 and mouse 806 and a plurality of output devices such as a display 808, and printer 810.
The "computer module 802 is connected to a computer network 812 via a suitable transceiver device 814, to enable access to e.g. the Internet or other network systems such as Local Area Network (LAN) or Wide Area Network (WAN).
The computer module 802 in the example includes a processor 818, a Random Access Memory (RAM) 820 and a Read Only Memory (ROM) 822. The computer module 802 also includes a number of Input/Output (I/O) interfaces, for example I/O interface 824 to the display 808, and I/O interface 826 to the keyboard 804.
The components of the computer module 802 typically communicate via an interconnected bus 828 and in a manner known to the person skilled in the relevant art. The application program is typically supplied to the user of the computer system 800 encoded on a data storage medium such as a CD-ROM or flash memory carrier and read utilising a corresponding data storage medium drive of a data storage device 830. The application program is read and controlled in its execution by the processor 818. Intermediate storage of program data maybe accomplished using RAM 820.
Embodiments of the present invention introduce an effective DQDC mechanism that can achieve the inherent throughput gain of network coding while ensuring the delay performance of all users is also improved. The proposed DQDC mechanism in example embodiments consists of: i) a method of organizing packets at the transmitter into queueing buffer and coding buffer in tandem to restrict the number of packets being processed each time ii) an efficient algorithm that determines what packets should be coded for each transmission/broadcast and iii) an iterative procedure to determine the optimal parameter for (i). Embodiments of the present invention can have of the following features:
A dual-buffering system at the transmitter (broadcast station) side consisting of a queueing buffer followed by a coding buffer.
The coding buffer has a maximum operating size of Kmax. This is a parameter which can be tuned dynamically for optimum performance.
Network coding can only be carried out over packets in the coding buffer. A packet is excluded from coding if it has been successfully decoded by all receiving nodes (receivers).
Newly arriving packets will be first stored in the queueing buffer and not allowed to enter the coding buffer.
Whenever the coding buffer is empty, it will be filled up as much as possible using packets from the queueing buffer. If there are not enough packets in the queueing buffer to fully fill up the coding buffer, the transmitter simply uses all the packets available in the queueing buffer.
An iterative procedure to determine the optimum value of parameter Kmax.
Figure 13 shows a flow chart illustrating a method of linear network coding according to an example embodiment. At step 1302, incoming packets are buffered, in a first buffer. At step 1304, a batch of packets is moved from the first buffer into a second buffer having a maximum operating size, Kmax. At step 1306, linear coding is applied on the batch of packets in the second buffer. At step 1308, the coded packets are transmitted to receivers of the network. At step 1310, the second buffer is flushed once all receivers have decoded the batch of packets. At step 1312, the second buffer is refilled with a new batch of packets from the first buffer.
Industrial Application
Embodiments of the present invention can be applied for reliable downlink transfers. Some examples of potential applications are:
Digital Video Broadcast (DVB) - achieving higher quality with lower bandwidth requirement, e.g. Mediacorp MobileTV or other channels (currently only channels 5 and 8 are available).
Wireless LAN Multicasts / Broadcasts, e.g.
High quality video conferencing on individual terminals (Both video and voice). Wireless HD-TV in homes and buildings - no more wired TV points.
Wireless audio systems - common components in the audio channels can be broadcasted to wireless speakers.
Large file dissemination.
Wireless Sensor networks. Reprogramming nodes on-the-fly.
Information / control parameter downloads from the sink to nodes.
Multicasts and broadcasts in Cellular Networks.
It will be appreciated by a person skilled in the art that numerous variations and/or modifications may be made to the present invention as shown in the specific embodiments without departing from the spirit or scope of the invention as broadly described. The present embodiments are, therefore, to be considered in all respects to be illustrative and not restrictive.
References
[1] R. Ahlswede, Ning Cai, S. R. Li, and R. W. Yeung, "Network Information Flow," IEEE Transactions on Information Theory, 46: 1204 — 1216, July 2000.
[2] R. Koetter and M. Medard, "Beyond Routing: An Algebraic Approach to
Network Coding," IEEE Transactions on Information Theory, 11 :782 — 795, October 2003.
[3] A. Eryilmaz, A. Ozdaglar, and M. Medard, "On Delay Performance Gains From Network Coding," in Proceedings of the Conference on Information Sciences and Systems (CISS'06), March 2006. [4] J. K. Sundararajan, D. Shah, and M. Medard, "ARQ for Network Coding," in Proceedings of the IEEE International Symposium on Information Theory (ISIT 2008), July 2008.
[5] R. K. Jain and S. R. K. Iyengar, Advanced Engineering Mathematics. Alpha Science Int'l Ltd, September 2007.

Claims

1. A method of linear network coding in a lossy network with link-by-link feedback, the method comprising the steps of: buffering incoming packets in a first buffer; moving a batch of packets from the first buffer into a second buffer having a maximum operating size, Kmax; applying linear coding on the batch of packets in the second buffer; transmitting the coded packets to receivers of the network; flushing the second buffer once all receivers have decoded the batch of packets; and refilling the second buffer with a new batch of packets from the first buffer.
2. The method as claimed in claim 1 , further comprising dynamically adjusting Kmax based on respective occupancies of the first and second buffers.
3. The method as claimed in claim 2, wherein Kmax is adjusted based on respective averages of the occupancies of the first and second buffer.
4. The method as claimed in claim 3, wherein the respective averages comprise one of a group consisting of a mean over a period of time, a running average, a moving average over a sliding time window; and a weighted moving average.
5. The method as claimed in any one of the preceding claims, wherein applying the linear coding comprises applying a selection algorithm based on combinations of the packets in the second buffer.
6. The method as claimed in claim 5, wherein the selection algorithm comprises sorting the combinations according to priority.
7. The method as claimed in claim 6, wherein the priority is based on a current delay of the packets in each combination and a number of packets that can be decoded if each combination is received.
8. The method as claimed in any one of claims 5 to 7, further comprising, when all but one of the receivers have decoded all packets in the batch, transmitting remaining packets without coding in a highest priority first order to said one of the receivers.
9. The method as claimed in any one of the preceding claims, further comprising controlling in which time slots feedback from the receivers is to be provided to the transmitter.
10. The method as claimed in claim 10, wherein said controlling comprises determining, after feedback from the receivers has been received in one time slot, the number of packets, Ku, that have not been decoded by all receivers, and instructing the receivers to only sent feedback after the next Ku time slots.
11 A system for linear network coding in a lossy network with link-by-link feedback, the system comprising: a first buffer for buffering incoming packets; means for moving a batch of packets from the first buffer into a second buffer having a maximum operating size, Kmax; means for applying linear coding on the batch of packets in the second buffer; means for transmitting the coded packets to receivers of the network; means for flushing the second buffer once all receivers have decoded the batch of packets; and means for refilling the second buffer with a new batch of packets from the first buffer.
12. The system as claimed in claim 11 , further comprising means for dynamically adjusting Kmax based on respective occupancies of the first and second buffers.
13. The system as claimed in claim 12, wherein Kmax is adjusted based on respective averages of the occupancies of the first and second buffer.
14. The system as claimed in claim 13, wherein the respective averages comprise one of a group consisting of a mean over a period of time, a running average, a moving average over a sliding time window; and a weighted moving average.
15. The system as claimed in any one of claims 11 to 14, wherein the means for applying the linear coding applies a selection algorithm based on combinations of the packets in the second buffer.
16. The system as claimed in claim 15, wherein the selection algorithm comprises sorting the combinations according to priority.
17. The system as claimed in claim 16, wherein the priority is based on a current delay of the packets in each combination and a number of packets that can be decoded if each combination is received.
18. The system as claimed in any one of claims 15 to 17, wherein, when all but one of the receivers have decoded all packets in the batch, the means for transmitting transmits remaining packets without coding in a highest priority first order to said one of the receivers.
19. The system as claimed in any one of claims 11 to 18, further comprising means for controlling in which time slots feedback from the receivers is to be provided to the transmitter.
20. The system as claimed in claim 19, wherein said means for controlling determines, after feedback from the receivers has been received in one time slot, the number of packets, Ku, that have not been decoded by all receivers, and instructing the receivers to only sent feedback after the next Ku time slots.
21. A data storage medium having computer code means for instructing a computing device to execute a method of linear network coding in a lossy network with link-by-link feedback, the method comprising the steps of: buffering incoming packets in a first buffer; moving a batch of packets from the first buffer into a second buffer having a maximum operating size, Kmax; applying linear coding on the batch of packets in the second buffer; transmitting the coded packets to receivers of the network; flushing the second buffer once all receivers have decoded the batch of packets; and refilling the second buffer with a new batch of packets from the first buffer.
PCT/SG2010/000015 2009-01-21 2010-01-21 Method and system for linear network coding in broadcast systems WO2010085212A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
SG200900452 2009-01-21
SG200900452-4 2009-01-21

Publications (1)

Publication Number Publication Date
WO2010085212A1 true WO2010085212A1 (en) 2010-07-29

Family

ID=42356114

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/SG2010/000015 WO2010085212A1 (en) 2009-01-21 2010-01-21 Method and system for linear network coding in broadcast systems

Country Status (1)

Country Link
WO (1) WO2010085212A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104243098A (en) * 2014-09-23 2014-12-24 中国人民解放军理工大学 Transmitting method based on parallel batch network coding
US9392485B1 (en) 2013-12-06 2016-07-12 Sprint Spectrum L.P. Method of reducing packet loss in a multimedia broadcast and multicast services system
WO2022034388A1 (en) * 2020-08-12 2022-02-17 Tgoma Nz Limited Methods and systems for transmitting data over a wireless network

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070274324A1 (en) * 2006-05-26 2007-11-29 Microsoft Corporation Local network coding for wireless networks

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070274324A1 (en) * 2006-05-26 2007-11-29 Microsoft Corporation Local network coding for wireless networks

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"Conf. on Information Sciences and Systems (CISS'06), 22-24 March 2006", article ERYILMAZ A. ET AL.: "On Delay Performance Gains From Network Coding" *
"IEEE Symposium on Information Theory 2008 (ISIT 2008), 3 July 2008", article SUNDARARAJAN J. ET AL.: "ARQ for Network Coding" *
YEOW W. ET AL.: "Minimizing Delay for Multicast-Streaming in Wireless Networks with Network Coding", IEEE INFOCOM 2009 PROCEEDINGS, 19 April 2009 (2009-04-19), Retrieved from the Internet <URL:http://www.di.unito.it/matteo/I09/DATA09/01-06-02.PDF> [retrieved on 20100324] *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9392485B1 (en) 2013-12-06 2016-07-12 Sprint Spectrum L.P. Method of reducing packet loss in a multimedia broadcast and multicast services system
CN104243098A (en) * 2014-09-23 2014-12-24 中国人民解放军理工大学 Transmitting method based on parallel batch network coding
WO2022034388A1 (en) * 2020-08-12 2022-02-17 Tgoma Nz Limited Methods and systems for transmitting data over a wireless network

Similar Documents

Publication Publication Date Title
Zlatanov et al. Throughput and diversity gain of buffer-aided relaying
US8392785B2 (en) Method and system for a transmitting antenna selection failure recovery mode
US9083420B2 (en) Queued cooperative wireless networks configuration using rateless codes
Galinina et al. Stabilizing multi-channel slotted aloha for machine-type communications
EP2899929A1 (en) Method and apparatus for traffic distribution control using Multi-Path Transport Control Protocol in wireless heterogeneous networks
KR101930057B1 (en) Apparatus and method for transmitting/receiving data in communication system
WO2011015252A1 (en) Multicast scheduling and link adaptation
Yang et al. Adaptive network coding for scheduling real-time traffic with hard deadlines
US10027399B2 (en) Method for coding-based, delay-efficient data transmission
Lin et al. An access point-based FEC mechanism for video transmission over wireless LANs
KR102140398B1 (en) Image processing device and method of processing image
KR20080086033A (en) Apparatus and method for automatic repeat request in multi input multi output system
Seferoglu et al. Rate distortion optimized joint ARQ-FEC scheme for real-time wireless multimedia
Jabbar et al. Developing a video buffer framework for video streaming in cellular networks
WO2017161124A1 (en) System for video streaming using delay-aware fountain codes
WO2010085212A1 (en) Method and system for linear network coding in broadcast systems
CN109982433B (en) Resource optimization method of URLLC system with fixed frame length based on heuristic algorithm
Simoni et al. Buffer-aided diamond relay network with block fading
Harsini et al. Adaptive transmission policy design for delay-sensitive and bursty packet traffic over wireless fading channels
US8605749B2 (en) Frame-merging apparatus and method
JP2005110201A (en) Radio communication system, wireless transmitter, and wireless receiver
CN109699040B (en) Resource optimization method of URLLC system based on retransmission mechanism of heuristic algorithm
Li et al. Random network coding based on adaptive sliding window in wireless multicast networks
US20150358121A1 (en) Wireless transmitter to optimize throughput by controlling time-average block size of signals to receivers
CN116405741B (en) Video transmission scheduling method, device and medium based on multiple transmission paths

Legal Events

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

Ref document number: 10733704

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 10733704

Country of ref document: EP

Kind code of ref document: A1