The Berkeley Snoop Protocol

Daedalus Research Group
University of California at Berkeley

Shortcut to software release.

The Snoop protocol is a TCP-aware link layer protocol designed to improve the performance of TCP over networks of wired and single-hop wireless links. The main problem with TCP performance in networks that have both wired and wireless links is that packet losses that occur because of bit-errors are mistaken by the TCP sender as being due to network congestion, causing it to drop its transmission window and often time out, resulting in degraded throughput. The Snoop protocol works by deploying a Snoop agent at the base station and performing retransmissions of lost segments based on duplicate TCP acknowledgments (which are a strong indicator of lost packets) and locally estimated last-hop round-trip times. The agent also suppresses duplicate acknowledgments corresponding to wireless losses from the TCP sender, thereby preventing unnecessary congestion control invocations at the sender. This combination of local retransmissions based primarily on TCP acknowledgments, and suppression of duplicate TCP acknowledgments, is the reason for classifying Snoop as a transport-aware reliable link protocol. The state maintained at the base station is soft, which does not complicate handoffs or overly increase their latency. The scheme has been demonstrated to yield 100-2000% throughput improvements for TCP limited by single-hop wireless in-building links under several circumstances.

For data transfers from the mobile host, we design a mechanism called Explicit LOss Notification and use it to implement a link-aware transport protocol. With ELN, TCP uses hints from base stations in the network and/or the receiver to decouple retransmissions from congestion control. This helps it perform congestion control only for congestion-related losses and not for losses due to corruption.

This figure shows the basic idea behind the protocol for transfers to the mobile host.

The Snoop protocol has been used with considerable benefit at places like Soda Hall's in-building WaveLAN-based wireless network, and UC Santa Cruz's outdoor point-to-point wireless network in Darrel Long's Reinas project. We have also integrated it with the BARWAN handoff software, thereby achieving good performance in the face of both wireless bit errors and handoffs due to user movement. In addition, TCP sender's on the Internet do not have to be modified at all, and only minor modifications are required at the mobile host itself.

The Snoop software runs at the base station to the wireless network. The BSD/OS 3.0 version is here. The BSD/OS 2.1 version can be downloaded from here. You need a BSDI source license to use some of the source code (i.e., the files from BSDI that we changed) or a binary license for those object files. The code for the protocol itself is released under the standard UC Berkeley copyright (the source files have the exact wording).

Papers describing this and related to this research have appeared at IEEE/ACM Mobicom (1995), ACM Wireless Networks (1996), and ACM Sigcomm (1996). These papers can be found here (see papers written between 1995-97). A complete list of papers written by the Daedalus Group can be found here.

This work is part of the BARWAN project of the Daedalus Group at U.C. Berkeley, headed by Professor Randy Katz. Support for the work was provided by ARPA Contract DAAB07-95-C-D154, ARPA Contract J-FBI-93-153, California MICRO Program, Metricom Corporation and Hughes Aircraft Corporation.

For more information contact Hari Balakrishnan (