TCP Tuning
Categories: Cleanup from September 2005 | Computer network stubs | Computer networks
Tuning of TCP for high performance networks.
Observation, the "wizard gap" - people with well tuned networks perform 10x to 1000x as fast as ordinary users, especially on high speed (gigabit and beyond) networks. Image:Http://people.internet2.edu/~ghb/wizcamp/images/wizgap02.jpg
The structure of this page draws heavily from the work of Matt Mathis.
Contents |
Technical introduction
Network and system characteristics
Bandwidth*delay product (BDP)
Bandwidth*delay product (BDP) is a term primarily used in conjunction with the TCP to refer to the number of bytes necessary to fill a TCP "path". TCP has a concept of windows which are used for congestion control and for determining the optimum size of packet that is resilient to packet loss, packet truncation (due to link layer maximum transmission unit) or reordering.
High performance networks have very large BDPs, on the order of (xxx) (bytes). Operating systems and protocols designed as recently as a few years ago when networks were slower were tuned for BDPs of orders of magnitude smaller, with implications for tuning.
(graph goes here of historical BDP measures, is there one?)
Buffers
The original TCP configurations supported buffers of 64K Bytes, which was adequate for slow links or links with small round trip times (RTTs). Larger buffers are required by the high performance options described below.
Buffering is used throughout high performance network systems to handle delays in the system. In general, buffer size will need to be scaled proportional to the amount of data "in flight" at any time. For very high performance applications that are not sensitive to network delays, it is possible to interpose large end to end buffering delays by putting in intermediate data storage points in an end to end system, and then to use automated and scheduled non-real-time data transfers to get the data to their final endpoints.
(the second paragraph may or may not belong in this section - move it below to a piece on "avoiding long lived TCP flows")
TCP Networking Options for High Performance
- RFC 2018 - TCP Selective Acknowledgment Options
- RFC 1323 - TCP Extensions for High Performance
- Maximum Buffer Sizes on the host
- Application Buffers
- Path MTU