Centre for Advanced Internet Architectures, Swinburne University of Technology, Melbourne, Australia CRICOS number 00111D 3rd March, 2011 ---------------------------------------------- OVERVIEW ---------------------------------------------- Stateless TCP for HTTP is a mechanism which makes it possible for a web server to use UDP instead of TCP, while exhibiting TCP's behavior on the wire and towards the receiver. It can considerably reduce the server's CPU and memory usage, potentially enabling it to serve small web pages even under extreme overload conditions. ---------------------------------------------- LICENCE ---------------------------------------------- The statelessTCP patch is released under a BSD licence. ---------------------------------------------- USAGE ---------------------------------------------- Make sure the base system you are installing onto is already running FreeBSD 9.x before continuing. 1. svn co -r 212621 http://svn.freebsd.org/base/head 2. cd /path/to/src 3. patch -p1 < /path/to/statelessTCPhttp_0.1_head_r212621.patch 4. make buildworld buildkernel installkernel installworld 5. mergemaster -iF -m /path/to/src 6. reboot ---------------------------------------------- RUN TIME CONFIGURATION ---------------------------------------------- StatelessTCP defines the following system control parameters shown with their defaults: * net.inet.tcp.stateless.timeout: 3000 {StatelessTCP lookup table timeout (ticks).} * net.inet.tcp.stateless.loglevel: 1 {StatelessTCP logging level: 0 - no logging, 1 log only errors, 2 - detailed log, 3 - very detailed logging for debugging.} * net.inet.tcp.stateless.port: 80 {Port monitored for statelessTCP.} * net.inet.tcp.stateless.active: 0 {When this is not 0 statelessTCP is activated on the port defined in net.inet.tcp.stateless.port.} In addition the following system control parameters may need adjustment: * net.inet.udp.maxdgram -> to the maximum size web page the server will retrieve * net.inet.tcp.syncache.hashsize * net.inet.tcp.syncache.cachelimit * net.inet.tcp.syncache.bucketlimit These should be set to values appropriate for the expected load. ---------------------------------------------- ACKNOWLEDGEMENTS ---------------------------------------------- This work has been made possible in part by a grant from APNIC and Nominet. ---------------------------------------------- AUTHORS ---------------------------------------------- The statelessTCP patch was developed by David Hayes and Michael Welzl , and tested with the help of Mattia Rossi,