r20 - 07 Jul 2008 - 17:04:46 - Main.acwarrieYou are here: TWiki >  Main Web > Projects > DiffQ

DiffQ: Hop by hop congestion control protocol for mesh networks

Introduction

Congestion control in wireless multi-hop networks is challenging because of two reasons. First, broadcast is an inherent feature of wireless networks and motivates many creative protocols including opportunistic routing and network coding. These protocols enable the use of many diverse, yet dynamically changing routing paths. Congestion control for these protocols using traditional end-to-end protocols such as TCP may result in too conservative rate control. Second, the wireless medium is shared among neighboring nodes; thus bandwidth must be allocated fairly among neighboring flows that do not necessarily share the same link. There have been no practical solutions for congestion control for these networks. Inspired by existing theoretical solutions of cross-layer optimization, we develop a protocol, called DiffQ, for congestion control in wireless multi-hop networks. DiffQ can support congestion control for network flows that use either single-path or opportunistic multi-path routing. The protocol is currently implemented in Linux 2.6 series and tested in a network of 46 IEEE 802.11 wireless nodes. It is observed that DiffQ greatly improves the efficiency and fairness of existing transport protocols that use application-level multi-path routing and single-path routing.

DiffQ Design

DiffQ is a hop-by-hop congestion control algorithm. Intermediate nodes maintain per-destination queues and disseminate these queue sizes to neighbors via piggybacking. The DiffQ scheduler schedules flows with the maximum "queue differential". The queue differential ($QD_i(d)$) at a node i for destination d and next-hop node j is calculated w.r.t queue sizes for destination d at i and j, i.e. $|Q_i(d)|$ and $|Q_j(d)|$ as follows:

\[ QD_i(d) = |Q_i(d)| - | Q_j(d) | \]

Queue differential is translated proportionally to a packet priority -- higher the queue differential, higher the priority. The 802.11e MAC is then responsible for honoring this priority among neighbor nodes by means of differential backoffs. The intuitive idea of scheduling based on queue differential is as follows: a higher queue differential indicates that the flow is backlogged. By scheduling such flows and assigning MAC priority we allow local (hop-by-hop) congestion alleviation. If this does not work, then back-pressure takes over and ultimately source reduces its rate.

back-pressure.png
DiffQ Back-pressure

Above figure presents the concept of back-pressure. High queue differential at node C is alleviated by scheduling and higher MAC priority. If congestion persists, A's queue will build-up, since C grabs most of the channel, causing its own queue differential to increase. Again, if A is not able to flush its own queue, ultimately the source queue size increases, and finally the source controls the rate by only looking at its own local queue size.

Architecture and Implementation

diffqArchitecture.png
DiffQ Architecture
WiSeNet-TCP.png
DiffQ Integration with TCP

DiffQ sits above the IP layer and provides congestion control as a "service" to transport layer applications like TCP, UDP, TFRC, MORE. We have implemented DiffQ as a Linux kernel module (version 2.6.16). The MAC is 802.11 with Madwifi driver for the Atheros chipset. The DiffQ implementation has been tested over the WiSeNet testbed consisting of 60 Soekris nodes. Please refer to: Details of DiffQ implementation in Linux for a more detailed look at the DiffQ kernel implementation. DiffQ also takes care of converting outbound and incoming vanilla-TCP connections to a "DiffQ friendly" version of TCP using a TCP proxy, as shown above. For more details please refer to: Details of DiffQ TCP Proxy implementation.

Experimental Results - DiffQ + Opportunistic Routing (MORE)

Below figures show the performance of MORE and MORE+DiffQ with varying number of concurrent flows on our testbed. Figure (A) shows that MORE alone suffers significant starvation with almost 50% flows getting 0 throughput with 32 concurrent flows. Figure (B) shows the improvement in performance with the addition of DiffQ congestion control. Figure (C) shows that the improvement is not limited to fairness; the average throughput improves by 3x with DiffQ.

(A) MORE performance without congestion control (B) MORE+DiffQ performance (C) Average Throughput of MORE and MORE+DiffQ
more.png
dqMORE.png
dqMORE2.png

Experimental Results - DiffQ + Single Path Routing (TCP/UDP/TFRC ...)

For video demos of DiffQ over single path protocols, please refer to: DiffQ Single-Path Demos.

Publications

  • A. Warrier, S. Ha, P. Wason and I. Rhee, DiffQ: Differential Backlog Congestion Control for Multi-hop Wireless Networks, NCSU Technical Report. pdf PDF
  • A. Warrier, S. Ha and I. Rhee, Starvation in Wireless End-to-end Congestion Controlled Networks: A Different Perspective, submitted pdf PDF
  • A. Warrier, S. Ha, P. Wason, I. Rhee and J. H. Kim, DiffQ: Differential Backlog Congestion Control for Multi-hop Wireless Networks, Demo, SECON 2008. pdf PDF
  • A. Warrier, S. Ha, and I. Rhee, TCP performance problems in wireless multi-hop networks, Demo, The Future of TCP: Train-wreck or Evolution? Stanford Clean Slate Program, 2008. http://yuba.stanford.edu/trainwreck/

Presentations (PPT)

Documentation

Topic attachments
I Attachment Action Size Date Who Comment
movmp4 a01.mp4 manage 31872.2 K 30 May 2008 - 18:57 Main.acwarrie test
movmov demoVideoTFRC8_cut.mov manage 134633.8 K 29 May 2008 - 17:43 Main.acwarrie TFRC Demo Video
pngpng diffqMORE.png manage 16.7 K 06 Jun 2008 - 18:01 Main.acwarrie  
Edit | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r20 < r19 < r18 < r17 < r16 | More topic actions
 
Powered by TWiki
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback