06-02-2013, 11:27 AM
Study of TCP performance
Introduction :
The Transmission Control Protocol (TCP) and the User Datagram Protocol (UDP) are
both IP transport-layer protocols. UDP is a lightweight protocol that allows applications
to make direct use of the unreliable datagram service provided by the underlying IP
service. UDP is commonly used to support applications that use simple query/response
transactions, or applications that support real-time communications. TCP provides a
reliable data-transfer service, and is used for both bulk data transfer and interactive data
applications. TCP is the major transport protocol in use in most IP networks, and supports
the transfer of over 90 percent of all traffic across the public Internet today. Given this
major role for TCP, the performance of this protocol forms a significant part of the total
picture of service performance for IP networks. In this article we examine TCP in further
detail, looking at what makes a TCP session perform reliably and well. This article draws
on material published in the Internet Performance Survival Guide [1].
Overview of TCP
TCP is the embodiment of reliable end-to-end transmission functionality in the overall
Internet architecture. All the functionality required to take a simple base of IP datagram
delivery and build upon this a control model that implements reliability, sequencing, flow
control, and data streaming is embedded within TCP [2].
The TCP Protocal Header
The TCP header structure, shown in Figure 1, uses a pair of 16-bit source and destination
Port addresses. The next field is a 32-bit sequence number, which identifies the sequence
number of the first data octet in this packet. The sequence number does not start at an
initial value of 1 for each new TCP connection; the selection of an initial value is critical,
because the initial value is intended to prevent delayed data from an old connection from
being incorrectly interpreted as being valid within a current connection. The sequence
number is necessary to ensure that arriving packets can be ordered in the sender?s
original order. This field is also used within the flow-control structure to allow the
association of a data packet with its corresponding acknowledgement, allowing a sender
to estimate the current round-trip time across the network.
TCP Volume Transfer
The objective for this application is to maximize the efficiency of the data transfer,
implying that TCP should endeavor to locate the point of dynamic equilibrium of
maximum network efficiency, where the sending data rate is maximized just prior to the
onset of sustained packet loss.
Further increasing the sending rate from such a point will run the risk of generating a
congestion condition within the network, with rapidly increasing packet-loss levels. This,
in turn, will force the TCP protocol to retransmit the lost data, resulting in reduced datatransfer
efficiency. On the other hand, attempting to completely eliminate packet-loss
rates implies that the sender must reduce the sending rate of data into the network so as
not to create transient congestion conditions along the path to the receiver. Such an action
will, in all probability, leave the network with idle capacity, resulting in inefficient use of
available network resources.