XORs in the air: Practical Wireless Network Codingweb.cs.wpi.edu/~rek/Adv_Nets/Fall2009/XORs09.pdf9...
Transcript of XORs in the air: Practical Wireless Network Codingweb.cs.wpi.edu/~rek/Adv_Nets/Fall2009/XORs09.pdf9...
![Page 1: XORs in the air: Practical Wireless Network Codingweb.cs.wpi.edu/~rek/Adv_Nets/Fall2009/XORs09.pdf9 Opportunistic coding What packets to code together to maximize throughput? 10 Opportunistic](https://reader035.fdocuments.us/reader035/viewer/2022062908/5ada7dbd7f8b9afc0f8c972d/html5/thumbnails/1.jpg)
XORs in the air: Practical Wireless Network Coding
Sachin Katti, Hariharan Rahul, Wenjun Hu, Dina Katabi, Muriel Medard, Jon Crowcroft
SIGCOMM ‘06
Presented byThangam Seenivasan
1
![Page 2: XORs in the air: Practical Wireless Network Codingweb.cs.wpi.edu/~rek/Adv_Nets/Fall2009/XORs09.pdf9 Opportunistic coding What packets to code together to maximize throughput? 10 Opportunistic](https://reader035.fdocuments.us/reader035/viewer/2022062908/5ada7dbd7f8b9afc0f8c972d/html5/thumbnails/2.jpg)
Problem
Increase the throughput of dense wireless networks
Network Coding
2
![Page 3: XORs in the air: Practical Wireless Network Codingweb.cs.wpi.edu/~rek/Adv_Nets/Fall2009/XORs09.pdf9 Opportunistic coding What packets to code together to maximize throughput? 10 Opportunistic](https://reader035.fdocuments.us/reader035/viewer/2022062908/5ada7dbd7f8b9afc0f8c972d/html5/thumbnails/3.jpg)
Current Approach
Alice BobRelay
A B
A
B
A
B
Requires 4 transmission
3
![Page 4: XORs in the air: Practical Wireless Network Codingweb.cs.wpi.edu/~rek/Adv_Nets/Fall2009/XORs09.pdf9 Opportunistic coding What packets to code together to maximize throughput? 10 Opportunistic](https://reader035.fdocuments.us/reader035/viewer/2022062908/5ada7dbd7f8b9afc0f8c972d/html5/thumbnails/4.jpg)
COPE Approach
Alice BobRelay
A B
AB
Requires 3 transmission
A XOR B
Increased throughput
A XOR B
XOR
A XOR B
XOR
B
=
A
=
A XOR B A XOR B
4
![Page 5: XORs in the air: Practical Wireless Network Codingweb.cs.wpi.edu/~rek/Adv_Nets/Fall2009/XORs09.pdf9 Opportunistic coding What packets to code together to maximize throughput? 10 Opportunistic](https://reader035.fdocuments.us/reader035/viewer/2022062908/5ada7dbd7f8b9afc0f8c972d/html5/thumbnails/5.jpg)
COPE Approach
• Exploits shared nature of wireless medium
– Every node snoops on all packets
– A node stores all heard packets for a limited time
• Tell neighbors which packets it has heard
• Perform opportunistic coding
– XOR multiple packets and transmit them as single packet
• Decode the encoded packet using stored packets
5
![Page 6: XORs in the air: Practical Wireless Network Codingweb.cs.wpi.edu/~rek/Adv_Nets/Fall2009/XORs09.pdf9 Opportunistic coding What packets to code together to maximize throughput? 10 Opportunistic](https://reader035.fdocuments.us/reader035/viewer/2022062908/5ada7dbd7f8b9afc0f8c972d/html5/thumbnails/6.jpg)
Scenario
S1
D1
S2
D2
R
A B
A
A B
B
A+B
A+B A+BB A
Requires 3 transmission 6
![Page 7: XORs in the air: Practical Wireless Network Codingweb.cs.wpi.edu/~rek/Adv_Nets/Fall2009/XORs09.pdf9 Opportunistic coding What packets to code together to maximize throughput? 10 Opportunistic](https://reader035.fdocuments.us/reader035/viewer/2022062908/5ada7dbd7f8b9afc0f8c972d/html5/thumbnails/7.jpg)
Outline
• Design
• Cope Gains
• Making it work
• Implementation details
• Experimental results
7
![Page 8: XORs in the air: Practical Wireless Network Codingweb.cs.wpi.edu/~rek/Adv_Nets/Fall2009/XORs09.pdf9 Opportunistic coding What packets to code together to maximize throughput? 10 Opportunistic](https://reader035.fdocuments.us/reader035/viewer/2022062908/5ada7dbd7f8b9afc0f8c972d/html5/thumbnails/8.jpg)
Overview
• Opportunistic listening
• Opportunistic coding
• Learning neighbor state
8
![Page 9: XORs in the air: Practical Wireless Network Codingweb.cs.wpi.edu/~rek/Adv_Nets/Fall2009/XORs09.pdf9 Opportunistic coding What packets to code together to maximize throughput? 10 Opportunistic](https://reader035.fdocuments.us/reader035/viewer/2022062908/5ada7dbd7f8b9afc0f8c972d/html5/thumbnails/9.jpg)
Opportunistic listening
• Exploit broadcast nature of wireless
– Set nodes in promiscuous mode
– Opportunities to overhear packets
• Store the overheard packets
– Limited time period (T = 0.5s)
• Broadcast reception reports to tell neighbors which packets it has stored
– Annotate with data packets
– If no data packets, send reception reports periodically
9
![Page 10: XORs in the air: Practical Wireless Network Codingweb.cs.wpi.edu/~rek/Adv_Nets/Fall2009/XORs09.pdf9 Opportunistic coding What packets to code together to maximize throughput? 10 Opportunistic](https://reader035.fdocuments.us/reader035/viewer/2022062908/5ada7dbd7f8b9afc0f8c972d/html5/thumbnails/10.jpg)
Opportunistic coding
What packets to code together to maximize throughput?
10
![Page 11: XORs in the air: Practical Wireless Network Codingweb.cs.wpi.edu/~rek/Adv_Nets/Fall2009/XORs09.pdf9 Opportunistic coding What packets to code together to maximize throughput? 10 Opportunistic](https://reader035.fdocuments.us/reader035/viewer/2022062908/5ada7dbd7f8b9afc0f8c972d/html5/thumbnails/11.jpg)
Opportunistic coding
11
![Page 12: XORs in the air: Practical Wireless Network Codingweb.cs.wpi.edu/~rek/Adv_Nets/Fall2009/XORs09.pdf9 Opportunistic coding What packets to code together to maximize throughput? 10 Opportunistic](https://reader035.fdocuments.us/reader035/viewer/2022062908/5ada7dbd7f8b9afc0f8c972d/html5/thumbnails/12.jpg)
Opportunistic coding
P1 + P2
Bad Coding – C can decode but A can’t12
![Page 13: XORs in the air: Practical Wireless Network Codingweb.cs.wpi.edu/~rek/Adv_Nets/Fall2009/XORs09.pdf9 Opportunistic coding What packets to code together to maximize throughput? 10 Opportunistic](https://reader035.fdocuments.us/reader035/viewer/2022062908/5ada7dbd7f8b9afc0f8c972d/html5/thumbnails/13.jpg)
Opportunistic coding
P1 + P3
Better Coding – Both A and C can decode13
![Page 14: XORs in the air: Practical Wireless Network Codingweb.cs.wpi.edu/~rek/Adv_Nets/Fall2009/XORs09.pdf9 Opportunistic coding What packets to code together to maximize throughput? 10 Opportunistic](https://reader035.fdocuments.us/reader035/viewer/2022062908/5ada7dbd7f8b9afc0f8c972d/html5/thumbnails/14.jpg)
Opportunistic coding
P1 + P3 + P4
Best Coding – Nodes A, C, D can decode14
![Page 15: XORs in the air: Practical Wireless Network Codingweb.cs.wpi.edu/~rek/Adv_Nets/Fall2009/XORs09.pdf9 Opportunistic coding What packets to code together to maximize throughput? 10 Opportunistic](https://reader035.fdocuments.us/reader035/viewer/2022062908/5ada7dbd7f8b9afc0f8c972d/html5/thumbnails/15.jpg)
Opportunistic coding
• Maximize the number of native packets delivered in a single transmission
• While ensuring that each intended next hop has enough information to decode its native packet
15
![Page 16: XORs in the air: Practical Wireless Network Codingweb.cs.wpi.edu/~rek/Adv_Nets/Fall2009/XORs09.pdf9 Opportunistic coding What packets to code together to maximize throughput? 10 Opportunistic](https://reader035.fdocuments.us/reader035/viewer/2022062908/5ada7dbd7f8b9afc0f8c972d/html5/thumbnails/16.jpg)
Opportunistic coding
To transmit n packets: p1, …., pn
To n next hops: r1, …., rn
A node can XOR the n packets together only ifeach next hop ri has all n-1 packets pj for j!=i
Choose the largest n that satisfies the above rule
16
![Page 17: XORs in the air: Practical Wireless Network Codingweb.cs.wpi.edu/~rek/Adv_Nets/Fall2009/XORs09.pdf9 Opportunistic coding What packets to code together to maximize throughput? 10 Opportunistic](https://reader035.fdocuments.us/reader035/viewer/2022062908/5ada7dbd7f8b9afc0f8c972d/html5/thumbnails/17.jpg)
Learning Neighbor State
How does a node know what packets its neighbors have?
• Send reception reports
• During congestion, reports may get lost in collisions or may arrive late
17
![Page 18: XORs in the air: Practical Wireless Network Codingweb.cs.wpi.edu/~rek/Adv_Nets/Fall2009/XORs09.pdf9 Opportunistic coding What packets to code together to maximize throughput? 10 Opportunistic](https://reader035.fdocuments.us/reader035/viewer/2022062908/5ada7dbd7f8b9afc0f8c972d/html5/thumbnails/18.jpg)
Learning Neighbor State
• Wireless routing protocols compute delivery probability between every pair of nodes and broadcast them
– E.g.: ETX
• Using these weights,
– Estimate the probability that a particular neighbor has a packet
18
![Page 19: XORs in the air: Practical Wireless Network Codingweb.cs.wpi.edu/~rek/Adv_Nets/Fall2009/XORs09.pdf9 Opportunistic coding What packets to code together to maximize throughput? 10 Opportunistic](https://reader035.fdocuments.us/reader035/viewer/2022062908/5ada7dbd7f8b9afc0f8c972d/html5/thumbnails/19.jpg)
Outline
• Design
• Cope Gains
• Making it work
• Implementation details
• Experimental results
19
![Page 20: XORs in the air: Practical Wireless Network Codingweb.cs.wpi.edu/~rek/Adv_Nets/Fall2009/XORs09.pdf9 Opportunistic coding What packets to code together to maximize throughput? 10 Opportunistic](https://reader035.fdocuments.us/reader035/viewer/2022062908/5ada7dbd7f8b9afc0f8c972d/html5/thumbnails/20.jpg)
COPE Gains
• Coding Gain
• Coding + MAC Gain
20
![Page 21: XORs in the air: Practical Wireless Network Codingweb.cs.wpi.edu/~rek/Adv_Nets/Fall2009/XORs09.pdf9 Opportunistic coding What packets to code together to maximize throughput? 10 Opportunistic](https://reader035.fdocuments.us/reader035/viewer/2022062908/5ada7dbd7f8b9afc0f8c972d/html5/thumbnails/21.jpg)
Coding Gain
Number of transmissions required by non-coding approach
Minimum number of transmissions used by COPE
Coding Gain =
Alice & Bob experiment – Coding gain = 4/3 = 1.33
21
![Page 22: XORs in the air: Practical Wireless Network Codingweb.cs.wpi.edu/~rek/Adv_Nets/Fall2009/XORs09.pdf9 Opportunistic coding What packets to code together to maximize throughput? 10 Opportunistic](https://reader035.fdocuments.us/reader035/viewer/2022062908/5ada7dbd7f8b9afc0f8c972d/html5/thumbnails/22.jpg)
Coding Gain
Coding gain = 4/3 = 1.33 Coding gain = 8/5 = 1.6
22
![Page 23: XORs in the air: Practical Wireless Network Codingweb.cs.wpi.edu/~rek/Adv_Nets/Fall2009/XORs09.pdf9 Opportunistic coding What packets to code together to maximize throughput? 10 Opportunistic](https://reader035.fdocuments.us/reader035/viewer/2022062908/5ada7dbd7f8b9afc0f8c972d/html5/thumbnails/23.jpg)
Coding + MAC Gain
Alice BobRouterA
B
A
B
• MAC divides the bandwidth equally between the 3 contending nodes
• The router needs to transmit twice as many packets
• Hence router is a bottleneck
– Half the packets are dropped as routers queue
23
![Page 24: XORs in the air: Practical Wireless Network Codingweb.cs.wpi.edu/~rek/Adv_Nets/Fall2009/XORs09.pdf9 Opportunistic coding What packets to code together to maximize throughput? 10 Opportunistic](https://reader035.fdocuments.us/reader035/viewer/2022062908/5ada7dbd7f8b9afc0f8c972d/html5/thumbnails/24.jpg)
Coding + MAC Gain
Alice BobRouter
A
B
• COPE – XOR pairs of packets
– router drains packets twice as fast
A + B
Coding + MAC gain = 2
24
![Page 25: XORs in the air: Practical Wireless Network Codingweb.cs.wpi.edu/~rek/Adv_Nets/Fall2009/XORs09.pdf9 Opportunistic coding What packets to code together to maximize throughput? 10 Opportunistic](https://reader035.fdocuments.us/reader035/viewer/2022062908/5ada7dbd7f8b9afc0f8c972d/html5/thumbnails/25.jpg)
Coding + MAC Gain
• For topologies with single bottleneck
Draining rate with COPE
Draining rate without COPECoding + MAC Gain =
Coding + MAC gain = 2 Coding + MAC gain = 4
25
![Page 26: XORs in the air: Practical Wireless Network Codingweb.cs.wpi.edu/~rek/Adv_Nets/Fall2009/XORs09.pdf9 Opportunistic coding What packets to code together to maximize throughput? 10 Opportunistic](https://reader035.fdocuments.us/reader035/viewer/2022062908/5ada7dbd7f8b9afc0f8c972d/html5/thumbnails/26.jpg)
Coding + MAC Gain
• In the presence of opportunistic listening, COPE’s maximum Coding + MAC gain is unbounded.
N -> ∞
26
![Page 27: XORs in the air: Practical Wireless Network Codingweb.cs.wpi.edu/~rek/Adv_Nets/Fall2009/XORs09.pdf9 Opportunistic coding What packets to code together to maximize throughput? 10 Opportunistic](https://reader035.fdocuments.us/reader035/viewer/2022062908/5ada7dbd7f8b9afc0f8c972d/html5/thumbnails/27.jpg)
Outline
• Design
• Cope Gains
• Making it work
• Implementation details
• Experimental results
27
![Page 28: XORs in the air: Practical Wireless Network Codingweb.cs.wpi.edu/~rek/Adv_Nets/Fall2009/XORs09.pdf9 Opportunistic coding What packets to code together to maximize throughput? 10 Opportunistic](https://reader035.fdocuments.us/reader035/viewer/2022062908/5ada7dbd7f8b9afc0f8c972d/html5/thumbnails/28.jpg)
Making it work
• Packet Coding Algorithm
• Packet Decoding
• Pseudo-broadcast
• Hop-by-hop ACKs and Retransmissions
• Preventing TCP packet reordering
28
![Page 29: XORs in the air: Practical Wireless Network Codingweb.cs.wpi.edu/~rek/Adv_Nets/Fall2009/XORs09.pdf9 Opportunistic coding What packets to code together to maximize throughput? 10 Opportunistic](https://reader035.fdocuments.us/reader035/viewer/2022062908/5ada7dbd7f8b9afc0f8c972d/html5/thumbnails/29.jpg)
Packet Coding Algorithm
• Never delaying packets– Does not wait for additional codable packets to arrive
• Preference to XOR packets of similar lengths– Pad zeros if different lengths
• Maintain two virtual queues per neighbor– One for small, one for large packets
• Dequeue the packet at the head of the FIFO– Look only at the head of the virtual queues
• Each neighbor has a high probability of decoding the packet – Threshold probability
29
![Page 30: XORs in the air: Practical Wireless Network Codingweb.cs.wpi.edu/~rek/Adv_Nets/Fall2009/XORs09.pdf9 Opportunistic coding What packets to code together to maximize throughput? 10 Opportunistic](https://reader035.fdocuments.us/reader035/viewer/2022062908/5ada7dbd7f8b9afc0f8c972d/html5/thumbnails/30.jpg)
Packet Coding Algorithm
30
![Page 31: XORs in the air: Practical Wireless Network Codingweb.cs.wpi.edu/~rek/Adv_Nets/Fall2009/XORs09.pdf9 Opportunistic coding What packets to code together to maximize throughput? 10 Opportunistic](https://reader035.fdocuments.us/reader035/viewer/2022062908/5ada7dbd7f8b9afc0f8c972d/html5/thumbnails/31.jpg)
Packet Decoding
• Each node maintains a Packet Pool
– Packets it received or sent out
• Packets are stored in a hash table keyed on packet id
• Encoded packet with n packets
– XOR with n – 1 packets from packet pool
31
![Page 32: XORs in the air: Practical Wireless Network Codingweb.cs.wpi.edu/~rek/Adv_Nets/Fall2009/XORs09.pdf9 Opportunistic coding What packets to code together to maximize throughput? 10 Opportunistic](https://reader035.fdocuments.us/reader035/viewer/2022062908/5ada7dbd7f8b9afc0f8c972d/html5/thumbnails/32.jpg)
Pseudo-broadcast
• Broadcast
– No ACKs
– No retransmissions
– Poor reliability and lack of back-off
• Unicast
– ACKed as soon as received
– Sender back-off exponentially if no ACKs
– Retransmissions
– More Reliable32
![Page 33: XORs in the air: Practical Wireless Network Codingweb.cs.wpi.edu/~rek/Adv_Nets/Fall2009/XORs09.pdf9 Opportunistic coding What packets to code together to maximize throughput? 10 Opportunistic](https://reader035.fdocuments.us/reader035/viewer/2022062908/5ada7dbd7f8b9afc0f8c972d/html5/thumbnails/33.jpg)
Pseudo-broadcast
• Pseudo-broadcast
– Unicast packet to one of its recipients
– That node ACKs and hence the transmission is reliable
– Since others listen in promiscuous mode they receive the packet as well
– An XOR header is added after the link-layer header listing all next hops
• Each node checks the XOR header if it is a recipient and processes the packet
33
![Page 34: XORs in the air: Practical Wireless Network Codingweb.cs.wpi.edu/~rek/Adv_Nets/Fall2009/XORs09.pdf9 Opportunistic coding What packets to code together to maximize throughput? 10 Opportunistic](https://reader035.fdocuments.us/reader035/viewer/2022062908/5ada7dbd7f8b9afc0f8c972d/html5/thumbnails/34.jpg)
Hop-by-hop ACKs and Retransmissions
• Encoded packets require all next hops to ackthe receipt of the associated native packet– Only one node ACKs (pseudo-broadcast)
– There is still a probability of loss to other next hops
– Hence, each node ACKs the reception of native packet
– If not-acked, retransmitted, potentially encoded with other packets
– Overhead - highly inefficient
34
![Page 35: XORs in the air: Practical Wireless Network Codingweb.cs.wpi.edu/~rek/Adv_Nets/Fall2009/XORs09.pdf9 Opportunistic coding What packets to code together to maximize throughput? 10 Opportunistic](https://reader035.fdocuments.us/reader035/viewer/2022062908/5ada7dbd7f8b9afc0f8c972d/html5/thumbnails/35.jpg)
Hop-by-hop ACKs and Retransmissions
• Asynchronous ACKs and Retransmissions
– Cumulatively ACK every Ta seconds
– If a packet is not ACKed in Ta seconds, retransmitted
– Piggy-back ACKs in COPE header of data packets
– If no data packets, send periodic control packets (same packets as reception reports)
35
![Page 36: XORs in the air: Practical Wireless Network Codingweb.cs.wpi.edu/~rek/Adv_Nets/Fall2009/XORs09.pdf9 Opportunistic coding What packets to code together to maximize throughput? 10 Opportunistic](https://reader035.fdocuments.us/reader035/viewer/2022062908/5ada7dbd7f8b9afc0f8c972d/html5/thumbnails/36.jpg)
Preventing TCP Packet Reordering
• Asynchronous ACKs can cause packet reordering
– TCP can take this as a sign of congestion
• Ordering agent
– Ensures TCP packets are delivered in order
– Maintains packet buffer
36
![Page 37: XORs in the air: Practical Wireless Network Codingweb.cs.wpi.edu/~rek/Adv_Nets/Fall2009/XORs09.pdf9 Opportunistic coding What packets to code together to maximize throughput? 10 Opportunistic](https://reader035.fdocuments.us/reader035/viewer/2022062908/5ada7dbd7f8b9afc0f8c972d/html5/thumbnails/37.jpg)
Outline
• Design
• Cope Gains
• Making it work
• Implementation details
• Experimental results
37
![Page 38: XORs in the air: Practical Wireless Network Codingweb.cs.wpi.edu/~rek/Adv_Nets/Fall2009/XORs09.pdf9 Opportunistic coding What packets to code together to maximize throughput? 10 Opportunistic](https://reader035.fdocuments.us/reader035/viewer/2022062908/5ada7dbd7f8b9afc0f8c972d/html5/thumbnails/38.jpg)
Packet Format
38
![Page 39: XORs in the air: Practical Wireless Network Codingweb.cs.wpi.edu/~rek/Adv_Nets/Fall2009/XORs09.pdf9 Opportunistic coding What packets to code together to maximize throughput? 10 Opportunistic](https://reader035.fdocuments.us/reader035/viewer/2022062908/5ada7dbd7f8b9afc0f8c972d/html5/thumbnails/39.jpg)
Control flow - Sender
39
![Page 40: XORs in the air: Practical Wireless Network Codingweb.cs.wpi.edu/~rek/Adv_Nets/Fall2009/XORs09.pdf9 Opportunistic coding What packets to code together to maximize throughput? 10 Opportunistic](https://reader035.fdocuments.us/reader035/viewer/2022062908/5ada7dbd7f8b9afc0f8c972d/html5/thumbnails/40.jpg)
Control flow - Receiver
40
![Page 41: XORs in the air: Practical Wireless Network Codingweb.cs.wpi.edu/~rek/Adv_Nets/Fall2009/XORs09.pdf9 Opportunistic coding What packets to code together to maximize throughput? 10 Opportunistic](https://reader035.fdocuments.us/reader035/viewer/2022062908/5ada7dbd7f8b9afc0f8c972d/html5/thumbnails/41.jpg)
Outline
• Design
• Cope Gains
• Making it work
• Implementation details
• Experimental results
41
![Page 42: XORs in the air: Practical Wireless Network Codingweb.cs.wpi.edu/~rek/Adv_Nets/Fall2009/XORs09.pdf9 Opportunistic coding What packets to code together to maximize throughput? 10 Opportunistic](https://reader035.fdocuments.us/reader035/viewer/2022062908/5ada7dbd7f8b9afc0f8c972d/html5/thumbnails/42.jpg)
Testbed
• 20 nodes– Path between nodes are 1 to 6 hops in length– 802.11a with a bit-rate of 6Mb/s
• Software– Linux and click toolkit– User daemon and exposes a new interface– Applications use this interface
• No modification to application is necessary
• Traffic model– udpgen to generate UDP traffic– ttcp to generate TCP traffic– Poisson arrivals, Pareto file size distribution
42
![Page 43: XORs in the air: Practical Wireless Network Codingweb.cs.wpi.edu/~rek/Adv_Nets/Fall2009/XORs09.pdf9 Opportunistic coding What packets to code together to maximize throughput? 10 Opportunistic](https://reader035.fdocuments.us/reader035/viewer/2022062908/5ada7dbd7f8b9afc0f8c972d/html5/thumbnails/43.jpg)
Metrics
• Network throughput
– Total end-to-end throughput (sum of throughput of all flows in a network)
• Throughput gain
– The ratio of measured throughput with and without COPE
– Calculate from two consecutive experiments, with coding turned on and off
43
![Page 44: XORs in the air: Practical Wireless Network Codingweb.cs.wpi.edu/~rek/Adv_Nets/Fall2009/XORs09.pdf9 Opportunistic coding What packets to code together to maximize throughput? 10 Opportunistic](https://reader035.fdocuments.us/reader035/viewer/2022062908/5ada7dbd7f8b9afc0f8c972d/html5/thumbnails/44.jpg)
Long-lived TCP flows
Close to 1.33 Close to 1.33 Close to 1.6
• Close to coding gain– TCP backs-off due to congestion control
– To match the draining rate at the bottleneck44
![Page 45: XORs in the air: Practical Wireless Network Codingweb.cs.wpi.edu/~rek/Adv_Nets/Fall2009/XORs09.pdf9 Opportunistic coding What packets to code together to maximize throughput? 10 Opportunistic](https://reader035.fdocuments.us/reader035/viewer/2022062908/5ada7dbd7f8b9afc0f8c972d/html5/thumbnails/45.jpg)
Long-lived UDP flows
1.7 1.65 3.5
• Close to Coding + MAC gain– XOR headers add small overhead (5-8%)
– The difference is also due to imperfect overhearing45
![Page 46: XORs in the air: Practical Wireless Network Codingweb.cs.wpi.edu/~rek/Adv_Nets/Fall2009/XORs09.pdf9 Opportunistic coding What packets to code together to maximize throughput? 10 Opportunistic](https://reader035.fdocuments.us/reader035/viewer/2022062908/5ada7dbd7f8b9afc0f8c972d/html5/thumbnails/46.jpg)
Ad-hoc network - TCP
• TCP flows
– Arrive according to Poisson process
– Pick sender and receiver randomly
– Transfer files (size - Pareto distribution)
• Does not show any significant improvement
– TCP’s reaction to collision-related losses
– Hidden terminals
46
![Page 47: XORs in the air: Practical Wireless Network Codingweb.cs.wpi.edu/~rek/Adv_Nets/Fall2009/XORs09.pdf9 Opportunistic coding What packets to code together to maximize throughput? 10 Opportunistic](https://reader035.fdocuments.us/reader035/viewer/2022062908/5ada7dbd7f8b9afc0f8c972d/html5/thumbnails/47.jpg)
Ad-hoc network - TCP
• Even with 15 MAC retries, 14% loss
– Due to hidden terminals
• Bottleneck never see enough traffic to make use of coding
– Few coding opportunities47
![Page 48: XORs in the air: Practical Wireless Network Codingweb.cs.wpi.edu/~rek/Adv_Nets/Fall2009/XORs09.pdf9 Opportunistic coding What packets to code together to maximize throughput? 10 Opportunistic](https://reader035.fdocuments.us/reader035/viewer/2022062908/5ada7dbd7f8b9afc0f8c972d/html5/thumbnails/48.jpg)
TCP with no hidden terminals
38% improvement in TCP goodput48
![Page 49: XORs in the air: Practical Wireless Network Codingweb.cs.wpi.edu/~rek/Adv_Nets/Fall2009/XORs09.pdf9 Opportunistic coding What packets to code together to maximize throughput? 10 Opportunistic](https://reader035.fdocuments.us/reader035/viewer/2022062908/5ada7dbd7f8b9afc0f8c972d/html5/thumbnails/49.jpg)
Ad-hoc network - UDP
3-4x improvement in throughput49
![Page 50: XORs in the air: Practical Wireless Network Codingweb.cs.wpi.edu/~rek/Adv_Nets/Fall2009/XORs09.pdf9 Opportunistic coding What packets to code together to maximize throughput? 10 Opportunistic](https://reader035.fdocuments.us/reader035/viewer/2022062908/5ada7dbd7f8b9afc0f8c972d/html5/thumbnails/50.jpg)
Ad-hoc network - UDP
50
![Page 51: XORs in the air: Practical Wireless Network Codingweb.cs.wpi.edu/~rek/Adv_Nets/Fall2009/XORs09.pdf9 Opportunistic coding What packets to code together to maximize throughput? 10 Opportunistic](https://reader035.fdocuments.us/reader035/viewer/2022062908/5ada7dbd7f8b9afc0f8c972d/html5/thumbnails/51.jpg)
Ad-hoc network - UDP
On an average 3 packet are coded together
51
![Page 52: XORs in the air: Practical Wireless Network Codingweb.cs.wpi.edu/~rek/Adv_Nets/Fall2009/XORs09.pdf9 Opportunistic coding What packets to code together to maximize throughput? 10 Opportunistic](https://reader035.fdocuments.us/reader035/viewer/2022062908/5ada7dbd7f8b9afc0f8c972d/html5/thumbnails/52.jpg)
Mesh network
• COPE throughput gain relies on coding opportunities– Depends on diversity of packets in the queue of the
bottleneck node52
![Page 53: XORs in the air: Practical Wireless Network Codingweb.cs.wpi.edu/~rek/Adv_Nets/Fall2009/XORs09.pdf9 Opportunistic coding What packets to code together to maximize throughput? 10 Opportunistic](https://reader035.fdocuments.us/reader035/viewer/2022062908/5ada7dbd7f8b9afc0f8c972d/html5/thumbnails/53.jpg)
Fairness
More fair – more opportunities to code
53
![Page 54: XORs in the air: Practical Wireless Network Codingweb.cs.wpi.edu/~rek/Adv_Nets/Fall2009/XORs09.pdf9 Opportunistic coding What packets to code together to maximize throughput? 10 Opportunistic](https://reader035.fdocuments.us/reader035/viewer/2022062908/5ada7dbd7f8b9afc0f8c972d/html5/thumbnails/54.jpg)
Conclusion
• Network coding to improve the throughput of wireless networks
• COPE -Implementation of first system architecture for wireless network coding
• COPE improves the UDP throughput by 3-4x
• 5% to 70% throughput improvement in mesh networks depending on downlink-uplink ratio
54
![Page 55: XORs in the air: Practical Wireless Network Codingweb.cs.wpi.edu/~rek/Adv_Nets/Fall2009/XORs09.pdf9 Opportunistic coding What packets to code together to maximize throughput? 10 Opportunistic](https://reader035.fdocuments.us/reader035/viewer/2022062908/5ada7dbd7f8b9afc0f8c972d/html5/thumbnails/55.jpg)
Thank YouQuestions?
55