Transmission Control Protocol
The Transmission Control Protocol is the Internet's connection-oriented transport protocol, providing a reliable, in-order, full-duplex byte stream between two processes, with flow control and congestion control built in.
Definition
The Transmission Control Protocol is a connection-oriented transport-layer protocol that provides reliable, ordered, error-checked delivery of a byte stream between application processes, with connection setup and teardown, flow control, and congestion control.
Scope
This topic covers TCP specifically: its segment structure, the three-way handshake that establishes a connection and the procedures that close it, sequence and acknowledgment numbers, cumulative acknowledgments, retransmission with adaptive timeout estimation and fast retransmit, and flow control via the receive window. It situates TCP as the concrete realization of reliable-data-transfer principles plus connection management. Its congestion-control behavior is summarized here but treated in depth in the congestion-control topic.
Core questions
- What does the three-way handshake accomplish, and how is a connection closed?
- How do TCP sequence and acknowledgment numbers track a byte stream?
- How does TCP estimate timeouts and use fast retransmit to recover from loss?
- How does the receive window implement flow control?
- How does TCP combine reliability, flow control, and congestion control in one protocol?
Key concepts
- connection-oriented service
- three-way handshake
- TCP segment structure
- sequence and acknowledgment numbers
- cumulative acknowledgment
- retransmission timeout estimation
- fast retransmit
- flow control and receive window
- byte-stream abstraction
Key theories
- Connection management
- TCP establishes a connection with a three-way handshake that synchronizes initial sequence numbers and tears it down with a graceful exchange, providing each end with consistent state for a reliable, full-duplex byte stream.
- Reliable byte-stream delivery
- TCP numbers every byte, uses cumulative acknowledgments and adaptive retransmission timers, and applies fast retransmit on duplicate ACKs, delivering a reliable, ordered stream rather than discrete messages.
- Flow control via the receive window
- The receiver advertises how much buffer space it has, and the sender limits its in-flight data to that window, preventing a fast sender from overrunning a slow receiver independently of network congestion.
Clinical relevance
TCP carries the large majority of reliable Internet traffic, including the web, email, and file transfers, so its behavior directly determines how those applications perform. Its connection setup adds latency that newer protocols seek to reduce, its flow and congestion control shape throughput, and understanding TCP is essential for performance tuning, firewall and NAT behavior, and diagnosing stalled or slow connections.
History
TCP originated in the 1974 Cerf-Kahn protocol for internetworking, initially as a single protocol later split into TCP and IP. It was standardized in RFC 793 (1981) and refined over decades — adaptive timeouts, fast retransmit and recovery, window scaling, and selective acknowledgment — with the specification consolidated and updated in RFC 9293 (2022).
Key figures
- Vinton Cerf
- Robert Kahn
- Van Jacobson
Related topics
Seminal works
- cerf1974
- rfc9293
- kurose2021
Frequently asked questions
- What is the TCP three-way handshake?
- It is the exchange that opens a TCP connection: the client sends a SYN with its initial sequence number, the server replies with a SYN-ACK acknowledging it and giving its own, and the client sends a final ACK. After this the two ends agree on starting sequence numbers and can exchange data reliably.
- How is TCP different from UDP?
- TCP is connection-oriented and provides a reliable, ordered byte stream with flow and congestion control, at the cost of setup latency and overhead. UDP is connectionless and offers a minimal, best-effort datagram service with none of those guarantees, which makes it lighter and lower-latency but leaves reliability to the application.