![]() |
Network Systems Group Princeton University Publication Info |
Optimizing TCP Forwarder Performance
Oliver Spatscheck
Jørgen S. Hansen
John Hartman
Larry Peterson
A TCP forwarder is a network node that establishes and forwards data between a pair of TCP connections. An example of a TCP forwarder is a firewall that places aproxy between a TCP connection to an external host and a TCP connection to an internal host, controlling access toa resource on the internal host. Once the proxy approves the access, it simply forwards data from one connection tothe other. We use the term TCP forwarding to describe indirect TCP communication via a proxy in general. Thispaper briefly characterizes the behavior of TCP forwarding, and illustrates the role TCP forwarding plays in commonnetwork services like firewalls and HTTP proxies. We then introduce an optimization technique, called connection splicing, that can be applied to a TCP forwarder, and report the results of a performance study designed to evaluate itsimpact. Connection splicing improves TCP forwarding performance by a factor of two to four, making it competitivewith IP router performance on the same hardware.
IEEE/ACM Transactions on Networking
(TON)
8(2):146–157, April 2000.