Network Coding Applications

Download as pdf or txt
Download as pdf or txt
You are on page 1of 135

Foundations and Trends

R
in
Networking
Vol. 2, No. 2 (2007) 135269
c _ 2007 C. Fragouli and E. Soljanin
DOI: 10.1561/1300000013
Network Coding Applications
Christina Fragouli
1
and Emina Soljanin
2
1

Ecole Polytechnique Federale de Lausanne (EPFL), Switzerland,
[email protected]
2
Bell Laboratories, Alcatel-Lucent, USA, [email protected]
Abstract
Network coding is an elegant and novel technique introduced at the
turn of the millennium to improve network throughput and perfor-
mance. It is expected to be a critical technology for networks of the
future. This tutorial deals with wireless and content distribution net-
works, considered to be the most likely applications of network coding,
and it also reviews emerging applications of network coding such as
network monitoring and management. Multiple unicasts, security, net-
works with unreliable links, and quantum networks are also addressed.
The preceding companion deals with theoretical foundations of network
coding.
1
Introduction
The emergence of network coding has brought about a metamorphosis
in thinking about network communication, with its simple but impor-
tant premise that in communication networks, we can allow nodes to
not only forward but also process the incoming independent informa-
tion ows.
Today, ten years after the emergence of the rst example of network
coding the buttery network, a lot is already known about network
coding, in particular for the case of network multicast. Network mul-
ticast refers to simultaneously transmitting the same information to
multiple receivers in the network. The fascinating fact that the origi-
nal network coding theorem brought was that the conditions necessary
and sucient for unicast at a certain rate to each of these receiver are
also necessary and sucient for multicast at the same rate, provided
the intermediate network nodes are allowed to combine and process
dierent information streams.
In the rst part of the tutorial [24], we examined in detail the
case of network multicast, mainly from a theoretical point of view.
We argued that network coding can and has been studied within a
number of dierent theoretical frameworks, in several research commu-
136
137
nities, most notably Information Theory and Computer Science. The
choice of framework a researcher makes most frequently depends on
his/her background and preferences. However, one may also argue that
each network coding issue (e.g., code design, throughput benets, com-
plexity) should be put in the framework in which it can be studied the
most naturally and eciently.
The goal of the second part of the tutorial, is to depart from the
multicast scenario, and discuss how ideas from network coding can have
impact on a number of new applications.
Today, more and more researchers and engineers ask what network
coding is, what its benets are, and how much it costs to design and
operate networks implementing network coding. At this point, we do
not have complete answers to these questions even in the case of net-
work multicast. For example, the minimum network operating costs
required to achieve maximum throughput are not known in general in
terms of the code alphabet size and the number of routers required to
code. (Multicast in networks with two sources and arbitrary number of
receivers is almost completely understood.)
Even less is known in the arguably practically more important
case of multiple unicasts, where we do not have a good understand-
ing of the theoretical limits and on how to achieve them. Today, not
even the throughput benets of coding have been completely charac-
terized. Although there are directed graph instances where the net-
work coding throughput increase is proportional to the number of
nodes in the graph, we are yet to nd an undirected graph instance
where network coding oers any benets. Another transmission sce-
nario for which benets of coding are not fully understood are net-
works with non-uniform demands. Studying general trac patterns is
complicated from the fact that optimal solutions may require exponen-
tial alphabet sizes and nonlinear operations. We discuss such issues in
Section 5.
Also, work is just beginning to address the problem of disseminating
correlated information over network coded systems, and more generally
the problem of distributed source coding. Such connections between
source coding and network coding is one of the topics that we will not
cover in this tutorial.
138 Introduction
The Microsofts Avalanche system has sparked the interest in
using network coding for content distribution. Various tests and
measurements have been carried out on experimental P2P systems,
and results together with numerous observed advantages of using net-
work coding were reported (see Section 3). Fine-tuning this approach
for specic applications, such as video on demand, and developing a
theory that would completely support the experimental evidence, is
still missing.
Network coding allows to take advantage of the broadcasting capa-
bilities of the shared wireless medium to provide benets in terms of
bandwidth, transmission power, and delay, as we will argue in Section 4.
Clearly to warranty the deployment of such techniques, the required
processing of data within the network needs to have low complexity and
power consumption. MITs COPE demonstrated that even when coding
operations are conned to simple binary additions obeying some addi-
tional constraints, there are still gains to be had in terms of throughput
and eciency of MAC layer protocols. The rst approaches on wireless
network coding ignored the interference of multiple broadcast transmis-
sions at a receiver. One can show that such strategies can incur signif-
icant losses in terms of achievable rates. Physical layer network coding
was a rst attempt to remedy this. Very recently, a linear deterministic
model was developed that captures the interactions between the sig-
nals in a wireless network, and was shown that for such models one can
obtain an information-theoretic max-ow min-cut result. Wireless and
sensor networks provide vast opportunities for applications of network
coding, and numerous and diverse problems are beginning to receive
attention, ranging from techniques such as cross layer design over issues
such as fairness and delay, to untuned radios and distributed storage.
Another line of recent work deals with networks in which some edges
are in a certain way compromised. The information carried by such
edges may be deleted, altered, or observed by an adversary whose infor-
mation gain we would like to limit. Information may also be lost due
to channel errors. Usually, no assumption is made on the choice of such
edges, but their number is limited. Network codes can be designed for
such networks, although some throughput has to be sacriced to accom-
modate for compromised edges. The maximum achievable throughput
139
is known for most of such scenarios, and it depends on the size of
the aected edge set. Algorithms for designing error-correcting, attack
resilient, and secure network codes have also been proposed, and we
discuss some of them in Sections 6 and 7. Very recently an elegant
approach to error correction was introduced based on the use of sub-
spaces. For some cases however, more related to security, the codes we
have today require huge alphabet size and are in general too complex
to implement. Thus design of practical codes is of interest. In general,
combining network coding with security is an area with many interest-
ing open questions. Information theoretic tools have also been useful
here to characterize achievable rates, for, up to now, specic sets of
networks with lossy links.
These days we are beginning to see network coding ideas being put
to use in problems other than increasing throughput in networks with
multiple users. There is evidence that network coding may be benecial
for active network monitoring, as well as passive inference of link loss
rates. Interestingly, in a system employing randomized network coding,
the randomly created linear combinations implicitly carry information
about the network topology, that we can exploit toward diverse appli-
cations. Use of network coding techniques can help to increase rates
of multicast switches, leverage the eciency of databases, and reduce
on-chip wiring. We briey discuss such applications in Section 9.
The network coding buttery has even reached quantum informa-
tion theorists (see Section 8). If we recall that in multicast communi-
cations networks, large throughput gains are possible with respect to
their (physical) transportation or uid counterparts because classical
information can be processed in a way that physical entities cannot, an
interesting question to ask is whether anything can be gained by allow-
ing processing of quantum information at nodes in quantum networks.
Although physical carriers of quantum information can be processed in
certain ways determined by the laws of quantum mechanics, two opera-
tions essential in classical information networking, replication (cloning)
and broadcasting, are not possible. However, approximate and proba-
bilistic cloning as well as dierent types of compression of quantum
states are possible, and have been used in attempts to nd a quantum
counterpart of network coding.
140 Introduction
The reason that network coding continues to be a very active eld
is clearly due to the benets it promises to oer. As we mentioned
earlier, we discuss in Section 4 how network coding can help to better
exploit shared resources such as wireless bandwidth, and to conserve
scarce resources, such as battery life. Moreover, it can oer benets
in terms of reliability against channel errors and security, as we dis-
cuss in Sections 6 and 7, respectively. Although all these are impor-
tant, perhaps the most interesting benets of network coding might
manifest in situations where the topology dynamically changes, and
operation is restricted to distributed algorithms that do not employ
knowledge about the network environment. This is the topic of the
following Section 2.
We hope that the research eort in the area of network coding will
continue to increase, bringing new exciting results and applications,
and making the results described in this tutorial very fast outdated.
2
Decentralized Network Operation
An interesting property of network operation using network coding is
that, for some trac scenarios, network coding eectively allows the
nodes of the network to achieve the optimal performance while oper-
ating in a decentralized fashion. This nds immediate application in
dynamically changing environments, where centralized network man-
agement and control has a prohibitive complexity, and thus network
nodes need to operate in a distributed fashion without using knowledge
of the overall network conguration. Such applications occur in peer-
to-peer (P2P) content distribution networks, that we examine next in
Section 3, and in wireless networks, where the network conguration
may change because nodes move, turn on and o, and roam out of
range, that we examine in Section 4.
In this section, we rst examine in more detail this property and
show it is directly implied by the information theoretic proof of the
main theorem in network coding. We then present the coupons collec-
tor problem, that is a direct manifestation of this property, and can
be used to study a number of dierent communication problems. The
coupons collector problem nicely captures for example the problem
of content distribution over P2P networks such as BitTorrent, where
141
142 Decentralized Network Operation
multiple copies of N le fragments exist within a network, and a copy
of the le is acquired by collecting these fragments. We close the section
by briey discussing distributed information dissemination protocols,
and network coding over random graphs.
2.1 A Distributed Protocol for the Min-cut
Max-Flow Theorem
Let G = (V, E) be a graph with the set of vertices V and the set of edges
E V V . Consider a node S V that wants to transmit information
to a node R V .
From the max-ow min-cut theorem (see part I), we know that if
the min-cut between S and R equals h, then information can be send
from S to R at a maximum rate of h. To route this information, if for
example we have a graph with unit capacity edges, we would need to
nd h edge disjoint paths. Once these paths are identied, each node
in such a path would forward information to the specic node that is
next in the path. If the network topology changes, we would need to
nd new paths, and redene the intermediate nodes operation.
Consider now operating this network using randomized network
coding. From the information theoretic proof of the main theorem (see
part I), we know that, if all nodes in the network do exactly the same
operation, randomly combine their incoming ows and transmit them
to their outgoing edges, no matter what is their position in the network
and what the network topology between the source and the destination
is, we can achieve the min-cut rate.
In other words, even if we have a random network between the
source and the destination, and we know nothing of its structure, pro-
vided the min-cut to the receiver is maintained, and allowing all nodes
to operate in exactly the same fashion, allows the receiver to get infor-
mation at the min-cut rate. This is not possible in the case of routing,
where information would be routed dierently, depending on the net-
work structure.
Additionally, all nodes in the network with min-cut equal to h would
inherently receive information at this rate. That is, we do not need to
dierentiate the network operation, depending on whether we have one
2.1 A Distributed Protocol for the Min-cut Max-Flow Theorem 143
or multiple receivers, provided that the transmitted rate is smaller or
equal to the smallest min-cut of each intended receiver.
The network depicted in Figure 2.1 illustrates these points. Assume
that at every time-slot, the receiver gets connected to a randomly cho-
sen set of three B-nodes. The min-cut between the source and the
receiver is always equal to three.
Case 1: The receiver R connects to a random set of three B-nodes.
Case 2: The receiver R connects to a specic set of three B-nodes.
Fig. 2.1 A random graph where at every time-slot, the receiver gets connected to a randomly
chosen set of three B-nodes.
144 Decentralized Network Operation
With routing, depending on which specic set of B-nodes the
receiver gets connected to, we would need to select an appropriate rout-
ing scheme, a set of edge-disjoint paths, as for example for the graph
realization in Figure 2.1-Case 2. This set of paths would change at every
time-slot. With randomized network coding, we can send the same lin-
ear combinations of the source symbols for all time slots and graph
realizations, and still ensure that the receiver receives information at
rate equal to three. That is, nodes A can perform exactly the same
operation, irrespective of the graph realization.
In fact, the network in Figure 2.1 provides an alternative proof for
the coupons collector problem,
1
that we are going to describe in the
next section and prove using simple combinatorics. In this sense, we
can think of the benets network coding oers for the coupons collector
problem as a corollary of the main theorem in network coding.
2.2 Collecting Coupons and Linear Combinations
In the coupon collector problem, a coupon (e.g., a beanie baby) is drawn
from a set of size N uniformly at random, and its copy is placed inside
a box of some commodity (e.g., a happy meal box). An entire edition
of boxes is created in this way and placed on the market (e.g., 2004
McDonalds Happy Meal Beanie Giveaway). A collector buys boxes in
order to collect the N coupons. He may have a limited budget or limited
time to spend acquiring his collection. Consequently, he is interested
to know the following:
(1) The sample size S
r
necessary for acquisition of r distinct
coupons, and, in particular, the sample size necessary for
acquisition of all N coupons.
(2) The waiting time W
r
to acquire the rth distinct element.
(3) The collection size C
s
(the number of dierent coupons) in a
sample of size s. This quantity is of particular interest when
the buyers resources (e.g., time, money) are limited and he
can acquire only so many coupon containing boxes.
1
Simply think of the h unit rate sources as coupons, and of the A
i
B
i
edges as boxes.
2.2 Collecting Coupons and Linear Combinations 145
Note that S
r
, W
r
, and C
s
are random variables; we next compute
their probability distributions. It is easy to see that once r 1 distinct
coupons have been collected, the random process of acquiring the rth
coupon is a Bernoulli process. In each trial the probability of success
(drawing the rth distinct coupon) is
p
r
= 1
r 1
N

1
N
, 1 r N.
Note that the larger the number of already acquired coupons the
smaller the probability of success. To acquire the rth coupon, our col-
lector thus has to make on the average
EW
r
=

n=1
k p
r
(1 p
r
)
k1
=
1
p
r
=
N
N r + 1
draws. Again note that the larger the number of already acquired
coupons the longer the time to wait to acquire a new one.
If the number of draws made (boxes bought) to acquire the rth
coupon is W
r
, the sample size at the point of acquiring the rth coupon
is S
r
= W
1
+ W
2
+ + W
r
. Thus, the average sample size necessary
for acquisition of r distinct coupons is
ES
r
= EW
1
+ W
2
+ + W
r

= N
_
1
N
+
1
N 1
+ +
1
N r + 1
_
Nlog
N + 1
N r + 1
,
where the bound is just the left Riemann sum of 1/x on the interval
[N r, N], and becomes tight for large N. Thus the average waiting
time to acquire N distinct coupons is bounded as
ES
N
Nlog(N + 1) ES
N
= NlogN + (N). (2.1)
When a collector has time or money constraints which will permit
him to acquire a sample of at most s coupons, he naturally wants to
know how many dierent coupons C
s
he has in this sample. To compute
the expected value of C
s
, we note that the probability of not having a
particular coupon in a sample of size s is
_
(N 1)/N

s
, and therefore,
EC
s
= N
_
1 (1 1/N)
s

N
_
1 e
s/N
_
. (2.2)
146 Decentralized Network Operation
Suppose now that we are to collect not coupons or any physical
commodity but information that can be duplicated, merged, or in gen-
eral, processed in a way that physical entities cannot. More precisely,
suppose that the goal is to collect N numbers x
1
, . . . , x
N
which are ele-
ments of some nite eld F
q
. Suppose that a coupon collector is given
a choice of two strategies to acquire the numbers. The rst strategy
is to draw a number with replacement, that is, the classical coupon
collection procedure. In the second strategy, as a result of each draw
a random linear combination over F
q
of the numbers is made and the
coecients and the result of combining are revealed to the collector.
Thus with each draw, the collector acquires a linear equation that the
unknowns x
1
, . . . , x
N
have to satisfy, and his goal is to acquire a set of
N linearly independent equations. If a draw results in a vector of equa-
tion coecients that is linearly independent of those already acquired,
we will say that the vector (coupon) was innovative. Similarly to the
classical coupon collector problem, we next compute the probability
distributions of the random variables S
c
r
and W
c
r
, where they now refer
to innovative rather than distinct coupons, and superscript c indicates
that coding is used.
We rst compute the distribution for the expected waiting time
W
r
to acquire the rth innovative coupon. Again, once r 1 innovative
coupons have been collected, the random process of acquiring the rth
equation is a Bernoulli process. In each trial, any of the q
N
vectors in
F
N
q
can be drawn. The trial is successful if the drawn vector is not one
of the q
r1
that belong to the (r 1)-dimensional space spanned by
the r 1 already acquired innovative vectors. Therefore,
p
c
r
= 1
q
r1
q
N
1
1
q
, 1 r N.
Although it is still true that the larger the number of already acquired
innovative coupons the smaller the probability of success, there is a
nontrivial lower bound on this probability independent of n which can
be made arbitrarily close to 1 by increasing the eld size q. To acquire
the rth innovative coupon, our collector has to make on average
EW
c
r
=

n=1
k p
r
(1 p
r
)
k1
=
1
p
r
=
q
N
q
N
q
r1
<
q
q 1
2.3 Gossip Algorithms for Information Dissemination 147
draws. We can now compute the average sample size necessary for
acquisition of r distinct coupons as
ES
c
r
= EW
1
+ W
2
+ + W
r

=
q
N
q
N
+
q
N
q
N
q
+ +
q
N
q
N
q
r1
,
and bound this quantity as
r < ES
c
r
< r
q
q 1
.
Thus the average waiting time to acquire N innovative coupons (which
is sucient to compute the unknowns x
1
, . . . , x
N
) is
ES
c
N
N as q . (2.3)
The power of coding is seen by comparing this result with its coun-
terpart (2.1) for the classical coupon collector problem. Again, ES
N

can be made arbitrarily close to N by increasing the eld size q. Note,


however, that the achieved reduction of the average waiting time comes
at the price of increased complexity in having to solve a system of linear
equations over a larger eld.
Increased computational complexity is not the only drawback of
using coding for information acquisition. When the collectors resources
allow him to buy only N or fewer coupons, then he may not be able
to recover any of the numbers x
1
, . . . , x
N
over any nite eld. On the
other hand, in the classical case (2.2), a sample size of N coupons will
result in N
_
1 e
1
_
> N/2 distinct coupons on the average.
2.3 Gossip Algorithms for Information Dissemination
Gossip algorithms are used to disseminate information in a distributed
fashion, and, as we will discuss, are closely connected with the coupons
collector problem.
Consider a network represented as a graph G = (V, E) with n = [V [
vertices. Each vertex has a message that it wants to disseminate to all
other nodes in the network, using a gossip algorithm. The algorithm
consists of two parts. The gossip mechanism determines how nodes
establish a communication connection. The gossip protocol determines
what information the nodes exchange during their communication.
148 Decentralized Network Operation
(1) Gossip mechanism: Nodes communicate with each other in
rounds. At each round, each node i selects with probability
P
ij
a node j of its neighbors. Push algorithms have node i
send one message to node j, while pull algorithms have node
i receive one message from node j.
(2) Gossip protocol: We discuss two cases.
(a) Routing: each node required to transmit at round t
selects uniformly at random one from the messages
it has received up to round t 1 and sends it.
(b) Random network coding: each node required to trans-
mit at round t sends a uniform at random linear com-
bination over F
q
of the messages it has received up
to round t 1.
The gure of merit of these algorithms is speed of dissemination: how
many rounds are required so that all nodes receive all n messages, with
high probability.
In the case where the communication graph is complete (every node
has all other nodes as neighbors), and P
ij
=
1
n1
for all i and j, the
problem of disseminating the messages can be reduced to the coupons
collector problem. Indeed, consider for example the pull algorithm, and
the case of routing. Each specic node i acts as the coupon collector
that, at each round, is going to receive uniformly at random one of
the n 1 coupons that its neighbors have. Thus, each node will on the
average need (n 1)log(n 1) + (1) rounds in order to receive all n
messages. Consider now use of network coding. It is easy to show that
the dissemination can be completed after (n) rounds. A similar order
benet can be shown in the case of expander graphs. However, recent
work has shown that for example over the square lattice graph, where
each node has four neighbors, network coding can only oer constant
factor benets, as we discuss in Section 4.
In general, we can relate the speed of dissemination to properties of
the network graph. Let
T() = inft : Pr(any one of the receivers cannot decode) <
2.4 Network Coding Over Random Graphs 149
Also, dene
k
as

k
= min
SV,0<[S[k

iS,j / S
P
ij
[S[
and
=
n

k=1
k

k
.
We give without proof the following theorem.
Theorem 2.1. Using random network coding for information dissem-
ination allows to achieve
T() = O
_

n
log
1

_
.
2.4 Network Coding Over Random Graphs
Consider a random graph G = (V, E) that has a xed set of vertices,
but the set of edges E changes according to some random process, for
example, during each time-slot. The diculty of using network coding
over a random graph for multicasting lies in that the min-cut between
the source and the receivers might change during the dierent graph
realizations. Up to this point,
2
we do not have yet an exact characteri-
zation of what rates we can achieve toward receivers that have dierent
min-cut; moreover, once we characterize such rates, we would also need
to nd coding schemes that achieve them. In particular, it is not clear
how well a decentralized protocol would perform.
However, in several well-behaved random graph models, the min-cut
values tend to concentrate around an average value with high proba-
bility. In such cases, and assuming that at each time-slot we get a
independent random graph realization, we can combine coding at the
source (see part I, Section 3.6.3) and randomized network coding, to
transmit to the receivers at a rate very close to the average min-cut
value, asymptotically over time, and with probability of error going to
zero (averaged over the receivers).
2
Current date Summer 2007.
150 Decentralized Network Operation
Notes
The coupon collectors problem is one of the most popular topics in
discrete probability, and its description can be found in many stan-
dard textbooks on probability (e.g., [21, Ch. 9]) or algorithms (e.g.,
[61, Ch. 3]). The observation that network coding oers benets for
this problem was originally made by Deb et al. [12]. Information dis-
semination using network coding was studied by Mosk-Aoyamam and
Shah [60]. Results for network coding performance over random graphs
were investigated for example by Ramamoorthy et al. [66].
3
Content Distribution
Content Distribution (CD) on the Internet refers to the delivery of dig-
ital data such as text and multimedia les, software, and streaming
audio and video to a large number of users in a network. Today it con-
stitutes the vast majority of Internet trac. The traditional approach
to large scale content distribution relies on clientserver systems in
which the clients directly request and receive the content from the
servers. To minimize the response time to clients requests as well as
to maximize the number of processed requests, a Content Distribution
Network (CDN) geographically distributes a collection of server sur-
rogates that cache pages normally maintained in some set of backend
servers. Commercial CDNs (e.g., Akamai and Digital Island) provide
this service for many popular commercial sites (e.g., CNN and The
New York Times).
Peer-to-peer (P2P) networks oer an alternative distributed and
cooperative architecture for content distribution. These are non-
hierarchical computer networks that rely on the computing power and
bandwidth of all the participants in the network rather than in a rela-
tively low number of servers and clientserver relationships. In a P2P
network, all nodes receiving information assist in further distribution
151
152 Content Distribution
of the content to other nodes by acting themselves as servers. Thus the
network is inherently scalable: the nodes that join the network bring in
not only new demands but also additional computing power and band-
width. Moreover, there no longer exists a single point of failure (server
crashing) in the system, as the information is distributed among mul-
tiple nodes throughout the network.
Having thus addressed the problem of ensuring sucient network
resources, P2P networks still face the challenge of how to optimally
use these resources in a decentralized and low complexity manner. For
example, optimal information routing is a dicult problem in such
large scale networks that change very fast over time (with thousands
of nodes joining and leaving within a short span of time) and where,
moreover, nodes only have local information about the network.
BitTorrent is an example of a P2P system that uses swarming tech-
niques to simultaneously disseminate dierent fragments of a le among
peers. Acquiring a le by collecting its fragments can be to a certain
extent modeled by the classic coupon collector problem, which indi-
cates some problems such systems may have. For example, probabil-
ity of acquiring a novel fragment drops rapidly with the number of
those already collected. In addition, as the number of peers increases,
it becomes harder to do optimal scheduling of distributing fragments
to receivers. One possible solution is to use a heuristic that prioritizes
exchanges of locally rarest fragments. But, such fragments often fail to
match those that are globally rarest. The consequences include, among
others, slower downloads and stalled transfers.
The Microsoft Secure Content Distribution (MSCD), also known
as Avalanche, is an example of a P2P system attempting to alleviate
such problems using network coding. Instead of distributing the origi-
nal le fragments, peers produce linear combinations of the fragments
they already hold. Such combinations are distributed together with a
tag that describes the coecients in the combination. When a peer has
enough linearly independent combinations of the original fragments,
it can decode and build the original le. Many of the advantages of
Avalanche over BitTorrent can be understood from our previous discus-
sion on collecting numbers as coupons vs. collecting numbers through
their linear combinations.
3.1 BitTorrent Solution for P2P Content Distribution 153
We continue this section by rst outlining the BitTorrent solution
for P2P content distribution, since Avalanche adopts a number of ideas
from this solution. We then explain how Avalanche works, its advan-
tages over BitTorrent, and challenges it still faces.
3.1 BitTorrent Solution for P2P Content Distribution
3.1.1 Topology Management
For each le to be distributed, an overlay network of peers (nodes)
is formed. Besides the general peers, there are some special nodes in
this distribution network. These are the registrar, which enables peer
discovery and keeps track of the topology, the logger, which aggregates
peers and registrars trace messages, and the seeds, which are peers
that have acquired the complete content.
The origin of the le (source) is the rst node in the network. To join
the network, peers contact the registrar, and are connected to a small
number (usually 48) neighbors. The neighbors for each arriving node
are chosen uniformly at random among already participating nodes,
which accept the solicited connection unless they have already reached
their maximum number of neighbors. Each node keeps local topological
information, namely, the identity of the neighbors it is directly con-
nected to. The registrar keeps track of the list of active peers. A peer
may join and leave the distribution network at any time.
To mitigate formation of isolated peer islands (clusters), nodes
periodically drop one neighbor and reconnect to a new one, asking
the registrar to randomly select the new neighbor from the active
peers list.
3.1.2 Content Propagation
The source splits the le to be distributed into N blocks. Each peer
in possession of a block acts as a server for that block. The func-
tionality of a peer consists of two parts: network transport and con-
tent management. Network transport maintains the local topology as
described above. Content management maintains the actual content
transfer.
154 Content Distribution
Which of its blocks a peer transfers is decided based for example on
one of the following common content propagation strategies:
a random block in the beginning of the distribution, and
a local rarest after a few blocks have been downloaded, or
a global rarest in small P2P networks.
3.2 Microsoft Secure Content Distribution
Microsoft Secure Content Distribution (MSCD), that used to be called
Avalanche, follows BitTorrent to a large extent. It follows, for example,
the same basic principles for topology management. Here, however,
randomized network coding is employed for content distribution, as is
described in the following.
3.2.1 Content Propagation
The source splits the le to be distributed into N blocks (10002000 in
experiments). These blocks are grouped into generations (segments),
where each generation contains h blocks. Only packets in the same
generation are allowed to be linearly combined. Each packet is assumed
to consist of symbols over a nite eld F
q
. This simply means that,
for q = 2
m
, a packet of length L bits is considered to contain L/m
symbols over F
2
m, where sets of m bits are treated as one symbol over
F
2
m. Typically, L is 1400 8 bits, and m is 8 or 16. Note that linear
combining occurs symbol wise: each symbol in a packet is multiplied by
the same number in F
q
prior to adding to other (multiplied) packets.
The source transmits linear combinations of the original h le pack-
ets in a generation, while peers recursively and uniformly at random
combine their collected packets and create new coded packets that they
propagate through the network. Thus each coded packet carries a lin-
ear combination of the original le packets. This linear combination is
described by the (global) coding vector of size h symbols over F
q
, that
species which linear combination each coded packet carries. The gen-
eration tag and the coding vector are appended in the packet header.
For generation size h, the overhead caused by coding is h/L. For a
generation of size 50, the typical overhead is 50/1400 3%.
3.2 Microsoft Secure Content Distribution 155
Nodes collect packets with linearly independent coding vectors.
A packet is innovative for a node v if its coding vector is not in the span
of the coding vectors of the packets already available at v. A node with
h linearly independent packets of the same generation can decode the
h L/m symbols of the original le in that generation. To decode the
original symbols, for each symbol position i, i = 1, . . . , L/m, the node
solves the following system of linear equations:
Cx
i
= b
i
, i = 1, . . . , L/m, (3.1)
where
x
i
is the h 1 vector of the unknown content symbols at
position i,
C is the h h matrix whose rows are the coding vectors of
the h linearly independent packet, and
b
i
is the h 1 vector of the packets symbols at position i.
3.2.2 Propagation Protocols
Peers who need to receive additional packets register demands with
their neighbors. A peer with a new packet and registered demands
acts as a sender, and peers who have registered demands with the
sender become receivers. The transmission of packets proceeds as fol-
lows. The sender generates random coecients that it intends to use
for linear combining of its packets to form a new packet to be sent
to the receiver. Based on these coecients and the coding vectors of
its packets, the sender then computes the corresponding coding vec-
tor of the new packet, and sends only this vector to the receiver. The
receiver, if it nds the coding vector innovative, requests the packet
from the sender, who only then linearly combines its packets using the
previously generated coecients, and sends the resulting packet to the
receiver who requested it.
In another approach, it is arranged that the peers know the coding
vectors of their neighbors. For each neighbor, a node computes the
rank of the matrix consisting of his and the neighbors coding vectors.
This way, a node can learn not only who of its neighbors could provide
156 Content Distribution
innovative packets but also how many innovative packets each neighbor
could provide, and, thus, he can generate his requests accordingly.
Recall that in BitTorrent, the sender transmits either random, local
rarest, or global rarest of his packets. In Avalanche, on the other hand,
the sender does not estimate its packets levels of representation in
the neighborhood or in the network, but generates a random linear
combination of all its packets.
3.2.3 Advantages
Avalanche exhibits a number of advantages over P2P distribution sys-
tems which do not use coding. Many of them can be understood from
our previous discussion on collecting numbers as coupons vs. collecting
numbers through their linear combinations. We have seen that the lat-
ter collecting strategy (which amounts to coding) guarantees a much
faster acquisition of packets. In addition to the throughput increase,
coding provides benets in a number of P2P networks phenomena
arising because of the dynamics of peer participation, that is, random
arrivals, departures, and connectivity. To help appreciate such bene-
ts, we will use as an example the P2P distribution network depicted
in Figure 3.1, that consists of two clusters. The source S has h packets,
x
1
, . . . , x
h
, to distribute to all nodes. Consider for example node C,
that receives packets from its parent nodes A and B. With network
coding, node C will, with high probability, receive innovative packets
from both its parents. Without network coding, on the other hand, to
ensure that node C receives innovative information from its parents,
we need to ensure that nodes A and B collect disjoint subsets of source
packets, which would require centralized control.
Fig. 3.1 The source S has h packets to distribute over a P2P network.
3.2 Microsoft Secure Content Distribution 157
We next discuss a number of coding benets in P2P networks. Some
of them can be understood keeping the simple picture of the network
in Figure 3.1 in mind.
3.2.3.1 Reliability
In P2P networks, packets get lost because of node departures and trans-
mission losses. Without coding, some fragments of the le that is being
distributed become rare. Such fragments can be lost forever, if the few
nodes that possess them leave the distribution network. With coding,
because of linear combining, the original le fragments are represented
in a larger number of packets, and thus the probability of any particular
fragment becoming rare is reduced.
Figure 3.2 examines whether peers are able to complete download-
ing a le, in the case where the server leaves after distributing one
full copy of the le and 5% redundant packets. Peers leave immedi-
ately after downloading the le. The simulation results compare three
systems: one that employs network coding (NC), one where the server
100 150 200 250 300
0
50
100
150
200
250
300
350
400
450
500
Time
#

o
f

P
e
e
r
s

F
i
n
i
s
h
e
d
NC
FEC
Simple
Fig. 3.2 Number of nodes that are able to nish downloading a le, in a system where the
server leaves after transmitting the whole le and 5% redundant packets. Total number of
peers is 500. This gure is provided by courtesy of the authors in [27].
158 Content Distribution
sends packet encoded with a Forward Error Correction (FEC) scheme
but peers simply forward packets, and a simple scheme where data
is send uncoded by the server. Note that, unlike network coding, in
the other two schemes the majority of nodes are not able to complete
downloading.
3.2.3.2 Free Riding
Free riders are peers that use the network resources without contribut-
ing their own. BitTorrent mitigates this problem by the so called tit-
for-tat mechanism, which allows download at a rate proportional to
the rate of upload. Such strategies penalize new users joining the dis-
tribution network, who, naturally, may not have innovative information
for their neighbors. Coding helps alleviate this situation, since a coded
packet will be with higher probability useful to a larger number of
nodes.
3.2.3.3 Churn
Churn in P2P networks, in general, refers to the independent arrivals
and departures of numerous peers, and is a source of several prob-
lems. For example, imagine a scenario in which node A has downloaded
80% of the le when a new node B joins the network, and requests to
get packets from their common neighbors. As a result, packets that
A already has get downloaded again through some commonly shared
paths, leading to increased delay for node A. Using network coding
reduces this problem, since all transmitted packets can be made to
carry information useful to a large number nodes.
3.2.3.4 Nodes Behind Walls
Network Address Translation (NAT) devices and rewalls which do
not allow incoming connections create unreachable peers. Unreachable
peers cannot exchange content with each other and do not share con-
tent which they advertise. A packet advertised by such nodes may
become rare, because the packet is not requested from the source, under
the false assumption it is available. As a result, both the download
3.2 Microsoft Secure Content Distribution 159
performance of the nodes behind walls and the overall system through-
put is not as large as it could be based on the total existing resources
in the network.
However, it has been observed in experiments with network cod-
ing that the throughput under this way reduced connectivity is fairly
close to that achieved with full connectivity, and that Avalanche sys-
tems perform surprisingly well even with a large number of unreachable
peers.
3.2.3.5 Clustering
Clusters arise in P2P connectivity graphs because of the way these
networks are formed. Reconguration then becomes minimal because
clustered peers have a large number of neighbors and will not accept
new requests for connection. In such scenarios, connectivity and band-
width are ample within a cluster but very limited between dierent
clusters. It has been observed in experiments that coded systems per-
form much better than uncoded in these circumstances. The reason is
that without coding, some packets are transmitted multiple times over
the cuts between clusters, thus wasting precious capacity that could
have been used to transmit coded packets likely to be innovative for a
larger number of nodes.
3.2.3.6 Passive Topology Management
The performance of P2P networks depends critically on the good con-
nectivity of the overlay topology, and as mentioned earlier can be sig-
nicantly aected by the formation of clusters.
Randomized rewiring, where nodes are periodically allocated new
neighbors chosen randomly among the active peers, oers a simple solu-
tion to this problem. However, it results in a xed average number of
reconnections per node independently of how good or bad the formed
network topology is. Thus to achieve a good, on the average, perfor-
mance in terms of breaking clusters, it entails a much larger number of
rewiring and requests to the registrar than required, and unnecessary
topology changes. Topology rewirings incur delay, require authentica-
tion, and increase vulnerability to security attacks.
160 Content Distribution
For P2P networks employing randomized network coding, we can
use the structure of the exchanged packets to passively infer clus-
ter formation. Such information can be used to break clusters, using
the minimum number of topology rewirings. In particular, it can be
used to build algorithms that (i) identify and re-connect only nodes
whose re-wiring leads to breaking of clusters, (ii) use a variable num-
ber of reconnections, adapting (without centralized knowledge) to the
requirements of the network topology, and (iii) are peer-initiated and
scalable.
The example in Figure 3.1 can be used to illustrate the basic
approach. When node D receives a coded packet from node C, it will
forward a linear combination of the packets it has already collected to
nodes E, F, and G. Now each of the nodes F and E, once it receives
the packet from node D, it also attempts to send a coded packet to
node G. But these packets will not bring new information to node G,
because they will belong in the linear span of coding vectors that node
D has already received. More formally, the coding vectors nodes D,
E, and F will collect will eectively span the same subspace; thus the
coded packets they will oer to node G to download will belong in
signicantly overlapping subspaces and will thus be redundant. Node
G can use this passively collected information, to initiate a topology
change, by contacting for example the registrar, or by locally exchang-
ing messages with its neighbors.
3.2.4 Challenges
3.2.4.1 Encoding/Decoding Complexity
With network coding, peers must have the capability to perform arith-
metics over nite elds in real time, in order to examine whether a
packet is innovative as well as to further encode and forward, or decode
data. In particular, peers will perform the following:
O(h
2
) operations in F
2
m for linear combining of packets
within each generation of size h.
O(m
2
) binary operations for multiplications and inversions
over F
2
m.
3.2 Microsoft Secure Content Distribution 161
O(h
3
) operations over F
2
m for matrix inversions via Gaussian
elimination.
Moreover, if while decoding or encoding the peer happens to have small
memory, the speed of these operations may be further limited by the
I/O devices speed.
3.2.4.2 Security
Coding across packets makes the overall system more vulnerable to
poisoning attacks from malicious peers. To see this, consider the system
of equations (3.1) for some 1 i L/m. A node will correctly decode
the original le symbols at position i (i.e., recover symbols x
i
in (3.1)),
only if all h equations are trustworthy (i.e., values of b
i
and C in (3.1)
are correct). Even if only one of the equations is false, the solution may
result in false values for all h symbols in the vector x
i
. Consequently,
the network becomes more vulnerable to DoS attacks. In addition, since
multiple packets get combined, a single undetected corrupted packet
can spread the infection very fast through the network. Therefore, it
is important to put in place mechanisms that verify that the received
packets are not corrupt.
In current P2P systems, the source cryptographically signs its data
packets to ensure their integrity, for example by hashing the pack-
ets content and distributing the hashes through a trusted vein. This
method will not work when network coding is used, where peer nodes
create new encoded packets. To ensure the packets integrity in net-
work coded P2P networks, one approach uses special homomorphic
hash functions. These have the property that the hash function cor-
responding to a linear combination of packets can be computed from
the hash functions of the individual packets. This is a computationally
demanding approach, and some other lower complexity solutions have
also been proposed.
3.2.4.3 Peer Heterogeneity
The nodes in distribution systems have diverse capabilities. In terms
of the link capacity, most of the users are slow, that is, they access
162 Content Distribution
the network through e.g., dial-up and ADSL connections. On the other
hand, the users accessing the network from university and corporate
systems are fast. In a P2P environment, fast nodes are allowed to
have more neighbors to fully utilize their extra capacity. However,
the higher the number of neighbors feeding a fast node, the harder
it is for the large set of neighbors to eciently provide useful data
in an uncoordinated fashion. Naturally, network coding is expected to
perform better in these circumstances, and this has been conrmed
in experiments.
However, nodes have heterogeneous not only access capacities, but
also computational power, battery life, content quality or demands.
For example, a user may be willing to spend only a limited time in the
distribution looking to acquire only the beginning of a movie, or only its
low resolution version. Coding, in general, may be counterproductive in
such scenarios. To see that, recall our information dissemination study
in the previous section. When the collectors resources allow him to
buy only h or fewer linear combinations (packets), then he may not be
able to recover any of the numbers x
1
, . . . , x
h
over any nite eld. On
the other hand, in the classical case, a sample size of h coupons will
result in more than h/2 distinct coupons on the average.
Notes
There is vast literature on content distribution networks. See, for exam-
ple [37] for comprehensive information on many aspects of CDNs and
[80] for a survey on the technical aspects of replication. Surveys on P2P
systems can be found in e.g., [2, 5]. Some P2P systems have already
been successfully deployed on the Internet; see [29] for a description of
Gnutella, [62] for Napster, and [10] BitTorrent. Several P2P systems
have been proposed in academia with varying goals and architectures
[9, 49, 59, 69, 74, 82, 93]. The MS Avalanche system and use of network
coding for content distribution has been proposed by Gkatnsidis and
Rodriguez [27], and various tests and measurements of this system are
described in [28]. These papers also present some approaches to han-
dle certain security issues in Avalanche. A practical scheme, based on
homomorphic hashing, that enables a downloader to perform on-the-y
3.2 Microsoft Secure Content Distribution 163
verication of erasure-encoded blocks is described in [48]. Passive
inference of clusters and topology management for network coded P2P
systems has been proposed by Jafarisiavoshani et al. [40]. An alterna-
tive approach to uniformly at random combining of packets for P2P
distributed storage systems has recently been proposed by Dimakis
et al. [13].
4
Network Coding for Wireless Networks
Two main features that distinguish wireless from wireline networks are
the shared medium and time variability. By increasing its transmission
power, a node will eventually reach sucient signal-to-noise ratio to be
able to transmit to every other node in the wireless network, but it will
at the same time create signicant interference to other nodes. More-
over, channels vary over time because of, for example, fading or node
mobility. Finally, resources such as computational power or battery life
are often limited in wireless networks.
Most networking protocols operating today use the wireless medium
to create point-to-point connections, and do not exploit the broadcast-
ing capabilities of wireless transmission. The main focus of network
design has been on simplicity of operation and scalability. On the other
hand, recent work on information theory of, for example, relay net-
works shows that signicant savings of physical resources can be made
by broadcasting with appropriate coding schemes. However, the com-
plexity of the proposed coding schemes (such as random hashing) is
very high, and these schemes, in general, do not scale gracefully with
the size of the network.
164
165
Network coding which exploits the broadcasting nature of wireless
medium is considered to be a technologically sensible step from the
state of the art wireless systems toward practical information theoretic
based solutions. Indeed, algebraically superimposing signals is a form
of hashing, which allows to take advantage of the broadcasting nature
of the wireless medium; it is also simple enough to be implemented in
practice. In a sense, network coding over wireless has a large overlap as
an area with network information theory as well as network algorithms.
Ad-hoc wireless and sensor networks are expected to oer one of the
rst practical applications for network coding, as network environments
with less rigid protocols.
The work in wireless networks started by illustrating benets
network coding can oer by taking advantage of the broadcasting
capabilities of the shared wireless medium to provide benets in terms
of bandwidth, transmission power, and delay, as well as adaptability
to dynamically changing environments. We discuss such benets for
a number of trac patterns and example network congurations in
Sections 4.14.4. MITs COPE demonstrated that even when coding
operations are conned to simple binary additions obeying some addi-
tional constraints, there are still gains to be had in terms of throughput
and eciency of MAC layer protocols.
These rst approaches treat interference at a receiver as detrimental
to the systems performance, and rely on appropriately scheduling the
broadcast transmissions to minimize it. One can show that such strate-
gies can incur signicant losses in terms of achievable rates. Physical
layer network coding, described in Section 4.5, was a rst attempt to
remedy this in a heuristic fashion. Very recently, a linear deterministic
model was developed that captures the interactions between the sig-
nals in a wireless network, and was shown that for such models one
can obtain an information-theoretic max-ow min-cut result, which we
briey describe in Section 4.6.
Wireless and sensor networks provide vast opportunities for appli-
cations of network coding, and numerous and diverse problems are
beginning to receive attention. We discuss some sensor network appli-
cations in Section 4.7, and conclude the section by briey discussing
challenges and open problems.
166 Network Coding for Wireless Networks
4.1 Energy Eciency
Energy eciency of transmission schemes directly aects the battery
life of wireless nodes, and is therefore a critical design parameter for
wireless ad-hoc and sensor networks. We here discuss how combining
broadcasting with coding may lead to more energy ecient schemes.
We have already seen one such example in [24], Section 1 (see also
Figure 4.9), where network coding was used to make each broadcast
transmission maximally useful to all receiving nodes.
4.1.1 Cost LP Formulation for Broadcasting
Optimizing a multicast session for energy eciency can be formulated
as a cost minimizing linear program, whose solution can be found in
polynomial time.
The rst step is to model the broadcasting constraint using a net-
work represented as a graph. To do so, we can replace every vertex v
of the graph with two vertices v
I
and v
O
and connect them by an edge
directed from v
I
to v
O
, as depicted in Figure 4.1. The In(v) incoming
edges to v end in v
I
, and the Out(v) outgoing edges of v, originate
in v
O
. All edges of the graph have unit capacity. The next step is to
Fig. 4.1 Modeling broadcast transmissions on a graph.
4.1 Energy Eciency 167
associate cost with using the edge (v
I
, v
O
) to model the energy expen-
diture during transmission at node v. We can now directly use on this
modied graph the Network Coding Multicast with Cost LP described
in [24], Section 3.5.
4.1.2 Benets for All-to-All Transmission
We next discuss the benets network coding oers in the wireless net-
work scenario in which each node is a source that wants to transmit
information to all other nodes. In particular, we calculate the benets
for the ring and square grid networks. Such all-to-all communication
is traditionally used during discovery phases, for example by routing
protocols. More recently, it has been described as a key mechanism for
application layer communication in intermittently connected ad-hoc
networks. It is also directly related to the problem of content distri-
bution. As our gure of merit, we use energy eciency dened as the
number of transmissions required for an information unit to reach all
nodes in the network.
Theorem 4.1. Consider a xed ad-hoc wireless network where each
nodes broadcast is successfully received by a constant number of neigh-
bors. For the application of all-to-all transmission, network coding
oers constant energy eciency benets.
Proof. Let n be the number of nodes in the network, and N
max
the
maximum number of neighbors a node can have within its transmission
radius. The proof follows from two observations:
(1) There exists a routing scheme (not necessarily optimal) that
achieves the goal in n
2
broadcasts. This is because each of the
n nodes needs to broadcast a message to its neighbors at most
once for each of the n messages that are to be disseminated.
(2) Any network coding scheme will require at least n
2
/N
max
transmissions. This is because each of the n nodes needs to
receive n innovative transmissions, and each broadcast trans-
mission brings innovative information to at most N
max
nodes.
168 Network Coding for Wireless Networks
For canonical congurations, such as networks where nodes are
placed on a lattice, we can exactly calculate the benets in terms of
energy eciency that network coding can oer. We illustrate this claim
by two examples: the ring network and the rectangular grid network.
Theorem 4.2. Consider a ring network where n nodes are placed on
equal distances on a circle, and each node can successfully broadcast
information to its two closest neighbors. Let T
nc
and T
w
denote the
minimum possible number of transmissions required for an informa-
tion unit to reach all nodes in the network, with and without network
coding, respectively. Then
(1) T
w
n 2, and there are schemes that achieve the lower
bound,
(2) T
nc
(n 1)/2, and there are schemes that achieve the
lower bound.
Thus, lim
n
Tnc
Tw
=
1
2
.
The results do not change if we increase the transmission range.
An example of such a network for n = 8 is depicted in Figure 4.2.
Fig. 4.2 Circular network with n = 8 nodes.
4.1 Energy Eciency 169
Proof. To prove claim (1), we can consider w.l.g a single source
transmitting to n 1 receivers. When limited to forwarding, the rst
transmission reaches two receivers. Each additional transmission can
contribute one unit of information to one receiver. A simple ooding
algorithm achieves the lower bound.
To prove claim (2), we notice that since a node can successfully
broadcast to its two nearest neighbors, each broadcast transmission
can transfer at most one innovative packet (information unit) to two
receivers. We have n 1 receivers to cover and thus the best energy
eciency we may hope for is (n 1)/2 per information unit. The
following scheme achieves the lower bound. Assume that n is an
even number. Partition the n nodes in two sets A =
_

1
, . . . ,
n
2
_
and
B =
_

1
, . . . ,
n
2
_
of size n/2 each, such that every node in A has as
nearest neighbors two nodes in B, as depicted in Figure 4.2. It is sucient
to show that we can broadcast one information unit from each node in
set A to all nodes in sets A and B using T
nc
= n/2 transmissions per
information unit. We can then repeat this procedure symmetrically to
broadcast the information from the nodes in B. Let
_
x
1
, . . . , x
n
2
_
denote
the information units associated with the nodes in A. The following
algorithm operates in n/4 steps, where in each step rst nodes in A
transmit and nodes in B receive and then nodes in B transmit and nodes
in A receive.
Network Coding for Circular Grid
Step k:
Phase 1:
If k = 1, each
i
A transmits its information symbol x
i
.
If k > 1, each
i
A transmits the sum of the two information
symbols it received in phase 2, step k 1.
Phase 2:
Each
i
B transmits the sum of the two information
symbols it received in phase 1, step k.
At step k, Phase 1, each node in B is going to receive two new infor-
mation symbols from the two sources that are 2k 1 nodes away along
170 Network Coding for Wireless Networks
the circle.
1
In Phase 2, each node in A is going to receive two informa-
tion units from the sources that are 2k nodes away. Since the network
coding algorithm concludes in at most n/4 steps and ensures that each
broadcast transmission brings new information to two receivers, the
result follows.
Energy eciency benets for square grid networks can be calculated
by using similar arguments.
Theorem 4.3. Consider the optimal routing and network coding
strategies that minimize the number of transmissions for the all-to all
problem over a square grid network with n nodes where each node can
successfully broadcast information to its four nearest neighbors. Then
lim
n
T
nc
T
w
=
3
4
.
It is interesting to note that, a very simple randomized scheduling,
such as the one described below, achieves the optimal network coding
performance.
Distributed Network Coding for the Square Grid Network
Iteration 1:
Each node broadcasts the information symbol it produces to its
four closest neighbors.
Iteration k:
Each node transmits a linear combination of the source symbols
that belongs in the span of the coding vectors the node has
received in previous iterations.
Note that, the benets calculated in Theorem 4.3 assume perfect cen-
tralized scheduling, for the case where we do not use network coding.
1
For simplicity of notation, we assume that all indices are mod
n
2
. Also note that for n 1
odd we cannot achieve (n 1)/2 transmissions but n/2, however this does not aect the
order of the result.
4.1 Energy Eciency 171
4.1.3 Distributed Algorithms For All-to-All Transmissions
Here we describe a very simple protocol for all-to-all transmissions for
arbitrarily xed networks where nodes do not have any a priori knowl-
edge about the network topology. For example, we may assume that
the network nodes are randomly placed on the surface of a disk. To
account for these factors, and given the randomized nature of our net-
work topology, we use a protocol in analogy to probabilistic routing
that forwards packets with a certain probability, according to a forward-
ing factor d
v
dierent for every node v, as described in the following
Algorithm.
Forwarding Factor d
v
Each node maintains a send counter s, that is initially equal to zero.
For each source symbol that originates at a node v, the
node increases s by max(1, d
v
|), and it further increases
s by one with probability p = d
v
max(1, d
v
|) if p > 0.
Similarly, when a node v receives an innovative symbol,
it increases s by d
v
|, and it further increases s
by one with probability p = d
v
max(1, d
v
|) if p > 0.
If s 1, a node attempts to broadcast a linear combination
over the span of the received coding vectors. Each transmission
reduces the send counter s by one.
In addition to updating the send counter, nodes can also keep
track of received non-innovative packets. For each c non-
innovative packets a node receives, the send counter s is
decremented by one.
If we have some topological information, we can set the value of d
v
to help to adapt to irregularities of the network topology. A heuristic
choice that resulted in good performance is to set vs forwarding factor
inversely proportional to the number N(v) of 1-hop neighbors, that is,
d
v
= k/[N(v)[, for k some constant.
172 Network Coding for Wireless Networks
0
0.2
0.4
0.6
0.8
1
1 0.5 0.25 0.125 0.0625 0.0312
P
a
c
k
e
t

D
e
l
i
v
e
r
y

R
a
t
i
o
Forwarding Factor
Network Coding
Probabilistic Routing
Fig. 4.3 Packet delivery ratio for probabilistic network coding and routing. All nodes use the
same forwarding factor. With network coding, the transition to high packet delivery ratios
occurs for a much lower forwarding factor, and thus, a smaller number of transmissions.
Figure 4.8 shows simulation results for a network with n = 144 nodes
that are placed uniformly at random on a simulation area of 1500m
1500m. The node transmission range is 250m. Finite eld operations
are over F
2
8. The MAC layer is an idealized version of IEEE 802.11 with
perfect collision avoidance. At each time unit, a schedule is created by
randomly picking a node and scheduling its transmission if all of its
neighbors are idle. This is repeated until no more nodes are eligible to
transmit.
4.2 Fairness and Delay
An inherent characteristic of wireless networks is the time variability of
the received signal quality due to fading and interference. The random
uctuations at the physical layer are perceived as packet erasures at
higher layers, and may result in variability of the reception rates over
short time periods. Varying reception rates are seldom tolerated by
real-time applications, and often require involved scheduling schemes
to ensure fairness over short time periods. Reducing the variability of
packet delivery rates may also serve to decrease the problem of window
closing, for instance in TCP.
4.2 Fairness and Delay 173
Fig. 4.4 Nodes A, B, and C receive information from node D.
Combining network coding and broadcasting over such time vary-
ing environments may smooth over the rates that the receivers
experience over short time periods. We illustrate this point through
the following simple example shown in Figure 4.4. Basestation D
has three independent streams of packets x
A
= x
i
A
, x
B
= x
i
B
, and
x
C
= x
i
C
to transmit to nodes A, B, and C, respectively, that are
within its broadcast radius. In wireless systems today, independent
information streams are transmitted in orthogonal dimensions, using
time, frequency or code division multiple access schemes. Assume,
for example, that the base-station uses timesharing to sequentially
broadcast information to each of the receivers. A broadcast trans-
mission successfully reaches each receiver according to independent
Bernoulli distributions with probability p. The basestation has no a pri-
ori channel information, but the receivers can acknowledge successful
reception.
Table 4.1 shows a possible scenario. After six time slots node A has
received no packet from the stream it is interested in, node B receives
one packet and node C receives two packets. Note that during the
rst time slot the basestation broadcasts a packet destined to node
A: although node A does not receive it, node B does receive it but
has no use for it. The network coding solution,
2
also included in the
same table, capitalizes on such situations: the basestation transmits
linear combinations such that each transmission oers some benet to
all nodes that receive it.
2
The network coding solution can also be thought of as a form of superposition coding for
a broadcast channel.
174 Network Coding for Wireless Networks
Table 4.1 Basestation D broadcasts information destined to nodes A, B, and C over iid
erasure channels with probability of erasure 0.5. The network coding solution leads to the
same aggregate throughput, but more evenly divided among the receivers.
Time slot
1 2 3 4 5 6
Round Robin Routing Solution
D transmits x
1
A
x
1
B
x
1
C
x
1
A
x
2
B
x
2
C
A receives x
1
C
x
2
B
x
2
C
B receives x
1
A
x
1
C
x
2
B
x
2
C
C receives x
1
B
x
1
C
x
1
A
x
2
C
Network Coding Solution
D transmits x
1
A
x
1
B
x
1
C
x
1
A
+ x
1
B
+ x
1
C
x
1
A
+ 2x
1
B
+ 3x
1
C
x
1
A
+ 4x
1
B
+ 5x
1
C
A receives x
1
C
x
1
A
+ 2x
1
B
+ 3x
1
C
x
1
A
+ 4x
1
B
+ 5x
1
C
B receives x
1
A
x
1
C
x
1
A
+ 2x
1
B
+ 3x
1
C
x
1
A
+ 4x
1
B
+ 5x
1
C
C receives x
1
B
x
1
C
x
1
A
+ x
1
B
+ x
1
C
x
1
A
+ 4x
1
B
+ 5x
1
C
Note that we do not get any benets (or hits) in terms of through-
put: this is because, we are eectively now requiring that all receivers
receive all information (so three times as much rate), using three times
more the channel. The benet we get is that the rate individual users
experience converges faster toward the average value, i.e., one symbol
for every six time slots. More formally, let T be a random variable that
denotes the total number of transmissions the base-station will need
to convey the L packets to node say A, where packets get dropped
independently with probability p. From basic probability theory, the
base-station will need on the average E(T) = L/(1 p) attempts. As
T grows, the observed empirical distribution will converge to the actual
distribution. That is, if T
0
denotes the number of erasures after T
transmissions,
Pr
_

T
0
T
p

>
_
0
exponentially fast. If k receivers share the transmission medium,
each one of them will observe erasures over kT instead of T time
slots, and thus a distribution that converges much faster to the
average.
4.3 Adaptability to Dynamically Changing Networks 175
4.3 Adaptability to Dynamically Changing Networks
As we discussed in Section 2, network coding can oer signicant
benets in terms of operational complexity in dynamically changing
environments, such as wireless networks which constantly change
because nodes move, turn on and o or roam out of range. In such
environments, we are often restricted to use very simple distributed
algorithms to avoid costs of storing and especially updating constantly
changing network information. In this section, we discuss some such
examples.
We start by considering the all-to-all transmission scenario, but now
we assume uniform at random mobility of nodes. We can model this ide-
alized mobility by assuming that time is divided into time slots (or iter-
ations): at the beginning of each time slot, nodes are placed uniformly
at random on a unit area disk. Each node can successfully broadcast
information within a radius of (1/

n). Consider two scenarios:


Perfect knowledge of the neighborhood: Each node, before transmitting,
knows who its neighbors are, and what information they have already
successfully received.
No-knowledge: Nodes have no information of their neighbors identity
or past history. In the latter case, and the case of forwarding, without
loss of generality, we can assume that during each iteration, and at
each (possibly new) position, node i always broadcasts x
i
. For the case
of network coding, each node transmits a random linear combination
over some nite eld F
q
of the packets it has previously received.
Example 4.1. In Figure 4.4, assume that all nodes are interested in
receiving all information, but node D is mobile and does not know
the identity of nodes within its transmission range. A possible random
mobility pattern is depicted in Figure 4.5. During time-slot 3 node D
may not broadcast innovative information to node A. Using network
coding alleviates this problem.
Mobility has a signicant eect on forwarding. Initially, as nodes ran-
domly move, the information is disseminated faster than in the case of
176 Network Coding for Wireless Networks
Fig. 4.5 Node D broadcasts information without knowing which nodes are within its range.
a static network. However, because of the assumption that nodes do not
know what information their neighbors have, as approximately half the
nodes collect the information, increasingly frequently, transmissions do
not bring new information to the receiving nodes. This phenomenon
has been observed in rumor spreading algorithms over networks.
Theorem 4.4. Let T
nc
and T
w
denote the required number of trans-
missions for the scenario with and without network coding. We assume
uniform at random mobility, where time is divided into time-slots (iter-
ations), and at the beginning of each time-slot nodes are placed uni-
formly at random on a unit area disk. We also assume no knowledge of
the network topology. Then on the average,
T
nc
T
w
=
_
1
logn
_
.
Proof Outline: Consider rst the case of forwarding, and a particular
node j that would like to transmit its message x
j
to all other n 1
nodes. Construct a bipartite graph in which these n 1 nodes consti-
tute one set of vertices. In the other set of vertices we have M nodes v
i
,
where node v
i
corresponds to iteration (time-slot) i and is connected to
the neighbors of node j during this iteration. Thus the degree of node
v
i
is a random variable with average k, here k is the expected number
of neighbors for each node. We will here assume that k is a constant.
We are asking, how many right-hand side nodes we need, i.e., which
number of iterations M, so that node j transmits its message to all
other nodes. This simple analysis has been performed in the context
of LT and Raptor codes where it was shown that M should scale as
4.3 Adaptability to Dynamically Changing Networks 177
(nlogn). It is easy to see that the average number of transmissions
we will need equals
(nlogn).
In the case of network coding on the other hand, where at each time slot
a node transmits uniform at random linear combinations of what it has
already collected, (n) transmissions per node are sucient. Indeed, if
we collect the observations of each node in a matrix, this matrix will
with high probability have full rank.
This problem can also be cast as a variation of the coupon
collectors problem, where now each box does not contain exactly one
coupon, put on the average a constant number of coupons. 2
We conclude that:
Network coding, under the no-knowledge assumption
achieves the same performance as routing under the perfect-
knowledge assumption. Thus routing information updates
are not needed.
Under the no-knowledge assumption for both network cod-
ing and routing, network coding reduces by a factor of logn
the number of required transmissions. In this case, we get
benets in terms of number of transmissions that is propor-
tional to energy eciency.
The uniform at random mobility model, considered in Theorem 4.4,
implies that the composition of the neighborhood of a node is com-
pletely uncorrelated from iteration to iteration. In practice, this is true
only when the node speed is very high or the packet transmission rate is
very low. A less generous mobility implies that less data is transported
through the network by node mobility and has instead to be forwarded
via intermediate nodes.
Figure 4.6 plots simulation results for a more realistic mobility pat-
tern, the random-waypoint mobility model. In this model, nodes pick
a random destination whose location is uniformly distributed in the
simulation area as well as a movement speed with which they travel
178 Network Coding for Wireless Networks
0
2
4
6
8
10
12
14
256 128 64 32 16 8
O
v
e
r
h
e
a
d

r
a
t
i
o
Number of nodes
Uniformly random mobility
RWP mobility (10-20 m/s)
RWP mobility (2-10 m/s)
Fig. 4.6 Ratio of ooding overhead to network coding overhead for random waypoint
mobility.
until the destination is reached. Our results assume no pause time and
movement speeds uniformly distributed between 2 and 10 m/s as well
as 10 and 20 m/s, respectively.
We can see that in this case, although network coding still oers
benets that increase with the number of nodes n, the performance gap
with routing is smaller. This agrees with our intuition that, when mobil-
ity is more restricted, the network coding performance will decrease,
because how well the data is mixed plays a crucial role for the net-
work coding analysis.
Finally, although our discussion up to now was in the context of
ad-hoc wireless networks, similar benets are also possible in environ-
ments where we need to broadcast information to a set of receivers in
a distributed manner and without knowledge of the network topology.
The following example illustrates one more such case.
Example 4.2 (Broadcasting in Cellular Networks). We consider
a cellular network model with m base-stations and n mobile phone
receivers. The base-stations have K information units that they want
to transmit to all mobiles. We assume that the transmission range is
the same for all base-stations, each transmission conveys one unit of
4.4 COPE: Opportunistic Throughput Benets 179
information, and that the coverage areas of the base-stations do not
overlap.
In this model base-stations are always active, while nodes are mobile
and may turn on and o. A node is active with probability p, and
successfully receives information approximately M(1 p) out of M
iterations. Thus, if base-stations broadcast using an erasure correcting
code of rate (1 p), then each transmission brings useful information
at each node. For a node to receive K messages, we need K/(1 p)
iterations, on the average.
In the case of forwarding, assume that base-stations randomly select
and transmit one of the K messages. Thus each node at each iteration
observes one of the messages uniformly at random. We can think of
this problem as a balls-in-bins experiment, where the bins are the K
messages the node wants to collect, and the balls correspond to the
iterations. Using standard balls and bins results we again need on the
average
KlogK
(1p)
iterations. Thus, network coding oers a logn benet.
4.4 COPE: Opportunistic Throughput Benets
COPE is a proposed system architecture that implements opportunistic
algorithms for network coding in wireless networks. Consider a wireless
mesh network that needs to accommodate multiple unicast sessions,
and where there is no centralized knowledge of the network topology
or trac patterns. The basic idea is that, network nodes might still
recognize and exploit opportunities where network coding operations
can oer benets.
Such an example is illustrated in Figure 4.7. Consider two unicast
sessions, both of which use node A as a relay in the path from the
source to the destination. Assume that D
2
is within the transmission
radius of S
1
, and similarly D
1
within the transmission radius of S
2
.
Then when S
1
transmits x
1
to the relay A, this broadcast transmission
is also received by D
2
. Similarly when S
2
transmits x
2
. Now the relay
A simply needs to broadcast x
1
+ x
2
, for both destinations to be able
to decode their desired information. This example opportunistically
packs in the network and reproduces the benets of the conguration
in Figure 4.9.
180 Network Coding for Wireless Networks
Fig. 4.7 Sources S
1
and S
2
transmit information to their respective destinations D
1
and
D
2
through the relay node A.
The approach can be extended in more complex situations, where
in general a node A has a list of symbols, e.g., x
1
, . . . , x
m
, to broad-
cast to its neighbors. We assume that all nodes advertise the identity
of the packets they have successfully received. Thus node A maintains
a list of the symbols that each of its neighbors has. For example, node
D
1
may have x
1
and x
2
, node D
2
, x
3
and x
4
, and node D
3
, x
1
and
x
3
. The idea is that based on this information, node A broadcasts a
linear combination of symbols such that all neighbors receiving that
linear combination can either immediately decode or drop the received
packet with no information loss. In our example, node A may choose to
transmit x
1
+ x
3
, which enables node D
1
to decode x
3
, D
2
to decode
x
1
, and node D
3
to ignore the packet. Note that this scheme does not
require that all nodes necessarily receive innovative information. How-
ever, it ensures that decoding always occurs in one hop from the source.
Thus no additional delay is caused from nodes having to store pack-
ets they cannot immediately use for decoding. Figure 4.8 compares the
throughput performance of this algorithm with traditional forwarding
over IEEE 802.11.
In addition to increasing throughput, network coding oers addi-
tional benets in these networks by equalizing transmission rates
and thus helping MAC layer protocols, such as TCP, operate more e-
ciently. Indeed, such protocols, attempting to be fair, divide equally the
bandwidth between competing nodes. However, for the example in Fig-
ure 4.7, without network coding node A needs to transmit twice as fast
as the remaining nodes to ensure the fastest information ow. Under
TCP, node A would not be allowed to that, and thus would become a
4.5 Physical Layer Network Coding 181
0.6
0.8
1
1.2
1.4
1.6
1.8
2
1 1.5 2 2.5 3
T
C
P

G
o
o
d
p
u
t

i
n

M
b
/
s
Offered load in Mb/s
With COPE
Without COPE
Fig. 4.8 Performance of COPE, courtesy of [44].
bottleneck. Network coding alleviates this problem, since now node A
needs to transmit only once, the same as the rest of the nodes. This
allows to achieve signicantly higher throughput than the example in
Figure 4.7 alone would predict.
4.5 Physical Layer Network Coding
In information theory for relay networks, a well-known observation is
that relay nodes do not necessarily need to decode the source informa-
tion, but simply forward to the receivers enough information to help
the receivers decode. Physical layer network coding capitalizes on this
idea by observing that simultaneous transmissions causing interference
do not necessarily need to be treated as noise for each other: a relay
could receive the superposition of signals at the physical layer, and
simply forward this superposition to the receiver node.
The example in Figure 4.9 illustrates this point. In network cod-
ing, the relay linearly combines the received signals x
1
and x
2
and
broadcasts the resulting signal x
1
+ x
2
to both destinations. The lin-
ear combining occurs algebraically, once both x
1
and x
2
are received.
In physical layer network coding, nodes A and C transmit simultane-
182 Network Coding for Wireless Networks
Fig. 4.9 Nodes A and C exchange information via relay B. The network coding approach
takes advantage of the natural capability of wireless channels for broadcasting to give ben-
ets in terms of resource utilization.
ously their signals to the relay, much like multiple transmit antennas
transmit signals to a common destination. The relay node B observes
at the physical layer the superposition of these two coherently arriving
electromagnetic waves. This is the signal the relay re-broadcasts, com-
bining in this sense being performed by the physical channel. Heuristic
algorithms build based on this example indicate that this approach can
indeed be implemented in practice and increase the achievable through-
put in wireless ad-hoc networks.
Clearly this simplied example opens a number of theoretical
questions and implementation challenges. Theoretical open questions
include, how well this approach can perform? what the possible achiev-
able rates over arbitrary networks are? and how we can code taking
interference into account? The approach described in the next section
promises progress toward answering such questions.
One of the main practical challenges is that wireless signals undergo
fading and attenuation. For example, the received baseband signal y at
the relay node B in Figure 4.9 can in general be described as
y =
A
_
P
A
x
1
+
C
_
P
C
x
2
+ n,
where P
A
, P
C
is the transmitted power and
A
,
C
the channel atten-
uation from nodes A and C, respectively and n is the additive noise.
4.6 Wireless Information Flow 183
Each channel attenuation is assumed to be a complex Gaussian with
zero mean, and the noise n also a Gaussian process of zero mean and
unit variance. Note that the complex channel fading coecients may
have quite dierent magnitudes. This is because the separation of the
mobile nodes might result in dierent path losses in the channels they
experience. As a result, quantization at the receiving end of the relay
might lead to signicant errors.
A second practical challenge is, if we would like to reduce decoding
to algebraic operations, we need to map the superimposed signal to
algebraic combining. How to achieve this would for example depend on
the modulation scheme employed. Finally, we need to achieve synchro-
nization between nodes A and C, to guarantee a correct superposition
of the signals at the relay. In practice, propagation delays, clock skews,
and variations in the processing time might impact timing.
Physical layer network coding has close connections with the areas of
cooperative communication and distributed spacetime coding, where
similar problems need to be addressed.
4.6 Wireless Information Flow
A systematic approach has recently emerged, that attempts to take
into account both broadcasting and interference, in order to calculate
achievable rates as well as coding strategies over wireless networks. This
approach uses deterministic channels to model the interactions between
the signals in the network, and ignores the eect of noise. The argument
is that for high SNR, it is these signal interactions that will dominate
the performance, and thus the capacity of the deterministic could be
very close to that of the noisy network. Thus networks of deterministic
channels could be used as approximate models for wireless networks.
The min-cut max-ow theorem and the main theorem in network
coding can be thought of as applying to a special network of determin-
istic channels, where each channel corresponds to a lossless orthogonal
link of unit capacity. We will next describe how these theorems can be
generalized to other deterministic networks.
Consider a source transmitting information to a destination over
a network of deterministic channels, where all network nodes act as
184 Network Coding for Wireless Networks
relays. Each node j broadcasts a signal x
j
to the other nodes connected
to this node. Moreover, it has only one received signal y
j
which is
a deterministic function of all the signals transmitted by the nodes
connected to it.
We can apply the information theoretic cut-set bound to bound the
rate R that the source can reliably transmit as
R < max
p(x
j

jV
)
min

D
I(Y

c; X

[X

c) (4.1)
(a)
= max
p(x
j

jV
)
min

D
H(Y

c[X

c), (4.2)
where is a set of vertices that denes a cut, i.e., contains the
source and
c
the destination, X

the vector collecting all inputs of


vertices in and Y

c the vector collecting all outputs of vertices in

c
.
D
= : S , D
c
is the set of all sourcedestination cuts
(partitions) and (a) follows since we are dealing with deterministic
networks.
It can be shown that by using random mappings at the network
nodes of a deterministic network, we can achieve the maximum possible
rate with a product distribution:
Theorem 4.5. Given a general deterministic relay network (with
broadcast and multiple access), we can achieve all rates R up to
max

iV
p(x
i
)
min

D
H(Y

c[X

c). (4.3)
This theorem extends to the multicast case, where we want to simul-
taneously from S to all destinations in the set D T:
Theorem 4.6. Given a general deterministic relay network, we can
achieve all rates R from S multicasting to all destinations D T
up to
max

iV
p(x
i
)
min
DT
min

D
H(Y

c[X

c). (4.4)
4.7 Sensor Networks 185
Note that when we compare (4.3) to the cut-set upper bound in (4.2),
we see that the dierence is in the maximizing set i.e., we are only
able to achieve independent (product) distributions whereas the cut-
set optimization is over any arbitrary distribution. In particular, if the
network and the deterministic functions are such that the cut-set is
optimized by the product distribution, then we would have matching
upper and lower bounds.
This indeed happens for example for linear nite-eld deterministic
networks, where all cut values are simultaneously optimized by inde-
pendent and uniform distribution of x
i

i1
. By linear we mean that
the input and output of each channel are related by a matrix multi-
plication. In this case, the optimum value of each cut equals the
logarithm of the rank of the transfer matrix G
,
c associated with
that cut, i.e., the matrix relating the super-vector of all the inputs at
the nodes in to the super-vector of all the outputs in
c
. The fol-
lowing corollary generalizes the classical max-ow min-cut theorem for
wireline networks.
Corollary 4.1. Consider a linear deterministic network with broad-
cast and multiple access, where operations are over the nite eld F
q
.
A source can transmit information to a receiver at a maximum rate of
C = min

D
rank(G
,
c)logq. (4.5)
This result can be directly extended to multicasting to a set of receivers,
at a rate equal to the minimum capacity between the source and a
receiver.
4.7 Sensor Networks
Here, we briey discuss some rst applications of ideas from network
coding to sensor networks.
4.7.1 Untuned Radios in Sensor Networks
Consider sensor nodes with untuned radios, in the sense that each
sensor transmits at a randomly chosen (from a nite set) frequency,
186 Network Coding for Wireless Networks
and receives from a randomly chosen set of the frequencies. The moti-
vation to consider such sensor nodes is that, tuned radios require use
of external to the sensor chips quartz crystals, that are expensive and
bulky. Assume a dense deployment of untuned nodes in a strip-
like network, that aim to provide multi-hop connectivity between a
sourcedestination pair. The randomness in the transmit and receive
frequencies of the components of the networks leads to a random net-
work conguration. Using balls and bins arguments, we can calculate
the expected min-cut between the source and the destination. As we
have also discussed when talking about dynamically changing networks,
using randomized network coding we can then have the source transmit
at a constant fraction of the average max ow in the graph, and with-
out apriori knowledge of the network connectivity, successfully transmit
this rate to the destination.
4.7.2 Data Collection in Sensor Networks
We consider a sensor network with n nodes, where each node i has an
independent observation x
i
. There also exist a set of collector nodes.
We want the union of information that these nodes collect to be suf-
cient to retrieve all x
i
. We consider two models. In the rst model,
the sensor nodes themselves are mobile, while the collector nodes are
static. We call this the mobile nodes model. In the second model, we
have a collector that moves randomly among the nodes, and collects
the information. We call this the moving collector model.
4.7.2.1 Mobile Node Model
This model corresponds to applications where sensor nodes are placed
on mobile objects such as cars or wildlife, that measure statistics to
be communicated to base-stations. Assume that sensor nodes trans-
mit at a constant range to other sensor nodes as well as to the
base-stations.
In the case of forwarding, we have one more variation of the coupon
collector problem, where now we have ( collectors, and we are asking
how many boxes should the collectors buy so that the union of their
coupons covers all n possibilities. For ( constant with respect to n,
4.7 Sensor Networks 187
which is the most realistic case, it is easy to see that the results are of
the same order. That is, without network coding each collector should
collect (nlogn) transmissions, while use of network coding requires
collecting (n) transmissions.
4.7.2.2 Mobile Collector Model
We consider a sensor network in which n static sensors are placed on
the nodes of an

n

n square grid. Nodes make independent obser-


vations x
i
, 1 i n. We are interested in scenarios where nodes rst
distribute the information among themselves, so that, if only k sensors
survive, they have enough information to reconstruct all observation.
We model this situation through a two-phase scheme as follows: In
phase 1, we have m < n rounds, where at each round each sensor node
is allowed to broadcast once. We assume that each node transmission
is successfully received by its four closest neighbors. Thus at the end
of the rst phase, each node has successfully received 4m broadcast
transmissions. In phase 2, there is a mobile collector querying k sen-
sors selected uniformly at random. We can think again of this phase
as happening in rounds, where in every round one node is added to
the collectors sample. We are asking what is the minimum number of
rounds (equivalently, the minimum number of nodes in the sample) to
collect all the information. The transmission mechanism used in phase
1 can be either forwarding or network coding.
Clearly, both for the case of forwarding and network coding, a nec-
essary condition for the collected information to be sucient to retrieve
all x
i
is that
k
n
4m + 1
. (4.6)
We will next derive an alternative lower bound, based on the following
observation: A necessary condition for successful decoding is that each
random variable x
i
appears at least once in the collected data of the k
sensors.
In the case of forwarding, we assume that at each broadcast round
each node forwards with equal probability one of the four messages it
has received in the previous round. As a result, after m rounds, each
188 Network Coding for Wireless Networks
node will have collected 4m + 1 of observations x
i
from the neighbors
within the radius of m. To estimate how many of these observations
are dierent, we note that under our transmission model, at the end of
phase 1, each x
i
will perform a random walk with m steps, and thus
on the average we expect it to reach nodes within distance (

m). We
will make here a simplifying assumption that each node will receive
all (m) information symbols x
i
within a radius of (

m). Therefore,
when forwarding is used in phase 1, a necessary condition for the mobile
collector to be successful in phase 2 is that the circles of radius (

m)
around the k nodes it selects cover all the sensors.
In the case of network coding, we assume that at each round
each node forwards a random linear combination of all the packets
in its possession. As a result, after m rounds, each node will have
(4m + 1) coded observations, which will depend on the data x
i
observed
at the (m
2
) neighbors within the radius of m. Therefore, a necessary
condition for the mobile collector to be successful in phase 2 is that the
circles of radius (m) around the k nodes it selects cover all the sen-
sors. This ensures that all observations are represented in the collected
coded packets.
Consider now a particular node i. The probability that the node is
not covered by a randomly placed disk of radius r equals the probability
that the center of the disk is not within distance r from node i, that
is, the center is not at any of the (r
2
) points within the radius r of
node i. This probability is given by
1
(r
2
)
n
.
After repeating the experiment for k rounds, the probability that a
particular node is not covered by any of the k disks equals
_
1
(r
2
)
n
_
k
,
and, thus, the expected number of nodes that are not covered is
n
_
1
(r
2
)
n
_
k
< ne
k(r
2
)/n
.
4.8 Challenges for Wireless Network Coding 189
The requirement that this number be smaller than 1 gives the constraint
k
n
(r
2
)
logn. (4.7)
For network coding, r = m, while for forwarding, r =

m. Assume we
use m =

n. To compare the two collection schemes, we denote by


k
f
the minimum number of collectors queries in the forwarding based
scheme, and by k
c
the minimum number of collectors queries in the
coding based scheme. Then, applying our two bounds (4.6) and (4.7)
we get that, for the case of forwarding (4.7) becomes tighter
k
f
(n

nlogn),
while for the case of network coding (4.6) is tighter
k
c
(n

n).
Thus, we obtain
k
f
k
c
(logn).
4.8 Challenges for Wireless Network Coding
Deployment of network coding requires resources, such as, synchro-
nization and reliability mechanisms, and leveraged functionalities at
the network nodes such as operations over nite elds and storage
capabilities.
Perhaps more importantly, it also requires designing new protocols
and architectures, or adapting the existing infrastructure for wireless
networks, so that network coding functionalities are enabled. At what
layer should network coding operate, what type of connections should
it support, and what mechanisms should be put in place or altered,
form a set of currently investigated research problems in networking
protocol and architecture design.
For example, current MAC layer protocols such as 802.11, support
only unreliable broadcasting. That is, when nodes select to broadcast,
there is no mechanism in place for collision avoidance, and there are
no acknowledgments collected. It is unclear whether to add this func-
tionality at the MAC layer or at higher layers, and how to implement
it without incurring signicant complexity.
190 Network Coding for Wireless Networks
Other challenges include supporting the demands of specic applica-
tions. For example, real-time applications, such as audio and video, may
have strict QoS requirements in terms of throughput and delay. These
are often conicting requirements. Achieving the optimal throughput
with network coding may require the network nodes to mix n packets,
for large values of n. To decode the source information, on the other
hand, a node may need to collect n packets, which would cause pro-
hibitive delay. Balancing such requirements might require a cross-layer
approach.
Moreover, functionalities such as scheduling and routing need to be
reconsidered. For example, for a network that supports multiple uni-
cast sessions, it is unclear how widely the information across dierent
sessions should be mixed, and in which order broadcast transmis-
sions should be scheduled. The following example discusses these chal-
lenges and provides one algorithm that achieves good performance in
practice.
Example 4.3 (Joint Scheduling and Network Coding) Opti-
mizing parameters such as energy eciency or delay can in general
be expressed as a cost optimization problem. However, if we are inter-
ested for example in delay, and we model interference as noise, schedul-
ing transmissions forms an important component of the optimization
problem.
The optimal joint cost optimization and scheduling problem is ^T-
hard; but in practice, there exist simple algorithms that allow to achieve
good performance. One such approach is the following. Let a feasible
network realization denote a set of non-conicting simultaneous node
transmissions. Use of realizations eectively disconnects the scheduling
problem from the cost optimization problem.
Construct a predetermined nite set of network realizations, that
satisfy a set of criteria. For example, we might want to choose realiza-
tions so that starting from a given node at any given realization, and
changing realizations at each time slot, we can transmit information
from this node with all other nodes. That is, the network is connected
over the realizations.
4.8 Challenges for Wireless Network Coding 191
We can now write an LP that optimizes our cost function with
respect to the fraction of time we use each realization. Note that this LP
is in general suboptimal, because we do not optimize over all possible
feasible realizations, but a small pre-selected set.
Notes
There has been a lot of interest in applying ideas from network coding in
the context of wireless networks, it is one of the fastest evolving research
areas, and here we have briey summarized some rst indicative results.
The benets of combining network coding with broadcasting have been
investigated for example by Wu et al. [86] and Fragouli et al. [25]. The
LP formulation for energy minimization was proposed by Lun et al.
[58]. Fairness and delay over wireless networks were examined by Ery-
ilmaz et al. [19]. Physical layer network coding was proposed by Zhang
et al. in [91]. COPE was designed by Katti et al. [44]. Applying network
coding to untuned radios is investigated by Petrovic et al. [65]. Similar
ideas have recently been applied to transportation networks. Network
coding for sensor networks is also investigated by Dimakis et al. [14]
and Fragouli et al. [26]. Wireless network coding has also been studied
using information theoretic tools. For example, Gowaikar et al. looked
at the capacity of wireless erasure networks [30], Ratnakar et al. [67]
examined broadcasting over deterministic channels, and Avestimehr
et al. examined networks of general deterministic channels with broad-
casting and interference [3, 4]. Cross layer design has been examined
by Sagduyu and Ephremides, see for example [75].
5
Multiple Unicast Sessions
In the rst part of this tutorial [24], we discussed the problem of a
source transmitting to a receiver and introduced the max-ow min-cut
theorem. We then extended this problem to the case of multicasting
from one source to multiple receivers, and saw that use of network cod-
ing techniques allows to achieve the optimal performance over directed
graphs, and can oer throughput benets over undirected graphs. In
this section, we examine a dierent generalization, from the single
sourcedestination problem to the multiple sourcedestinations prob-
lem, also known as the multicommodity problem, where we think of each
ow as a commodity.
We start by briey reviewing results that apply when we employ
routing and then examine how network coding can help. In particular,
the research eort has focused toward three main directions, which we
review in separate sections:
(1) Quantify the benets network coding can oer for the mul-
ticommodity ow problem, over directed and undirected
graphs.
(2) Derive tight upper bounds for the achievable rate using net-
work coding.
192
5.1 The Classical Multicommodity Flow Problem 193
(3) Design algorithms, and evaluate benets these algorithms
oer in a practical setting.
5.1 The Classical Multicommodity Flow Problem
We will focus our attention on the following problem, known as the
maximum concurrent multicommodity ow problem. Consider a com-
munication network represented as a graph G = (V, E) where edge
e E has capacity c
e
. The network is shared by k sourcedestination
pairs (S
1
, R
1
), . . . , (S
k
, R
k
). Source S
i
demands to convey an infor-
mation ow of rate d
i
to its destination R
i
. From the min-cut, max-
ow theorem, we know that any demand d
i
m
i
, where m
i
is the
min-cut between S
i
and R
i
, can be satised as long as S
i
and R
i
are
the only pair of terminals using the network. However, we may not
be able to simultaneously accommodate all demands even if d
i
m
i
,
for all i.
We say that rate r is feasible, with 0 r 1, if we can guarantee to
each sourcedestination pair a constant fraction r of its demand. The
maximum concurrent multicommodity ow problem asks to maximize
the feasible rate r while obeying the edge capacity constraints. Let
P
i
= P
j
i
denote the set of all paths in G between (S
i
, R
i
), and let f
j
i
be the information ow along path P
j
i
. The demand multicommodity
ow problem is stated by the following linear program:
Multicommodity Problem Primal:
maximize r
subject to

P
j
i
P
i
f
j
i
r d
i
, for all i (rate feasibility constraints)

P
j
i
: eP
j
i
f
j
i
c
e
, for all e E (capacity constraints)
f
j
i
0, i, j
(5.1)
194 Multiple Unicast Sessions
This LP has a solution (that is, there is a feasible rate r) if and only if
the demands and the edge capacities satisfy a certain condition. This
is rst observed by a group of Japanese researchers, and is sometimes
referred to as the Japanese theorem. It should not be confused with the
better known Japanese theorem in geometry, which we will at no time
use here.
This constraint can be derived from the dual problem. There are
two sets of variables in the dual problem corresponding to the two
sets of constraints in the primal: m
e
, e E, associated with the
edge constraints and
i
, 1 i k, associated with the rate feasibility
constraints. The dual of our demand multicommodity ow problem is
stated by the following linear program:
Multicommodity Problem Dual:
minimize

eE
c
e
m
e
subject to

eP
j
i
m
e

i
, for all i, j
k

i=1

i
d
i
1
m
e
0, for all e E

i
0, for all i
(5.2)
We can think of variable m
e
as a length of edge e. Let dist
me
(S
i
, R
i
)
denote the shortest path from source S
i
to R
i
with respect to the length
function m
e
. The Japanese theorem states that the multicommodity
ow problem (5.1) has a solution (a feasible rate) if
r
k

i=1
d
i
dist
me
(S
i
, R
i
)

eE
m
e
c
e
(5.3)
for any positive length function m
e
.
5.1 The Classical Multicommodity Flow Problem 195
The dual program (5.2) can be thought of as the LP relaxation of the
integer program formulated as (5.2) but with the constraint m
e
0, 1.
We can now think of m
e
as an incidence vector of a set c E: the
edges with value 1 belong in c and form a cut-set that disconnects at
least one sourcedestination pair.
For this problem, we have what is known as the sparsity upper
bound o:
r o min
c

ec
c
e

E separates Si from Ri
d
i
. (5.4)
Sparsity o gives a very intuitive upper bound on the feasible rate r if
we are restricted to employ routing. However, this upper bound can
be loose: it is proved that it can be as much as (but not more than) a
factor of (log[V [) for undirected graphs with [V [ vertices. For directed
graphs, it can be larger than (log[V [) but not more than (
_
[V [).
The sparsity o illustrates a fundamental dierence between directed
and undirected graphs if we allow the use of network coding. For undi-
rected graphs, it upper bounds the rate r achievable with network cod-
ing, as we prove in Section 5.3. However, the sparsity bound (5.4) does
not hold if we allow the use of network coding over directed graphs, as
the example in Figure 5.1 indicates. Consider the cut set c = AB
that disconnects each source from its receiver. Then o 1/2. There-
fore, o is not an upper bound on the rate achievable with network
Fig. 5.1 The buttery network example viewed as a multicommodity ow problem with
k = 2 sourcedestination pairs. Edges have unit capacity. S
1
demands to transmit unit rate
to R
1
, while S
2
demands to transmit unit rate to R
2
. In the routing solution the two
commodities need to share the edge AB.
196 Multiple Unicast Sessions
coding, which can provide rate one to each receiver. Note that here the
network coding solution eectively transforms the multiple unicast to a
multicast problem. Another way to think about network coding is that
it takes advantage of additional edges in the network to convey some
type of independent side information.
5.2 What are the Benets of Network Coding
There are directed networks with n nodes for which network coding
oers benets of order (n). On the other hand, we do not know as
yet of an undirected network where network coding oers any benets.
If we extend the directed Buttery network in Figure 5.1, from two
to n source destination pairs, we obtain the network in Figure 5.2 for
which the benets of coding are n-fold. If the same network is made
undirected, the benets of coding disappear.
Consider rst the directed network case, as shown in Figure 5.2.
Source S
i
is connected to its own destination R
i
only through edge
AB. However, each S
i
is connected to all other destinations R
j
,
j ,= i. If we assume unit capacity edges, using network coding allows to
send rate one to each receiver, by sending the linear combination of all
source symbols x
1
+ x
2
+ + x
n
through edge AB. Routing has all
Fig. 5.2 A directed multiple unicast instance with 2n + 2 nodes and n-fold throughput
benets of network coding.
5.3 Upper Bounds on the Network Coding Throughput 197
Fig. 5.3 Routing from source S
1
to destination R
1
in an undirected graph instance, where
the routing and the network coding solution achieve the same rate.
commodities share the capacity of edge AB, and thus only allows rate
1/n for each source destination pair.
Suppose now that all edges in the network are undirected. In this
case, an edge can accommodate fractional ows going in arbitrary
directions as long as their rates sum to 1. A routing scheme that
achieves unit rate throughput for each sourcedestination pair, delivers
the information from source S
i
to destination R
i
through the 2(n 1)
rate 1/[2(n 1)] ows S
i
A S
j
R
i
and S
i
R
j
B R
i
,
1 j n, j ,= i. Routing from source S
1
to destination R
1
is illus-
trated in Figure 5.3. Note that the routing solution uses fewer resources,
namely, does not use edge AB.
It is widely believed that network coding oers no benets in terms
of throughput for the multicommodity ow problem over undirected
graphs. This conjecture is supported by a number of examples, that
show no benets from the use of network coding. We will see some
such examples in the following section.
5.3 Upper Bounds on the Network Coding Throughput
The state of the art bounds for network coded information ow
combine cut-set bounds with information-theoretical tools. To for-
mulate the multicommodity ow problem with network coding, we
198 Multiple Unicast Sessions
model the network G = (V, E) shared by k sourcedestination pairs
(S
1
, R
1
), . . . , (S
k
, R
k
) as follows. We think of each edge e E as a
deterministic lossless channel of capacity c
e
, and associate a random
variable Y
e
with the messages through e. Without loss of generality, we
assume that source S
i
is connected to the network through an innite
capacity edge, and associate a random variable with the messages on
that edge. For simplicity, we denote by S
i
both the random variable
and the edge. Similarly, we assume that each receiver R
i
is connected
to the network through an innite capacity edge, and associate random
variable T
i
with the messages on that edge.
In routing solutions, any two of random variables Y
e
, S
i
, and T
i
are either equal to or dierent from each other; a network code will,
in general, impose more complex functional relationships among them.
Consider any graph that implements a valid network code to deliver to
each receiver a fraction r of its demand, and where the sources have
independent information. The random variables Y
e
, S
i
, and T
i
have to
satisfy the following constraints:
(1) Independence of sources:
H(S
1
, S
2
, . . . , S
k
) =
k

i=1
H(S
i
).
(2) Capacity bounds:
H(Y
e
) c
e
.
(3) Correct reception:
H(Y, S
i
) = H(Y, T
i
)
for each set for variables Y . For example, by selecting Y = S
i
and Y = T
i
, we get H(S
i
[T
i
) = H(T
i
[S
i
) = 0, that is, knowl-
edge of T
i
removes all uncertainty about S
i
.
(4) Achievable rate
H(T
i
) rd
i
between the ith sourcedestination pair.
5.3 Upper Bounds on the Network Coding Throughput 199
The above set of inequalities represents a natural information
theoretic characterization of the multicommodity ow problem with
network coding. To nd tight upper bounds on the rate r for a particu-
lar graph, we need to nd additional constraints coming from the struc-
ture of the graph. This is the challenging part of the problem. We next
briey describe two techniques to nd these additional constraints, one
based on informational dominance relationships between edge sets, and
the other on d-separation conditions on functional dependency graphs.
Intuitively, both of these techniques serve to identify what we may call
network coding edge cut-sets.
5.3.1 Informational Dominance
Informational dominance is a relationship between sets of edges in the
graph. We say that a set of edges A informationally dominates a set of
edges B if the messages transmitted through the edges in A uniquely
determine the messages transmitted through the edges in B. In other
words, H(Y
B
[Y
A
) = 0, or, equivalently,
H(Y
A
) = H(Y
A
, Y
B
), (5.5)
where Y
X
denotes the vector of the random variables associated with
the messages on the edges in the set X. Note that only the graph
structure determines whether the relationship of informational dom-
inance exists between two sets of edges or not, whereas a particular
coding/routing scheme determines what the relationship is.
We denote by Dom(A) the set of all edges informationally domi-
nated by A:
Dom(A) e : e is informationally dominated by A.
From the denition of informational dominance, a set dominates itself:
A Dom(A). We can identify Dom(A) by a greedy incremental proce-
dure which starts from A. This procedure uses the following properties:
(1) S
i
Dom(A) if and only if T
i
Dom(A) (because if we
know what the source sends we also know what the receiver
receives, and vice versa).
200 Multiple Unicast Sessions
(2) Every edge e in E Dom(A) is reachable from a source that
does not belong in Dom(A) (because e must get some infor-
mation that the edges in A do not have, which can only come
from some source that does not belong in Dom(A)) .
(3) If S
i
is not in Dom(A), then S
i
remains weakly connected
to T
i
if we remove all edges in A, all edges that do not have
a path to T
i
, and all edges that are not reachable from any
source.
Starting from the set

A = A we repeat the above check. If it fails, we
add an edge to

A. If it succeeds, we have identied the maximal set
Dom(A) dominated by A. Having identied this set, for each subset B
of edges with B Dom(A), the equality (5.5) holds.
For the following example, we use information dominance relation-
ships to show that network coding does not oer any benets as com-
pared to routing.
Example 5.1. Consider the directed graph G depicted in Figure 5.4,
with three-commodities that have unit rate demands. Applying the
sparsity bound to edges e
1
and e
2
we get that routing can at most
achieve rate 2/3 (and it is easy to see this upper bound is achievable).
To prove that in the case of network coding as well, 2/3 is an upper
Fig. 5.4 The split-buttery instance: a three-commodity ow example where network coding
does not oer rate benets as compared to routing.
5.3 Upper Bounds on the Network Coding Throughput 201
bound to the optimal rate, we can use the following three information
domination relations:
(1) S
b
Dom(S
a
, Y
e
1
) H(S
a
, Y
e
1
) = H(S
a
, S
b
, Y
e
1
)
(2) S
a
Dom(S
b
, Y
e
2
) H(S
b
, Y
e
2
) = H(S
a
, S
b
, Y
e
2
)
(3) S
c
Dom(S
a
, S
b
, Y
e
1
, Y
e
2
) H(S
a
, Y
e
1
) = H(S
a
, S
b
, S
c
, Y
e
1
, Y
e
2
)
We will also use basic entropy properties, such that conditioning
reduces entropy, i.e., H(X[Y ) H(X). Adding (1) and (2) we get:
H(S
a
, Y
e1
) + H(S
b
, Y
e2
) = H(S
a
, S
b
, Y
e1
) + H(S
a
, S
b
, Y
e2
)
(a)

H(S
a
) + H(Y
e1
) + H(S
b
) + H(Y
e2
) H(S
a
, S
b
, Y
e1
, Y
e2
) + H(S
a
, S
b
)
(b)

c
e1
+ c
e2
H(S
a
, S
b
, S
c
, Y
e1
, Y
e2
)
(c)

r
c
e1
+ c
e2
d
a
+ d
b
+ d
c
=
2
3
,
where (a) holds because H(X, Y ) H(X) + H(Y ) while H(X, Y ) +
H(X, Z) H(X, Y, Z) + H(X), (b) holds from independence of sources
and (3), and (c) holds from capacity constraints and the demands
requests.
Applying informational dominance constraints in undirected
graphs, allows to easily see that the sparsity dened in (5.4) is also
an upper bound to the best network coding rate. Suppose that the set
of edges c = e
1
, . . . , e
n
is the one for which the minimum in (5.4) is
achieved, and that it disconnects sources, say S
1
, . . . , S

, from their
receivers. Then, because the graph is undirected, c = e
1
, . . . , e
n
infor-
mationally dominates S
1
, . . . , S

, and thus,
H(S
1
, . . . , S

, Y
e
1
, . . . , Y
em
) = H(Y
e
1
, . . . , Y
em
).
Note that in a directed graph, a source S
i
may not be informationally
dominated by the edges in the cut, because for example condition (3)
in the procedure we previously described for information dominance
might be satised. We also have
H(Y
e
1
, . . . , Y
en
)
n

i=1
H(Y
e
i
)
n

i=1
c
e
i
,
202 Multiple Unicast Sessions
and
H(S
1
, . . . , S

, Y
e
1
, . . . , Y
em
) H(S
1
, . . . , S

) =

i=1
H(S
i
) r

i=1
d
i
.
Therefore,
r
H(S
1
, . . . , S

, Y
e
1
, . . . , Y
em
)

i=1
d
i

n
i=1
c
e
i

i=1
d
i
.
5.3.2 d-separation Bound
This approach starts with a set of edges c
d
and a set d of connections,
and tries to verify whether it holds or not that

id
rd
i

ec
d
c
e
. (5.6)
The verication process involves building a functional dependency
graph (FDG), that expresses how the variables associated with edges,
sources, and destination observations of the initial network are related.
This graph has as vertices variables. An edge exists from variable X to
variable Y if Y is a function of X. We can then iteratively remove edges
from this diagram, following an exact procedure described in [47], and
verify whether the d sources and destinations become disconnected in
an undirected sense. If the verication process succeeds, (5.6) can be
used as an upper bound.
Example 5.2. Figure 5.5 depicts what is known as the Okamura-
Seymour example. Each edge has unit capacity, and each destination
Fig. 5.5 The Okamura-Seymour example.
5.4 Network Code Design Challenges 203
requires unit rate from its source. For this example, the sparsity
equals 1, while both the routing and coding rate are at most 3/4.
5.4 Network Code Design Challenges
A number of heuristic algorithms are proposed in the literature. The
basic underlying idea is to perform network coding opportunistically,
for example, by embedding the integral buttery network coding solu-
tion in Figure 5.2, in the network structure. This approach can be
expressed as a cost optimization linear program, where we divide the
sources into pairs, and for every pair of sources we attempt to create
ows that mimick the buttery structure.
The diculty of designing network codes for multiple unicast ses-
sions is intertwined with the lack of understanding of the theoretical
throughput limits and ways to achieve them. The following phenomena
observed in connection with solvability of certain multiple unicast graph
instances reveal the inherent hardness of this problem when compared
to multicast, where such phenomena never arise:
(1) Exponential alphabet size: There exist networks with N
receivers that only have linear coding solutions over a nite
eld whose size is exponentially large in N.
(2) Non-monotonicity of alphabet size: There exist networks that
have linear solutions over alphabets of size p
m
but not over
alphabets of size q
t
> p
m
where p and q are primes.
(3) Nonlinearity: There exist networks that are solvable using
nonlinear operations, but are not solvable using linear
operations.
(4) Non-reversibility: There exist solvable directed graphs that
are not solvable when the roles of sources and receivers are
exchanged and the directions of all edges are reversed.
The following example illustrates the last phenomenon.
Example 5.3. Consider the directed graph in Figure 5.6, with unit
capacity edges. The sources x, y, and z transmit unit rate to receivers
204 Multiple Unicast Sessions
Fig. 5.6 An irreversible network that supports multiple unicast sessions: the sources x, y,
and z transmit their information to receivers rx, ry, and rz, respectively, and the sources
z
i
to their respective receivers rz
i
.
r
x
, r
y
, and r
z
, respectively, by sharing the seven perpendicular lines
A
i
B
i
. The 35 =
_
7
3
_
sources z
i
transmit unit rate to their receivers r
z
i
,
each source using three horizontal lines intersecting with a dierent
subset of the seven A
i
B
i
lines.
We rst describe a binary coding scheme that allows each source
to be decoded at its destination. We can view the three bits produced
by the sources x, y, and z as a three-bit sequence that takes eight
distinct values. We map this sequence to a 7-bit sequence, as described
in Table 5.1, so that at most one bit out of the seven takes the value
one at a time. We send these 7 bits through the lines A
i
B
i
to the
5.4 Network Code Design Challenges 205
Table 5.1 The coding scheme that maps the input bits produced from sources x, y, and z,
to the output bits sent along edges A
i
B
i
in Figure 5.6.
Input bits 000 001 010 . . . 110 111
Output bits 0000000 0000001 0000010 . . . 0100000 1000000
destinations r
x
, r
y
, and r
z
. Each of the destinations can decode all
three sources x, y, and z.
Consider now a source z
i
. The source uses repetition coding, and
sends the repeated value through the three horizontal lines to r
z
i
. Note
that this transmission does not aect the information ow in the per-
pendicular lines, as whatever is added in a line, it is also promptly
removed. Now consider the information along A
j
B
j
acting as noise for
the transmission from z
i
to r
z
i
. Because at most one of the three per-
pendicular lines carries the value one, at most one of the horizontal
transmissions will be aected, and thus the destination r
z
i
observes
either 2 times or 3 times the bit value send by z
i
. Using majority vot-
ing, r
z
i
can correctly decode the source information. Thus this network
is solvable, in the sense that all 38 multiple unicast sessions are served,
and we can achieve rate r = 1.
Now assume that the role of sources and receivers is reversed, i.e.,
the receivers reply to their sources. Moreover, assume that the orien-
tation of every single edge of the network is reversed. In this case, the
network is no longer solvable. Intuitively, the main reason for this, is
that the information inserted by the horizontal lines can no longer be
removed, and thus introduces errors in the perpendicular lines. Along
the perpendicular lines we need to implement a coding scheme of rate
at least 3/7, that cannot correct the possible 35 errors the horizontal
transmissions may incur.
Notes
The multicommodity ow problem, with use of routing, has been a very
active research area; see for example Schrijver [76]. Benets of network
coding over directed graphs were examined by Lehman et al. [50]. The
information dominance was introduced by Adler et al. [1], while the
d-separation bound by Kramer and Savari [47].
206 Multiple Unicast Sessions
Network examples are provided: for the exponential alphabet size
and for the non-monotonicity of alphabet size by Rasala Lehman and
Lehman [50]; for nonlinearity by Riis [71] and Dougherty et al. [17]; and
for non-reversibility by Riis [70] and Dougherty and Zeger [18]. Con-
structive algorithms to support multiple unicast sessions were proposed
for example by Ho et al. [33].
6
Networks with Errors
Most of the time in this tutorial we assume ideal communications links
between network nodes. In this section, we will look into some scenarios
when that is not the case, and information carried by network edges
may be erased, altered by transmission errors, or the edges themselves
may go out of service.
We will restrict our attention to noisy networks, in which each edge
represents an interference-free, directed, noisy, memoryless channel. We
will consider both channel coding, aimed to protect a particular infor-
mation stream from channel errors, and network coding, performed
across independent information streams.
We rst address the question of channel and network coding sepa-
rability, and then consider channel coding schemes for line networks.
We then move to network coding, and describe how network codes can
be designed to make unicast or multicast transmissions over networks
resilient to a limited number of permanent link failures (non-ergodic
failures) or a limited number of random packet errors.
207
208 Networks with Errors
6.1 Channel and Network Coding Separability
The rst natural question to ask about networks with errors is
whether network and channel coding can be separated without loss
of optimality. We will consider multicasting, and assume that the
information-theoretic
1
min-cut between each receiver and the source is
equal to h. The answer is armative, provided intermediate nodes are
allowed to decode and re-encode the information sent by the source
without any complexity and/or delay constraints. Indeed, use of a
capacity-achieving channel code over each edge of the network allows to
transform every link into an error-free channel. Note that the min-cut
to each receiver over the lossless network is still h. We can then use the
main theorem in network coding to send rate h to each receiver. Thus,
assuming possibly unlimited complexity intermediate node processing,
network and channel coding separability holds over our class of noisy
networks.
However, in a realistic network, intermediate nodes have complexity
and delay constraints. In this case, network links can no longer be
considered error-free, and as a result, network and channel coding can
no longer be separated without loss of optimality. To help us appreciate
this phenomenon, we consider the following example:
Example 6.1. Assume that each edge in the network in Figure 6.1
is a Binary Symmetric Channel (BSC) with transition probability
p [0, 1/2], which we denote as BSC(p). Source A attempts to max-
imize the rate it can send to receiver F. We will assume that the
source and the receiver can invest innite complexity processing to this
task. If intermediate nodes B and C are allowed innite complexity
processing as well, we can achieve rate equal to the min-cut capacity
C = 2(1 H(p)), where H(p) is the binary entropy function, by send-
ing independent streams of equally likely bits on paths (AB, BF) and
(AC, CF) (two parallel channels).
If, on the other hand, the intermediate nodes are only allowed to
process one bit, we can no longer achieve the min-cut capacity. Without
1
The information-theoretic min-cut is dened as in Cover and Thomas, Elements of Infor-
mation Theory.
6.1 Channel and Network Coding Separability 209
Fig. 6.1 The source node A transmits information to the receiver node F over a lossy
network, where each edge is modeled as a BSC.
loss of generality, we can assume nodes B and C simply forward their
input bit. At node D, since two bits are available at its input, one
bit processing amounts to mapping four input values to two output
values. All these mappings are equivalent from symmetry to one of the
following functions:
f
1
: forwarding one of the incoming bits
f
2
: transmitting the binary XOR of the incoming bits
f
3
: transmitting the binary AND of the incoming bits.
Explicitly calculating the end-to-end achievable rates R
1
, R
2
, and R
3
,
optimized over all input distributions, shows that each of the functions
f
1
, f
2
, and f
3
can be optimal, depending on the noise parameter p.
Figure 6.2 plots the ratio R
2
/R
1
and R
3
/R
1
for the special case when
every edge represents a BSC(p), except BD and CD which we assume
to be error-free. For small values of p, linear combining (f
2
) outperforms
simple forwarding (f
1
) and nonlinear processing (f
3
). For larger values
of p simple forwarding is better, and for very large values of p nonlinear
processing (f
3
) outperforms linear processing (f
1
and f
2
). Moreover, the
corresponding optimal input distributions are uniform for f
1
and f
2
,
and non-uniform for f
3
.
This example illustrates that network coding (whether we combine
independent information streams), routing (whether we route both or
just one of the information streams to node D), and channel coding
(what is the optimal input distribution) cannot be optimized separately
without loss of optimality.
210 Networks with Errors
0 0.1 0.2 0.3 0.4 0.5
0.65
0.7
0.75
0.8
0.85
0.9
0.95
1
1.05
p: error probability for BSC

R
a
t
i
o

o
f

a
c
h
i
e
v
a
l
e

r
a
t
e
s
R
2
/R
1
: xor/Forward
R
3
/R
1
: Nonlinear/Forward
Fig. 6.2 Performance comparison for the network in Figure 6.1 when every edge represents
a BSC(p), except BD and CD that are assumed to be error-free.
6.2 Channel Coding Schemes for Packet
Erasure Correction
In a network environment, the information sent by a source reaches
its nal destination through a number of intermediate nodes (relays)
rather than directly through a single channel. Packets can be dropped
as they traverse the network, because of, for example, congested links or
queue delays. Connections that can drop packets are typically modeled
by independent memoryless erasure channels.
To protect against packet erasures, networked systems today
employ traditional coding schemes for point-to-point connections.
These schemes only require end-to-end processing and are oblivious
to the network environment. However, as the size of communication
networks grows, it becomes less clear if the benets of the simple end-
to-end approach outweigh those of coding schemes that employ interme-
diate node processing. We will describe some of the coding schemes that
employ intermediate node processing and discuss their performance.
6.2 Channel Coding Schemes for Packet Erasure Correction 211
Fig. 6.3 A path between a source A and a receiver C with L = 2 edges, where edges corre-
spond to independent memoryless erasure channels.
To illustrate the dierent approaches to coding at intermediate
nodes, we will use the simple network depicted in Figure 6.3 that
connects source A to receiver C through the single relay B. Pack-
ets are erased with probability
1
on the channel AB and
2
on the
channel BC. Node A encodes k source symbols
2
to create n
1
coded
symbols using a code (
1
, and then sends them over the channel AB.
Node B will, on average, receive n
1
(1
1
) coded symbols over n
1
time slots. Node B will send n
2
packets, produced by a code (more
generally, processing) (
2
. If node B nishes transmitting at time d,
where maxn
1
, n
2
d n
1
+ n
2
, then node C will receive on average
n
2
(1
2
) packets after d time slots.
We will consider four coding schemes for the two-link line network
in Figure 6.3, which naturally apply to line networks with more links,
and can be extended to arbitrary graphs and also to other than unicast
trac patterns. The evaluation metrics for the coding schemes will be
the following:
(1) Complexity of encoding/processing/decoding at nodes A, B,
and C in terms of the number of operations required as a
function of k, n
1
, and n
2
.
(2) Delay incurred at the intermediate node B dened as the
time (d k/m), where m is the min-cut capacity.
(3) Memory requirements in terms of the number of memory ele-
ments needed at node B.
(4) Achievable rate, i.e., the rate at which information is trans-
mitted reliably from A to C. We say that a coding scheme
is optimal in rate if each individual link is used at its capac-
ity. Such schemes achieve the min-cut capacity between the
source and the destination.
2
We will use packets and symbols interchangeably.
212 Networks with Errors
(5) Adaptability, that is, whether the coding scheme needs to be
designed for specic erasure probabilities
1
and
2
or not.
Fountain codes, for example, are adaptable in this sense.
Depending on the application, dierent metrics may become important.
From now on, unless stated otherwise, we will assume for simplicity that

1
=
2
= , in which case n
1
= n
2
= n.
6.2.1 Complete Decoding and Re-encoding
A straightforward scheme is to use a separate code for each link, and
have each intermediate node completely decode and re-encode the
incoming data. The min-cut capacity can then be achieved by using
capacity achieving codes (e.g., Fountain or Reed-Solomon codes) over
all links. However, the system suers a delay of about k/(1 ) time-
slots at each intermediate node. Indeed, at node B, we can directly
forward the (1 )n received coded bits (packets) without delay, and
then, after decoding, create and send an additional n bits over the
second channel. A complete decoding and re-encoding scheme based
on Fountain codes is adaptable and has low complexity. We only need
O(klog(k)) binary operations at each intermediate node to decode and
re-encode a Fountain code, and the complete decoding and re-encoding
scheme has memory requirements of the order O(k). The main draw-
back of the scheme is that it requires each intermediate node to store
in memory the entire k packets of information in order to re-encode.
6.2.2 Fixed Systematic Codes
Systematic schemes minimize the memory requirement at the interme-
diate nodes, but require the knowledge of the erasure probabilities of
the links. Consider again the network in Figure 6.3 and assume that we
use a systematic (n, k) code (e.g., Fountain or Tornado) for link AB.
If we have an MDS systematic code that achieves the capacity of an
erasure channel with the erasure probability , then any k = n(1 )
symbols will form an information set, and can be treated as systematic.
In a systematic scheme, node A sends the n coded symbols, and about
n of these symbols get erased on AB. Node B forwards the received
6.2 Channel Coding Schemes for Packet Erasure Correction 213
n(1 ) symbols to C (which he treats as systematic), and computes
and forwards (about) n = k/(1 ) new parity symbols based on
those correctly received, which he then transmits in the n time slots
following the transmission of the systematic bits.
This scheme incurs an average delay of n, and requires n memory
elements. The savings in memory, as compared to the complete decod-
ing and re-encoding, are signicant when the erasure probability is
small. Although not adaptable to unknown channel parameters, these
codes have very low encoding and decoding complexities. Tornado codes
for example can be encoded and decoded with O(nlog(1/)) operations,
where is a constant expressing the (xed) rate penalty.
6.2.3 Sparse Random Systematic Codes
In this scheme, the non-systematic packets are formed as random
(sparse) linear combinations of the systematic ones. More precisely,
whenever a new packet is received at B, it is added to the storage
space allocated to each of the non-systematic packets independently
and with a (small) probability p. We will give without proof the fol-
lowing theorem.
Theorem 6.1. With p = (1 + )log(k)/(k) for > 0, the described
systematic random code asymptotically achieves the capacity over the
channel BC.
This scheme is an improvement on the one previously described in
terms of encoding and decoding complexity.
6.2.4 Random Codes
In this scheme, at each time slot the intermediate node B transmits
random linear combinations (over the binary eld F
2
) of all the packets
it has received thus far. The main advantages of this random scheme
are its adaptability and optimality in terms of delay. The drawbacks
are large memory requirement, and high decoding complexity, which is
O(k
2
logk) xor operations on packets. The following theorem asserts
that these random codes achieve capacity.
214 Networks with Errors
Theorem 6.2. Given a constant c > 1, let A be a random lower-
triangular (k + clog(k)) k binary matrix, where the entries A
i,j
are
zero for 1 i < j k, and all the other entries are i.i.d. Bernoulli(1/2)
random variables. Then
Pr
_
rank(A) < k

1
2k
c1
.
6.3 Network Codes for Non-Ergodic Link-Failure
Protection
Network coding can be used to gracefully adapt to permanent link fail-
ures. Consider a source transmitting information to a single receiver
over a network with unit capacity edges, each susceptible to a perma-
nent non-ergodic failure. Assume that the min-cut from the source to
the destination is n. We want to guarantee to the receiver rate equal
to k = n t, provided that at most t, and no matter which t, edges in
the network permanently fail. Of course, such a task is simple, if we are
allowed to reroute the information taking into account the link failures.
Use of network coding, however, achieves this goal without having
to alter the intermediate network node operations upon observing link
failures. Each failed link is detected and assumed to transmit only the
zero symbol, which is then processed identically as when the link is
in service. The following example illustrates a unicast over a network
implementing a failure robust network code.
Example 6.2. Consider the network shown in Fig. 6.4 with the source
at node A and the destination at node F. Edges AB and AC have
capacity 2 and all other 1. The capacity of the min-cut between the
source and the destination is 3. The network code illustrated in the
gure enables transmission at rate 2 and robustness to any single link
permanent failure.
For a given min-cut n multicast network, we can design a code
that guarantees to each receiver rate equal to k = n t when no
more t edges fail. It is straightforward to see how to achieve this
6.3 Network Codes for Non-Ergodic Link-Failure Protection 215
Fig. 6.4 Network coding provides instantaneous recovery when any single link fails. Each
failed link is detected and assumed to transmit only the zero symbol. (Edges AB and AC
have capacity 2 and all other 1.)
goal by using the algebraic framework for network code design. The
basic idea is that we select the local coding vectors in the network
so that, no matter which t edges fail, each receiver still has a full
rank set of equations to solve. That is, while in the usual multicast
scenario if we have N receivers we impose N constraints, requiring
that the transfer matrix to each receiver is full rank, we will now sim-
ply impose additional constraints. The following example illustrates
these points.
Example 6.3. Consider the network
3
in Figure 6.5 where we have two
receivers and the min-cut to each receiver equals 3. Assume that the
source would like to transmit information to each receiver at a rate
equal to three. We would then require that the two transfer matrices
A
1
, and A
2
, from the source to each receiver, are full rank, where
A
1
=
_
_
1 0 0
0
3

4

5

5

2
+
6

3

6

4
_
_
, and
A
2
=
_
_
0 0 1

1

2
0

5

5

2
+
6

3

6

4
_
_
.
3
We have already encountered this type of network and its subtree decomposition in
Section 7, Figure 7.3, in [24].
216 Networks with Errors
Fig. 6.5 A conguration with two receivers, and min-cut from the source equal to three.
To achieve this, it is sucient to use the binary alphabet and set

1
=
2
= =
6
= 1.
Assume instead that we would like the source to transmit informa-
tion at a rate equal to 2, and we want to design a network code so that,
no matter which one edge of the network fails, the same network code
still functions. Thus the symbols
1
,
2
, and
3
the source emits would
depend upon two information symbols, say
1
and
2
, related through
a linear transformation
_
_

3
_
_
=
_
_

1

2

3

4

5

6
_
_
. .
B
_

2
_
.
If all edges function, the two receivers will observe the transfer matrices
A
1
B, and A
2
B, respectively. If exactly one edge fails, receiver R
1
will
observe the transfer matrix A
1
B where some of the numerical values
and parameters
i
,
i
are set to zero. For example, if edge SA
6.4 Network Codes for Random Packet Error Correction 217
fails, the transfer matrix for receiver R
1
equals
_
_
0 0 0
0
3

4
0
5

2
+
6

3

6

4
_
_
B
where the numerical value 1 as well as
1
are set to zero. Similarly for
the second receiver. The subtree decomposition, described in Section 3,
part I of this tutorial, can help us bound the number of distinct transfer
matrices we need consider.
Codes that tolerate a collection of link failure patterns (e.g. all t
link failures) can be designed by a straightforward extension of the
LIF algorithm for network code design (discussed in Section 5, part I)
which, in essence, runs the LIF algorithm in parallel for each failure
pattern. Clearly, if the goal is to tolerate any t link failure, the runtime
of this algorithm would be O
__
[E[
t
__
times that of the LIF algorithm,
and the required alphabet size would be O
__
[E[
t
__
times larger than for
the ordinary network code (with no robustness requirement) over the
same network with E edges.
6.4 Network Codes for Random Packet Error Correction
In a network with random packet errors, each edge is modeled as a
channel that can introduce additive errors or erasures. At any given
transmission slot, only a limited number t of edges can introduce errors
but the choice of these edges is arbitrary. In this section, we briey
describe two approaches to design network error correcting codes for
random packet errors: network block codes and network codes based
on subspaces.
6.4.1 Network Block Codes
Consider for a moment a simple unicast scenario shown in Figure 6.6.
Assume that the source is connected to the destination through h
edge-disjoint paths each consisting of unit-capacity edges, and that
any t of these edges can introduce errors. Note that an error can
218 Networks with Errors
propagate only through the path on which it is introduced. There-
fore, the receiver will observe at most t corrupted symbols, and the
source can send information at rate k to the receiver by the means
of an (h, k, 2t + 1) channel block code that maps k information sym-
bols to h coded symbols, and can correct any t random errors. The
coded symbols will be sent simultaneously on the h edges, thus using
the space as the resource to accommodate for the redundancy intro-
duced by the code, rather than time as in classical channel coding
where coded symbols are sent sequentially and errors occur at dierent
time slots.
Consider now a multicast scenario where a source is connected
to multiple receivers through an arbitrary network with the min-cut
between the source and each receiver equal to h. Note that if dif-
ferent sets of h edge disjoint paths between the source and dierent
receivers do not overlap, network coding is not necessary, and the prob-
lem reduces to that of Figure 6.6 for each receiver separately, and thus
to classical channel coding. Otherwise, we want to design the network
code to protect the source message for each receiver.
Denition 6.1. A network code is t-error correcting if it enables each
receiver to correctly receive source information as long as the number
of edges that introduce errors is smaller than t.
Unlike classical channel codes, network error correction codes use
coding operations not only at the source, but also at intermediate nodes
of the network. Therefore, an error introduced at a single edge may
propagate throughout the network. For simplicity we will assume that
both the source and the channel (network) alphabet are F
q
. Therefore,
Fig. 6.6 At the source node, k information symbols are encoded into h coded symbols,
which are then simultaneously transmitted to the destination.
6.4 Network Codes for Random Packet Error Correction 219
the source produces q
k
messages. If the network code is such that each
receiver can correctly decode if errors are introduced in up to t edges,
then, for each receiver, the set of q
k
h-dimensional vectors at any h-cut
corresponding to the q
k
dierent source messages will be an (h, k) clas-
sical code that can correct at least t errors. Therefore, the appropriate
channel coding bounds connecting parameters q, h, k, and t hold. For
example, we have
Sphere Packing (Hamming) Bound:
q
k

q
h

t
k=0
_
h
k
_
(q 1)
k
.
Singleton Bound
q
k
q
h2t
.
If the source alphabet size is Z, we can replace the q on the left-hand
side by [Z[. Similarly, if the source alphabet size is A, we can replace
the q on the right-hand side by [A[.
The network generalizations of the error vector Hamming weight
and the code minimum distance also exist, and the minimum distance
has the same operational meaning as in channel coding. In what follows,
we will rst formally dene the minimum network Hamming distance
of a code.
We will assume without loss of generality that the source has out-
degree exactly equal to h, by possibly adding an articial node and
articial edges. Let u denote the k 1 information vector that the
source encodes into a h 1 codeword x by the means of a code (
dened by its h k generator matrix G, i.e.,
x = Gu.
The codeword x will then be multicast through the network by the
means of a network code. Receiver R
j
observes the h 1 vector y
j
given by
y
j
= A
j
x
220 Networks with Errors
where A
j
is the h h network code transfer matrix for receiver R
j
. As
we discussed in Section 3, part I, A
j
can be obtained as
A
j
= C
j
(I A)
1
B, (6.1)
where B is the [E[ h matrix that reects the way the source is con-
nected to the network, C
j
is the h [E[ matrix that reects the way
the receiver R
j
is connected to the network, and A is the [E[ [E[
matrix that contains the information about the network topology and
the code. Elements of A are indexed by network edges, and element
(i, j) can have a nonzero value only if the edge i ends where edge j
starts. A network code is specied by selecting values for the nonzero
elements of A.
Assume now that each network edge introduces an additive error
(possibly of value zero). We collect these errors into an [E[ 1 vec-
tor z. Note that the edges introducing errors act as additional inde-
pendent sources. Therefore, the vector y
j
that receiver R
j
observes
will depend on both the input vector x and the error vector z as
follows:
y
j
(x, z) = C
j
(I A)
1
(Bx + z) = A
j
x + F
j
z.
Note that the error vectors contribution to the output F
j
z depends
on the network code (specied by matrix A) through matrix F
j
=
C
j
(I A)
1
.
Let w
H
(z) denote the Hamming weight of z. Clearly, it is not the
Hamming weight w
H
(z) of the error vector z but its contribution to
the output F
j
z that directly reduces the distance between possible
receivers observations. We therefore dene, for receiver j, the error
vector network Hamming weight as the minimum Hamming weight of
all error vectors which make the same contribution to the output:
w
j
(z) = min
z

:F
j
z

=F
j
z
w
H
(z

). (6.2)
Following the same line of thought, we dene the network Hamming
distance between two output vectors y and y
t
as
d
j
(y
j
, y
t
j
) = min
z:F
j
z=y
j
y

j
w
H
(z).
6.4 Network Codes for Random Packet Error Correction 221
It can be shown that d
j
is a metric.
Each receiver implements a minimum distance decoder that, for the
received vector y
j
nds the codeword x ( such that A
j
x is closest
to y
j
as measured by d
j
. The error correcting capabilities of ( on
the network implementing a network code that gives rise to A
j
are
determined by the network minimum distance of (, dened as
d
min
(() min
j
min
x,x

(:x,=x

d
j
(A
j
x, A
j
x
t
).
As long as the errors are introduced at fewer that d
min
/2 edges, the
received vector will be closer to the error free output corresponding to
the transmitted codeword than to the error free output corresponding
to any other codeword in the code. Consequently, a minimum distance
decoder will make a correct decision. To see that, suppose that x is
transmitted and errors are introduced at < d
min
/2 edges, that is,
w
H
(z) = . From the denition (6.2), we know that w
j
(z) < w
H
(z).
Let y
j
be the receivers observation. The network distance of y
j
to the
error free output A
j
x corresponding to the transmitted sequence x is
smaller than d
min
(()/2:
d
j
(y
j
, A
j
x) = min
z

:F
j
z

=y
j
A
j
x
w
H
(z

)
= min
z

:F
j
z

=F
j
z
w
H
(z

)
= w
j
(z) < w
H
(z) = < d
min
(()/2.
On the other hand the network distance of y
j
to the error free output
A
j
x
t
corresponding to some other sequence x
t
is larger than d
min
(()/2:
d
j
(y
j
, A
j
x
t
) > d
j
(A
j
x, A
j
x
t
) d
j
(y
j
, A
j
x))
d
min
(() > d
min
(()/2.
From this analysis, we also see that if errors are introduced at more
than one but fewer than d
min
edges, the received vector cannot be equal
to the error free output corresponding to any codeword of the code.
Moreover, if the error introducing edges are known (which eectively
makes them erasures), then a minimum distance decoder will identify
the transmitted codeword correctly.
222 Networks with Errors
Since a code with minimum distance d
min
can correct any errors
introduced at up to < d
min
/2 errors, the Singleton bound, stated
above, can be expressed as
d
min
h k + 1.
Codes that can correct erasures introduced at h k = d
min
1 edges
are essentially codes that can tolerate n k link failures, and can be
designed as we discussed in the previous section on robustness to non-
ergodic link failures. Such codes are at the same time capable of cor-
recting errors introduced at (h k)/2| edges. As before, the algorithm
is a straightforward extension of the LIF algorithm for network code
design which, in essence, runs the LIF algorithm in parallel for each
erasure pattern. Clearly, if the goal is to tolerate any t link failure,
the runtime of this algorithm would be O
__
[E[
d
min
1
__
times that of the
LIF algorithm, and the required alphabet size would be O
__
[E[
d
min
1
__
times larger than for the ordinary network code (with no robustness
requirement) over the same network with E edges.
Constructing network error correction codes is very closely related
to constructing network codes that protect against Byzantine security
attacks, discussed in Section 7.
6.4.2 Network Codes Based on Subspaces
A dierent approach to network error correction stems from the obser-
vation that inputs to the network are n 1 vectors over F
q
. Each
receiver observes these input vectors multiplied by an n n matrix
over F
q
. Therefore, if the source sends an arbitrary basis b
1
, . . . , b

of some subspace U of F
n
q
through an error-free network implementing
any linear network code, then all nodes will be receiving vectors from U.
Consequently, each receiver that observes linearly independent vec-
tors corresponding to the transmission of b
1
, . . . , b

will be able to
identify the subspace U. Therefore, the source can communicate its
messages by mapping them into subspaces of F
n
q
.
In principle, the source can use subspaces of arbitrary sizes to convey
its messages. For simplicity, we will assume that the codewords for the
source come from a Grassmannian, that is, the set of all -dimensional
6.4 Network Codes for Random Packet Error Correction 223
subspaces of the n dimensional space F
n
q
, and each codeword is one
such subspace. Note that there are
_
n

_
q
=
(q
n
1)(q
n1
1) (q
n+1
1)
(q

1)(q
1
1) (q 1)
-dimensional subspaces of the n-dimensional space F
n
q
, where
_
n

q
are
known as the Gaussian coecients in combinatorics. It is desirable to
choose for the code ( the subspaces from the Grassmannian that are
the least likely to be confused with one another after passing through
a network with errors and erasures.
A network with errors and erasures implementing a linear network
code acts as an operator channel that takes in a vector space, say U,
and then either deletes some of its vectors (erasures) or adds some
other vectors (errors) or both so that a result is another vector space,
say V . More precisely the channel input U and channel output V are
related as
V = U
t
+ E, (6.3)
where, in a network with erasures and t errors, U
t
is an ( )-
dimensional subspace of U and E is some t-dimensional subspace of
F
n
q
U.
Each receiver implements a minimum distance decoder that upon
receiving a subspace outputs the closest codeword (subspace) from the
code ( in the following distance measure:
D(X, Y ) = dim(X + Y ) dim(X Y ). (6.4)
It can be shown that D is a metric. Note that, if the network input U
undergoes erasures and t errors, turning the output V according to
(6.3), then the distance between U and V is
D(U, V ) = + t ( ) = t + . (6.5)
The minimum distance of (, denoted by D(() and dened as
D(() min
X,Y (:X,=Y
D(X, Y ),
allows us to characterize the error/erasure correction capabilities of (.
We simply note that, since D is a metric (and thus satises the triangle
224 Networks with Errors
inequality), if D(() > 2( + t), then erasures together with t errors
cannot bring the received subspace closer to some other codeword than
the one transmitted because of (6.5). Therefore, erasures together
with t errors can be corrected by a minimum distance decoder. Coun-
terparts to the Singleton, sphere-packing, and sphere-covering bounds
exist for codes based on Grassmannians, as well.
Note that this approach to network error connection is not con-
cerned with the network code, but only with the coding at the
source. A similar approach, that uses subspaces as codewords, has also
been used for quantum error correction and for communications over
unknown wireless channels.
Notes
Separability of channel and network coding was examined by Song et al.
[81], Ratnakar and Kramer [68], and Tuninetti and Fragouli [85]. LT
codes were proposed by Luby [53], Tornado codes by Luby et al. [54],
and Raptor codes by Shokrollahi [78]. Packet level codes that employ
intermediate node processing have been proposed by Lun et al. [55, 56].
Additional coding schemes that operate under complexity constraints,
such as xed, nite memory at intermediate nodes have also been inves-
tigated by Pakzad et al. [64] and Lun et al. [57]. Non-ergodic failures
were studied by Jaggi et al. [41] and Ho et al. [36], and for unicsat by
El Rouayheb et al. [73] from which the example shown in Figure 6.4 is
taken. Network error correcting codes and bounds have been considered
by Yeung and Cai [8, 90], Zhang [92] and Yang et al. [87, 88]. The sub-
space approach has been recently proposed by Koetter and Kscischang
[46]. Coding schemes using this approach are developed by Silva and
Kscischang [79].
7
Security
Network coding aects security and reliability of data in both favor-
able and adverse ways depending on the network scenario and the
application. The following toy example will help us appreciate these
issues.
Example 7.1. Consider the simple network consisting of two parallel
unit-capacity channels, as shown in Figure 7.1. There are two indepen-
dent unit-rate information sources located at node A and a legitimate
user at node D who has paid to receive the information from both
sources e.g., watch two movies. This goal can be achieved by either
forwarding as in Figure 7.1(a) or coding as in Figure 7.1(b). Consider
now an adversary who has access to a single edge in the network. If the
transmission is organized as in Figure 7.1(a), the adversary receives
complete information of one source. If the transmission is organized
as in Figure 7.1(b), the adversary still receives one bit of information
about the pair (y
1
, y
2
) but that information may be useless (as in the
movie application).
Consider now an adversary who is capable of not only observing but
also modifying the data on a single edge. In that case, the transmission
225
226 Security
Fig. 7.1 Mixing information streams can both hide meaningful information and make legit-
imate users more vulnerable.
scheme in Figure 7.1(a) is better since the legitimate user is still able
to receive the information from one source.
We will here consider two general cases in which an adversary Calvin
has access to a certain number of edges in the network.
In the rst case, Calvin is merely eavesdropping. In one scenario,
his goal may be to reduce his uncertainty about the information trans-
mitted to the intended receivers. In another scenario, his goal may be
to actually decode a fraction of this information from his observation.
We will see that linear combining may either assist or hinder Calvin
depending on his goal. We will also look into designing network codes
that will prevent the eavesdropper from achieving his goal.
In the second case, Calvin can also modify some of the packets he
intercepts, i.e., perform a jamming attack. Modifying a certain num-
ber of packets in networks which only route information simply results
in their incorrect reception, whereas modifying the same number of
packets carrying linear combinations of source packets can have a more
harmful eect since, if no counter measures are taken, it can result in
incorrect decoding of all source packets. We will see how this problem
can be controlled by sending some redundant information together with
the data through the network.
7.1 Eavesdropping
We here consider multicast networks in which the adversary Calvin can
access data on links of his choice, and has unlimited computational
power. Our goal is to maximize the multicast rate with the constraint
7.1 Eavesdropping 227
of revealing no information to Calvin. To do so, the source needs to
introduce some redundancy to the data it sends, using a wiretap-secure
coding scheme. The question is, how does this coding scheme inter-
acts with the network code employed by the nodes in the network.
The problem can be mathematically formulated as follows. Assume
that the min-cut to each receiver equals n. Let s = (s
1
, s
2
, . . . , s
k
) be the
random variables associated with the k information symbols that the
source wishes to send securely, y = (y
1
, y
2
, . . . , y
n
) the random variables
associated with the encoded symbols the source actually multicasts to
the receivers and z = (z
1
, z
2
, . . . , z

) the random variables associated


with the wiretapped symbols that Calvin intercepts.
We distinguish between two levels of security. A scheme is informa-
tion theoretically secure if s is completely determined (decodable) by
y, and the uncertainty about s is not reduced by the knowledge of z,
that is,
H(s[y) = 0 and H(s[z) = H(s). (7.1)
On the other hand, a scheme is weakly secure if the uncertainty about
a particular s
i
is not reduced by the knowledge of z, that is,
H(s[y) = 0 and H(s
i
[z) = H(s
i
) i, (7.2)
but possibly H(s[z) < H(s). The following examples illustrate the dif-
ference between these two notions of security.
Example 7.2. For the network in Figure 7.1(a), an information secure
coding scheme with n = 2, k = 1, and = 1 can be organized as follows.
If the source bit s
1
equals 0, then either 00 or 11 is transmitted through
the channel with equal probability. Similarly, if the source bit equals
1, then either 01 or 10 is transmitted through the channel with equal
probability.
codeword y
1
y
2
chosen at random from: 00, 11 01, 10
source bit s
1
: 0 1
It is easy to see that knowledge of either y
1
or y
2
does not reduce the
uncertainty about s
1
, whereas knowledge of both y
1
and y
2
is sucient
to completely determine s
1
, namely, s
1
= y
1
+ y
2
.
228 Security
Example 7.3. Figure 7.1(b) provides an example of weak security,
using y
1
= s
1
and y
2
= s
2
. If, for example, s
1
and s
2
take values uni-
formly at random over F
3
, then H(s
1
) = H(s
2
) = log3. Assume that
Calvin intercepts the value of y
1
+ y
2
= s
1
+ s
2
, and attempts to guess
s
1
. It is easy to see that s
1
may still take all three values in F
3
with equal
probability, that is, H(s
1
[s
1
+ s
2
) = log3. In other words, the proba-
bility of error Calvin will make is the same, as if he were attempting
to randomly guess the value of s
1
.
7.1.1 Information Theoretic Security
For a point-to-point scenario in which the source can transmit n data
symbols to the receiver and an adversary can access any of those
symbols, it is well known that the maximum number of symbols that
the source can communicate to the receiver securely in the information
theoretic sense is equal to k = n .
This can be achieved using a [n
1
, k
1
] linear MDS code ( F
n
1
q
.
Recall that the codewords in a [n
1
, k
1
] linear code are all the vectors in
a k
1
-dimensional subspace of the n
1
-dimensional space. The associated
generator matrix G has dimension k
1
n
1
while the parity matrix
H has dimension n
1
k
1
n
1
. The rows of G form a basis of this
subspace (, and the rows of H form a basis of the orthogonal space,
i.e., Hy
T
= 0 for any codeword y (. ( is also an abelian subgroup
of the group F
n
1
q
, and its distinct cosets divide F
n
1
q
into q
n
1
k
1
sets of
size q
k
1
. Two vectors x
1
and x
2
belong to the same coset, if and only
if x
1
x
2
(, and Hx
1
= Hx
2
(this last quantity is called the syn-
drome associated with the coset). An MDS code meets the Singleton
bound and thus has minimum distance equal to d
1
= n
1
k
1
+ 1. This
implies that any two vectors of F
n
1
q
in the same coset dier in at least
d
1
positions.
To create an information secure network code that transmits k sym-
bols, we can use an MDS code with n
1
= n and k
1
= n k, that has
k syndrome values. The k information symbols are taken as a syn-
drome which species a coset. The transmitted word is chosen uni-
formly at random from the vectors in the specied coset. The decoder
7.1 Eavesdropping 229
that receives a vector y recovers the information symbols by simply
computing the syndrome Hy of the received word.
Assume now that the adversary Calvin learns = n k = k
1
sym-
bols of y. The question is, whether he can infer from this any informa-
tion on what the syndrome is. The answer is no, because, each of the
q
n
1
k
1
vectors that contain the k
1
symbols Calvin intercepted, belongs
in a dierent one of the q
n
1
k
1
cosets. Indeed, any two of the q
n
1
k
1
vectors, say y
1
and y
2
, dier in at most n
1
k
1
positions. But the min-
imum distance equals d
1
= n
1
k
1
+ 1, and thus no two such vectors
can belong in the same coset.
The code used in Example 7.2 is the [2, 1] repetition code over F
2
with parity check matrix
H =
_
1 1

,
cosets 00, 11, 01, 10, and distance 2.
Now consider a specic network code used to multicast n symbols
from an information source to N receivers over an acyclic multicast
network G = (V, E) and assume that Calvin wiretaps any edges of G.
Our next question is whether, using the same network code, the source
can multicast k n symbols securely if it rst applies a secure
wiretap channel code (as described above) mapping k into n symbols.
The answer is in general no, as the following example illustrates.
Example 7.4. Consider the buttery network shown in Figure 7.2
where we have n = 2, k = 1, and = 1. If the source applies the coding
scheme described in Example 7.2, based on the MDS code over F
2
with
H =
_
1 1

, and the usual network as in Figure 7.2(a), the adversary


will be able to immediately learn the source bit if he taps into any
of the edges BE, EF, ED. This is because the coding vector
_
1 1

reveals the product of a row of H and the transmitted word y, i.e.,


reveals one bit of the syndrome. Therefore, this network code breaks
down the secure-wiretap channel code.
However, if the network code is changed so that node B combines
its inputs over F
3
and the BE coding vector is
_
1

where is a
primitive element of F
3
(as in Figure 7.2(b)), the wiretap channel code
remains secure, that is, the adversary cannot gain any information by
230 Security
Fig. 7.2 Single-edge wiretap buttery network with (a) insecure network code and (b) secure
network code.
accessing any single link in the network. In general, the wiretap channel
code remains secure with any network code whose BE coding vector is
linearly independent of
_
1 1

.
More generally, the source can multicast k n symbols securely
if it rst applies a secure-wiretap code based on an MDS code with a
k n parity check matrix H, and if the network code is such that
no linear combination of = n k or fewer coding vectors belongs to
the space spanned by the rows of H. That is, if any coding vectors
together with the rows of H form a basis of the n-dimensional space.
This guarantees that the symbols sent through the network edges can-
not be used to infer information about the syndrome bits.
Information theoretical arguments can also be used to prove this
assertion. Let W E denote the set of [W[ = edges the wiretapper
7.1 Eavesdropping 231
chooses to observe, and C
W
denote the matrix whose rows are the cod-
ing vectors associated with the observed edges in W. Consider H(s, y, z)
with the security requirement H(s[z) = H(s) to obtain
H(s[z)
. .
=H(s)
+H(y[s, z) = H(y[z) + H(s[y, z)
. .
=0
H(y[s, z) = H(y[z) H(s)
0 n rank(C
W
) k.
Since there is a choice of edges such that rank(C
W
) = , the maximum
rate for secure transmission is bounded as
k n .
If the bound is achieved with equality, we have H(y[s, z) = 0 and con-
sequently, the system of equations
_
s
z
_
=
_
H
C
W
_
y
has to have a unique solution for all W for which rank(C
W
) = .
To conclude, we showed that given a xed wiretap-secure code, we
can nd a network code that does not aect the security. The reverse
procedure is also possible: we can start with a xed network code, and
select an appropriate wiretap-secure code, that is not compromised by
the network code.
7.1.2 Weak Security
Again consider a multicast network where the min-cut to each receiver
equals n. If we do not insist on information theoretic security, but
instead, weak security as dened in (7.2) is sucient, we can send infor-
mation to the receivers at rate equal to n, even if Calvin eavesdroppes
on = n 1 edges.
The basic idea is very simple. We create y by encoding the source
symbols s with an invertible matrix A, i.e., y = As. Calvin observes z =
By = BAs, where the n matrix B has as rows the coding vectors
on the edges Calvin wiretaps. It is sucient to select the matrix A
232 Security
and the network code so that, for all possible matrices B, there does
not exist a vector c
i
with c
i
BAs = s
i
, for all i. This is always possible,
provided we use coding over a large enough nite eld.
To see that this construction guarantees weak security recall that if
we start with a uniform distribution on the elements of a nite eld,
and perform any linear transformation, the distribution on the result-
ing output will also be uniform. For example, if s
1
and s
2
are uniformly
distributed over F
2
, so is y
1
= s
1
+ s
2
, and the distribution of s
1
con-
ditioned on y
1
is also uniform. Thus, if the linear combinations Calvin
collects do not allow him to decode a source symbol s
i
, the probability
distribution of s
i
conditioned on these observed values is still uniform,
and (7.2) holds.
7.2 Byzantine Modication
Byzantine fault broadly refers to any fault in a distributed system com-
ing from a failure in some subset of its components. The name comes
from the frame such problems are often put into, referring to Byzan-
tine generals deciding through messengers on a common plan of attack
when some of them may be traitors lying about whether they will sup-
port a particular plan and what other generals told them. Because it
requires that multiple nodes in the network perform prescribed, agreed
upon tasks (e.g., linear combining and forwarding), network coding is a
distributed process and as such vulnerable to Byzantine attacks. Much
as Byzantine generals, the nodes in the network may forward faulty
information pretending it is genuine.
A Byzantine attacker can, for example, supply a certain number
of modied packets to the receiver, who in turn may decode all of the
source packets incorrectly. We can distinguish dierent types of attack,
depending on the power of the attacker, the mode of communication
between the source and the receiver, and the desired level of protection.
For example, the attacker may be able to eavesdrop on all network
edges, although he may only jam of them, or, he may only be able
to eavesdrop on the edges it jams. There may exist a secret channel,
outside the reach of the attacker, through which the source can send
a few bits to the receivers, or not. At the receiver side, we may be
7.2 Byzantine Modication 233
interested in simply detecting whether a Byzantine attack has taken
place to discard the corrupted packets, or we may want to also be
able to lter some of the information the source was sending while the
attack was under way. In all cases, the natural way to protect data is
by introducing some type of error correction coding so that the packets
carry not only data but also some redundant information.
We will consider a particular type of Byzantine attack in which
there is a low-rate secret channel between the source and each receiver,
at a multicast network in which the min-cut between the source and
each receiver equals n. Each receiver is interested in recovering some
information from the source, and the attacker observes all transmissions
and can insert corrupted packets. In this case, there exist polynomial
time algorithms for encoding and decoding that allow the receivers to
securely recover information from the source at a rate of n . This
clearly is the maximum achievable rate, if the rate of the secret channel
goes to zero as compared to the rate supported by the network.
We will consider a practical set-up, where the source produces n
packets of length L information symbols each, and network nodes ran-
domly combine and exchange linear combinations of the source packets.
A header of length n appended to each packet species the linear combi-
nation that the packet carries. Let S be the n (L + n) matrix whose
rows are the packets that the source sends, and contains the n n
identity matrix I. Then the receiver observes
Y = CS + C
A
Z, (7.3)
where Z is the (L + n) matrix whose rows are the packets injected
by the attacker (Calvin), and Y is the received set of of packets.
The matrix C is the n n transfer matrix from the source to the
receiver, and the matrix C
A
the n transfer matrix from Calvin to
the receiver.
Because operations at network nodes occur symbolwise, the identity
matrix I contained in S undergoes the same transform as the original
matrix S. Thus Y contains the matrix

C = CI + C
A
L, (7.4)
234 Security
for some matrix L contained in Z. Combining (7.4) and (7.3) gives
Y =

CS + C
A
(Z LS) =

CS + E. (7.5)
Matrix E summarizes the eect of the attack. The receiver knows Y
and

C, and would like to decode S.
To help the receiver do so, the source operates as follows. First, it
randomly selects n + L values over F
q
and creates the Vandermonde
parity check matrix H of dimension (n + L) c, where c is a design
parameter:
H =
_

_
1 x
1
x
2
1
. . . x
c1
1
1 x
2
x
2
2
. . . x
c1
2
.
.
.
.
.
.
.
.
. . . .
.
.
.
1 x
n+L
x
2
n+L
. . . x
c1
n+L
_

_
.
The source communicates H to all receivers using the secret channel.
This communication occurs only once.
Additionally, every time it produces the n packets of length L sym-
bols collected in the n (n + L) matrix S, it sends through the secure
channel to all receivers the hashed matrix P = SH. Note that the size
of the information transmitted over the secret channel to convey the
n c matrix Pcan be made arbitrarily small as compared to the packet
length L.
Now the receiver can take advantage of this extra information. First,
it projects Y on the matrix H
YH =

CSH + EH =

CP + X (7.6)
to learn the matrix X = EH. The columns of this matrix span the
same vector space as the columns of E (we will not prove this), and
thus E = XA for some matrix A. Then the receiver can express Y in
(7.5) as
Y =
_

C X
_
_
S
A
_
. (7.7)
Now it can also be shown that the matrix [

C X] has full column


rank. Thus, the receiver can decode by simply solving the system of
7.2 Byzantine Modication 235
linear equations in (7.7). The complexity of the described algorithm is
O(Ln
2
).
Notes
The problem of making a linear network code secure in the presence
of a wiretap adversary that can look at a bounded number of network
edges was rst studied by Cai and Yeung [89]. They demonstrated the
existence of a code over an alphabet with at least
_
[c[
k
_
elements which
can support the multicast rate of up to n k. Feldman et al. derived
trade-os between security, code alphabet size, and multicast rate of
secure linear network coding schemes in [20]. The exposition here fol-
lows the work of El Rouayheb and Soljanin [72]. Weakly secure network
coding was studied by Bhattad and Narayanan [6]. The Byzantine mod-
ication detection in networks implementing random network coding
was studied by Ho et al. [35]. The algorithm we presented comes from
Jaggi et al. [41], where achievable rates and algorithms for other cases
can be found as well.
8
Quantum Networks
We have seen that in multicast communication networks, large through-
put gains are possible with respect to their transportation or uid
counterparts because classical (as opposed to quantum) information
can be duplicated, merged, or in general, processed in a way that (non-
quantum) physical entities cannot. An interesting question to ask is
whether anything can be gained by allowing processing of quantum
information at nodes in quantum networks.
Consider the quantum counterpart of the network multicast scenario
where the sources produce quantum states (e.g., qubits as opposed to
bits) which are then sent over quantum noiseless channels to be simulta-
neously delivered to the receivers. Since quantum states are represented
by physical entities, the problem of quantum multicast at rst seems
nothing more than the multicommodity ow problem of shipping a col-
lection of dierent commodities through a common network so that the
total ow going through each edge in the network does not exceed its
capacity.
Although quantum information can be processed in certain ways
determined by the laws of quantum mechanics, two operations essen-
tial in classical information networking, replication (cloning) and
236
8.1 Quantum Information Systems 237
broadcasting, are not possible. However, approximate and probabilis-
tic cloning as well as compression of quantum states are possible, and
have been used in attempts to nd a quantum counterpart of network
coding. In this section, we rst introduce quantum information and
allowed processing, and then discuss quantum networks and quantum
multicast.
8.1 Quantum Information Systems
In this section, we give mathematical denitions of quantum informa-
tion carriers, i.e., quantum states, describe physical operations that can
be performed on such states, and list a number of state transformations
relevant for network coding that cannot be achieved by allowed quan-
tum operations.
8.1.1 Quantum States
Quantum states are, in the simplest case, mathematically represented
as unit length column vectors in a d-dimensional complex vector space
H. Such quantum states are called pure. When d = 2, quantum states
are called qubits. A column vector is denoted by [), its complex con-
jugate transpose by [. A pure state is mathematically described by
its density matrix equal to the outer product [)[.
In a more complex case, all we know about a quantum state is that it
is one of a nite number of possible pure states [
i
) with probability p
i
.
Such quantum states are called mixed. A mixed state is also described
by its density matrix which is equal to
=

i
p
i
[
i
)
i
[.
Note that a density matrix is a d d Hermitian trace-one positive
semidenite matrix. A classical analog to a mixed state can be a multi-
faced coin which turns up as any of its faces with the corresponding
probability.
We often deal with sequences rather than with individual states. The
quantum state corresponding to a sequence of length n has a d
n
d
n
238 Quantum Networks
density matrix, equal to the tensor product of density matrices corre-
sponding to the states in the sequence.
8.1.2 Quantum Operations
A quantum state can be reversibly transformed to another state c()
only by a physical process consistent with the lows of quantum theory.
Such a process is, in the simplest case, mathematically described as a
unitary evolution:
c() = UU

where UU

= I,
and, in a more general case, as an evolution by a completely positive,
trace-preserving map:
c() =

k
E
k
E

k
where

k
E

k
E
k
= I.
It is envisioned that a quantum computer (like a classical) would
implement such evolutions by using universal quantum gates. An exam-
ple of a two-qubit quantum gate is the XOR:
XOR : [x, y) [x, x y) U
XOR
=
_

_
1 0 0 0
0 1 0 0
0 0 0 1
0 0 1 0
_

_
, (8.1)
where x, y 0, 1 and denotes the binary addition.
The above operations are reversible, and thus, in information the-
oretic sense, we can consider them lossless. Quantum measurements,
which we describe next, are irreversible (lossy) quantum operations.
A quantum measurement is a physical process applied to deter-
mine the state of the quantum system being measured. Only when the
possible states, say [
j
), j = 1, . . . , J, are orthogonal can a quantum
measurement be designed to give an unambiguous answer.
The simplest model of quantum measurement is known as the von
Neumanns measurement. Mathematically, this type of measurement is
dened by a set of pairwise orthogonal projection operators
i
which
8.1 Quantum Information Systems 239
form a complete resolution of the identity, that is,

i

i
= I. For input
[
j
), the classical output
i
[
j
) happens with probability [
j
[
i
[
j
)[
2
.
In a more general case, the pairwise orthogonal projection operators

i
are replaced by any positive-semidenite operators E
i
which
form a complete resolution of the identity. This type of measurement
in known as positive operator-valued measure (POVM).
8.1.3 Cloning, Broadcasting, and Deleting
Since quantum information processing is limited in the way described
above, quantum information cannot be cloned, broadcast or deleted in
the sense made precise below, unless we are dealing with states with
commuting density matrices.
8.1.3.1 The No-Cloning and No-Broadcasting Principles
There is no physical process that leads to an evolution (i.e., quantum
process dened in Section 8.1.2)
[) [s) [) [),
where [) is an arbitrary state and [s) is a xed state.
However, cloning-like operations known as approximate and proba-
bilistic cloning are possible, and were instrumental in developing net-
work coding protocols for multiple unicasts. As the names of these
operations suggest, an approximate clone is close in some distance mea-
sure to the original state, whereas, a probabilistic clone is exactly equal
to the original state but not all the time the operation is performed.
The generalization of the above claim to mixed states is known as the
no-broadcasting principle.
8.1.3.2 The No-Deleting Principle
There is no physical process that leads to an evolution
[) [) [) [s),
where [) is an arbitrary state and [s) is a xed state.
240 Quantum Networks
8.1.4 Networks with Orthogonal States
Quantum information processing in networks in which sources produce
orthogonal quantum states is a straightforward generalization of classi-
cal information processing, and all classical network coding results hold
for such networks. Because of that, we will only describe the quantum
generalization of multicast over the buttery network, and then, start-
ing with next section, move to networks with non-orthogonal quantum
states.
Example 8.1. Consider a quantum counterpart of the buttery net-
work coding scheme where the sources produce mutually orthogonal
quantum states [0) and [1). Let [b
1
) and [b
2
) (where b
1
, b
2
0, 1) be
the qubits produced by sources S
1
and S
2
, respectively. If each net-
work node implements a quantum XOR gate as dened by (8.1), then
the inputs [x) and [y) to the gate at each node and the outputs sent
along the outgoing edges are as follows:
node input output
A [x) = [b
1
) AB : [b
1
)
[y) = [0) AD : [b
1
)
B [x) = [b
1
) BE : [b
1
b
2
)
[y) = [b
2
)
C [x) = [b
2
) CB : [b
2
)
[y) = [0) CF : [b
2
)
D [x) = [b
1
) [b
1
)
[y) = [b
1
b
2
) [b
2
)
E [x) = [b
1
b
2
) ED : [b
1
b
2
)
[y) = [0) EF : [b
1
b
2
)
F [x) = [b
2
) [b
2
)
[y) = [b
1
b
2
) [b
1
)
Therefore, this scheme enables quantum multicast at rate 2.
8.2 Single-Source Quantum Multicast 241
8.2 Single-Source Quantum Multicast
We now consider a simple quantum multicast scenario as illustrated
in Figure 8.1. A quantum source of information S produces quan-
tum states [) H which are to be reproduced at N receiving points
R
1
, . . . , R
N
simultaneously. The source node is connected to another
node A. Since A cannot copy or broadcast the quantum information
it receives, the state [)
N
H
N
, prepared at the source, has to be
made available at A. The question is whether that state has to be actu-
ally transmitted through the quantum channel from S to A if nodes S
and A are allowed to perform lossless compression and decompression
of quantum information. Recall that if this network is classical, then
only a single bit would have to be sent from S to A, which can then
duplicate this bit and send it to the receivers. On the other hand, if N
identical cars are to be delivered to N customers simultaneously over
a network of highways with the same topology as the one shown in the
gure, then clearly, N actual cars would have to be made at the source,
and the highway between S and A would have to have N parallel lanes.
We show that for the scenario of Figure 8.1, a quantum link between
S and A that can carry (logN) qubits is necessary and sucient
Fig. 8.1 Quantum multicast.
242 Quantum Networks
to accommodate multicast of any state [) H produced at the
source.
The idea is to look into how states of the form [)
N
H
N
can
be compressed. The smallest subspace of H
N
that contains all vectors
of the form [)
N
H
N
is known as the symmetric subspace. We
denote this subspace by o/(H
N
). This subspace is precisely the
subspace of H
N
invariant under permutations of the qubits. We will
next nd a basis of the space o/(H
N
) and prove that its dimension
is polynomial in N, and then show how any N-qubit state [)
N
H
N
can be compressed into a (logN)-qubit state in o/(H
N
) and
decompressed from it.
8.2.1 Types and Type Classes
We briey review types and type classes since they will be instrumental
in dening a basis for
o/(H
N
) = [)
N
: [) H).
Let A be a nite set. Given a sequence x = (x
1
, . . . , x
N
) A
N
and
a letter a A, let (a[x) denote the number occurrences of a in x.
Denition 8.1. The type of a sequence x A
N
is the distribution Px
given by
Px(a) =
1
N
(a[x) for every a A.
Conversely, the type class of a distribution P is the set T
N
P
of all
sequences of type P in A
N
:
T
N
P
= x : x A
N
and Px = P.
The set consisting of all possible types of sequences x A
N
is
denoted by T
N
(A). It is easy to show by elementary combinatorics
that
[T
N
(A)[ =
_
N + [A[ 1
[A[ 1
_
. (8.2)
Note that the number of types is polynomial in N.
8.2 Single-Source Quantum Multicast 243
8.2.2 A Basis for Vector Space {|
N
: | H}
Let [) be a vector in a d-dimensional complex vector space H with a
basis [e
i
), i = 1, . . . , d:
[) =
d

i=1

i
[e
i
).
Let A = 1, . . . , d and x = (x
1
, . . . , x
N
) A
N
. Consider the vector
[)
n
H
n
:
[)
n
=
_
d

i=1

i
[e
i
)
_
N
=

x.
N

x
[e
x
),
where

x
=
N

j=1

x
j
and [e
x
) = [e
x
1
) [e
x
N
).
We further have
[)
n
=

x.
n

x
[e
x
) =

P1
N
(.)
d

i=1

NP(i)
i

xT
N
P
[e
x
).
Consequently, a vector of the form [)
N
has [T
N
(A)[ degrees of free-
dom, and the orthonormal basis vectors for [)
N
: [) H) are
indexed by types:
[E
P
) =
1
_
[T
N
P
[

xT
N
P
[e
x
), P T
N
(A). (8.3)
Since [A[ = d, from (8.2) we get that the number of these vectors is
_
N + d 1
d 1
_
.
We have shown that all vectors in the space H
N
(whose dimension
is d
N
) that have the form [)
N
actually belong to a subspace of H
N
whose dimension is only polynomial in N (linear in the binary case
d = 2). We next exploit this fact to show that instead of sending [)
N
along the noiseless quantum channel from S to A in Figure 8.1, it is
sucient (and necessary) to send only (logN) qubits to communicate
the same quantum information.
244 Quantum Networks
8.2.3 Lossless Compression into and Decompression
from SYM(H
N
)
We describe a simple quantum algorithm to compress into and decom-
press from o/(H
N
) using arbitrary single-qubit and two-qubit
gates, in addition to arbitrary reversible classical computation. Any
of those gates can in turn be implemented by a circuit of gates from
any universal gate set. For the clarity of the presentation and because
generalization is straightforward, from now on we consider the binary
case only, i.e., A = 0, 1.
For an N-bit binary string x 0, 1
N
, let [x[ denote its Hamming
weight (the number of 1s in the string). Since the type class of x is deter-
mined by its Hamming weight, the basis for o/(H
N
) (as dened
by(8.3)) is
[E
i
) =
1
_
_
N
i
_

x0,1
N
,[x[=i
[x), 0 i N.
We need only to construct a quantum circuit W that maps [i) [E
i
).
Then we can use the reverse of W to compress into o/(H
N
) and
W itself to decompress. The circuit W would need ancilla states that
are initialized as [0) and returned to the same state at the end of the
computation.
We rst apply the transformation
W
1
: [i) [0)
N
[i) [E
i
).
This can be done, for example, by implementing
[i) [0)
N
[i)
_
_
_
1
_
_
N
i
_

0j(
N
i
)1
[j)
_
_
_
and then mapping j to the jth element in x 0, 1
N
: [x[ = i under
some standard ordering. It is easy to implement
W
2
: [y) [E
i
) [i + y mod (N + 1)) [E
i
).
8.3 Quantum Network Multicast 245
Hence
W

2
W
1
([i) [0)
N
) = [0)
log
2
(N+1)|
[E
i
).
Swapping the qubits completes the construction of W.
8.3 Quantum Network Multicast
We now consider a quantum communication network represented
as a directed graph G = (V, E). There are h information sources
S
1
, . . . , S
h
, each producing a qubit per unit time, and N receivers
= R
1
, . . . , R
N
. For each receiver, there are h edge disjoint paths
to it, one from each of the h sources. For receiver j, we denote these
paths as (S
i
, R
j
), i = 1, . . . , h. The h information sources need to mul-
ticast h qubits simultaneously to all N receivers at rate h. It is easy
to see that the capacity of any cut which separates the sources from
the receivers should be at least hlog(N + 1). We will show that the
multicast is possible if each edge of the network has the capacity of
carrying hlog(N + 1) qubits.
Denition 8.2. We say that source S
i
is present at edge e E if there
is a receiver for which the path (S
i
, R
j
) form source S
i
passes through
edge e.
Let 1 = 1, . . . , h denote the set used to index the h sources, and
1(e) 1 denote the index set comprising the labels of sources present
at edge e E. Let denote the maximum number of sources present
at an edge in the network:
max
eE
[1(e)[ h. (8.4)
Lemma 8.1. Let r(i; e) denote the number of all receivers R
j
for
which the paths (S
i
, R
j
) form source S
i
pass through edge e. We have

i7(e)
r(i; e) N, e E. (8.5)
246 Quantum Networks
Proof. The inequality (8.5) holds because there are N receivers and for
each receiver, say R
j
, the paths (S
i
, R
j
), i 1, are disjoint.
Theorem 8.2. If in a quantum network with h sources of arbitrary
qubits and N receivers the following three conditions hold:
(1) the number of edges in the min-cut between the sources and
each receiver is h,
(2) each edge has the capacity to carry hlog(N + 1)-qubit states,
(3) the nodes have the capability to losslessly compress and
decompress quantum information,
then the sources can simultaneously multicast their qubits through the
network to all receivers.
Proof. The rst condition guarantees that, for each receiver, there are h
edge disjoint paths to it, one from each of the h sources. If the quantum
information is multicast from the sources to the receivers with no pro-
cessing at the intermediate nodes (e.g., compression/decompression),
then edge e carries the quantum state (e):
(e) =

i7(e)
[
i
)
r(i;e)
,
where the qubits [
i
) are prepared by source S
i
and destined to r(i; e)
receivers through edge e. States (e) belong to a subspace of dimension

i7(e)
(r(i; e) + 1) which can be bounded as follows:

i7(e)
(r(i; e) + 1)
_

i7(e)
(r(i; e) + 1)
[1(e)[
_
[7(e)[
(8.6)
(N + 1)

(N + 1)
h
, (8.7)
where (8.6) follows from the geometric/arithmetic mean inequality, and
(8.7) follows from (8.4) and (8.5).
Note that, even if all sources share the same link to all the receivers
(e.g., there are h sources in place of S in Figure 8.1), the capacity of
8.3 Quantum Network Multicast 247
Fig. 8.2 Quantum network multicast from two sources S
1
and S
2
and three groups of
receivers 1
1
= R
1
, . . . , R
k
, 1
2
= R
k+1
, . . . , R
2k
, and 1
3
= R
2k+1
, . . . , R
3k
located on
the three nodes.
hlog(N + 1) is sucient. This requirement is reduced when the qubits
from the h sources are routed through the network in a way which
(roughly speaking) favors more homogeneous edge ows. An example
of qubit routing is shown for the network in Figure 8.2 with 3k receivers.
Note that this is the only valid routing for this network. The maximum
required edge-capacity is 2logk qubits on the edge BE.
Notes
A good introduction and reference material for quantum information
and computation can be found in books by Nielsen and Chuang [63]
and Gruska [31]. Quantum multicast was studied by Shi and Soljanin
[77], who showed that lossless compression of special multicast quantum
states is possible and signicantly reduces the edge capacity require-
ments of the multicast. Two unicasts on the buttery network of quan-
tum channels were rst considered by Hayashi et al. [32], who showed
that two qubits can be sent simultaneously with keeping their delity
strictly greater than 1/2 if the nodes of the network can use one of the
248 Quantum Networks
available algorithms for approximate cloning [7]. This approach was
later extended to probabilistic cloning and general graphs by Iwama et
al. [38]. General multiple unicasts in quantum networks in which exact
or asymptotically exact reproduction of states is required was stud-
ied by Leung et al. [51]. They considered all four scenarios of classi-
cal communication assistance (none, forward, backward, and two-way)
and bipartite networks, and showed that in all these cases, the optimal
strategy is routing. More details on types and type classes can be found
in [11].
9
Emerging Applications of Network Coding
Since its introduction, the eld of network coding has been interdis-
ciplinary, attracting interest from electrical engineers, computer scien-
tists, and mathematicians. Its focus, however, has traditionally been
on transmission scenarios where multiple users share the same network
resources. These days, network coding, and in general, coding ideas are
starting to be successfully used in other applications. In this section,
we briey survey some of the emerging applications of network coding,
namely, network monitoring, operation of switches, on-chip communi-
cation, and distributed storage.
9.1 Network Monitoring
Distributed Internet applications often use overlay networks that enable
them to detect and recover from failures or degraded performance of
the underlying Internet infrastructure. To achieve this high-level goal,
it is necessary for the nodes in the overlay to monitor, assess, and
predict the behavior of Internet paths, and eventually make ecient
use of them. Clearly, accurate monitoring at minimum overhead and
complexity is of crucial importance for the operation of all networks.
249
250 Emerging Applications of Network Coding
Network characteristics such as topology, packet loss rate, delay, and
link failures, are most often inferred based on end-to-end measurements
by techniques commonly referred to as network tomography in analogy
to medical tomography. Active measurement techniques have been pro-
posed that send sequences of probe packets from a set of sources to a
set of receivers, and infer link-level metrics of interest from the received
packets. Some techniques send probes over unicast paths while others
use multicast trees. To cover the entire network, a mesh of paths and/or
trees is needed. The bandwidth eciency of these methods can be mea-
sured by the number of probe packets required to estimate the metric
of interest with a desired accuracy. It depends both on the choice of
paths/trees over which the sequences of probes are sent, as well as
on the number of probes in each sequence. There is a tradeo between
bandwidth eciency and estimation accuracy; it is desirable to improve
both while keeping computational complexity low.
In networks where nodes can perform network coding operations,
we can exploit these capabilities to improve several aspects of network
tomography, as we next show for two problems: link loss monitoring
and topology inference.
9.1.1 Link Loss Monitoring
In this problem, a network is represented as a directed graph G = (V, E)
and packet losses at each link are modeled by a Bernoulli process.
A packet traversing a link e E is lost with probability p
e
indepen-
dently of losses at other links. There is a set S V of nodes that can
act as sources of probe packets, a set R V of nodes that can act as
receivers of probe packets, and a set of links L E being monitored.
The goal is to estimate the packet loss probabilities on the links in L
by sending probe packets from the nodes in S to the nodes in R. The
following example motivates the use of network coding techniques for
link loss monitoring.
Example 9.1. Consider the network shown in Figure 9.1 in which
packet losses are modeled as described above. Nodes A and B send
probes and nodes E and F receive them. We are interested in estimating
9.1 Network Monitoring 251
Fig. 9.1 Link loss monitoring example. Nodes A and B are sources, E and F are receivers,
C can add (or xor) incoming packets, and D copies incoming packet to both outgoing links.
the loss probabilities in all links, namely, p
AC
, p
BC
, p
CD
, p
DE
,
and p
DF
.
The traditional multicast-based tomography uses two multicast
trees rooted at nodes A and B and ending at E and F, as depicted in
Figures 9.1(a) and 9.1(b). A number of identical experiments is made;
at each experiment, source A sends packet x
1
and source B sends packet
x
2
. The receivers E and F infer the link loss rates by keeping track of
how many times they receive packets x
1
and x
2
. Note that, because of
the overlap of the two trees, links CD, DE, and DF are used twice
in each experiment, leading to inecient bandwidth usage. Moreover,
from this set of experiments, we cannot calculate p
CD
, and thus edge
CD is not identiable. Indeed, by observing the experiments outcome,
we cannot distinguish whether packet x
1
is dropped on edge AC or
CD; similarly, we cannot distinguish whether packet x
2
is dropped on
edge BC or CD.
Network coding techniques can be used to address this problem.
The basic idea is the following. We assume that the intermediate nodes
C and D can look at the content of the incoming packets and form
packet(s) to forward to their outgoing link(s). Node A sends to node C
a probe packet with payload that contains the binary string x
1
= [1 0].
Similarly, node B sends probe packet x
2
= [0 1] to node C. If node C
receives only x
1
or only x
2
, then it just forwards the received packet
to node D; if C receives both packets x
1
and x
2
, then it creates a new
252 Emerging Applications of Network Coding
packet, with payload their linear combination x
3
= [1 1], and forwards
it to node D; more generally, x
3
= x
1
x
2
, where is the bit-wise xor
operation. Node D sends the incoming packet x
3
to both outgoing links
DE and DF. All operations happen in one time slot, where a time slot
refers to the time-window node C waits to receive packets x
1
and x
2
;
this time-window needs to be long enough to account for the dierence
in the delay that may occur on edges AC and BC.
In each time slot, probe packet x
1
is sent from node A and
probe packet x
2
is sent from node B. This constitutes one experi-
ment. Depending on which links packet losses take place, nodes E
and F receive x
1
, x
2
, x
3
, or no packet at all. Note that because
of the topology of the network, E and F either receive identical
packets or one of them receives no packet. The possible outcomes
observed at nodes E and F are summarized in the left two columns
of Table 9.1. The ve right columns in the table show the combination
of loss and success events in the links that lead to the observed out-
come, where 0 symbolizes the lost packet event and 1 the success. For
example, the outcome (x
1
, x
1
) occurs when events (AC = 1, BC = 0,
CD = 1, DE = 1, DF = 1) take place, which happens with probability
(1 p
AC
)p
BC
(1 p
CD
)(1 p
DE
)(1 p
DF
). Similarly, we can write
the probability of each of the 10 observed events as a function of the link
loss probabilities. Note that each of the rst nine outcomes uniquely
determines the sequence of events that took place on the network
links.
Table 9.1 Possible observed probes at nodes E and F, together with the combination of
loss (0) and success (1) indicators in the ve links corresponding to the observed outcome.
Packets received Link transmission indicator
at (E, F) AC BC CD DE DF
(x
1
, x
1
) 1 0 1 1 1
(x
2
, x
2
) 0 1 1 1 1
(x
3
, x
3
) 1 1 1 1 1
(x
1
, ) 1 0 1 1 0
(x
2
, ) 0 1 1 1 0
(x
3
, ) 1 1 1 1 0
(, x
1
) 1 0 1 0 1
(, x
2
) 0 1 1 0 1
(, x
3
) 1 1 1 0 1
(, ) Multiple possible causes
9.1 Network Monitoring 253
Repeating the experiment a number of times, we can observe how
many times each event in Table 9.1 occurs. We can then use standard
Maximum Likelihood (ML) estimation to infer the underlying link loss
rates, i.e., estimate p
AC
, p
BC
, p
CD
, p
DE
, p
DF
. The ML estimator iden-
ties the link-loss rates that would, with higher probability, result in
obtaining our particular set of data. Clearly, the associated estimation
accuracy increases with the number of experiments performed.
In general, work in the literature has shown that for the link loss
monitoring problem, use of network coding promises the following
benets:
(1) increase the number of (identiable) links whose loss proba-
bility can be inferred from end-to-end measurements;
(2) eliminate the overlap between paths and/or trees needed to
cover the entire network, i.e., ensure that a single probe
packet traverses each link of the network during each exper-
iment;
(3) use less probes (smallest number of experiments) to achieve
a certain estimation accuracy, by intelligently using not only
the number, but also the content of received probes;
(4) improve the estimation accuracy when allowed to select
which nodes of the network act as sources and which nodes
act as receivers;
(5) reduce the complexity of selecting probe packet paths for
minimum cost monitoring
1
; and
(6) oer a graceful link-loss monitoring approach over networks
that are not trees.
9.1.2 Topology Inference
In networks implementing network coding, the observations at the
receivers depend on the information produced by the sources in a way
1
The problem of selecting multicast trees to identify a set of link-loss rates, while minimizing
the network bandwidth usage, is A1-hard; using network coding oers a polynomial time
solution for the same problem.
254 Emerging Applications of Network Coding
determined by the network code and the network topology.
2
If the inter-
nal nodes are instructed to perform XOR operations on their inputs,
we can develop algorithms to discover the network topology determin-
istically and without any further active participation by the internal
nodes. Consider again the network in Figure 9.1. Assume that links are
lossless and that we have access to the leaf nodes A, B, E, and F but
do not know the topology of the network. If probes x
1
= [1 0] and
x
2
= [0 1] are sent from nodes A and B, and nodes E and F receive
x
3
= [1 1], then, based on this observation, we can conclude that there
was at least one intermediate node that performed XOR on its inputs
coming from A and B.
We next show how we can use this approach to infer the topology
of undirected trees where each edge can be used in either direction and
the connection between any two vertices is reciprocal. We will restrict
our discussion to trees where internal nodes have degree exactly equal
to three. Denote by L = 1, 2, . . . , L the leaf-vertices (leaves) of the
tree. They correspond to end-hosts that can act as sources or receivers
of probe packets. The basic idea is to devise a series of experiments
such that each successive experiment allows us to further reveal the
inner structure of the network. Thus the rst experiment partitions
the network into subgraphs with unknown structure and reveals net-
work edges and vertices that connect these subgraphs. Each succes-
sive experiment further partitions one of the remaining subgraphs with
unknown structure in the same manner. We illustrate this approach
for a particular network in Example 9.2. The extension to a general
algorithm for arbitrary trees with internal nodes of degree three is
straightforward. The same ideas can also be easily extended to arbi-
trary degree trees if we allow packet combining over a larger than the
binary eld.
Example 9.2. Consider the network in Figure 9.2. Assume that we
only know the set of leaves 1, 2, 3, 4, 5, 6, 7 and that each node in the
tree network has degree 3. In the rst experiment, node 1 acts as a
2
Without network coding, the observations at the receivers are simply equal to the infor-
mation generated at the sources.
9.1 Network Monitoring 255
Fig. 9.2 An undirected tree network topology with 7 leaves and 5 intermediate nodes.
source of the probe packet x
1
= [1 0], node 7 acts as a source of the
probe packets x
2
= [0 1], and the rest of the nodes act as receivers
of the probe packets. If an internal node receives a single packet, it
sends a copy of the packet to each of its neighbors. If an internal node
receives two packets within a predetermined time period, it xors the
packets and sends a copy of the result to each of its neighbors. Thus,
node A receives packet x
1
, and sends a copy of it to both leaf 2 and to
node C. Similarly, node D receives packet x
2
, and sends a copy of it to
E which in turn sends a copy to both leaf 5 and leaf 6. Probe packets x
1
and x
2
arrive (within a predetermined time window) to node C. Node
C creates the packet x
3
= x
1
x
2
= [1 1] and forwards x
3
to node B
which in turn sends a copy to both leaf 3 and leaf 4.
3
Our knowledge of the network prior to the above experiment is
summarized in Figure 9.3(a). As a result of the experiment, the tree
will be divided into three areas, L
1
containing S
1
and the leaves that
received probe packet x
1
(in total, L
1
= 1, 2). Similarly L
2
= 5, 6, 7
are nodes containing S
2
and the leaves that received probe packet x
2
3
Note that we have chosen the directionality of the edges depending on which source reaches
the vertex rst. If there is variable delay, then the vertex where the packets x
1
, x
2
meet
could be dierent, but this does not aect the algorithm.
256 Emerging Applications of Network Coding
Fig. 9.3 Structure revealed after two iterations.
and L
3
= 3, 4 containing the leaves that received probe packets x
1

x
2
. From this information, observed at the edge of the network, we can
deduce that the network has the structure depicted in Figure 9.3(b).
To infer the structure that connects leaves 5, 6, 7 to node C, we
need to perform a second experiment, where we now randomly choose
two of these three leaves to act as sources of probe packets. For exam-
ple, assume that nodes 5 and 6 act as sources S
1
and S
2
of probe
packets. Note that any probe packet leaving node D will be multicas-
ted to all the remaining leaves of the network, i.e., nodes 1, 2, 3, 4 will
observe the same packet. Thus in this sense we can think of node D
as a single aggregate-receiver for this second experiment, that will
observe the common packet received at nodes 1, 2, 3, 4. Following the
same procedure as before, assuming that packets x
1
and x
2
meet at
node E, receivers 7 and 1, 2, 3, 4 receive packet x
3
= x
1
x
2
. Using
this additional information we rene the inferred network structure as
depicted in Figure 9.3(c). Since each node in the network has degree
three, we can deduce from Figure 9.3(c) the precise topology shown in
Figure 9.2.
9.2 Operations of Switches 257
9.2 Operations of Switches
A switch is a network device with k inputs and n outputs (or ports),
that connects inputs to outputs under the constraint that each output
is connected to at most one input at a time. Moreover, an input cannot
send dierent information to dierent outputs at the same time.
Arriving data packets are stored in the input queues of the switch,
and register a request to be forwarded to a specic subset of the output
ports. To maximize the speed of operation, the switch uses a scheduling
algorithm to serve as many packets as possible in parallel.
In practice, the switch serves trac ows, rather than individual
packets. The packets in each ow have a common source and destina-
tion set and an associated arrival rate. To accommodate the multiple
trac ows, a technique typically used is speedup, which refers to that
the switch operates at a faster clock than the incoming and outgoing
network links.
Example 9.3. Consider a switch with two inputs and three outputs as
shown in Figure 9.4. Assume we want to accomodate four rate 1/2 data
ows: at input 1, we have ow A destined to outputs 1, 2 and ow B
to output 1, and at input 2, we have ow C destined to outputs 2, 3
and ow D to output 3. This trac pattern can be accommodated
using a speedup factor of two, where the switch operates twice as fast
Fig. 9.4 A switch with two inputs and three outputs.
258 Emerging Applications of Network Coding
as the network. In the rst time-slot, ows A and D can be served,
while in the second time-slot ows B and C.
We say that a switch has network coding capabilities, if it is allowed
to send linear combinations of the packets waiting in the input queues.
For switches that serve multicast patterns, use of network coding allows
to simultaneously accommodate a larger number of trac patterns,
and increase the achievable rate region of the switch, as the following
example illustrates.
Example 9.4. Consider again the switch in Figure 9.4, but now
assume the following four data ows: at input 1, we have one ow
A of rate 2/3 destined to outputs 1, 2, 3; at input 2, we have three
rate 1/3 unicast ows, ow B destined to output 1, ow C to output
2, and ow D to output 3. Note that the multicast ow A from
input 1 requests twice the rate of the unicast ows; i.e., requests to send
two packets, say P
1
, P
2
to the three outputs, for each one packet the
unicast ows send. However, each unicast ow from input 2 blocks one
of the outputs at each time slot, and thus the multicast packet can be
send at best to the other two outputs. This implies that it will take
at least two time slots to complete sending each multicast packet, and
hence, rate more than 1/2 is not achievable. Table 9.2 shows a network
coding scheme that allows to serve this trac pattern using simple
binary operations. Again, each unicast ow blocks one output at each
time slot, but now input 1 employs coding across the packets P
1
, P
2

to ensure that all outputs receive useful (innovative) information during


each time slot.
To design schedules for multicast switches, we can use graphs that
capture the contention among dierent ow requests. Such graphs are
Table 9.2 Coding scheme applied to packets P
1
, P
2
of ow A at input 1 of the switch.
Time slot Code Outputs
1 P
1
1, 2
2 P
2
2, 3
3 P
1
+ P
2
1, 3
9.2 Operations of Switches 259
known as conict graphs, and can be created as follows. We rst split
each multicast ow destined to n
1
outputs into n
1
unicast subows,
each destined to a single output. We then form the conict graph as an
undirected graph whose vertices correspond to the subows and whose
edges connect the vertices corresponding to contending subows. More
precisely, a conict graph has
(1) a vertex for each subow,
(2) an edge between each pair of vertices whose corresponding
subows arrive at the same input but belong to dierent
ows, and
(3) an edge between each pair of vertices whose corresponding
subows request the same output.
In addition, with each vertex we associate a weight equal to the rate of
the ow to which the subow corresponding to the vertex belongs.
Figure 9.5 shows the conict graph for the trac pattern requests
in Example 9.4. Note that the multicast ow A is split in three unicast
ows A
1
, A
2
, and A
3
. Edges BC, CD, and DB are of type (2), and
edges A
1
B, A
2
C, and A
3
D are of type (3).
Clearly, the set of subows that can be served simultaneously at a
given time slot corresponds to an independent set, i.e., a set of vertices
no two of which are connected by an edge. To accommodate the dif-
ferent rates requests, we can use dierent independent sets at dierent
Fig. 9.5 Conict graph corresponding to Example 9.4.
260 Emerging Applications of Network Coding
time-slots. In particular, assume that the conict graph has m vertices
(subows), and let be the m 1 vector collecting the rates a par-
ticular schedule allocates to each subow. If
s
denotes the incidence
vector for an independent set s, and during our schedule we use
s
for
s
time slots, the rates we will be serving for each subow can be
calculated as
=

s
.
The achievable rate region corresponds to all possible vectors . Net-
work coding is used to ensure that the transmitted packets on the sub-
ows are innovative for all outputs. The following example illustrates
this approach.
Example 9.5. Consider the trac pattern requests in Example 9.4
and the corresponding conict graph in Figure 9.5. We have six sub-
ows, three corresponding to the unicast ows B, C and D, and three
A
1
, A
2
, and A
3
created by splitting the multicast ow A according to
the outputs. The solution in Table 9.2 corresponds to using three inde-
pendent sets of the conict graph, s
1
= A
1
, A
2
, D, s
2
= A
2
, A
3
, B,
and s
3
= A
1
, A
3
, C, each a fraction 1/3 of time. Coding ensures that
the subows A
1
, A
2
, and A
3
, whenever active, bring innovative infor-
mation to the corresponding outputs.
9.3 On-Chips Communication
Recent work has started investigating potential benets of applying
network coding techniques to VLSI chip design. The design of VLSI
chips aims to simplify and minimize the length of on-chip wiring.
Network coding can help reach this goal, at the cost of additional
coding/decoding logic in the network. This overhead indicates that
scenarios where network coding is benecial may occur in the routing
of multicast signals along long routes (buses). The buttery network
(embedded on a chip) can be used as an illustrative example, where,
to transmit at rate two to both receivers, we can either perform cod-
ing operations at one of the network nodes, or alternatively, use two
9.4 Distributed Storage 261
parallel edges to replace the edge where the contention for network
resources occurs. Experimental results indicate potential benets in
terms of interconnect power, wiring length, and area.
9.4 Distributed Storage
Distributed storage systems store pieces of information entities (e.g.,
pieces of data les or sensor measurements) throughout the network,
usually with the purpose to ensure sucient storage capacity by using
resources of multiple network nodes (e.g., disks at several computers or
memory of wireless sensors). The information should be stored reliably
over long time periods, i.e., with enough redundancy so that it could be
recovered even if several of the computers or sensors were unavailable.
Simple replication, a straightforward approach to storing data redun-
dantly, is not very ecient in terms of capacity required to store the
redundant information and transmission resources required to collect
the distributed pieces of information.
The most ecient way to store a data entity redundantly is by
the means of MDS codes (e.g., Reed Solomon), so that dierent net-
work nodes store dierent coded symbols. The challenging questions
arise when multiple data entities originating at dierent places in the
network are to be simultaneously stored throughout the network. Nat-
urally, it is in such scenarios that network coding ideas are directly
applicable and benecial.
Another line of distributed problems deals with large-scale wire-
less sensor networks consisting of small devices (nodes) with limited
resources (e.g., CPU power, bandwidth, and memory). Because of that,
data acquired by sensor nodes have short lifetime, and any process-
ing of such data within the network should have low complexity and
power consumption. The goal here is to disseminate data acquired by
a small number K of sensor nodes (sources) distributed throughout
the network, redundantly to all nodes in the network so that at the
end of this process, the K originally acquired pieces of information can
be recovered from any collection of nodes of a size that is not much
larger than K, with low computational complexity. We already dis-
cussed such applications in Section 4. The main advantages of such data
262 Emerging Applications of Network Coding
dissemination are prolonged lifetime, increased spatial availability, as
well as computationally and spatially easy access to the acquired data.
The problem here, which also can be addressed by network coding, is
to devise ecient algorithms for the acquired data dissemination that
upon completion guarantees that each node stores a coded symbol of
an MDS code.
Notes
Network coding for active network monitoring was proposed by Fragouli
and Markopoulou [22, 23]. Passive inference of link-loss rates has also
been proposed by Ho et al. [34]. More recently, passive inference of
topological properties in networks that employ randomized network
coding was proposed by Jafarisiavoshani et al. [39]. Network coding for
multicast switches was proposed by Sundararajan et al. [45, 83, 84].
The presented examples and achievable rate region description come
from [84]. Using network coding to improve on-chip communication was
proposed by Jayakumar et al. [42]. A decentralized implementation of
Fountain codes for distributed data storage that uses geographic rout-
ing was proposed by Dimakis et al. [15, 16]. Another approach that uses
random walks with traps to disseminate the source packets through-
out the network was proposed by Lin et al. [52]. A technique called
growth codes to increase data persistence in wireless sensor networks
by increasing the amount of information that can be recovered at the
sink was introduced by Kamara et al. [43].
Acknowledgments
This work was in part supported by NSF under award No. CCR-
0325673, FNS under award No. 200021-103836/1, the NetRefound
FP6 FET Open Project of the European Union under grant num-
ber IST-034413 and DIMACS under the auspices of Special focus on
Computational Information Theory and Coding. We would also like to
acknowledge useful comments from Dr Eleni Drinea.
263
References
[1] M. Adler, N. J. A. Harvey, K. Jain, R. Kleinberg, and A. R. Lehman, On the
capacity of information networks, SODA, pp. 241250, 2006.
[2] S. Androutsellis-Theotokis and D. Spinellis, A survey of peer-to-peer content
distribution technologies, ACM Computing Surveys, vol. 36, no. 4, no. 4, 2004.
[3] S. Avestimehr, S. N. Diggavi, and D. N. Tse, A deterministic model for wireless
relay networks and its capacity, Information Theory Workshop, September
2007.
[4] S. Avestimehr, S. N. Diggavi, and D. N. Tse, Wireless network information
ow, Allerton, September 2007.
[5] P. Backx, T. Wauters, B. Dhoedt, and P. Demester, A comparison of peer-to-
peer architectures, in Eurescom Summit 2002, 2002.
[6] K. Bhattad and K. R. Narayanan, Weakly Secure Network Coding, in Pro-
ceedings of First Workshop on Network Coding, Theory, and Applications (Net-
Cod05), April 2005.
[7] V. Buzek and M. Hillery, Quantum copying: Beyond the no-cloning theorem,
Physics Review A, vol. 54, pp. 18441853, 1996.
[8] N. Cai and R. W. Yeung, Network error correction, II: Lower bounds, Com-
munication and Information Systems, vol. 6, pp. 3754, 2006.
[9] I. Clarke, O. Sandberg, B. Wiley, and T. W. Hong, Freenet: A distributed
anonymous information storage and retrieval system, in ICSI Workshop on
Design Issues in Anonymity and Unobservability, 2000.
[10] B. Cohen, http://www.bittorrent.com,.
[11] I. Csiszar and J. Korner, Information Theory: Coding Theorems for Discrete
Memoryless Systems. Budapest, Hungary: Academiai Kiado, 1986.
264
References 265
[12] S. Deb, M. Medard, and C. Choute, Algebraic gossip: A network coding
approach to optimal multiple rumor mongering, IEEE/ACM Transactions on
Networking, vol. 14, pp. 24862507, June 2006.
[13] A. G. Dimakis, P. B. Godfrey, M. Wainwright, and K. Ramchandran, Network
coding for distributed storage systems, Infocom, 2007.
[14] A. G. Dimakis, V. Prabhakaran, and K. Ramchandran, Ubiquitous access to
distributed data in large-scale sensor networks through decentralized erasure
codes, in Symposium on Information Processing in Sensor Networks (IPSN
05), April 2005.
[15] A. G. Dimakis, V. Prabhakaran, and K. Ramchandran, Distributed fountain
codes for networked storage, Acoustics, Speech and Signal Processing, ICASSP
2006, May 2006.
[16] A. G. Dimakis, V. Prabhakaran, and K. Ramchandran, Decentralized erasure
codes for distributed networked storage, IEEE/ACM Transactions on Net-
working (TON), June 2006.
[17] R. Dougherty, C. Freiling, and K. Zeger, Unachievability of network coding
capacity, IEEE Transactions on Information Theory and IEEE/ACM Trans-
actions on Networking, vol. 52, pp. 23652372, June 2006.
[18] R. Dougherty and K. Zeger, Nonreversibility and equivalent constructions of
multiple-unicast networks, IEEE Transactions on Information Theory, vol. 52,
pp. 50675077, November 2006.
[19] A. Erylmaz, A. Ozdaglar, and M. Medard, On delay performance gains from
network coding, CISS, 2006.
[20] J. Feldman, T. Malkin, C. Stein, and R. A. Servedio, On the Capacity of
Secure Network Coding, in Proceedings of 42nd Annual Allerton Conference
on Communication, Control, and Computing, September 2004.
[21] W. Feller, An Introduction to Probability Theory and Its Applications. Vol. 1,
Wiley, Third Edition, 1968.
[22] C. Fragouli and A. Markopoulou, A network coding approach to network
monitoring, Allerton, 2005.
[23] C. Fragouli, A. Markopoulou, and S. Diggavi, Active topology inference using
network coding, Allerton, 2006.
[24] C. Fragouli and E. Soljanin, Network coding fundamentals, Foundation and
Trends in Networking, vol. 2, no. 1, pp. 1133, 2007.
[25] C. Fragouli, J. Widmer, and J.-Y. L. Boudec, A network coding approach
to energy ecient broadcasting: From theory to practice, in IEEE Infocom,
Barcelona, Spain, April 2006.
[26] C. Fragouli, J. Widmer, and J.-Y. L. Boudec, On the benets of network
coding for wireless applications, in Network Coding Workshop, Boston, 2006.
[27] C. Gkantsidis and P. Rodriguez, Network coding for large scale content dis-
tribution, in Proceedings of Infocom, IEEE, 2005.
[28] C. Gkantsidis, J. Miller, and P. Rodriguez, Comprehensive view of a live net-
work coding P2P system, in IMC 06: Proceedings of the 6th ACM SIGCOMM
on Internet Measurement, pp. 177188, New York, NY, USA: ACM Press, 2006.
[29] Gnutella, http://gnutella.wego.com, 2000.
266 References
[30] R. Gowaikar, A. F. Dana, R. Palanki, B. Hassibi, and M. Eros, On the
capacity of wireless erasure networks, in Proceedings of the IEEE International
Symposium on Information Theory, p. 401, 2004.
[31] J. Gruska, Quantum Computing. Mcgraw Hill, 2000.
[32] M. Hayashi, K. Iwama, H. Nishimura, R. Raymond, and S. Yamashita, Quan-
tum Network Coding, Available: http://arxiv.org/abs/quant-ph/0601088
[online], 2006.
[33] T. Ho, Y. Chang, and K. J. Han, On constructive network coding for multiple
unicasts, 44th Allerton Conference on Communication, Control and Comput-
ing, 2006.
[34] T. Ho, B. Leong, Y. Chang, Y. Wen, and R. Koetter, Network monitoring
in multicast networks using network coding, in International Symposium on
Information Theory (ISIT), June 2005.
[35] T. Ho, B. Leong, R. Koetter, M. Medard, M. Eros, and D. Karger, Byzan-
tine Modication Detection in Multicast Networks using Randomized Network
Coding, in Proceedings of 2004 IEEE International Symposium on Informa-
tion Theory (ISIT04), June 2004.
[36] T. Ho, M. Medard, and R. Koetter, An information-theoretic view of network
management, IEEE Transactions on Information Theory, vol. 51, pp. 1295
1312, April 2005.
[37] M. Hofmann and L. Beaumont, Content Networking: Architecture, Protocols,
and Practice. Morgan Kaufmann, 2004.
[38] K. Iwama, H. Nishimura, R. Raymond, and S. Yamashita, Quantum network
coding for general graphs, Available: http://arxiv.org/abs/ quant-ph/0611039
[online], 2006.
[39] M. Jafarisiavoshani, C. Fragouli, and S. Diggavi, On subspace properties for
randomized network coding, in Information Theory Workshop (ITW), July
2007.
[40] M. Jafarisiavoshani, C. Fragouli, S. Diggavi, and C. Gkantsidis, Bottleneck
discovery and overlay management in network coded peer-to-peer systems,
ACM SigComm INM07, August 2007.
[41] S. Jaggi, M. Langberg, S. Katti, T. Ho, D. Katabi, and M. Medard, Resilient
network coding in the presence of Byzantine adversaries, in INFOCOM,
pp. 616624, 2007.
[42] N. Jayakumar, K. Gulati, and S. K. A. Sprintson, Network coding for routabil-
ity improvement in VLSI, IEEE/ACM International Conference on Computer-
Aided Design (ICCAD), 2006.
[43] A. Kamra and V. Misra, Growth Codes: Maximizing Sensor Network Data
Persistence, in Sigcomm06, Pisa, Italy, 2006.
[44] S. Katti, H. Rahul, W. Hu, D. Katabi, M. Medard, and J. Crowcroft, XORs
in the air: Practical wireless network coding, ACM SIGCOMM, September
2006.
[45] M. Kim, J. Sundararajan, and M. Medard, Network coding for speedup in
switches, in ISIT, June 2007.
[46] R. Koetter and F. Kschischang, Coding for errors and rrasures in random
network coding, ISIT, June 2007.
References 267
[47] G. Kramer and S. A. Savari, Edge-cut bounds on network coding rates, Jour-
nal of Network and Systems Management, vol. 14, 2006.
[48] M. N. Krohn, M. J. Freedman, and D. Mazi`eres, On-the-Fly Verication of
Rateless Erasure Codes for Ecient Content Distribution, in Proceedings of
the IEEE Symposium on Security and Privacy, Oakland, CA, May 2004.
[49] J. Kubiatowicz, D. Bindel, Y. Chen, S. Czerwinski, P. Eaton, D. Geels, R. Gum-
madi, S. Rhea, H. Weatherspoon, C. Wells, and B. Zhao, OceanStore: An
architecture for global-scale persistent storage, in Proceedings of the 9th Inter-
national Conference on Architectural Support for Programming Languages and
Operating Systems, pp. 190201, ACM Press, 2000.
[50] A. R. Lehman and E. Lehman, Network coding: Does the model need tuning?,
SODA, pp. 499504, 2005.
[51] D. Leung, J. Oppenheim, and A. Winter, Quantum network communication
the buttery and beyond, Available: http://arxiv.org/abs/ quant-ph/0608223
[online], 2006.
[52] Y. Lin, B. Liang, and B. Li, Data persistence in large-scale sensor networks
with decentralized fountain codes, in Proceedings of the 26th IEEE INFOCOM
2007, Anchorage, Alaska, May 612 2007.
[53] M. Luby, LT Codes, IEEE Symposium on the Foundations of Computer Sci-
ence (STOC), pp. 271280, 2002.
[54] M. Luby, M. Mitzenmacher, A. Shokrollahi, D. Spielman, and V. Stemann,
Practical loss-resilient codes, ACM Symposium on Theory of Computing,
pp. 150159, 1997.
[55] D. Lun, M. Medard, and M. Eros, On coding for reliable communication
over packet networks, Allerton Conference on Communication, Control, and
Computing, SeptemberOctober 2004.
[56] D. S. Lun, Ecient operation of coded packet networks, PhD thesis, Mas-
sachusetts Institute of Technology, June 2006.
[57] D. S. Lun, P. Pakzad, C. Fragouli, M. Medard, and R. Koetter, An analysis
of nite-memory random linear coding on packet streams, WiOpt 06, April
2006.
[58] D. S. Lun, N. Ratnakar, R. Koetter, M. Medard, E. Ahmed, and H. Lee,
Achieving minimum-cost multicast: A decentralized approach based on net-
work coding, in Proceedings of IEEE Infocom, March 2005.
[59] P. Maymounkov and D. Mazieres, Kademlia: A Peer-to-Peer Information Sys-
tem Based on the XOR Metric, in International Workshop on Peer-to-Peer
Systems (IPTPS02), 2002.
[60] D. Mosk-Aoyamam and D. Shah, Information dissemination via network cod-
ing, ISIT, pp. 17481752, 2006.
[61] R. Motwani and P. Raghavan, Randomized Algorithms. Cambridge University
Press, 1995.
[62] Napster, http://www.napster.com, 1999.
[63] M. A. Nielsen and I. L. Chuang, Quantum Computation and Quantum Infor-
mation. Cambridge University Press, 2000.
[64] P. Pakzad, C. Fragouli, and A. Shokrollahi, Coding schemes for line networks,
ISIT, pp. 18531857, September 2005.
268 References
[65] D. Petrovic, K. Ramchandran, and J. Rabaey, Overcoming untuned radios
in wireless networks with network coding, IEEE/ACM Transactions on Net-
working, vol. 14, pp. 26492657, June 2006.
[66] A. Ramamoorthy, J. Shi, and R. D. Wesel, On the capacity of network coding
for random networks, IEEE Transactions on Information Theory, vol. 51,
pp. 28782885, August 2005.
[67] N. Ratnakar and G. Kramer, The multicast capacity of acyclic, deterministic,
relay networks with no interference, Network Coding Workshop, April 2005.
[68] N. Ratnakar and G. Kramer, On the separation of channel and network coding
in Aref networks, ISIT, pp. 17161719, September 2005.
[69] S. Ratnasamy, P. Francis, M. Handley, R. M. Karp, and S. Shenker, A scalable
content-addressable network, in SIGCOMM, pp. 161172, ACM Press, 2001.
[70] S. Riis, Reversible and irreversible information networks, submitted.
[71] S. Riis, Linear versus non-linear Boolean functions in network ow, CISS,
2004.
[72] S. E. Rouayheb and E. Soljanin, On wiretap networks II, in Proceedings of
2007 International Symposium on Information Theory, (ISIT07), Nice, France,
June 2007.
[73] S. E. Rouayheb, A. Sprintson, and C. N. Georghiades, Simple network
codes for instantaneous recovery from edge failures in unicast connections,
in Proceedings of 2006 Workshop on Information Theory and its Applications,
(ITA06), San Diego, CA, USA, February 2006.
[74] A. Rowstron and P. Druschel, Pastry: Scalable, distributed object location
and routing for large-scale peer-to-peer systems, in IFIP/ACM International
Conference on Distributed Systems Platforms (Middleware), pp. 329350, Hei-
delberg, Germany: Springer, 2001.
[75] Y. E. Sagduyu and A. Ephremides, Joint scheduling and wireless network
coding, Network Coding Workshop, 2005.
[76] Schrijver, Combinatorial Optimization. Springer, 2003.
[77] Y. Shi and E. Soljanin, On Multicast in Quantum Networks, in Proceedings
of 40th Annual Conference on Information Sciences and Systems (CISS06),
March 2006.
[78] A. Shokrollahi, Raptor codes, IEEE Transactions on Information Theory,
vol. 52, pp. 25512567, 2006.
[79] D. Silva and F. R. Kschischang, Using rank-metric codes for error correction
in random network coding, ISIT, June 2007.
[80] S. Sivasubramanian, M. Szymaniak, G. Pierre, and M. van Steen, Replica-
tion for web hosting systems, ACM Computing Surveys, vol. 36, no. 3, no. 3,
pp. 291334, 2004.
[81] L. Song, N. Cai, and R. W. Yeung, A separation theorem for single source
network coding, IEEE Transactions on Information Theory, vol. 52, pp. 1861
1871, May 2006.
[82] I. Stoica, R. Morris, D. Karger, F. Kaashoek, and H. Balakrishnan, Chord:
A scalable peer-to-peer lookup service for internet applications, in Proceedings
of the 2001 ACM Sigcomm Conference, pp. 149160, ACM Press, 2001.
References 269
[83] J. Sundararajan, S. Deb, and M. Medard, Extending the Birkho-von Neu-
mann switching strategy to multicast switches, in Proceedings of the IFIP
Networking 2005 Conference, May 2005.
[84] J. Sundararajan, M. Medard, M. Kim, A. Eryilmaz, D. Shah, and R. Koetter,
Network coding in a multicast switch, Infocom, March 2007.
[85] D. Tuninetti and C. Fragouli, On the throughput improvement due to limited
complexity processing at relay nodes, ISIT, pp. 10811085, September 2005.
[86] Y. Wu, P. A. Chou, and S.-Y. Kung, Minimum-energy multicast in mobile ad
hoc networks using network coding, IEEE Transactions on Communications,
vol. 53, no. 11, pp. 19061918, November 2005.
[87] S. Yang, C. K. Ngai, and R. W. Yeung, Construction of linear network codes
that achieve a rened Singleton bound, ISIT, June 2007.
[88] S. Yang and R. W. Yeung, Characterizations of network error correc-
tion/detection and erasure correction, Network Coding Workshop, January
2007.
[89] R. W. Yeung and N. Cai, Secure Network Coding, in Proceedings of 2002
IEEE International Symposium on Information Theory (ISIT02), June 2004.
[90] R. W. Yeung and N. Cai, Network error correction, I: Basic concepts and
upper bounds, Communication and Inforamtion Systems, vol. 6, pp. 1935,
2006.
[91] S. Zhang, S. Liew, and P. Lam, Physical layer network coding, ACM Mobi-
Com 2006, pp. 2429, September 2006.
[92] Z. Zhang, Network error correction coding in packetized networks, ITW,
October 2006.
[93] B. Y. Zhao, L. Huang, J. Stribling, S. C. Rhea, A. D. Joseph, and J. Kubiatow-
icz, Tapestry: A resilient global-scale overlay for service deployment, IEEE
Journal on Selected Areas in Communications, vol. 22, no. 1, no. 1, pp. 4153,
2004.

You might also like