Wednesday, October 8, 2008

ExOR: Opportunistic Multi-Hop Routing for Wireless Networks

This paper focused more on an idea than on implementation details and even practicality. The main point of the paper is that you can take advantage of the broadcast nature of wireless to improve throughput. This is something that network researchers probably overlooked for a long time, so it's good to point out. The actual method in which they take advantage of the broadcast medium is to have everyone listen to a packet, and then figure out which receiver is closer to the destination, and have it send the packet on. This way, you take advantage of redundancy in the paths as well as strokes of luck that let you get a packet through a longer, lossier link. At least, that's the theory. The actual implementation is much hairier, involving batching of multiple packets and an agreement protocol for who received what. The fact that you need to send the last 10\% of packets through traditional means seems like a serious hack. Could you not have used forward error correction or latched on to the end of the next batch?

Some of the other practical issues I had with the implementation were:
  • Batching is bad for latency and jitter, and might not always be possible. What about constant-bit-rate sources?
  • ExOR takes better advantage of the broadcast medium if there's one source-destination pair talking at once. What if there are more? It would seem that the extra gossiping and coordination on who is to send what is wasteful. Also, you might as well have been using lower transmit power and shorter, but less conflicting links rather than hoping that someone far away might hear some of your transmissions.
  • It's clear that TCP apps won't work really well over ExOR, and neither will realtime apps. What use case does this leave, where we need high throughput in a wireless network?
I think the authors' point is indeed that "look, you can do something beyond what you thought was optimal with a broadcast medium, because it's broadcast". The paper does make that point, but at the same time, it's a little bogged down with details. Although the fact that you could do better was known from before (network coding and related work), it's nice that the paper has a real implementation.

I also didn't understand why the paper was called ExOR. What does that stand for? I would've guessed upon reading the title that the paper would be about network coding (XORs in the air), but it wasn't.

No comments: