Hop logo

Hop: A Fast Wireless Transport Protocol


Overview

Hop is a transport layer protocol designed for wireless mesh networks. Hop is 1) fast, because it eliminates many sources of overhead as well as noisy end-to-end rate control, 2) robust to partitions and route changes because of hop-by-hop control as well as in-network caching, and 3) simple, because it obviates complex end-to-end rate control as well as complex interactions between the transport and link layers.

Hop features:
  1. Hop maximizes channel utilization by minimizing control overhead.
  2. Hop is robust to message losses, contentions, and network partitions.
  3. Hop leverages in-network storage to cache data, thereby improving throughput and resilience to disconnections.
The main components of Hop are illustrated below:

Hop Components

  1. Reliable Per Hop Block Transfer: This is the basic building block of Hop. We exploit 802.11 WMM to send a large block of data one hop at a time with minimal control overhead.
  2. Virtual Retransmission for End-to-End to Reliability: Hop leverages in-network caching of blocks to significantly reduce the overhead of end to end retransmissions.
  3. Backpressure based Congestion Control: Hop uses simple and low overhead backpressure based congestion control that operates on blocks instead of individual packets.
  4. Ack Withholding for Hidden terminal mitigation: To deal with hidden terminals, Hop uses a lightweight scheme called Ack Withholding that operates on large blocks instead of individual packets. The result is a low overhead, simple and effective hidden terminal mitigation mechanism.
  5. Micro-block Prioritization: Hop employs several micro (small) block optimizations that ensure small file transfers and interactive applications are not inordinately delayed by large blocks.

Software

  1. Hop has been written in C++. The up-to-date version Hop v0.1 can be downloaded here. Please look at the enclosed README file for a detailed description of how to run and use Hop. This version was evaluated extensively in our NSDI 2009 paper. Hop is distributed under the terms of the General Public License as here.
  2. We modified Madwifi driver version 0.9.4 to (a) enable 802.11e QoS support under Ad-Hoc-Demo mode, (b) emulate message losses, and (c) change number of link-layer retransmissions. The modified driver can be downloaded here .

Documentation and Support

The documentation related to the implementation can be found in the README along with the code. The design of Hop is also described in a draft RFC. Please direct all questions to the authors mentioned in the enclosed AUTHORS file.

Publications

  • Block-switched Networks: A New Paradigm for Wireless Transport
    Ming Li, Devesh Agrawal, Deepak Ganesan, and Arun Venkataramani
    in Proceedings of the 6th ACM/USENIX Symposium on Networked Systems Design and Implementation (NSDI 2009), Boston, Apr 2009 slides


    People

    Funding

    This work is supported by the following grants CNS-0626873, CNS-0546177, CNS-052072, and EEC-0313747.