Announcing the Release of a Userspace TCP Stack

Dan Levin dlevin at net.t-labs.tu-berlin.de
Tue Oct 26 21:20:55 UTC 2010


At Mike Perry's request, I'd like to announce the recent availability of a tunable, BSD-licensed Userspace TCP Stack. I'll just post my original email exchange from yesterday below, which includes all the details:

------------------------ 8<  ------------------------

Hi Mike,
I hope my TCP code may prove useful. Our code comes out of a research
project for enabling legacy TCP-speaking end-hosts to interface with
new, clean slate wireless mesh transport protocols. Our sources can be
obtained as part of the TCPSpeaker Element of the Click Modular Router
project:

git clone git://bowl.net.t-labs.tu-berlin.de/click.git
git checkout tcpspeaker

All TCP-specific code is contained in the two files:
elements/local/tcpspeaker.cc
elements/local/tcpspeaker.hh

To build the code as a click element (which I'm not certain may be
your desired use case)
./configure --disable-linuxmodule --enable-userlevel --enable-local&&
make

To get a high-level overview of our design, which may assist in your
retooling it to your needs, here's a video from the SyClick workshop
which gives a nice explanation:
http://www.syclick.ua.ac.be/content/multiflowdispatcher-and-tcpspeaker-video

A 3-page abstract:
http://www.net.t-labs.tu-berlin.de/papers/LSMS-TCDSSS-10a.pdf
A (slightly longer) Thesis:
http://www.net.t-labs.tu-berlin.de/~dlevin/mthesis/main.pdf

This thesis contains a lot (possibly too much) documentation on the
TCPSpeaker Click Element. The implementation section may give some
useful insights. At the end in the Appendix, there are some tables
documenting the TCPSpeaker element handlers. Finally, if anyone wishes
to try running this within click, there are some example click
configurations given in the click repository under
conf/tcpspeaker-{avila,avila-baseline}.click

------------------------ 8<  ------------------------

I'm happy to provide whatever further information or assistance I can, if our code appears useful to anyone.
-Dan



More information about the tor-dev mailing list