Forskningsnettet i Norge
  
  Søk:

TCP performance over gigabit networks

TCP is the most commonly used protocol in the Internet today. The problem is that TCP was developed at a time when networks were a lot slower than today. Although there have been several changes to TCP to cope with higher speeds, these are not enough when we reach gigabit speeds. The current congestion algorithm have problems with high speeds and high RTT since it takes too ling time to reach full speed again after packet loss. Gigabit speeds also creates problems for PC's and put a great demand on fast hardware and good software implementation of drivers and TCP stacks.
This page is a collection of links related to TCP performance over gigabit networks.

Tuning guides

Enabling High Performance Data Transfers

Detailed information from the Pittsburgh Supercomputing Center (PSC), Carnegie Mellon University describing how to configure various operating systems to achieve better TCP performance.
TCP Tuning Guide
Guide for TCP and application tuning as well as description of debugging tools. Written by the Data Intensive Distributed Computing Group at the Lawrence Berkeley National Laboratory. The tuning guide extends the PSC tuning guide.
TCP/IP and Network Performance Tuning

Slides from a presentation about TCP performance tuning. Good introduction to various TCP performance issues and also contains examples of tools like Mping, treno and tcptrace/xplot.

RFCs

RFC 793 - Transmission Control Protocol STANDARD
TCP specification document
RFC 1323 - TCP Extensions for High Performance
PROPOSED STANDARD Describes TCP extensions to improve performance over large bandwidth*delay product paths. Options for scaled TCP window and timestamps are described.
RFC 2018 - TCP Selective Acknowledgment Options
PROPOSED STANDARD Describes a mechanism that allows a receiver to inform the sender of packets that have been received so that only missing segments are retransmitted.
RFC 2581 - TCP Congestion Control
PROPOSED STANDARD Description of four congestion control algorithms: slow start, congestion avoidance, fast retransmit, and fast recovery
RFC 2883 - An Extension to the Selective Acknowledgement (SACK) Option for TCP
PROPOSED STANDARD Extends RFC 2018 by specifying a method for using SACK to acknowledge duplicate packets.

Internet drafts

HighSpeed TCP for Large Congestion Windows Describes a modification to TCP's congestion control mechanisms for better performance for connections with large congestion windows.
Limited Slow-Start for TCP with Large Congestion Windows
Describes a modification to TCP's slow start mechanism for better performance for connections with large congetsion windows.

Measurement tools

Netperf
Easy to use tool that can measure unidirectional throughput and end-to-end latency. Can test both TCP and UDP performance.
ttcp
Sockets-based benchmarking tool for measuring TCP and UDP performance. First released for BSD in 1984 and there are now many implementations available for most operating systems.
netpipe
Protocol independent performance tool that shows the results as graphs. Nice tool that is very good at showing buffer problems.
iperf
Developed by NLANR as a modern alternative for measuring TCP and UDP bandwidth performance.
netspec
More advanced tool that goes beyond simple point-to-point testing. A daemon is started on clients that are involved in the testing and are controlled by a central station. Besides full performance testing, netspec can also emulate FTP, TELNET, VBR Video Traffic (MPEG, Video-Teleconferencing), CBR Voice Traffic, and HTTP traffic (World Wide Web traffic) on the application layer.

Debugging tools

tcptrace
Tcptrace is a tool that can take TCP dump files from several popular packet-capture programs and generate detailed reports about individual TCP connections. Tcptrace can also generate several graphs for further analysis.
web100
A project that will provide software and tools necessary for end-hosts to automatically and transparently achieve high bandwidth data rates over high performance networks. Provides software for instrumentation of the TCP stack of the Linux kernel.
netlogger
Toolkit that was developed for end-to-end monitoring and analysis of distributed system. Can also be used to analyse TCP connections and used together with web100 it can display detailed information about the TCP stack.

Conferences

PFLDnet 2003
First International Workshop on Protocols for Fast Long-Distance Netoworks. Very good and interesting workshop with lots of good information about TCP performance.



arneos@uninett.no 2003-08-22