The protocol improves TCP performance over networks with wireless links. It has two components---a transport-aware link protocol for data transfers to mobile hosts and a link-aware transport protocol using the Explicit Loss Notification (ELN) mechanism for transfers from mobile hosts to fixed hosts on the Internet.
More information can be found in the papers at the bottom of this page.
The software deploys a lightweight, soft-state agent at the base station. This directory contains new files snoop.{c,h} that perform the core functions of the protocol. Additions to tcp_input.c under #ifdef ELN perform the link-aware modifications to TCP that help it react differently to corruption, as opposed to network congestion. snoop.c includes base station code to signal ELN to the TCP sender at the mobile host in this case.
When the option MIPSNOOP is turned on, the Snoop protocol uses the Daedalus multicast-based handoff software to avoid packet loss and delay during handoff. It uses multicast of packets from the home agent to a small number of base stations to prime the snoop caches in anticipation of a handoff. ip_mobile.{c,h} has this code. It is also part of the Daedalus handoff distribution.
For experiments with wireless bit-errors, use the code in ber.{c,h} and rand.c. These are only for experiments and demos.
The files in this distribution are placed in i386/conf/, netinet/ and sys/
We have also included two user-level utilities for configuration and experiments: netopts and netperf.
netopts is used to configure snoop; netopts -help has more
information. Some of the more useful options are:
As the name implies, netperf is a network performance utility. The
full release of netperf is available from
here,
although the site seems sometimes unreachable. :-(
Technical details of the snoop algorithms and performance results and
other items of interest are in:
1. Improving
Reliable Transport and Handoff Performance in Cellular Wireless
Networks by H. Balakrishnan, S. Seshan, and R. Katz, in ACM Wireless
Networks, Vol. 1, No. 4, December 1995.
2. A
Comparison of Mechanisms for Improving TCP Performance over Wireless
Links by H. Balakrishnan, V. Padmanabhan, S. Seshan, and R. Katz,
in IEEE/ACM Trans. on Networking, Vol. 5, No. 6, December 1997.
3. Challenges to
Reliable Data Transport over Heterogeneous Wireless Networks by
H. Balakrishnan, PhD Thesis, UC Berkeley, 1998. (Especially Chapters 4
and 5)
Unfortunately, I don't have any time to support or enhance this code
any more. I have moved on to
other things since my Berkeley days.
"netopts -sena" to enable snoop protocol processing
"netopts -sdis" to disable snoop
"netopts -eena" to enable bit-errors at receiver
"netopts -edis" to disable
"netopts -e0