While TCP adapts well to network congestion, it does not adequately handle the vagaries of wireless media. 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 implementation is for kernels of 2.6.x series. This software is intended to use on routers acting between big fat pipe(BFP) link and wireless link.

The problem: The wireless link is error prone by its nature and BFP links such as satellite one has very big round-trip time. When error occurs on wireless segment it causes in speed reduction because the TCP protocol on sending side treats this error as link congestion although the error was just a temporary link quality loss and the connection cann't recover its speed.

The fix: The module will cache TCP segmets passing to host on wireless segment until the ACK(nowledgmet) is received or timeout expired. In case of timeout the segment will be retransmitted again. And by the way the module will drop all DUP(licate) ACK(nowledgmets) caused by packet loss on wireless segment and prevent the reduction of speed of flow from the host beyond the satellite link. The module works now only with connections initiated from wireless hosts.

Please follow the external links if you want to have more information on subject.

Real life

Now this software is used by an internet provider company in Kazakhstan. The company provides internet access to clients via wireless links and up/down link to the NET is satellite channel. We have reached very good results using the module. For example if without snoop the speed at end point was 20-30 KB/s then after toggling the module the speed increased up to 80-150 KB/s depending on site.
It would be great if you could get the same or better result using this software. Please share your experience with us via forums or mailing lists.

Here are the links I've found using well known search engines. You can dig the net by yourself or jump directly to sites:

The author

So gentle reader, now am I going to introduce myself shortly. My name is Ivan Keberlein, now I work as software developer at one ISP company. You can reach me through forums or mailing lists.

Valid HTML 4.01 Transitional