Transmission Control Protocol (TCP)

 Today, the majority of application protocols use the Internet’s reliable Transmission Control Protocol (TCP). The functionality of TCP  is designed to be adequate not only for Internet applications but also for the variety of underlying networks.

           The protocol aims at providing a reliable service with the following features:

       1. Fairness to other flows that potentially share a channel’s bandwidth

       2. Dynamic discovery of current availability of bandwidth

  • 1. Mechanisms for congestion avoidance and control and for optimization of  the error recovery process.

   Error control mechanisms are the central component of reliable protocols. They affect a protocol’s performance with respect to goodput, energy expenditure, and overhead. Error control is usually a two-step process: error detection, followed by error recovery . TCP assumes a relatively reliable underlying network where most packet losses are due to congestion . TCP  error control is centered on congestion losses and ignores the possibility of transient random errors or temporary blackouts due to handoffs and extended burst errors that are typical in wireless networks. TCP detects errors by monitoring the sequence of data segments acknowledged (received). When timeouts are correctly configured, a missing segment is taken to indicate an error, namely that the segment is lost due to congestion (i.e. buffer overflow). Reliable protocols usually implement an error recovery strategy based on two techniques: retransmission of lost segments; and downward adjustment of the sender’s window size and readjustment of the timeout period. When using TCP over wireless links results in congestion control measure being invoked at the source.

            The Additive Increase Multiplicative Decrease (AIMD) algorithm is used to implement TCP window adjustments; based on the analysis the algorithm achieves stability and converges to fairness in situations where the demand (of competing flows) exceeds the channel’s bandwidth .

            In a wireless network, however packet looses will occur more often due to unreliable wireless links than due to congestion. It is shown that the performance of TCP is sensitive to the packet size, and that significant performance improvements are obtained if a ‘good’ packet size is used. Packets on the internet may get lost either due to congestion, or due to corruption by the underlying physical medium. Given the low error rates of wired links, almost all losses are related to congestion. TCP’s reaction to looses is based on this very observation. Losses are detected either by timeouts at the source or by multiple duplicate acknowledgements ( dupacks ) from the receiver. TCP assumes that each packet loss is solely due to congestion. However, in a wireless network, TCP will encounter packet looses that may be unrelated to congestion. Nonetheless, these losses trigger congestion control measures at the source and severely degrade performance.   

TCP was designed and carefully calibrated to overcome the problems like as follows:

  • 1. Stability.
  • 2. Heterogeneous ( receiver buffers, network bandwidth and delay ).
  • 3. Fairness in bandwidth consumption of competing flows.
  • 4. Efficiency in utilization.
  • 5. Congestion control ( that effectively avoids situations of congestive collapse ).

            Transmission Control Protocol (TCP) is a means for building a reliable communications stream on top of the unreliable packet Internet Protocol (IP). TCP is the protocol that supports nearly all Internet applications. The combination of TCP and IP is referred to as TCP/IP and many people imagine, incorrectly, that TCP/IP is a single protocol.

Performance Metrics of TCP  :

Goodput :

 This is the measure of how efficiently a connection utilizes the network. It is determined as the ratio of useful data received at the destination and the total amount of data transmitted by the source. If a connection requires a lot of extra packets to traverse the network due to retransmission, its goodput is low. It is desirable that each connection have as high a goodput as possible. Clearly, this metric is of great significance for efficient operation of a network.

Throughput :

 This is the measure of how soon an end user is able to receive data. It is determined as the ratio of the total data received by the end user and the connection time. A higher throughput will directly impact the user’s perception of the quality of service.


Article Source: