Vous êtes sur la page 1sur 23

A Very Short Introduction

to
Network Coding
Mahdi Jafari Siavoshani
!
!
Computer Engineering Departement
Sharif University of Technology
!
Fall 2014

A Very Short Introduction


to
Network Coding
Mahdi Jafari Siavoshani
!
!
Computer Engineering Departement
Sharif University of Technology
!
Fall 2014

Outline

Introducing Network Coding

Routing vs. Network Coding

NC Connections with other Disciplines

Butterfly Network (the canonical example!)

Some Applications

Wireless Communication (e.g. XOR in the air, PhysicalLayer Network Coding)

Content Distribution

Main Theorem of Network Coding

Network Coding: Benefits and Challenges

Different Approach: Routing vs. NC

In most of todays networks: Independent information


streams are kept separate (routed separately)

Information treated like commodities

S1

D1

r1
c

S2

r2
r 1 + r2 c

D2

Different Approach: Routing vs. NC

Nowadays we have more processing power


=> can use more complex methods inside networks

A simple but important observation: Nodes not only


can forward but also process the incoming
independent information flows => Network Coding
X1

Xk

f (X1 , . . . , Xk )

In some cases
can be regarded as
compression or hashing

Network Coding
Connections with other disciplines
Networking
Wireless Communication

Coding Theory
Security
Information Theory

Network Coding
Network Monitoring

Algorithms
Load Balancing
Combinatorics
Distributed Storage

Canonical Example: Butterfly Network

Each link has unit capacity per time-slot

Goal: Multicast S1 and S2 to R1 and R2


S1

S2

S1

S2

B
C

C
D
R1

R2

R1

R2

Canonical Example: Butterfly Network

Each link has unit capacity per time-slot

Goal: Multicast S1 and S2 to R1 and R2


S1

S2

S1

S2

B
C

C
D
R1

R2

Routing

R1

R2

Canonical Example: Butterfly Network

Each link has unit capacity per time-slot

Goal: Multicast S1 and S2 to R1 and R2


S1

S2

S1

S2

B
C

C
D
R1

R2

Routing

R1

R2

Routing

Canonical Example: Butterfly Network

Each link has unit capacity per time-slot

Goal: Multicast S1 and S2 to R1 and R2


S1

S2

S1

S2

b1
A

b2
A

b1 b2

b1

b1

b2

b2
D

R1

R2

Routing

R1

b1

b2

R2

Network Coding

Example: Wireless Communication

Goal: A and B want to exchange 2 files by helping a relay


node R (no direct path from A to B) (e.g. a satellite link)

Assumption: Half-Duplex communication


A

A
A

x1
x1

A
A

R
R

x2

x1
x2
x2

B
B
B

Example: Wireless Communication

Goal: A and B want to exchange 2 files by helping a relay


node R (no direct path from A to B) (e.g. a satellite link)

Assumption: Half-Duplex communication


A

x1

A
A

B
x2

R
x1

x2

x1

B
x2

Using NC => Coding Gain = 4/3

Example: Wireless Communication

Goal: A and B want to exchange 2 files by helping a relay


node R (no direct path from A to B) (e.g. a satellite link)

Assumption: Half-Duplex communication


!

NC takes advantage of broadcasting capability in wireless


channels

Benefit of this approach:

Energy efficiency: Node R transmits once instead of twice

Delay: Three instead of four time-slots

Wireless bandwidth: Channel is occupied for a smaller amount


of time

Example: Physical-Layer NC

Goal: A and B want to exchange 2 files by helping a relay


node R (no direct path from A to B) (e.g. a satellite link)

Assumption: Half-Duplex communication


A

A
A

R
x1
x1

B
x2

R
x2

x1

B
x2

Using PNC => Coding Gain = 2

Example: Content Distribution

Often, large content needs to be distributed to millions of


clients

First approach:

Huge server farms => Expensive

Content delivery networks (CDNs)


e.g.: Akamai

Example: Content Distribution

Alternative approach: Collaborative content distribution

Clients can help each other!

Clients become new servers

Capacity increase with increasing


the clients number

Example: Content Distribution

BitTorrent: Open source P2P content distribution system


that relies on desktop PCs cooperation

Successfully distributes large files


!

There are Inefficiencies in some situations:

In large and heterogenous populations

In environment with high churn

When cooperative incentive


mechanism are in place

Example: Content Distribution

Avalanche: Combining collaborative content distribution &


network coding
File at Server

x1

x2

x3

xn

+
Client A

a1

a2

Client C

c2 =

b1

b2

b3

c1

c2

c3

c4

1 x1

2 x2

+ +

n xn

Client B

Example: Content Distribution

NC helps in several respects:

It has higher throughput and smaller download time

NC => the performance of the system depends much


less on the specific overlay topology and scheduling
=> Very simple mechanisms that construct a random
overlay network can be used

A NC based solution is much more robust in case the


server leaves early or in the face of high churn rates

Main Theorem of NC

Consider a multicast scenario: S1 , . . . , Sn want to transmit


to R1 , . . . , Rk simultaneously

Have n unit rate sources, all edges have unit capacity

For each Rj, all sources can route information to it

Using NC => All sources can multicast to all receivers


S2
S1

Sn

X1

Xk

f (X1 , . . . , Xk )

Rk

R1
R2

Network Coding:
Benefits and Challenges

Benefits:

Increasing throughput

Offers benefits in terms of wireless resources


usage

Security (weak)

Challenges:

Complexity

Security

Integration with Existing Infrastructure

Some References

Network information flow,


R. Ahlswede, N. Cai, S.-Y.R. Li, R.W. Yeung, 2000.

An algebraic approach to network coding,


R. Koetter, M. Medard, 2003.

Network coding: An instant primer,


C. Fragouli, J. Le Boudec, J. Widmer, 2006.

Network coding for large scale content distribution,


C. Gkantsidis, P. R. Rodriguez, 2005.

Hot Topic: Physical-layer Network Coding,


S. Zhang, S. C. Liew, P. P. Lam, 2006.

XORs in the Air: Practical Wireless Network Coding,


S. Katti, H. Rahul, W. Hu, D. Katabi, M. Medard, J. Crowcroft, 2008.