As part of a broader organisational restructure, data networking research at Swinburne University of Technology has moved from the Centre for Advanced Internet Architecture (CAIA) to the Internet For Things (I4T) Research Lab.

Although CAIA no longer exists, this website reflects CAIA's activities and outputs between March 2002 and February 2017, and is being maintained as a service to the broader data networking research community.

Stateless TCP

Exploring the utility of Stateless TCP for highspeed, high-load DNS under FreeBSD


Overview

Inspired by Geoff Huston's idea of a DNS proxy, we implement statelessTCP in the FreeBSD 9 kernel. We convert DNS-over-TCP queries to DNS-over-UDP and vice-versa in kernelspace. This allows the DNS server running in userspace to avoid communication over resource consuming TCP sockets and use fast UDP sockets instead.

statelessTCP design
StatelessTCP design

DNS zone transfers need a reliable TCP connection, so we revert to "full state" TCP in the case of an "axfr" request, by performing packet inspection. As zone tansfers are not enabled by default, we disable that feature by default as well.

Tests using statelessTCP have shown, that even with zone tansfer detection enabled, performance close to DNS-over-UDP can be achieved. (Tested with statelessTCP on FreeBSD 9 and BIND 9)

statelessTCP performance results
Performance results of DNS-over-statelessTCP (with and without axfr detection) compared to DNS-over-TCP and DNS-over-UDP

The full implementation details and performance results can be consulted here, the FreeBSD 9 patches can be obtained here.

Last Updated: Friday 22-Oct-2010 15:43:47 AEDT | Maintained by: David Hayes (dahayes@swin.edu.au) | Authorised by: Grenville Armitage (garmitage@swin.edu.au)