Upload
rossano
View
217
Download
4
Embed Size (px)
Citation preview
Band Codes: Controlled Complexity Network Coding
for Peer-to-Peer Video Streaming
Attilio Fiandrotti, Valerio Bioglio, Enrico Magli
Dipartimento di Elettronica e Telecomunicazioni
Politecnico di Torino
Torino, Italy
[email protected], [email protected], [email protected]
Marco Grangetto, Rossano Gaeta
Dipartimento di Informatica
Universita di Torino
Torino, Italy
[email protected], [email protected]
Abstract—We present Band Codes (BC), a novel class ofrateless codes that makes possible to control the computationalcomplexity of Network Coding (NC). In a NC scenario basedon rateless codes, the recombinations at the nodes alter thepacket degree distribution selected at the source and increasethe computational complexity of the packet decoding process.Unlike other classes of rateless codes, BC preserve the degreedistribution of the encoded packets through the recombinationsat the nodes. Furthermore, BC enable to control the decodingcomplexity of each network node independently from therest of the network. We evaluate BC in a P2P scenariousing a purposely designed random-push protocol for livevideo streaming. The experiments show that BC achieve highencoding efficiency, enable nodes with different computationalcapabilities to coexist within the same network and reduce theprocessor load on a real mobile device by nearly 50%.
Keywords-Network Coding; Computational Complexity; P2P
I. INTRODUCTION
Network coding is spawning much interest among multi-
media researchers for it enables simple yet efficient designs
for the distribution of video contents to large scales of users.
The distinctive feature of network coding is that the inter-
mediate nodes of the network output linear combinations
of received packets rather than just forwarding them. Once
a node has collected enough linearly independent packets,
it solves a system of linear equations and recovers the
original message [1]. Network coding finds an interesting
application in peer-to-peer video streaming, as its properties
enable lightweight peer coordination and packet scheduling
schemes. For example, Wang and Li showed that network
coding enables high throughput and reduced prebuffering in
P2P video streaming [2].
The advantages of network coding come however at the
price of additional computational complexity, mainly due to
the packet decoding process, which turns into an issue when
power-constrained applications are considered. NC was in
fact devised based on algebraic operations over the finite
fields GF(28), which yields to very complex multiplications
from the computational and thus energetic perspective. An
experimental investigation with mobile phones [3] demon-
strated that the computational complexity of network coding
causes throughput bottlenecks with respect to the bandwidth
achievable by the wireless protocol. The study also con-
firmed that network coding increases the average energy
consumption of the device, hence shortening the battery life.
It was recently proposed [4] to performed NC on GF(2)
with rateless codes, which entail XOR operations only. The
complexity problem has been tackled before for erasure
correction codes, yielding to classes of rateless codes such
as Luby Transform (LT) [5]. Such codes achieve low de-
coding complexity by appropriately selecting the packet
degree distribution at the source, i.e. the probability that
the encoder creates a packet combining a given number
of data blocks. However, in the considered network coding
scenario, the packet recombinations at the nodes alter the
degree distribution selected at the source, which grows at
every recombination and therefore low decoding complexity
cannot be guaranteed any longer. Puducheri [6] explored NC
with LT codes and proposed a recombination strategy that
preserves the degree distribution of LT codes. However, such
strategy can be applied just to a specific type of network
topology and not to arbitrary topologies.
In this paper we propose a comprehensive framework to
control the decoding complexity of network coding through
the following contributions. First, we introduce Band Codes
(BC), a class of rateless codes that preserves the packet
degree distribution through the recombinations at the nodes.
Second, we design a packet recombination algorithm that
enables to control the decoding complexity on a per-node
basis according to the specific requirements of each network
node. Third, we design a P2P protocol based on BC which
enables us to evaluate the actual decoding complexity and
encoding efficiency of BC in a realistic network and on a real
mobile device. Fourth, we design a policy that increases the
battery duration of mobile devices in a heterogeneous P2P
network where nodes with both high and low computational
complexity coexist.
II. NETWORK CODING WITH RATELESS CODES
We consider a network scenario where one source node
distributes a media content to multiple cooperating receivers.
2012 IEEE International Conference on Multimedia and Expo
978-0-7695-4711-4/12 $26.00 © 2012 IEEE
DOI 10.1109/ICME.2012.84
194
The source node subdivides the content in chunks of data
called generations. Without loss of generality, we consider
the case of a message composed by one generation only.
Each generation is a sequence (M0, ...,MN−1) of N data
blocks of identical size Bs bits, where N is called generation
size. Each time the source transmits a packet, a subset
of d blocks out of the N that compose the generation
is selected. The figure d is called packet degree and is
randomly drawn from some distribution function Ω0. We
consider coding operations on the Galois field GF (2) and
we denote as encoding vector the array of binary values
g = (g0, ..., gN−1) which has d non-zero elements. The
source linearly combines the selected blocks and produces
the encoded block X =∑N−1
i=0giMi, where the sum
operator is the bit-wise XOR. The source finally transmits
packet P (g,X), which contains the encoded payload X plus
the corresponding encoding vector g as header [7].
The other nodes of the network encompass the functions of
decoder and recoder and operate as follows. The decoder
processes the received packets and, once N linearly inde-
pendent combinations are received, solves the corresponding
system of linear equations and recovers the original message
or sequence. Because not all the packets are guaranteed to
be linearly independent, it is usually necessary to receive
more than N packets to rebuild the generation. The recoder
recombines the received packets and produces new packets
that are transmitted to the other nodes. Packet recombina-
tion increases the likelihood that the transmitted packets is
linearly independent from all the packets the recipient has
already received and helps it to decode the generation, in
which case the packet is said to be innovative. The packet
recombination process is similar to the encoding process
that is done at the source node, except that network nodes
recombine the linear combinations available in their input
buffers rather than the original message blocks.
Recombinations at the nodes alter the degree distribution
selected at the source and bloating the decoding complexity
as explained in the following. Given the degree distribution
Ω0 selected at the source, we define as Ωj the degree
distribution of the packets in the network after j recom-
binations. It can be shown that, after an infinite number of
recombinations, the expected packet degree is E(Ω∞) = N2
.
III. BAND CODES: ENCODING AND RECOMBINING
A. Encoding at the Source Node
Figure 1: Illustration of the encoding window concept.
The process for encoding a packet at the source node is
as follows. For each packet P to transmit, the source selects
the blocks (M0, ...,MN−1) to combine within an encoding
window of size 1 ≤W ≤ N where W is given. An encoding
window of size W is a sequence of blocks (Mf , ...,Ml)where 0 ≤ f, l ≤ N − 1 and f ≤ l and l − f + 1 = W .
We define fi and li the leading edge and the trailing edge
of the i-th encoding window. Figure 1 shows a generation
of size N = 8 and the N −W + 1 = 6 possible encoding
windows of size W = 3. The encoder selects one out of the
N −W +1 available encoding windows, randomly drawing
the window leading edge f ∈ [0, N −W ] according to a
discrete distribution function called Horn Distribution and
defined as:
HDW (f) =
{W+1
2Nif f = 0 or f = N −W
1
Nif 0 < f < N −W
Once f has been drawn, the trailing edge of the encoding
window is calculated as l = f+W−1. Then, the elements giof the encoding vector g are set to one with probability p =1
2for i ∈ [f, l], with probability p = 0 otherwise. It follows
that the expected degree of a packet encoded according to
such process is equal to W/2. Drawing f according to the
HD guarantees that all the blocks of the generation have
equal probability to be encoded, which is crucial to achieve
good encoding efficiency. Finally, the encoder combines the
blocks of the original message as X =∑N−1
i=0Migi, and
the packet P is transmitted.
In the rest of this work, we use the compact notation
BC(N,W ) to indicate a packet encoded according to the
above described process for a generation size N and a
window size W . It results that a packet encoded as a
BC(N,W ) has the property that its average degree is equal
to W/2.
B. Recombinations at the Network Nodes
Before describing the process to recombine packets at the
nodes of the network, we formulate the following important
property about BC.
Proposition 1. Let packet P1 be a BC(N,W1) and P2
be a BC(N,W2). Let f1 be the first index of window
with size W1 and f2 be the first index of the window
with size W2 and let f1 < f2 (similarly, let l1 and l2 be
the corresponding last index.) Finally, let us assume that
encoding vectors of the two packet overlap (i.e., let l1 ≥ f2.)
Then, packet Pr = P1 ⊕ P2 is a BC(N,Wr) where the
first index of the encoding window is fr = min(f1, f2) and
Wr = max(f1+W1, f2+W2)−fr, and the expected degree
of Pr is Wr
2.
Proof: Let g1, g2 and gr be the encoding vectors of
P1, P2 and Pr respectively and let gr = g1 ⊕ g2. Only the
coefficients of gr encompassed between fr = min(f1, f2)and max(l1, l2) can be set to one. So, the encoding window
of Pr has initial position fr and size Wr = max(l1, l2) −
195
fr = max(f1 +W1, f2 +W2)− fr.
However, Pr is a BC only if grfr+j = 1 with probability 1
2,
for 0 ≤ j < Wr . The packets P1 and P2 are BC, hence
gifi+ji= 1 with probability 1
2for i = 1, 2 and 0 ≤ ji < Wi.
By hypothesis, the two windows overlap; where they do not
overlap, gri = g1i ∧ g2i , hence gri = 1 with probability 1
2by
the definition of BC. Where the windows overlap, the result
is a one if {g1i = 0∧g1i = 1}∨{g1i ∧g1i }, that happens with
probability 1
4+ 1
4= 1
2, hence again gri = 1 with probability
1
2. This shows that Pr is a BC(N,Wr) and its expected
degree is equal to Wr
2.
Such property of BC enables to recombine packets so that
the recombined packet is a BC(N,Wr) for some desired
value of Wr, and thus the expected degree of the recombined
packet is Wr
2.
The process to recombine the received packets at the
network nodes is as follows. Each node of the network stores
the received packets in an input buffer Bin and, when the
opportunity to transmit a packet arises, the node transmits
a recombined packet to one of the other network nodes.
We assume that each node explicitly requests that packets
sent to it are BC(N,Wr) for some Wr value that each
node independently selects according to some policy. Given
a target node for the transmission and the corresponding
Wr, the transmitter node draws fr (and lr = fr +Wr − 1)
according to the HD distribution. Let Ψ be the packets in
Bin whose encoding vector first index set to one is greater
or equal to fr and the last index is lower or equal to lr.
It follows from Proposition 1 that if two elements of Ψare recombined, the result is a BC(N,Wr) with expected
degree equal to Wr/2, as requested by the recipient. The
elements of Ψ are recombined to produce a packet Pr that
is transmitted as detailed in Algorithm 1.
Algorithm 1 The Packet Recoding Algorithm (Given Wr)
1: Draw fr according to HD distribution
2: Ψ ← Bin pkts that are BC(N,Wr) and f ≥ fr and
l ≤ lr3: Pr ← ∅4: for i = 1→ sizeof(Ψ) do
5: Pr ← Pr ⊕Ψ[i]6: end for
7: transmit Pr
IV. BAND CODES: DECODING
A. Decoding with On-the-Fly Gaussian Elimination
The nodes of the network receive packets P (g,X) that are
decoded using the On-the-Fly Gaussian Elimination (OFG)
algorithm [9]. With respect to other Gaussian Elimination-
like algorithms, OFG distributes the decoding complexity
over time and its computational complexity can be accu-
rately modeled. The OFG solves a system of N linear
equations GM = C where G is an N × N matrix that
contains the encoding vectors of the received packets, Cis a vector that contains the respective packets payloads
and M contains the unknown information packets Mi to
be recovered. If all the elements of a row i of G are equal
to zero, we define the row as empty and we write Gi = ∅.If all the rows of G are empty, we say that G is empty. We
focus on the OFG aspects instrumental to understand how
BC enable controlled complexity NC and the complexity
model presented in the following. So, we describe only
the operations on the G matrix and the received packets
encoding vectors g while we omit the analogous operations
on C and M . The OFG algorithm operates in two stages.
The first OFG stage is described as Algorithm 2 and is
executed every time a new packet P (g,X) is received and
initially all rows of G are empty. For each received packet,
the position s ∈ [0, N − 1] of the first element set to one
of the encoding vector g is calculated (line 3). Depending
on whether Gs is empty or not, the algorithm operates as
follows. If Gs is empty, g is inserted in the s-th row of G.
Otherwise, g and Gs are swapped (line 9) if the degree of gis lower than the degree of Gs to keep G sparse and simplify
the following diagonalization stage. If g is identical to Gs,
P is not innovative and the algorithm terminates. Otherwise
a XOR between g and Gs is performed (line 12) and the
while cycle iterates.
Algorithm 2 On-the-Fly Gaussian Elimination, First Stage
1: receive P (g).2: while true do
3: s← position of first non-zero element of g4: if Gs = ∅ then
5: Gs ← g6: end
7: else
8: if∑N−1
i=0gi <
∑N−1
i=0Gs,i
9: swap Gsf and g10: if g = Gs
11: end
12: g ← g ⊕Gs
13: end if
14: end while
The second OFG stage is diagonalization and is described
as Algorithm 3.
Diagonalization finally enables to recover vector M and the
generation.
If a network node receives packets encoded as BC(N,W )using the OFG algorithm, the following important proposi-
tion holds.
Proposition 2. If the OFG algorithm is used to decode
BC(N,W ), then G is a upper triangular and each row of
G is the encoding evctor of a BC(N,W ).
196
Algorithm 3 On-the-Fly Gaussian Elimination, Second
Stage
1: for i = N → 0 do
2: while (t← second non-zero element of Gi) �= ∅ do
3: Gi ← Gi ⊕Gs
4: end while
5: end for
Such proposition, that we provide without proof, is exploited
in the following to provide an upper bound to the decoding
complexity of Band Codes.
B. Decoding Complexity Model of OFG
We define the decoding complexity CD as the average
number of XOR operations performed by the OFG algorithm
to decode a generation under the assumption that all received
packets are BC(N,W ). Our investigations revealed in fact
that the XOR operator is the major source of computational
complexity for it entails updating large areas of memory.
In the following, we separately model the computational
complexity of the two OFG stages.
The complexity CID of the first OFG stage increments by
one unit every a XOR is performed at line 12 of Algorithm 2.
In the following we assume that N ′ � N , so that the rank
ρ(G) is equal to k before the (k+ 1)-th packet is received.
We first calculate the maximum number of XORs that
decoding of the (k+1)-th received packet can trigger trough
the successive iterations of the while cycle in Algorithm 2.
Given that ρ(G) = k, the maximum number of non-empty
rows of G with whom P can collide is k. Because P is a
BC(N,W ), on the average W/2 elements of g are equal
to one. The XOR is performed only if P and G[f ] are not
identical, which happens however with a probability that is
very close to 1 due to the assumption N ′ � N . Therefore,
we the expected maximum number of XORs performed by
the first stage of the OFG algorithm when the (k + 1)-thpacket is received is equal to k
NW2
. Finally, the expected
maximum number of XORs performed by the first stage of
OFG to decode a generation is
CID =
N−1∑k=1
kW
2N=
W (N − 2)
4�
WN
4.
The complexity CIID of the second OFG stage increments
by one unit every time line 3 of Algorithm 3 is performed.
The number of times such line is executed depends on the
density of the upper-triangular G matrix (that is, on the
average degree dG of the rows of G at the moment of
its diagonalization.) Proposition 2 states that rows of G are
BC(N,W ), thus their average degree is expected to be qual
to W/2. However, due to the swap at line 9 of Algorithm 2,
we have that the actual average degree of the rows of Gis lower than W/2. After extensive experiments, we found
that the relationship dG � W/4 holds for a wide range of
N and W values. Hence, as each row of G has dG− 1 non
null coefficients excluding that on the diagonal, the average
number of XORs performed to diagonalize G is equal to
(dG − 1)N � W4N . Thus the computational complexity of
the second OFG stage is
CIID =
W − 2
4N �
WN
4.
Finally, the maximum expected complexity of decoding a
generation for a BC(N,W ) with the OFG algorithm is
CD = CID + CII
D �WN
2. (1)
Such model shows that the computational complexity of
recovering a generation depends only on W , which is not
affected by the recombinations at the nodes due to the
properties of BC.
V. EXPERIMENTAL RESULTS
We evaluate Band Codes in a peer-to-peer video streaming
scenario where one source distributes a video sequence to
multiple cooperating receiver nodes. The video stream is
subdivided by the source as a sequence of generations of
data with identical playout time Ct. Every Ct seconds,
the source fetches a generation of video and encodes and
transmits packets for such generation only for the following
Ct seconds. The generation distributed by the source is
called seeding position within the video stream. We designed
an all-push P2P protocol where the receiver nodes are
organized as an unstructured mesh and the node discovery
process is managed by a central coordinator, the tracker.
The tracker listens for requests from nodes that want to join
the streaming session and keeps a list of all the nodes in
the network. Once a node has registered with the tracker,
the tracker replies with a list of randomly selected nodes
among those already in the network. Upon receiving the
tracker reply, the node starts an handshake procedure with
each of the nodes in the list. During the handshake, the two
nodes exchange the respective encoding window size Wr,
the parameter that will eventually determine the decoding
complexity of the node. After the handshake, two nodes
become peers and can start to exchange encoded packets.
After joining the network, a node waits for some time
before starting the playback, thus the playout position of
a peer always lags some generations behind the seeding
position. The set of generations encompassed between the
seeding position in the stream and the playout position of
a node is known as decoding region of the node. During
the handshake, the peers exchange a map that represents the
status (decoded or not decoded) of the generations within the
decoding region. Whenever a node decodes a generation,
it broadcasts a stop message to its peer to signal that
no further packets are required for that generation. Upon
197
receiving a stop message, a node updates the decoding map
of the relative peer, so that each node always knows which
generations a peer has already decoded and which has not
not. After the handshake, the peers start exchanging video
packets using a simple random-push scheduler. At each
transmission opportunity, the scheduler randomly selects a
peer and transmits a recombined packet to it. The generation
of video that is closer to the playout deadline and that the
peer has not decoded yet is selected for transmission, as
indicated by the decoding map of the peer. After selecting
the generation for which to transmit the packet, Algorithm 1
is run to produce a packet that is a BC(N,Wr) according
to the Wr value that the peer has specified during the
handshake. In the following, we experiment with our P2P
protocol for live video streaming on a testbed that poses
challenges typical of real packet networks such as loops in
the overlay, out-of-order packet delivery, delays etc.
A. Encoding Efficiency and Decoding Complexity
First, we analyze the performance of BC from the point
of view of the encoding efficiency. The encoding efficiency
is measured in terms of encoding overhead ε = N ′/N − 1,
where N ′ ≥ N is the average number of packets necessary
to decode a generation of size N . In the considered video
streaming scenario, the encoding overhead measures the
extra bandwidth required to stream the video. The efficiency
of Band Codes depends on the generation size N and on the
encoding window size W , which affects the average packet
degree. We explore values of N that range from 100 to
200: assuming that the video is encoded at 1000 kbit/s and
each generation of video is organized in blocks of about
1250 bytes, each generation covers a few seconds of video.
Figure 2 shows that the encoding overhead of BC depends on
W and hence on the average packet degree. Most important,
the figure shows that the encoding overhead of BC remains
low even for W << N , which means that BC make efficient
use of the bandwidth available on the network.
0
1
2
3
4
5
6
7
8
0.2 0.4 0.6 0.8 1
En
co
din
g O
ve
rhe
ad
[%
]
Encoding Window Density W/N
N = 100N = 200
Figure 2: Encoding Overhead of Band Codes as a Function
of the encoding window size (W/N .) Lower is better.
Then, we validate the decoding complexity model re-
ported in Equation 1: we measure the actual decoding
complexity at one of the nodes of the network and compare
with the figures predicted by the model. Figure 3 shows the
results of the experiments: our model can precisely predict
the decoding complexity of BC. A comparison with Fig. 2
shows that it is possible to achieve a favorable tradeoff
between decoding complexity and encoding overhead.
0
2000
4000
6000
8000
10000
12000
14000
16000
18000
0.2 0.4 0.6 0.8 1
De
co
din
g C
om
ple
xity [
XO
R]
Encoding Window Density W/N
N = 100, DataN = 100, ModelN = 200, Data
N = 200, Model
Figure 3: Predicted and Actual Decoding Complexity CD as
a Function of the encoding window size (W/N .) Lower is
better.
Finally, we measure the actual computational load on a
real mobile device. For the purpose, we add one extra node
to the previously described testbed that consists of an LG-
P500 smartphone powered by a 600 MHz ARM processor.
The phone is connected to the testbed via WiFi and takes
part to the streaming session decoding the video. Figure 4
shows the actual processor load due to packet decoding as
reported by the top system monitoring tool as a function of
the encoding window size. The figure shows that BC enable
to decrease by a factor of two (from 25% to 12%) the actual
processor load by adjusting W . A comparison with Fig. 3
shows correlation between processor load and the number of
XORs, i.e. between the actual decoding complexity of BC
and our proposed metric.
0
5
10
15
20
25
30
0.2 0.4 0.6 0.8 1Decodin
g C
om
ple
xity [C
PU
%]
Encoding Window Density W/N
N = 100N = 200
Figure 4: Computational complexity in terms of processor
load as a function of the encoding window size (W/N .)
Lower is better.
B. Band Codes for Hybrid Complexity Networks
We consider now a network composed of two classes of
nodes: high complexity (HiC) and low complexity (LoC)
nodes. HiC nodes are devices connected to the power grid
such as desktop computers, while LoC nodes represent
198
battery operated terminals like mobiles. In a typical battery-
operated device, every packet coding operation draws some
energy from the battery until it is exhausted. The amount of
energy stored in the battery limits the total number of packet
coding operations a node can afford and thus its lifetime.
We model the level of battery charge as an initial budget
of XOR operations that is set at the node startup. Every
time the node performs an XOR for decoding purposes,
the budget counter is decremented by one until it reaches
zero and the node leaves the network. We experiment with
a network composed of 100 nodes, where part of the nodes
are of the HiC type and the rest are LoC nodes. We stream
a 1000 seconds H.264/AVC video sequence encoded at 1
Mbit/s (average generation size N=100) and we measure the
average lifetime of the network nodes, that is the average
amount of time between a node joining and leaving the
network. HiC nodes operate on an unbounded XOR budget
and with a recoding window size equal to the generation
size. Previous experiments showed that such configuration
enables low encoding overhead for a total complexity of
about 5000 XOR. LoC nodes operate with a limited energy
budget that we have set to 2500 XOR, that is half the budget
HiC nodes are expected to use.
We evaluate two different complexity adaptation strategies
for LoC nodes. The first strategy (No − Control) is a
baseline reference where the encoding window size is equal
to the generation size (W = N ) for both LoC and HiC
nodes. The second strategy (Control − Cr) consists in
reducing the encoding window size W of LoC nodes from
N to N/2: such strategy is expected to reduce the packet
recoding complexity and thus the average lifetime of the
network nodes. Figure 5 shows the average node lifetime
as a function of the percentage of LoC nodes present in the
network. The reference strategy No−Control results in the
lowest node lifetimes and the LoC nodes are never able to
watch the entire video streaming session. As expected, LoC
nodes leave the network roughly at 50% of the streaming
time as their XOR budget is half the required budget. The
Control − Cd strategy enables even low complexity nodes
to decode almost entirely the video sequence.
VI. CONCLUSIONS AND FUTURE WORK
We presented Band Codes (BC), a class of codes that
enable to control the computational complexity of network
coding independently at each node of the network. We
designed a simple all-push P2P video streaming protocol
that we use to show the benefits of BC-based network coding
over a realistic network composed of nodes with different
computational capabilities including mobile devices. We
show that BC achieve good encoding efficiency while they
allow to control the complexity of network coding, with
the tangible result to extend the operational life of battery-
powered devices such as mobiles. While we focused on the
P2P video streaming case, it is worth to notice that the
650
700
750
800
850
900
950
1000
10 20 30 40 50 60 70 80 90
Avera
ge N
odes L
ifetim
e [s]
Low-Complexity Nodes Ratio [%]
No-ControlControl-Cd
Figure 5: Average Lifetime of the Nodes as a Function of
the Complexity Control Strategy. Higher is better.
described approach to controlled-complexity network coding
can be applied to any application where computational
complexity matters.
ACKNOWLEDGMENTS
This publication is based on work performed in the
framework of the Project COAST-ICT-248036, which is
partially funded by the European Community.
REFERENCES
[1] C. Fragouli, J. Le Boudec, and J. Widmer, “Network coding:an instant primer,” Computer Communication Review, vol. 36,no. 1, pp. 63, 2006.
[2] M. Wang and B. Li, “R2: Random push with random networkcoding in live peer-to-peer streaming,” Selected Areas inCommunications, IEEE Journal on, vol. 25, no. 9, pp. 1655–1666, 2007.
[3] J. Heide, M.V. Pedersen, FH Fitzek, and T. Larsen, “Cautiousview on network coding-from theory to practice,” Journal ofCommunications and Networks (JCN), vol. 10, no. 4, pp. 403–411, 2008.
[4] D.E. Lucani, M. Medard, and M. Stojanovic, “Randomlinear network coding for time-division duplexing: field sizeconsiderations,” in Global Telecommunications Conference,2009. GLOBECOM 2009. IEEE. IEEE, 2009, pp. 1–6.
[5] M. Luby, “LT codes,” in IEEE Symposium on Foundations ofComputer Science, November 2002, pp. 271–280.
[6] S. Puducheri, J. Kliewer, and T.E. Fuja, “The design andperformance of distributed LT codes,” IEEE Transactions onInformation Theory, vol. 53, no. 10, pp. 3740–3754, Oct. 2007.
[7] P.A. Chou, Y. Wu, and K. Jain, “Practical network coding,”in Proceedings of the Annual Allerton Conference on Commu-nication Control and Computing. The University; 1998, 2003,vol. 41, pp. 40–49.
[8] C. Studholme and I.F. Blake, “Random Matrices and Codesfor the Erasure Channel,” Algorithmica, vol. 56, no. 4, pp.605–620, 2010.
[9] V. Bioglio, M. Grangetto, R. Gaeta, and M. Sereno, “On the flygaussian elimination for LT codes,” Communications Letters,IEEE, vol. 13, no. 12, pp. 953–955, 2009.
199