The TCP Protocol

The Transmission Control Protocol (TCP) [rfc793] is the dominant network protocol in use on the Internet, with around 90% of all network traffic being transported by TCP; the remaining 10% of traffic is a mixture of User Datagram Protocol (UDP) [rfc768] and Internet Control Message Protocol (ICMP) [rfc777] packets.

The Transmission Control Protocol provides a multiplexed, duplex, connection-oriented, reliable, flow-controlled, byte-stream service to applications. This allows it to support the reliable start up and graceful close down of TCP connections. It builds this upon the services provided by IP.

A sliding window flow control scheme is utilised to enable multiple packets to be outstanding in the network and to limit the number of such packets. The maximum number of packets allowed to be outstanding is defined by the receiver and advertised to the sender in the TCP header.

Recovery from packet loss, possibly caused by congestion, is provided by the sending host retransmitting a packet if an acknowledgment has not been received before a timeout occurs. The receiving TCP stack is responsible for re-sequencing packets and passing them to the application in the correct order.


Valid XHTML 1.1Valid CSS!This website was developed with support from the HEA ICS and SALTIRE. Feel free to make use of the content provided.
If you use this material in your teaching or if you have any comments, questions or suggestions please let us know.