Deploying Safe User-Level Network Services with icTCP
Haryadi S. Gunawi, Andrea Arpaci-Dusseau, Remzi Arpaci-Dusseau
We present icTCP, an "information and control" TCP implementation that exposes key pieces of internal TCP state and allows certain TCP variables to be set in a safe fashion. The primary benefit of icTCP is that it enables a variety of TCP extensions to be implemented at user-level while ensuring that extensions are TCP-friendly. We demonstrate the utility of icTCP through a collection of case studies. We show that by exposing information and safe control of the TCP congestion window, we can readily implement user-level versions of TCP Vegas , TCP Nice , UDP with congestion control , and the Congestion Manager ; we show how user-level libraries can safely control the duplicate acknowledgement threshold to make TCP more robust to packet reordering  or more appropriate for wireless LANs ; we also show how the retransmission timeout value can be adjusted dynamically . Finally, we find that converting a stock TCP implementation into icTCP is relatively straightforward; our prototype requires approximately 300 lines of new kernal code.
Download this report (PDF)
Return to tech report index