LLMpediaThe first transparent, open encyclopedia generated by LLMs

TCP

Generated by DeepSeek V3.2
Note: This article was automatically generated by a large language model (LLM) from purely parametric knowledge (no retrieval). It may contain inaccuracies or hallucinations. This encyclopedia is part of a research project currently under review.
Article Genealogy
Expansion Funnel Raw 71 → Dedup 0 → NER 0 → Enqueued 0
1. Extracted71
2. After dedup0 (None)
3. After NER0 ()
4. Enqueued0 ()
TCP
NameTransmission Control Protocol
DeveloperVint Cerf, Bob Kahn
Introduced0 1974
OsilayerTransport layer
Based onTransmission Control Program
InfluencedInternet protocol suite, QUIC
RfcRFC 9293

TCP. The Transmission Control Protocol is a core communication standard of the Internet protocol suite, operating at the transport layer to provide reliable, ordered, and error-checked delivery of a byte stream between applications running on hosts communicating via an IP network. It is formally defined in RFC 9293 by the Internet Engineering Task Force and is fundamental to major application protocols including the Hypertext Transfer Protocol, the Simple Mail Transfer Protocol, and the File Transfer Protocol. Its design, originating from the early ARPANET, enables robust data exchange across diverse and potentially unreliable networks.

Overview

TCP establishes a virtual connection, or session, between two endpoints, often a client and a server, before data transfer begins, a model known as connection-oriented communication. This contrasts with connectionless communication protocols like the User Datagram Protocol. A key feature is its guarantee of reliable delivery, achieved through mechanisms like acknowledgments, retransmissions, and extensive error detection. It also provides flow control to prevent a fast sender from overwhelming a slow receiver and congestion control to protect the network from traffic collapse, making it the dominant protocol for web browsing, email, and file transfers on the global Internet.

Technical details

TCP segments data from an application into units called TCP segments, each consisting of a header and a data payload. The header contains critical fields including source and destination port numbers for multiplexing, sequence numbers and acknowledgment numbers for ordering and reliability, and a set of TCP flags like SYN, ACK, and FIN to control connection state. Other important fields are the window size for flow control and the checksum for error detection. The protocol operates within the layered architecture of the Internet protocol suite, sitting above the Internet Protocol and below application-layer protocols like HTTP.

Protocol operation

Connection establishment follows a three-message handshake: a client sends a segment with the SYN flag set, the server responds with a segment bearing both SYN and ACK flags, and the client replies with an ACK. Data transfer then proceeds, with the receiver sending acknowledgments for received data; unacknowledged segments are retransmitted after a timeout. Flow control is managed via a sliding window protocol using the advertised window size. For congestion control, algorithms like TCP Tahoe, TCP Reno, and CUBIC TCP dynamically adjust the sending rate based on packet loss, detected via duplicate ACKs or timeouts. Connection termination uses a similar handshake with the FIN flag.

Development and history

TCP's origins are in the early 1970s research on packet switching networks, primarily the ARPANET. Its initial specification was written by Vint Cerf and Bob Kahn in a 1974 paper, describing a monolithic Transmission Control Program that was later split into the modular Internet Protocol and TCP. This split, formalized in the 1981 specification RFC 793, created the foundational TCP/IP model. Key subsequent developments included the introduction of congestion control algorithms following congestion collapse events in the 1980s, such as those proposed by Van Jacobson. The protocol has been updated through numerous Request for Comments, with the current standard being RFC 9293.

Security considerations

As a foundational protocol, TCP is subject to various security vulnerabilities and attacks. TCP sequence prediction attacks can allow session hijacking, while SYN flood attacks exploit the connection handshake to perform a denial-of-service attack. The protocol itself provides no inherent cryptography or strong authentication; security for TCP-based applications is typically provided at higher layers, such as with Transport Layer Security for HTTP or SSH for remote access. Network-based defenses include firewalls and intrusion detection systems that monitor TCP traffic for anomalous patterns. Research into more secure transport protocols continues, influencing designs like QUIC.

Category:Internet protocols Category:Transport layer protocols Category:Internet standards