Optimizing TCP forwarder performance

Oliver Spatscheck, Jørgen S. Hansen, John H. Hartman, Larry L. Peterson

Research output: Contribution to journalArticlepeer-review

59 Scopus citations

Abstract

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 a proxy between a TCP connection to an external host and a TCP connection to an internal host, controlling access to a resource on the internal host. Once the proxy approves the access, it simply forwards data from one connection to the other. We use the term TCP forwarding to describe indirect TCP communication via a proxy in general. This paper briefly characterizes the behavior of TCP forwarding, and illustrates the role TCP forwarding plays in common network 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 its impact. Connection splicing improves TCP forwarding performance by a factor of two to four, making it competitive with IP router performance on the same hardware.

Original languageEnglish (US)
Pages (from-to)146-157
Number of pages12
JournalIEEE/ACM Transactions on Networking
Volume8
Issue number2
DOIs
StatePublished - 2000

Keywords

  • Firewall
  • Proxy
  • Router
  • TCP

ASJC Scopus subject areas

  • Software
  • Computer Science Applications
  • Computer Networks and Communications
  • Electrical and Electronic Engineering

Fingerprint

Dive into the research topics of 'Optimizing TCP forwarder performance'. Together they form a unique fingerprint.

Cite this