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:
Hop maximizes channel utilization by
minimizing control overhead.
Hop is robust to message losses,
contentions, and network partitions.
Hop leverages in-network storage to cache
data, thereby improving throughput and resilience to disconnections.
The main components of Hop are illustrated below:
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.
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.
Backpressure based Congestion Control: Hop uses simple and low
overhead backpressure based congestion control that operates on blocks
instead of individual packets.
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.
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
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.
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.