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 Coding � Practical Network Coding � Packet format � Buffering � Internet and Wireless Applications � Live Broadcasting, File Downloading, Messaging, Interactive Communication
Network Coding Introduction sender s receiver t in T � 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 )
Maximum Flow sender s receiver t in T � Menger (1927) – single receiver � Maxflow( s , t ) ≤ Mincut( s , t ) ≡ h t achievable � Edmonds (1972) – all nodes are receivers � Maxflow( s , T ) ≤ min t h t ≡ h achievable
Network Coding Maximizes Throughput a a ,b a a a+b a+b a,b b a+b b b b ,a optimal uncoded multicast network coding throughput = 1.5 throughput = 2 � Alswede, Cai, Li, Yeung (2000) sender � NC always achieves h = min t h t � Li, Yeung, Cai (2003) receiver � Koetter and Médard (2003) coding node � Jaggi, Sanders, et al. (2005)
Network Coding Minimizes Delay a b a b a a+b b b b a a a+b optimal uncoded multicast network coding delay = 3 delay = 2 � Jain and Chou (2004)
Network Coding Minimizes Energy (per bit) a a,b a a a b a a a b a a a b a b a a+b a+b a a a,b b b,a optimal uncoded multicast network coding energy per bit = 5 energy per bit = 4.5 � Wu et al. (2003); Wu, Chou, Kung (2004) � Lun, Médard, Ho, Koetter (2004)
Network Coding applicable to real networks? � 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 vs. Practice � 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, or to arrange reliable broadcast of functions � Need simple technology, applicable in practice
Approach � Packet Format � Removes need for centralized knowledge of graph topology and encoding/decoding functions � Buffer Model � Allows asynchronous packets arrivals & departures with arbitrarily varying rates, delay, loss [Chou, Wu, and Jain, Allerton 2003] [Ho, Koetter, Médard, Karger, and Effros, ISIT 2003]
Algebraic Formulation � Graph ( V,E ) having unit capacity edges � Sender s in V , set of receivers T= { t,… } in V � Multicast capacity h = min t Mincut ( s,t ) � y ( e ) = ∑ e’ β e ( e’ ) y ( e’ ) � β ( e ) = [ β e ( e’ )] e’ is local encoding vector
Global Encoding Vectors � By induction y ( e ) = ∑ hi= 1 g i ( e ) x i � g ( e ) = [ g 1 ( e ),…, g h ( e )] is global encoding vector � Receiver t can recover x 1 ,…,x h from ⎡ ⎤ ⎡ ⎤ ⎡ ⎤ ⎡ ⎤ L ( ) ( ) ( ) y e g e g e x x 1 1 1 h 1 1 1 ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ M = M O M M = M G ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ t ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎣ ⎦ ⎣ L ⎦ ⎣ ⎦ ⎣ ⎦ y ( e ) g ( e ) g ( e ) x x 1 h h h h h h
Invertibility of G t � G t will be invertible with high probability if local encoding vectors are random and field size is sufficiently large � If field size = 2 16 and |E| = 2 8 then G t will be invertible w.p. ≥ 1 − 2 − 8 = 0.996 [Ho et al., 2003] [Jaggi, Sanders, et al., 2003]
Packetization � Internet: MTU size typically ≈ 1400 + bytes � y ( e ) = ∑ e’ β e ( e’ ) y ( e’ ) = ∑ hi= 1 g i ( e ) x i s.t. ⎡ ⎤ ⎡ ⎤ ⎡ ⎤ L L ( e ) y ( e ) y ( e ) y ( e ) x x x y 1 1 1 2 1 1 1 , 1 1 , 2 1 , N N ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ M = M M M = M M M G ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ t ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ L L ⎣ ( ) ⎦ ⎣ ( ) ( ) ( ) ⎦ e y e y e y e ⎣ x x x ⎦ y h 1 h 2 h N h h , 1 h , 2 h , N
Packet Format � Include within each packet on edge e g ( e ) = ∑ e’ β e ( e’ ) g ( e’ ); y ( e ) = ∑ e’ β e ( e’ ) y ( e’ ) � Can be accomplished by prefixing i th unit vector to i th source vector x i , i= 1 ,…,h ⎡ ⎤ ⎡ ⎤ L L L g ( e ) g ( e ) y ( e ) y ( e ) y ( e ) 1 0 x x x 1 1 h 1 1 1 2 1 N 1 1 , 1 1 , 2 1 , N ⎢ ⎥ ⎢ ⎥ = M O M M M M O M M M G ⎢ ⎥ ⎢ ⎥ t ⎢ ⎥ ⎢ ⎥ ⎣ L L ⎦ L g ( e ) g ( e ) y ( e ) y ( e ) y ( e ) ⎣ 0 1 x x x ⎦ 1 h h h 1 h 2 h N h h , h h , 2 h , N � Then global encoding vectors needed to invert the code at any receiver can be found in the received packets themselves!
Cost vs. Benefit � Cost: � Overhead of transmitting h extra symbols per packet; if h = 50 and field size = 2 8 , then overhead ≈ 50/1400 ≈ 3% � 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
Asynchronous Communication � In real networks � Packets on “unit capacity” edges between each pair of nodes are grouped and carried sequentially � 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 x 1 ,…, x h are in same generation; h is generation size � All packets in same generation tagged with same generation number; one byte (mod 256) sufficient
Buffering edge Transmission random arriving packets opportunity: combination generate (jitter, loss, packet variable rate) edge edge buffer asynchronous asynchronous reception transmission edge node
Decoding � Block decoding: � Collect h or more packets, hope to invert G t � Earliest decoding (recommended): � Perform Gaussian elimination after each packet � At every node, detect & discard non-informative packets � G t tends to be lower triangular, so can typically decode x 1 ,…, x k with fewer more than k packets � Much lower decoding delay than block decoding � Approximately constant, independent of block length h
Simulations � 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(2 16 ), genSize(100), intLen(100)
Received Rank 100 100 Chicago (450 Mbps) Chicago (450 Mbps) Pearl Harbor (525 Mbps) Pearl Harbor (525 Mbps) Anaheim (625 Mbps) Anaheim (625 Mbps) 90 90 Boston (733 Mbps) Boston (733 Mbps) SanJose (833 Mbps) SanJose (833 Mbps) Avg. received rank 80 80 Received rank 70 70 60 60 50 50 40 40 0 20 40 60 80 100 120 140 160 180 200 0 5 10 15 20 25 Generation number Field size (bits)
Throughput 850 850 Chicago (450 Mbps) Chicago (450 Mbps) 800 Pearl Harbor (525 Mbps) 800 Pearl Harbor (525 Mbps) Anaheim (625 Mbps) Anaheim (625 Mbps) 750 750 Boston (733 Mbps) Boston (733 Mbps) Throughput (Mbps) Throughput (Mbps) SanJose (833 Mbps) SanJose (833 Mbps) 700 700 650 650 600 600 550 550 500 500 450 450 400 400 400 450 500 550 600 650 700 750 800 850 400 450 500 550 600 650 700 750 800 850 Sending rate (Mbps) Sending rate (Mbps)
Throughput Loss 100 300 Chicago (450 Mbps) Chicago (450 Mbps) 90 Pearl Harbor (525 Mbps) Pearl Harbor (525 Mbps) 250 Anaheim (625 Mbps) Anaheim (625 Mbps) 80 Throughput Loss (Mbps) Throughput Loss (Mbps) Boston (733 Mbps) Boston (733 Mbps) 70 San Jose (833 Mbps) SanJose (833 Mbps) 200 60 50 150 40 100 30 20 50 10 0 0 20 30 40 50 60 70 80 90 100 0 10 20 30 40 50 60 70 80 90 100 Generation Size Interleaving Length
Decoding Delay 200 200 Pkt delay w/ blk decoding Pkt delay w/ blk decoding 180 180 Pkt delay w/ earliest decoding Pkt delay w/ earliest decoding 160 160 Packet delay (ms) Packet delay (ms) 140 140 120 120 100 100 80 80 60 60 40 40 20 20 0 0 20 30 40 50 60 70 80 90 100 0 10 20 30 40 50 60 70 80 90 100 Generation Size Interleaving Length
Recommend
More recommend