0% found this document useful (0 votes)
28 views

Network Coding: An Instant Primer: LCA-REPORT-2005-010

This document provides an instant primer on network coding. It explains that network coding allows intermediate nodes in a network to send out packets that are linear combinations of previously received information, which can improve throughput and robustness. The document outlines the basic concepts of linear network coding, including how encoding, decoding, and selecting linear combinations works. It also discusses some practical considerations for implementing network coding.

Uploaded by

Arghyadip Roy
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
28 views

Network Coding: An Instant Primer: LCA-REPORT-2005-010

This document provides an instant primer on network coding. It explains that network coding allows intermediate nodes in a network to send out packets that are linear combinations of previously received information, which can improve throughput and robustness. The document outlines the basic concepts of linear network coding, including how encoding, decoding, and selecting linear combinations works. It also discusses some practical considerations for implementing network coding.

Uploaded by

Arghyadip Roy
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

Network Coding: An Instant Primer

LCA-REPORT-2005-010
Christina Fragouli
EPFL - IC

Jean-Yves Le Boudec
EPFL - IC

Jorg Widmer
DoCoMo Labs

[email protected]

[email protected]

[email protected]
Network Coding a S A A A a xor b S S b a xor b

ABSTRACT
Network coding is a new research area that may have interesting applications in practical networking systems. With network coding, intermediate nodes may send out packets that are linear combinations of previously received information. There are two main benets of this approach: potential throughput improvements and a high degree of robustness. Robustness translates into loss resilience and facilitates the design of simple distributed algorithms that perform well, even if decisions are based only on partial information. This paper is an instant primer on network coding: we explain what network coding does and how it does it. We also discuss the implications of theoretical results on network coding for realistic settings and show how network coding can be used in practice.

Traditional Method A A A A a b a S S S S b a b B B B B

B B B

Categories and Subject Descriptors


H.4 [Information Systems Applications]: Miscellaneous

Figure 1: A simple network coding example. Nodes A and B want to exchange packets via an intermediate node S (wireless base station). A [resp. B] sends a packet a [resp. b] to B, which then broadcasts a xor b instead of a and b in sequence. Both A and B can recover the packet of interest, while the number of transmissions is reduced. larger degree of exibility in the way packets can be combined. In addition to the throughput benets evidenced in this example, network coding is also very well suited for for environments where only partial or uncertain information is available for decision making. Similar to erasure coding, successful reception of information does not depend on receiving specic packet content but rather on receiving a sucient number of independent packets. Linear combining requires enhanced computational capabilities at the nodes of the network. However, according to Moores law, processing is becoming less and less expensive. The bottleneck has shifted to network bandwith to support the ever-growing demand in applications and QoS guarantees over large unreliable networks. Network coding utilizes cheap computational power to increase network ecacy. The goal of this paper is to make the basic concepts of network coding available to the networking community.1 Section 2 explains what it is and how it can be implemented. Section 3 discusses existing results on the performance benets of network coding. Section 4 reviews proposals to use network coding in information and networking systems.

General Terms
Network Coding

Keywords
Network Coding

1. INTRODUCTION
Communication networks today share the same fundamental principle of operation. Whether it is packets over the Internet, or signals in a phone network, information is transported in the same way as cars share a highway or uids share pipes. That is, independent data streams may share network resources, but the information itself is separate. Routing, data storage, error control, and generally all network functions are based on this assumption. Network coding [2] is a recent eld in information theory that breaks with this assumption. Instead of simply forwarding data, nodes may recombine several input packets into one or several output packets. A simple example in a wireless context is a three node topology, as shown in Figure 1. Linear network coding, in general, is similar to this example, with the dierence that the xor operation is replaced by a linear combination of the data, interpreted as numbers over some nite eld. This allows for a much available online from infoscience.epfl.ch

2. 2.1

WHAT IS NETWORK CODING ? Linear Network Coding

Consider a system that acts as information relay, such as a router, a node in an ad-hoc network, or a node in a peer
1 For an exhaustive list of literature on network coding see www.networkcoding.info

to peer distribution network. Traditionally, when forwarding an information packet destined to some other node, it simply repeats it. With network coding, we allow the node to combine a number of packets it has received or created into one or several outgoing packets. Assume that each packet consists of L bits. When the packets to be combined do not have the same size, the shorter ones are padded with trailing 0s. We can interpret s consecutive bits of a packet as a symbol over the eld F2s , with each packet consisting of a vector of L/s symbols. With linear network coding, outgoing packets are linear combinations of the original packets, where addition and multiplication are performed over the eld F2s (see Section 2.5 for what this means). The reason for choosing a linear framework is that the algorithms for coding and decoding are well understood. Linear combination is not concatenation: if we linearly combine packets of length L, the resulting encoded packet also has size L. In contrast to concatenation, each encoded packet contains only a fraction of the information contained in original packets. One can think of linear network coding as a form of information spreading. As we explain in Section 3, this has a benet in many cases (as in Figure 1).

the number of received packets needs to be at least as large as the number of original packets. Conversely, the condition m n is not sucient, as some of the combinations might be linearly dependent. However, and this is a major appeal of network coding, this is easy, as we discuss next.

2.4

How to Select the Linear Combinations

2.2 Encoding
Assume that a number of original packets M 1 , ..., M n are generated by one or several sources. In linear network coding, each packet through the network is associated with a sequence of coecients g1 , ..., gn in F2s and is equal to n i X = i=1 gi M . The summation has to occur for every i i symbol position, i.e., Xk = n gi Mk , where Mk and Xk i=1 i is the kth symbol of M and X respectively. In the example of Figure 1, the eld is F2 = {0, 1}, a symbol is a bit, and the linear combination sent by S after receiving M 1 = a and M 2 = b is M 1 + M 2 (the + sign here is addition in F2 , i.e., bitwise xor). For simplicity, we assume that a packet contains both the coecients g = (g1 , ..., gn ), called encoding vector, and the n i encoded data X = i=1 gi M , called information vector [7]. The encoding vector is used by recipients to decode the data, as explained later. For example, the encoding vector ei = (0, ..., 0, 1, 0, ...0), where the 1 is at the ith position, means that the information vector is equal to M i (i.e., is not encoded). Encoding can be performed recursively, namely, to already encoded packets. Consider a node that has received and stored a set (g 1 , X 1 ), ..., (g m , X m ) of encoded packets, where g j [resp. X j ] is the encoding [resp. information] vector of the jth packet. This node may generate a new encoded packet (g , X ) by picking a set of coecients h1 , ..., hm and m j computing the linear combination X = j=1 hj X . The corresponding encoding vector g is not simply equal to h, since the coecients are with respect to the original packets M 1 , ..., M n ; in contrast, straightforward algebra shows j that it is given by gi = m hj gi . This operation may be j=1 repeated at several nodes in the network.

The problem of network code design is to select what linear combinations each node of the network performs. A simple algorithm is to have each node in the network select uniformly at random the coecients over the eld F2s , in a completely independent and decentralized manner [26]. With random network coding there is a certain probability of selecting linearly dependent combinations [26]. This probability is related to the eld size 2s . Simulation results indicate that even for small eld sizes (for example, s = 8) this probability becomes negligible [29]. Alternatively, we can use deterministic algorithms to design network codes. The polynomial-time algorithm for multicasting in [21], sequentially examines each node of the network, and decides what linear combinations each node performs. Since each node uses xed linear coecients, the packets only need to carry the information vector. There also exist deterministic decentralized algorithms that apply to restricted families of network congurations [4].

2.5

Practical Considerations

2.3 Decoding
Assume a node has received the set (g 1 , X 1 ), ..., (g m , X m ). In order to retrieve the original packets, it needs to solve the j system {X j = n gi M i } (where the unknowns are M i ). i=1 This is a linear system with m equations and n unknowns. We need m n to have a chance of recovering all data, i.e.

Decoding: Decoding requires solving a set of linear equations. In practice, this can be done as follows. A node stores the encoded vectors it receives as well as its own original packets, row by row, in a so-called decoding matrix. Initially, it contains only the non-encoded packets issued by this node with the corresponding encoding vectors (if any, else it is empty). When an encoded packet is received, it is inserted as last row into the decoding matrix. The matrix is transformed to triangular matrix2 using Gaussian elimination. A received packet is called innovative if it increases the rank of the matrix. If a packet is non-innovative, it is reduced to a row of 0s by Gaussian elimination and is ignored. As soon as the matrix contains a row of the form ei , this node knows that x is equal to the original packet Mi . This occurs at the latest when n linearly independent encoded vectors are received. Note that decoding does not need to be performed at all nodes of the network, but only at the receivers. Generations: For all practical purposes, the size of the matrices with which network coding operates has to be limited. This is straightforward to achieve for deterministic network codes but more dicult with random network coding. For the latter, packets are usually grouped into socalled generations, and only packets of the same generation can be combined [7]. Size and composition of generations may have signicant impact on the performance of network coding [11]. Similar considerations hold for the size of the nite eld. Both parameters allow to trade o performance for lower memory requirements and reduced computational complexity. Delay: The fact that packets need to be decoded has a minor impact on delay. It is usually not necessary to receive all encoded packets before some of the packets can The matrix can be transformed to a reduced row echelon form, where within each row, the leading term is 1, and the position of the leading terms moves to the right.
2

be decoded (i.e., whenever Gaussian elimination leads to a row in the form (ei , Mi )). Together with a reduction in the number of required transmissions, the overall end-toend delay with network coding is usually not larger than the normal end-to-end delay in realistic settings. Finite eld operations: Network coding requires operations in F2s , i.e., operations on strings of s bits. Addition is the standard bitwise xor. For multiplication, one interprets a sequence b0 , ..., bs1 of s bits as the polynomial b0 +b1 X +...+bs1 X s1 . Then one picks a polynomial of degree s that is irreducible over F2 (there are several of them, and each gives a dierent representation of F2s ; for example, Rijndaels representation of F28 uses 1+X +X 3 +X 4 +X 8 ). Multiplication is obtained by rst computing the usual product of two polynomials (which gives a polynomial of degree possibly larger than s 1), and then computing the remainder modulo the chosen irreducible polynomial. Division is computed by the Euclidian algorithm. Both multiplication and division can be implemented eciently with s shifts and additions [27]. If s is small (e.g., s = 8), a faster alternative is to use discrete logarithms. In a nite eld there exists at least one special element , called generator (for example, = 0x03 = 1 + X is a generator in Rijndaels representation of F28 ), any non-zero x can be written in a unique way x = l(x) ; l(x) is called the logarithm [18]. Since l(xy) = l(x) + l(y), multiplication and division can be implemented by looking up the two tables that map x to l(x) and viceversa. For s = 8 these are two tables of size 255 bytes.

Traditional Method S1 A x1 x1 C x1 x2 S2 B x2 F R2

Network Coding S1 A x1 E R1 x1 x2 C x1 + x2 D S2 B x2 F R2

x1 x1 E D R1

Figure 2: (Buttery Network) S1 and S2 multicast to both R1 and R2 . All links have capacity 1. With network coding (by xoring the data on link CD), the achievable rates are 2 for each source, the same as if every destination were using the network for its sole use. Without network coding, the achievable rates are less (for example if both rates are equal, the maximum rate is 1.5).

3. WHAT ARE THE BENEFITS OF NETWORK CODING ?


Theoretically proven results about network coding mainly concern performance improvements in static settings. We review these rst and then discuss random distributed settings.

3.1 Throughput Gain in Static Environment


A primary result that sparked the interest in network coding is that it can increase the capacity of a network for multicast ows. More specically, consider a network that can be represented as a directed graph (typically, this is a wired network). The vertices of the graph correspond to terminals, and the edges of the graph corresponds to channels. Assume that we have M sources, each sending information at some given rate, and N receivers. All receivers are interested in receiving all sources. Theorem 1. [23, 24] Assume that the source rates are such that, without network coding, the network can support each receiver in isolation (i.e. each receiver can decode all sources when it is the only receiver in the network). With an appropriate choice of linear coding coecients, the network can support all receivers simultaneously. In other words, when the N receivers share the network resources, each of them can receive the maximum rate it could hope to receive, even if it were using all the network resources by itself. Thus, network coding can help to better share the available network resources (Figure 2). Network coding may oer throughput benets not only for multicast ows, but also for other trac patterns, such as unicast. Consider again Figure 2 but assume now that

source S1 transmits to destination R2 and S2 to R1 . With network coding we can send rate 1 to each receiver, while without, we can only send rate 1/2 to each receiver. There exist directed graphs where the throughput gains of network coding for multicasting can be very signicant [21, 6]. However, in undirected graphs (e.g., a wired network where all links are half-duplex) the throughput gain is at most a factor of two [17]. Experimental results in [29] over the network graphs of six Internet service providers showed a small throughput gain in this case. multicommodity ow problem). An interesting point is that network coding allows to achieve the optimal throughput when multicasting using polynomial time algorithms. In contrast, achieving the optimal throughput with routing is NP-complete: this is the problem of packing Steiner trees in CS theory. Thus, even when the expected throughput benets of network coding are not large, we expect to be able to achieve them using simpler algorithms. We expand on this point in the following.

3.2

Robustness and Adaptability

The most compelling benets of network coding might be in terms of robustness and adaptability. Intuitively, we can think that network coding, similarly to traditional coding, takes information packets and produces encoded packets, where each encoded packet is equally important. Provided we receive a sucient number of encoded packets, no matter which, we are able to decode. The new twist that network coding brings, is that the linear combining is performed opportunistically over the network, not only at the source node, and thus it is well suited for the (typical) cases where nodes only have incomplete information about the global network state. Consider again Figure 1 and assume that A and B may go into sleep mode (or may move out of range) at random and without notifying the base station S. If the base station S broadcasts a (or b), the transmission might be completely wasted, since the intended destination might not be able to receive. However, if the base station broadcasts a xor b, or more generally, random linear combinations of the information packets, the transmission will bring new information to all active nodes. This argument is the basis for the signicant performance improvements reported in Section 4.2.

Coupon Collector Problem


This is a generic problem for which a theoretical result is available, and which explains the performance gains reported in Section 4.1. Consider a network with n nodes and O(n) messages3 . All nodes would like to receive all messages. A centralized gossip-based protocol allows to disseminate the messages in (n) rounds, where in each round (n) pairs of nodes exchange one message. To perform the same task in a decentralized manner, we need (n log n) rounds. This is because, for a receiver a specic message may become rare, i.e., hard to collect. Allowing codes to use network coding and propagate random linear combinations of their messages instead, makes all packets equal: it is sucient for a node to collect any n messages. This approach allows to disseminate all messages in (n) rounds [8]. Thus, network coding allows to achieve the optimal performance using a simple decentralized algorithm. In the following, we list a number of applications of network coding and discuss how the benets mentioned in Section 3 improve performance in concrete settings.

4.1

P2P File Distribution

Packet Erasure Networks


We then consider networks where packets may be dropped. We argue that for some applications the benets of network coding outweigh those of the approaches employed today. Forward error correcting (FEC) schemes at a packet level oer an alternative to automatic repeat request (ARQ), for applications with high load and low delay requirements. Recently, we have witnessed the emergence of Fountain codes, a set of rate-less codes particularly suited for such applications. Fountain codes are still end-to-end: packets are encoded at the source and decoded at the destination, while intermediate nodes are only allowed to replicate and forward packets [25]. Applying ideas from network coding in this context, i.e., allowing intermediate nodes to also form linear combinations, can lead to signicant improvements. For example, consider a source A that would like to transmit information to a destination C. On the path from A to C there exists a router B that can perform network coding operations. Assume that node A sends encoded packets, that are dropped on paths AB and BC with probability AB and BC respectively. Using an end-to-end FEC scheme, i.e., having the destination C decode the packets it receives, restricts the rate to R1 (1 AB )(1 BC ). If we allow the router B to perfectly decode and re-encode, we will achieve the optimal min-cut rate R2 min{(1 AB ), (1 BC )}, but at the cost of additional delay: we have to wait at node B to receive sucient encoded packets to be able to decode and re-encode the information. Using an ARQ scheme will again allow to achieve rate R2 , but again at the cost of increased delay. Alternatively, node B can at each time instance form and send random linear combinations of the encoded packets it has received up to that time, without waiting for all encoded packets. We can then achieve the optimal rate R1 without an additional delay. Moreover, it is sucient to perform xor operations. This scheme in its full generality can be applied over an arbitrary network topology, and with diverse trac load (multicasting, unicasting, broadcasting, etc.) [19, 20].

Probably the most widely known application using network coding is Avalanche [12, 1]. Generally, in a peer-topeer content distribution network, a server splits a large le into a number of blocks. Peer nodes try to retrieve the original le by downloading blocks from the server but also distributing downloaded blocks among them. To this end, peers maintain connections to a limited number of neighboring peers (randomly selected among the set of peers) with which they exchange blocks. In Avalanche, the blocks sent out by the server are random linear combinations of all original blocks. Similarly, peers send out random linear combinations of all the blocks available to them. A node can either determine how many innovative blocks it can transmit to a neighbor by comparing its own and the neighbors matrix of decoding coecients, or it can simply transmit coded blocks until the neighbor receives the rst non-innovative block. The node then stops transmitting to this neighbor until it receives further innovative blocks from other nodes. Coding coecients are transmitted together with the blocks, but since blocks usually have a size of hundreds of kilobytes, this overhead is negligible. Network coding helps in several respects. 1) It minimizes download times; in a such large scale distributed peer-topeer system, optimal packet scheduling is very complex, particularly if the participating hosts only have very limited information about the underlying network topology. With network coding, the performance of the system depends much less on the specic overlay topology and schedule. Consequently, very simple mechanisms that construct a random overlay can be used. The authors show that network coding outperforms traditional forwarding or FECbased peer-to-peer systems by a signicant margin. 2) Due to the diversity of the coded blocks, a network coding based solution is much more robust in case the server leaves early (before all peers have nished their download) or in the face of high churn rates (where nodes only join for a short period of time or leave immediately after nishing their download). 3) In contrast to forwarding based protocols, their network coding protocol suers only a small performance penalty when incentive mechanisms to cooperate are implemented (e.g., tit-for-tat to prevent free-riding).

4.2

Wireless Networks

4. WHERE CAN NETWORK CODING BE USED ?


3 We use Knuths notation: f (n) = O(g(n)) means that there exists a constant c and integer N such that f (n) cg(n) for n > N ; f (n) = (g(n)) denotes that f (n) = O(g(n)) as well as g(n) = O(f (n)).

Bidirectional trac in a wireless network: As shown in Figure 1, network coding can improve throughput when two wireless nodes communicate via a common base-station. This setting can be extended to the case of multi-hop routing in a wireless network (or any other network with physical layer broadcast) where the trac between the two end nodes is bidirectional [30] and both nodes have a similar number of packets to exchange. Given a schedule that alternates between adjacent routers, after a few initial steps all intermediate routers have packets buered for transmission in both directions of the path. Whenever a transmission opportunity arises, a router combines two packets, one for each direction, with a simple xor and broadcasts it to its neighbors. Both receiving routers already know one of the packet

the broadcast is coded over, while the other packet is new. Thus, each broadcast allows two routers to receive a new packet, eectively doubling the capacity of the path. The authors in [30] also discuss distributed implementation that works when transmissions are not synchronized and the wireless channel is lossy and has random delay. Overhearing a packet of a neighbor that is coded over information previously forwarded to the neighbor serves as a passive acknowledgment. This allows to make better use of transmission opportunities at routers that only have new packets buered for a single direction. In this case, one of the new packets is combined with an old packet for the reverse direction for which no passive acknowledgment has been received. Residential wireless mesh networks: Even a limited form of network coding which only uses xor to combine packets may signicantly improve network performance in wireless mesh networks [16]. All transmissions are broadcast and are overheard by the neighbors. Packets are annotated with summary information about all other packets a node already heard. This way, information about which nodes hold which packets is distributed within the neighborhood. A node can xor multiple packets for dierent neighbors and send them in a single transmission, if each neighbor already has the remaining information to decode the packet. In experiments with 802.11 hardware, the authors show that their mechanism almost doubles network throughput. Many-to-many broadcast: Network-wide broadcast is used for a number of purposes in ad-hoc networks (e.g., route discovery) and can be implemented much more eciently with network coding [15, 11]. Already a simple distributed algorithm for random network coding reduces the number of transmission by a factor of 2 or more, leading to significant energy savings. In such a setting, a larger transmit power directly translates into a reduction in the number of required transmissions, which allows for interesting energy tradeos. Energy expenditure is either evenly distributed among the nodes or covered by only a few nodes (maybe with longer battery life). There is a larger exibility in the distribution the energy requirements compared to conventional algorithms. Algorithms for challenging wireless networks which may be very sparse or highly mobile are investigated in [28]. Usually, algorithms for such networks employ some form of intelligent ooding to combat the adverse network conditions. With network coding, performance improvements are much larger than the ones reported above, indicating that network coding is particularly suitable when robust operation is of high importance. The authors present a simple mechanism for network wide broadcast that has a much lower overhead than ooding and also discuss practical implementation issues for network coding in wireless networks. Similar performance benets can be expected when nodes spend most of their time in sleep mode to save energy or use randomized beamforming with directional antennas. All of these cases have in common that a specic pair of nodes is not likely to be able to communicate at a given time.

the quartz oscillator to tune the radio to a specic frequency makes up a signicant fraction of hardware cost and design complexity. The authors propose to replace the analog oscillator by a much simpler on-chip resonator. As a consequence, the transceivers radio frequencies depend to some degree on variations in the manufacturing process and two such devices are not very likely to be able to communicate directly. However, in dense sensor networks with thousands of tiny devices and multiple radios per device, a multi-hop path between information source and data sink will most probably exist. With random network coding, it is possible to use these paths without having to explicitly nd them, and without the excessive overhead of ooding. In their paper, the authors do not propose a specic a protocol but rather give a theoretical analysis, that, given their assumptions, untuned radios with network coding perform only a factor of 1/e worse than perfectly tuned radios without network coding. They conclude, that operating networks in such a randomized fashion may be preferable to the more traditional way of controlled operation, since it implies a simpler radio architecture. Data gathering in sensor networks: An interesting data gathering algorithm for sensor networks is presented in [9]. Nodes have storage space for one single packet. Overheard packets from neighboring nodes are multiplied with a random coecient and added to the existing information. Sensor nodes are thus not able to decode, but in a sensor network the goal is only to make the data available to a (more capable) sink node. Sensor information is pro-actively distributed to a small number of other nodes, so that a sink node can reconstruct n data packets with a high probability by contacting only n sensor nodes anywhere in the network.

4.4

Network Tomography

4.3 Ad-hoc Sensor Networks


Untuned radios in sensor networks: A novel and interesting application for network coding is, to use it to cope with untuned transceivers [22]. For sensor nodes which should be as simple and cheap to manufacture as possible,

In [10], network coding is used to infer the loss rates of links in an overlay network. For conventional active probing, packets are usually multicast to several receivers. The receivers experience the same loss event which provides information about losses in the underlying multicast tree. After a suciently large number of probe packets, shared links and their loss rates can be identied with reasonable accuracy. In such a setting, network coding provides additional exibility since packets are not only duplicated at branching points of the multicast tree, but may also be merged. If multiple senders unicast packets to a single receiver, and these packets are combined within the network, it allows to infer the topology in much the same way as multicasting from one sender to multiple receivers. Furthermore, if the network code (i.e., the specic way in which packets are combined at the nodes) is known in advance, the coding coecients contained in the probe packets provide additional information about the original packets that were combined (and consequently which packets were lost in which part of the tree). By exploiting these features, it is possible to signicantly reduce the number of active probes and the link stress generated by these probes. Network coding has also been proposed for passive network monitoring. As with active monitoring, a random (but xed) network code allows receivers to determine which coecients are expected under normal operation. When the obtained coecients dier, the receiver can draw from that conclusions about the failure patterns [13].

4.5 Network security


In [5], the authors investigate the problem of designing secure network codes for wiretap networks, where certain links can be accessed by attackers. They assume that it is known which links are tapped. The source combines the original data with random information and designs a network code in a way that only the receivers are able to decode the original packets. Furthermore, the mutual information between the packets obtained by the eavesdroppers and the original packets is zero (security in the information theoretic sense). The fact that with network coding, nodes can only decode packets if they have received a sucient number of linearly independent information vectors allows for a weaker form of security [3]. Such codes are more ecient, but an attacker who has n 1 out of n linear combinations only has to guess the content of a single packet to be able to decode all n packets (hence the name weak security). Finally, network coding simplies the protection against modied packets in a network [14]. At a normal network (and no additional protection), an intermediate attacker may make arbitrary modications to a packet to achieve a certain reaction at the attacked destination. However, in the case of network coding, an attacker cannot control the outcome of the decoding process at the destination, without knowing all other coded packets the destination will receive. Given that packets are routed along many dierent paths, this makes controlled man-in-the-middle-attacks more dicult.

5. CONCLUSION
Network coding may have impact on the design of new networking and information dissemination protocols. By allowing to better spread the information content in the network environment, it can simplify distributed algorithms. Reliable multicast is an example where the existing solutions need to be re-thought; we have shown in our review that emerging areas such as ad-hoc networks, overlay infrastructures and sensor networks are starting to benet of network coding. More such applications are expected to emerge.

6. REFERENCES
[1] Avalanche: File swarming with network coding. http://research.microsoft.com/ pablo/avalanche.aspx. [2] R. Ahlswede, N. Cai, S. R. Li, and R. W. Yeung. Network information ow. IEEE Transactions on Information Theory, July 2000. [3] K. Bhattad and K. R. Nayayanan. Weakly secure network coding. In Proc. First Workshop on Network Coding, Theory, and Applications (NetCod), Apr. 2005. [4] C. Fragouli and E Soljanin. Decentralized network coding. Information Theory Workshop, October 2004. [5] N. Cai and R. W. Yeung. Secure network coding. In International Symposium on Information Theory (ISIT), 2002. [6] C. Chekuri, C. Fragouli, and E. Soljanin. On average throughput and alphabet size in network coding. Accepted to IEEE Trans. Inform. Theory. [7] P. A. Chou, Y. Wu, and K. Jain. Practical network coding. In Proc. Allerton, Oct. 2003. [8] S. Deb and M. Medard. Algebraic gossip: A network coding approach to optimal multiple rumor mongering. In Proc. Allerton, Oct. 2004.

[9] 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), Apr. 2005. [10] C. Fragouli and A. Markopoulou. A network coding approach to overlay network monitoring. In Allerton Conference, Sept. 2005. [11] C. Fragouli, J. Widmer, and J.-Y. L. Boudec. A network coding approach to energy ecient broadcasting: from theory to practice. Technical Report LCA-REPORT-2005-009, accepted at Infocom 2006, EPFL, July 2005. [12] C. Gkantsidis and P. Rodriguez. Network coding for large scale content distribution. In Proc. IEEE Infocom, Miami, FL, Mar. 2005. [13] 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), 2005. [14] T. Ho, B. Leong, R. Koetter, M. Mdard, M. Eros, and D. R. Karger. Byzantine modication detection in multicast networks using randomized network coding. In International Symposium on Information Theory (ISIT), 2004. [15] J. Widmer, C. Fragouli, and J. Y. LeBoudec. Energy ecient broadcasting in wireless ad hoc networks. First Workshop on Network Coding, March 2005. [16] S. Katti, D. Katabi, W. Hu, H. Rahul, and M. Medard. The importance of being opportunistic: Practical network coding for wireless environments. In Allerton, 2005. [17] Z. Li and B. Li. Network coding in undirected networks. Proceeding of CISS 2004, 2004. [18] C. H. Lim and P. J. Lee. More exible exponentiation with precomputation. In Proc. Advances in Cryptology: 14th Annual International Cryptology Conference, Aug. 1994. [19] D. S. Lun, M. Medard, , and M. Eros. On coding for reliable communication over packet networks. In Allerton Annual Conference on Communications, Control, and Computing, 2004. [20] P. Pakzad, C. Fragouli, and A. Shokrollahi. On low complexity coding for line networks. IEEE International Symposium on Information Theory (ISIT), Australia, Sept. 2005. [21] P. Sanders, S. Egner, and L. Tolhuizen. Polynomial time algorithms for network information ow. Proc. 15th ACM Symposium on Parallel Algorithms and Architectures, 2003. [22] D. Petrovic, K. Ramchandran, and J. Rabaey. Overcoming untuned radios in wireless networks with network coding. In Proc. First Workshop on Network Coding, Theory, and Applications (NetCod), Italy, Apr. 2005. [23] R. Ahlswede, N. Cai, S-Y. R. Li, and R. W. Yeung. Network information ow. IEEE Trans. Inform. Theory, pages 12041216, July 2000. [24] S-Y. R. Li, R. W. Yeung, and N. Cai. Linear network coding. IEEE Trans. Inform. Theory, 49:371381, Feb. 2003.

[25] A. Shokrollahi. Raptor codes. Submitted to IEEE Trans. Information Theory, 2004. [26] T. Ho, R. Koetter, M. Medard, D. R. Karger, and M. Eros. The benets of coding over routing in a randomized setting. International Symposium on Information Theory (ISIT), page 442, July 2003. [27] N. R. Wagner. The Laws of Cryptography with Java Code. Available online at Neal Wagners home page, 2003. [28] J. Widmer and J.-Y. L. Boudec. Network coding for ecient communication in extreme networks. In Workshop on delay tolerant networking and related networks (WDTN-05), Philadelphia, PA, Aug. 2005. [29] Y. Wu, P. A. Chou, and K. Jain. A comparison of network coding and tree packing. ISIT 2004, 2004. [30] Y. Wu, P. A. Chou, and S.-Y. Kung. Information exchange in wireless networks with network coding and physical-layer broadcast. Technical Report MSR-TR-2004-78, Microsoft Research, Aug. 2004.

You might also like