Transmission Control Protocol
Transmission Control Protocol
The Transmission Control Protocol (TCP) is a core protocol of the Internet protocol suite. It provides reliable, ordered, and error-checked delivery of a stream of bytes between applications running on hosts communicating via an IP network. TCP is used by many application layer protocols, including HTTP, HTTPS, FTP, and SMTP.
TCP operates at a higher level than the Internet Protocol (IP). While IP handles the routing and delivery of packets across networks, TCP ensures that the data stream arrives intact and in the correct sequence. It manages flow control and congestion control to prevent network overload and to adapt to varying network conditions.
Features
- Connection-oriented: A virtual connection is established between the two endpoints using a three-way handshake before data transfer begins.
- Reliable delivery: Lost or corrupted packets are detected and retransmitted. Checksums verify data integrity.
- Ordered data transfer: The receiver reassembles packets into the original order based on sequence numbers.
- Flow control: Uses a sliding window mechanism to prevent a fast sender from overwhelming a slow receiver.
- Congestion control: Algorithms such as Slow Start, Congestion Avoidance, and Fast Retransmit adjust the sending rate to avoid network congestion.
- Full-duplex communication: Data can flow in both directions simultaneously.
History
TCP was developed in the 1970s by Vint Cerf and Bob Kahn as part of the ARPANET project. The first specification (RFC 675) was published in December 1974. The protocol was later split into TCP and IP in version 4 of the Internet protocol suite, defined in RFC 791 and RFC 793 (1981). TCP has undergone numerous enhancements and extensions, such as TCP timestamps (RFC 1323), Selective Acknowledgement (RFC 2018), and TCP Fast Open (RFC 7413), to improve performance in modern high-speed networks.