Network Coding for the Internet and Wireless Networks
Philip A. Chou
with thanks to Yunnan Wu, Kamal Jain, and Pablo Rodruiguez Microsoft Research
Banff International Research Station
July 23-28, 2005
Network Coding for the Internet and Wireless Networks Philip A. - - PowerPoint PPT Presentation
Network Coding for the Internet and Wireless Networks Philip A. Chou with thanks to Yunnan Wu, Kamal Jain, and Pablo Rodruiguez Microsoft Research Banff International Research Station July 23-28, 2005 Outline Introduction to Network
with thanks to Yunnan Wu, Kamal Jain, and Pablo Rodruiguez Microsoft Research
Banff International Research Station
July 23-28, 2005
Introduction to Network Coding Practical Network Coding
Packet format Buffering
Internet and Wireless Applications
Live Broadcasting, File Downloading,
Directed graph with edge capacities Sender s, set of receivers T Ask: Maximum rate to multicast info from s to T ?
(the “multicast capacity” from s to T) sender s receiver t in T
Menger (1927) – single receiver
Maxflow(s,t) ≤ Mincut(s,t) ≡ ht achievable
Edmonds (1972) – all nodes are receivers
Maxflow(s,T) ≤ mint ht ≡ h achievable
sender s receiver t in T
Alswede, Cai, Li, Yeung (2000)
NC always achieves h = mint ht
Li, Yeung, Cai (2003) Koetter and Médard (2003) Jaggi, Sanders, et al. (2005)
sender receiver
throughput = 1.5 network coding throughput = 2 coding node a,b a a a a b b b b a+b a+b a+b ,a ,b
b b a+b a+b a a b b b a a a
Jain and Chou (2004)
delay = 3 network coding delay = 2
a+b a+b b a b a a a b b a a a a a a
Wu et al. (2003); Wu, Chou, Kung (2004) Lun, Médard, Ho, Koetter (2004)
energy per bit = 5 network coding energy per bit = 4.5 a a a,b a a b a,b b,a
Internet
IP Layer
Routers (e.g., ISP)
Application Layer
Infrastructure (e.g., CDN) Ad hoc (e.g., P2P)
Wireless
Mobile multihop ad hoc wireless networks Sensor networks Stationary wireless (residential) mesh networks
Theory:
Symbols flow synchronously throughout network Edges have unit (or known integer) capacities Centralized knowledge of topology assumed
to compute encoding and decoding functions
Practice:
Information travels asynchronously in packets Packets subject to random delays and losses Edge capacities often unknown, time-varying Difficult to obtain centralized knowledge,
Need simple technology, applicable in practice
Packet Format
Removes need for centralized knowledge of
Buffer Model
Allows asynchronous packets arrivals &
[Chou, Wu, and Jain, Allerton 2003] [Ho, Koetter, Médard, Karger, and Effros, ISIT 2003]
Graph (V,E) having unit capacity edges Sender s in V, set of receivers T={t,…} in V Multicast capacity h = mint Mincut(s,t) y(e) = ∑e’ βe(e’) y(e’) β(e) = [βe(e’)]e’ is local encoding vector
By induction y(e) = ∑hi=1 gi(e) xi g(e) = [g1(e),…,gh(e)] is global encoding vector Receiver t can recover x1,…,xh from
h t h h h h h h
1 1 1 1 1 1 1
Gt will be invertible with high probability
If field size = 216 and |E| = 28
[Ho et al., 2003] [Jaggi, Sanders, et al., 2003]
Internet: MTU size typically ≈ 1400+ bytes y(e) = ∑e’ βe(e’) y(e’) = ∑hi=1 gi(e) xi s.t.
⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ = ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ = ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡
N h h h N t h N h h N h
x x x x x x G e y e y e y e y e y e y e e
, 2 , 1 , , 1 2 , 1 1 , 1 2 1 1 1 2 1 1 1
) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( L M M M L L M M M L M y y
Include within each packet on edge e
Can be accomplished by prefixing i th unit
Then global encoding vectors needed to
⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ = ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡
N h h h h N t h N h h h h h N h
x x x x x x G e y e y e y e g e g e y e y e y e g e g
, 2 , , , 1 2 , 1 1 , 1 2 1 1 1 1 2 1 1 1 1 1
1 1 ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( L M M M O L L L M M M M O M L L
Cost:
Overhead of transmitting h extra symbols
Benefit:
Receivers can decode even if
Network topology & encoding functions unknown Nodes & edges added & removed in ad hoc way Packet loss, node & link failures w/ unknown locations Local encoding vectors are time-varying & random
In real networks
Packets on “unit capacity” edges between each pair
Separate edges → separate prop & queuing delays Number of packets per unit time on edge varies
Loss, congestion, competing traffic, rounding
Need to synchronize
All packets related to same source vectors x1,…, xh
All packets in same generation tagged with same
random combination Transmission
generate packet buffer node arriving packets (jitter, loss, variable rate) asynchronous transmission asynchronous reception edge edge edge edge
Block decoding:
Collect h or more packets, hope to invert Gt
Earliest decoding (recommended):
Perform Gaussian elimination after each packet
At every node, detect & discard non-informative packets
Gt tends to be lower triangular, so can typically
Much lower decoding delay than block decoding
Approximately constant, independent of block length h
Implemented event-driven simulator in C++ Six ISP graphs from Rocketfuel project (UW)
SprintLink: 89 nodes, 972 bidirectional edges Edge capacities: scaled to 1 Gbps / “cost” Edge latencies: speed of light x distance
Sender: Seattle; Receivers: 20 arbitrary (5 shown)
Mincut: 450 Mbps; Max 833 Mbps Union of maxflows: 89 nodes, 207 edges
Send 20000 packets in each experiment, measure:
received rank, throughput, throughput loss, decoding delay vs.
sendingRate(450), fieldSize(216), genSize(100), intLen(100)
20 40 60 80 100 120 140 160 180 200 40 50 60 70 80 90 100
Generation number Received rank
Chicago (450 Mbps) Pearl Harbor (525 Mbps) Anaheim (625 Mbps) Boston (733 Mbps) SanJose (833 Mbps) 5 10 15 20 25 40 50 60 70 80 90 100
Field size (bits)
Chicago (450 Mbps) Pearl Harbor (525 Mbps) Anaheim (625 Mbps) Boston (733 Mbps) SanJose (833 Mbps)
400 450 500 550 600 650 700 750 800 850 400 450 500 550 600 650 700 750 800 850
Sending rate (Mbps) Throughput (Mbps) Chicago (450 Mbps) Pearl Harbor (525 Mbps) Anaheim (625 Mbps) Boston (733 Mbps) SanJose (833 Mbps)
400 450 500 550 600 650 700 750 800 850 400 450 500 550 600 650 700 750 800 850
Sending rate (Mbps) Throughput (Mbps) Chicago (450 Mbps) Pearl Harbor (525 Mbps) Anaheim (625 Mbps) Boston (733 Mbps) SanJose (833 Mbps)
20 30 40 50 60 70 80 90 100 10 20 30 40 50 60 70 80 90 100
Generation Size Throughput Loss (Mbps) Chicago (450 Mbps) Pearl Harbor (525 Mbps) Anaheim (625 Mbps) Boston (733 Mbps) San Jose (833 Mbps)
10 20 30 40 50 60 70 80 90 100 50 100 150 200 250 300
Interleaving Length Throughput Loss (Mbps) Chicago (450 Mbps) Pearl Harbor (525 Mbps) Anaheim (625 Mbps) Boston (733 Mbps) SanJose (833 Mbps)
20 30 40 50 60 70 80 90 100 20 40 60 80 100 120 140 160 180 200
Generation Size Packet delay (ms) Pkt delay w/ blk decoding Pkt delay w/ earliest decoding
10 20 30 40 50 60 70 80 90 100 20 40 60 80 100 120 140 160 180 200
Interleaving Length Packet delay (ms) Pkt delay w/ blk decoding Pkt delay w/ earliest decoding
Akamai RBN ALM SplitStream CoopNet Digital Fountain Gnutella Kazaa Bit Torrent Peer Net Windows Messenger Xbox Live
Ad Hoc (P2P) Infra- structure (CDN) Instant Messaging wireless Internet Live broadcast Media on demand Download from peer Coded download Parallel download Interactive Communication (conferencing, gaming) File download
State-of-the-art: Application Layer Multicast (ALM)
FEC/MDC striped across trees Up/download bandwidths equalized
[Padmanabhan, Wang, and Chou, 2003] a failed node
Network Coding sends mix of parents to each child
Losses/failures not propagated beyond child ALM/CoopNet average throughput: (1–ε)depth * sending rate
Network Coding average throughput: (1–ε) * sending rate
[Jain, Lovász, and Chou, 2004] failed node affected nodes (maxflow: ht → ht – 1) unaffected nodes (maxflow unchanged)
State-of-the-Art: Parallel download (e.g., BitTorrent)
Selects parents at random Reconciles working sets Flash crowds stressful
Network Coding:
Does not need to reconcile working sets Handles flash crowds similarly to live broadcast
Throughput download time
Seamlessly transitions from broadcast to download mode
139 117.2 NC TFT 136 117.0 NC Free 182 127.1 FEC TFT 159 123.6 FEC Free 185 126.1 LR TFT 161 124.2 LR Free Max Mean
INFOCOM 2005, reprinted with permission.
State-of-the-Art: Flooding (e.g., PeerNet)
Peer Name Resolution Protocol (distributed hash table) Maintains group as graph with 3-7 neighbors per node Messaging service: push down at source, pops up at
receivers
How? Flooding
Adaptive, reliable 3-7x over-use
Network Coding:
Improves network usage 3-7x (since all packets informative) Scales naturally from short message to long flows
State-of-the-Art: Route discovery and maintenance
Timeliness, reliability
Network Coding:
Is as distributed, robust, and adaptive as flooding
Each node becomes collector and beacon of information
Minimizes delay without having to find minimum delay route Can also minimize energy (# transmissions)
a+b a+b
Information sent from t to s can be piggybacked on
Network coding helps even with point-to-point
throughput energy per bit delay
a b s t
Le Boudec (NetCod’05)
all nodes are receivers
needed for broadcast with network coding; Tw is #transmissions w/o network coding
piggybacking
(toroidal)
piggybacking
Widmer, Fragouli, Le Boudec 1500m x 1500m, 144 nodes randomly placed 250m radio range Idealized MAC: each time slot, create
Count #transmissions needed per node to
Compare Network Coding, Flooding, Ideal
Each information unit originating at
A new packet received is retransmitted
For “ideal” flooding, packet is not
Each node maintains send counter s
Initially, s = 0 Each information unit originating at node
Each innovative packet received increments s
Each transmission decrements s by 1 Can’t transmit anything if s < 1
Network Coding is Practical
Packet Format Buffering
Network Coding can improve performance
in IP or wireless networks for live broadcast, file download, messaging,
by improving throughput, robustness, delay,
even if all nodes are receivers,