Wednesday, October 8, 2008

XORs in the Air

Sachin Katti, Hariharan Rahul, Wenjun Hu, Dina Katabi, Muriel Medard, Jon Crowcroft, "XORs in The Air: Practical Wireless Network Coding"

Principles
  • use broadcast nature of wireless (as previous paper)
  • network coding (here: use XORing of packets, pad packets to make them equal length)
The key example to illustrate the potential benefit is in Figure 1. The caption summarizes it so well that I will only refer to it here. COPE is sitting between IP and MAX layer.

Main techniques
  • opportunistic listening: overhear packets even if they are not destined for you, send reception reports to tell others which packets you received (broadcast, extra transmission or piggy-backed on another)
  • opportunistic coding: "maximize the number of native packets [i.e. not coded ones] delivered in a single transmission, while ensuring that each intended nexthop has enough information to decode its native packet [i.e. send A XOR B XOR C only if the nexthop has already two of the packets A, B, C so that it can decode]." Here the nexthop is picked to be the packet of the head of the queue, so that there is no delay introduced (though potentially reordering)
  • learning neighbor state: leverage probabilistic knowledge for coding decision when you lack feedback from reception reports
Refinement
  • have separate queues for different packet lengths to avoid excessive padding
  • MAC allocated bandwidth alters the dynamics benefinically
  • no delay: do not wait for coding opportunities before sending packet
  • never "code together packets heading for the same nexthop", therefore maintain virtual queues for each nexthop (and packet length)
  • reordering agent to fix reorder
  • details see pseudo code in paper
  • pseudo-broadcast: uses MAC unicast to send and puts other nodes into promicious mode, this enables MAC's backoff and ACK mechanism
Results
  • random UDP flows: 3x4 increase of throughput (even when congested)
  • TCP, gateway to Internet: 5% to 70% more throughput depending on upload/download ratio
  • hidden terminals are spoilers for TCP

No comments: