Presentation is loading. Please wait.

Presentation is loading. Please wait.

Network Coding in Wireless Multihop Networks

Similar presentations

Presentation on theme: "Network Coding in Wireless Multihop Networks"— Presentation transcript:

1 Network Coding in Wireless Multihop Networks
Joon-Sang Park Hongik Univ. Dept. of Computer Eng.

2 Outline Network coding overview
NC-based protocols in wireless multihop networks Mobile P2P protocol: CodeTorrent Multicasting protocol: CodeCast

3 A Computer Network Hosts are sources/destinations of data
Routers Hosts Hosts are sources/destinations of data Routers relay data

4 Network Coding Performing coding on the content of packet on routers
Increases multicast capacity in wired networks - Alswede et. al, 2000. y1 y1 f1(y1,y2,y3) y1 y2 f2(y1,y2,y3) y3 y3 y3 Routing Network Coding Network coding refers to the notion of performing coding on the content of packet throughout the network. Let’s think about a router in conventional networks. What it does is forwarding messages. Each packet on an output link is just a copy of a message on an input link. But in network coding, the router can perform some computation, so that each message on an output link can be a function of the messages on the input links. So you can have some processing, or coding, in the network, instead of just at the endpoints. What would that buy you?

5 Benefit of Network Coding
y x C B A x x y x  y A C B C B A A C B y C B A y C B A y = x  (x  y) x 4 transmissions without NC 3 transmissions with NC (Katabi’05, Chou’04)

6 Benefit of Network Coding
y x C B A y x x C B A C B A x+y A C B y C B A C B A y 2 transmissions with PNC/ANC C B A x (Zhang’06, Katabi’07) 4 transmissions without NC

7 NC achieves multicast capacity
a+b ,a ,b a,b b optimal routing throughput = 1 network coding throughput = 2 Alswede, Cai, Li, Yeung (2000): mintЄT MinCut(s,t) is always achievable by network coding h = mintЄT MinCut(s,t) is “multicast capacity” sender Network coding was first developed for wired multicasting. The good thing of network coding is that it increase end-to-end throughput in multicasting. In this wired network example where each link has unit capacity network coding can achieve end-to-end throughput of 2 whereas conventional multicast can achieve end-to-end throughput of 1. In this example, since the given network is simple, we can easily identify where and how to code to achieve optimal capacity of the network. receiver coding node

8 How to code? Given: Directed graph (V,E) Sender s
Receiver set T (subset of V)

9 Random Linear Coding [Chou’03, Ho’03]
Sender x y z Every packet p carries e = [e1 e2 e3] encoding vector prefix indicating how it is constructed (e.g., coded packet p = ∑eixi where xi is original packet) A αx + βy + γz buffer On every intermediate node, we transmit a random mix/combination of packets in its local buffer. Random combination Destination Intermediate nodes randomly mix incoming packets to generate outgoing packets

10 Preliminaries- Linear Algebra
Vectors (lowercase boldface) r1 = (1, 2, 3), r2 = (1, 2, 1) Linear combination a*r1+b*r2 where a and b are scalars Linear independence if there is no pair a and b such that a*r1 + b* r2 = 0 and a are b non-zero Packets represented as vectors 256byte packet = > a set of 256 elements Linear combination of two packets => linear combination of two vectors

11 Random Linear Coding Original Packets p1 p2 p3 g*p1 + h*p2 + e*p3 = n3
a*p1 + b*p2 + c*p3 = n1 d*p1 + e*p2 + f*p3 = n2 n1 n2 n3 From mathematics point of view, packets are no more than vectors and vectors are sets of numbers. A linear combination of packets are the same as a linear combination of vectors. Shown an example here, we can generate n1 which is a linear combination of p1,2,3 by performing addition operation of the three packets or vectors after multiplying three scalar a, b, and c to the three packets respectively. We choose the three scalar a, ,b, and c randomly hence the name of random linear coding.

12 Random Linear Coding (cont.)
Original Packets p1 p2 p3 5*p1[1] + 8*p2[1] + 1*p3[1] = n1[1] 2*p1[1] + 3*p2[1] + 7*p3[1] = n2[1] 9*p1[1] + 6*p2[1] + 5*p3[1] = n3[1] [5 8 1] [2 3 7] [9 6 5] n1 n2 n3 Recover original by matrix inversion

13 Outline Network coding overview
NC-based protocol in wireless multihop networks Mobile P2P protocol: CodeTorrent Multicasting: CodeCast

14 Mobile Peer-to-Peer(P2P)
P2P file sharing in mobile wireless networks Fully connected Intermittently connected (opportunistic ad-hoc) Should leverage mobility!

15 You are driving to Vegas You hear of this new show on the radio Video preview on the web (20MB)
Video clip to download after seeing a billborad on the way to Vegas…

16 P2P in opportunistic ad-hoc networks: mobility assisted dissemination
G R Y Y2 R R R Internet Y Y Y When you hit other cars possessing other uses of the file, you retrieve those pieces form the other users. Gossiping Availability of Blocks Exchange Blocks via multi-hop pulling Downloading Blocks from AP

17 Network Coding in P2P Swarming
P2P File Swarming File is divided into many small pieces for distribution Clients request different pieces from the server/other peers When all pieces are downloaded, clients can re-construct the whole file Missing coupon problem P2P using Network Coding Avalanche, Infocom’05 1 2 6 5 Server 3 4 1 3 5 6 2 4 To download a file you retrieve piece by piece from other piers and when you collect all the pieces then you are done. But there is a drawback so-called missing coupon problem. Sometime, it is really difficult to collect the last piece that completes downloading. You spend 10% of time to download 99% of pieces and 90% of time to download the last problematic piece. 1 2 3 4 5 6

18 Swarming Limitation: Missing Coupon!
C1 Sends Block 1 C2 Sends Block 2 C3 Sends Block 2 B2 B2 B2 B1 B1 B2 C1 C2 C3 B2 B2 B1 B2 B2 C4 C5 C6 C5 Sends Block 2 B1 is STILL missing!!

19 Network Coding Helps Coupon Collection
C1 Sends Block 1 C2 Sends a Coded Block: B1+B2 C3 Sends Block 2 B1+B2 B1+B2 B2 B2 B1+B2 B1 B1 B1 B2 C1 C2 C3 B1+B2 B2 B1 B1+B2 B1 B1+B2 B2 C4 C5 C6 C4 and C6 successfully recovered both blocks C5 Sends a Coded Block: B1+B2

20 CodeTorrent: Basic Idea
Buffer Internet Buffer Buffer “coded” block B1 File: k blocks B2 B3 Bk + *a1 *a2 *a3 *ak Random Linear Combination Re-Encoding: Random Linear Comb. of Encoded Blocks in the Buffer Outside Range of AP Exchange Re-Encoded Blocks Downloading Coded Blocks from AP Meeting Other Vehicles with Coded Blocks

21 Design Rationale Single-hop better than multihop Network coding
Multi-hop data pulling does not perform well in MANET (routing O/H is high) Users in multi-hop may not forward packets not useful to them (lack of incentive)! Network coding Mitigates rare piece problem Maximizes benefits of overhearing Exploits mobility Carry-and-forward coded blocks

22 CodeTorrent - Beaconing
Periodic broadcasting of peer ID and its code vector Used for searching helpful nodes: those who have at least one linearly independent code block + + + Red is Helpful!

23 CodeTorrent - Single-hop pulling
A peer pulls coded blocks from the helpful peers 1. G pulls a coded block from R 2. G checks helpfulness and repeats Random Linear combination R GetBlock Y G G sends a GetBlock message to R R prepares a re-encoded block R broadcasts the re-encoded block Check helpfulness: If helpful, store it!

24 Simulations - Setup Terrain: 2.4x2.4 km2 Qualnet 3.9
IEEE b / 2Mbps Terrain: 2.4x2.4 km2 Distributing 1MB file 4KB/block * 250 blocks 1KB per packet Randomly located 3 Aps Comparing CarTorrent (w/ AODV) with CodeTorrent AODV w/ net-diameter 3 hops CodeTorrent with GF(256)

25 Fraction of the # pieces/rank of all the interested nodes
Simulation Results Overall downloading progress Fraction of the # pieces/rank of all the interested nodes 200 nodes 40% popularity Time (seconds)

26 Simulation Results (2) Impact of mobility
Speed helps disseminate from AP’s and C2C Speed hurts multihop routing (CarT) Car density+multihop promotes congestion (CarT) Avg. Download Time (s) 40% popularity

27 Overhead Issues Packet header Computation Overheard
Each packet carries encoding vector and its size scales with # of pieces if file size = 1GB & packet size = 1KB, 1M pieces exist and thus encoding vector size = 1MB, too large! Computation Overheard Decoding takes O(n3) X1 X2 X3 e1 e2 e3 + [e1,e2,e3] e1X1+e2X2+e3X3

28 Reducing overhead Divide file into “generations”
Pieces only in the same generation can be combined Coupon collection problem again! 50MB one generation 5 generations of 10MB 1 4

29 Outline Network coding overview
NC-based protocols in wireless multihop networks Mobile P2P protocol: CodeTorrent Multicasting protocol: CodeCast

30 Multicast in Real Testbed
Very unreliable! ODMRP  80% delivery (2-hop)  60% delivery (3-hop) Lose RTS/CTS protection

31 Robust Multicast using NC
In wireless multihop multicast, one must consider: Random errors, external interference /jamming, collisions; Motion, path breakage Target application: Multicast (buffered) video streaming Some loss tolerance Some delay tolerance (store & playback at destination) - non interactive

32 Problem Statement Multicast streaming in mobile wireless networks is non-trivial Streaming requires: high reliability (but not 100%), low delay (but not 0) But network is: unreliable, bandwidth-limited Major concern: packet drops Lossy wireless channel (uncorrelated, random like errors) Route breakage due to mobility, congestion, etc (correlated errors)

33 Conventional vs NC Multicast
Conventional Approaches Time diversity => O/H, delay? Recovery scheme a la ARQ (Reliable Multicast) (End-to-end) Coding (FEC, MDC, …) Multipath diversity (ODMRP, …) => O/H? NC Approach Main ingredient: Random Linear Coding (RLC) Exploit time and multipath diversity Controlled-loss (near 100%), bounded-delay (hundreds of ms) Suitable for buffered streaming Real time version (tens of ms delay bound) exists

34 Simulation Settings Metrics QualNet 100 nodes on 1500 x 1500 m2
5 Kbytes/sec traffic (512B packet) Random Waypoint Mobility varying max speed Metrics Good packet ratios: num. of data packets received within deadline (1sec) vs. total num. of data packets generated Normalized packet O/H: total no. of packets generated vs no. of data packet received Delay: packet delivery time from the source application to receiver applications

35 ODMRP vs NC: Reliability
Good Packet Ratio network coding achieves near 100% delivery flat lines regardless of mobility types; whereas with conventional routing as mobility increase delivery ratio decrease

36 ODMRP vs NC: Efficiency
Important results is this: network coding approach improves reliability but incurs only half the overhead compared to conventional routing

37 ODMRP vs NC: Delay Is this fundamental trade-off?

38 Coding at sender An application generates a stream of frames …
Block/Generation 1 Block 2 Network layer generates stream of coded packets (delay) Generation 1 Generation 2 time A random linear combination of Block 1 frames A random linear combination of Block 2 frames

39 Forwarding – Conventional Routing
forwarders Source Receiver Select least number of nodes as forwarders to form a path b/w a S-R pair and each forwarder transmits each packet once

40 Problem – Conventional Routing
forwarders Receiver What if route breaks? forwarders What if random error occurs?

41 Forwarding – NC approach
forwarders Source Receiver Select most nodes in between a S-R pair as forwarders and each forwarder transmits one packet per generation once (what about packet storm problem?) A node becomes a forwarder if (hop count to Source + hop count to Receiver) is less than hop distance of S-R pair

42 Robustness of NC approach
Robust to mobility Robust to random errors

43 NC suppresses packet storms
Source Receiver

44 Setting up a multicast mesh
Every coded packet carries in the header three more fields, vldd, dist, and nust The one-bit field vldd is set if either the sender is a multicast receiver or has received a previous block packet with vldd bit set from one of the sender’s downstream nodes A node considers a neighboring node to be downstream if the neighboring node transmits a packet with a larger dist value than the dist value the node maintains Each node maintains as a local variable dist, indicating the hop distance from the multicast data source and copies its value to every code packet the node transmits. Every time a node transmits a coded packet, dist is recalculated as one plus the biggest dist value found in the headers of the packets which are combined to yield the coded packet Conversely, a node considers a neighboring node to be a upstream node if the neighboring node transmits a coded packet in a new block or a smaller dist value Each node also maintains nust, indicating the number of upstream nodes as a local variable and records its value in the header of every packet the node transmits A node broadcasts to the neighborhood r coded packets

45 Concluding remarks Two protocols covered Network coding helps
CodeTorrent: NC-based mobile P2P protocol CodeCast: NC-based multicast protocol Network coding helps mitigate coupon collection problem in P2P exploit broadcast nature of wireless medium

46 Thank you!

Download ppt "Network Coding in Wireless Multihop Networks"

Similar presentations

Ads by Google