LLMpediaThe first transparent, open encyclopedia generated by LLMs

RFC 793

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
Parent: Requests for Comments Hop 3
Expansion Funnel Raw 50 → Dedup 20 → NER 10 → Enqueued 8
1. Extracted50
2. After dedup20 (None)
3. After NER10 (None)
Rejected: 10 (not NE: 10)
4. Enqueued8 (None)
Similarity rejected: 2
RFC 793
TitleTransmission Control Protocol
Number793
AuthorJon Postel
Publication dateSeptember 1981
StatusInternet Standard
SeriesSTD 7
ReplacesRFC 761
Obsoleted byNone
UpdatesNone
Updated byRFC 1122, RFC 3168, RFC 6093, RFC 6528, RFC 6824

RFC 793. Published in September 1981, this document defines the Transmission Control Protocol (TCP), a core protocol of the Internet protocol suite. It was authored primarily by Jon Postel of the University of Southern California's Information Sciences Institute under the auspices of the Defense Advanced Research Projects Agency. The specification establishes a reliable, connection-oriented, byte-stream service that forms the foundation for much of modern network communication, from web browsing to email.

Overview

The protocol provides a virtual circuit between application programs on hosts in a packet-switched network, ensuring data is delivered accurately and in sequence despite underlying network unreliability. It operates as a key transport layer protocol within the framework established by the Department of Defense's ARPANET project, sitting atop the Internet Protocol defined in RFC 791. The design goals explicitly included robustness in the face of communication failures, the ability to handle diverse network technologies, and distributed operation without centralized management. Its publication as an Internet Standard solidified its role alongside UDP and IPsec as a fundamental internet building block.

Key Concepts

Central to its operation is the establishment of a logical connection through a three-way handshake between a client and server, involving synchronized sequence numbers. It implements a sliding window mechanism for flow control, allowing the receiver to advertise its available buffer space to the sender. The protocol guarantees reliability through positive acknowledgments with retransmission, using timers to detect and recover from lost segments. It also incorporates congestion control algorithms, later refined in documents like RFC 2581, to manage network traffic and prevent collapse.

Protocol Operation

Communication begins with connection establishment, where a host sends a SYN segment, the recipient replies with a SYN-ACK, and the initiator responds with an ACK. Data transfer then proceeds, with each byte of data assigned a sequence number; the receiving host sends acknowledgments for contiguous data received. For termination, one side sends a FIN segment, which is acknowledged, and a reciprocal FIN closes the connection, a process detailed further in RFC 9293. Throughout, algorithms manage retransmission timeouts and window sizing, adapting to network conditions observed between endpoints like those at Massachusetts Institute of Technology and Stanford University.

Header Format

The segment header includes key fields such as source and destination port numbers, which identify the sending and receiving applications. The sequence number and acknowledgment number fields track data bytes and confirm receipt, while the data offset specifies the header length. Control bits like URG, ACK, PSH, RST, SYN, and FIN manage connection state and data priority. The window field advertises receive capacity, and the checksum provides error detection for the header and data, a concept also vital in protocols like Ethernet and IPv6.

Connection States

A connection progresses through a defined state machine, including LISTEN, SYN-SENT, SYN-RECEIVED, ESTABLISHED, FIN-WAIT-1, FIN-WAIT-2, CLOSE-WAIT, CLOSING, LAST-ACK, and TIME-WAIT. The TIME-WAIT state ensures that old duplicate segments from a previous connection do not interfere with new ones. State transitions are triggered by segment transmission, reception, or timers, and a RST segment can force an abrupt reset. This formal state model influenced later network designs at institutions like Bell Labs and CERN.

Reliability and Flow Control

Reliability is achieved by assigning sequence numbers to all data bytes and requiring positive acknowledgments from the receiver; unacknowledged data is retransmitted after a calculated timeout. Flow control uses the advertised window size from the receiver to prevent the sender from overwhelming the receiver's buffer. These mechanisms work in concert to provide the ordered, error-free byte stream, a service model distinct from the datagram service of the User Datagram Protocol or the signaling protocols of the SS7 network.

Impact and Legacy

The specification became the bedrock for global data communication, enabling the World Wide Web, email, and secure shell access. Its principles directly influenced the development of QUIC and were extended by numerous subsequent standards, including RFC 2018 on Selective Acknowledgment and RFC 7323 on window scaling. The protocol's endurance, tested across networks from the original ARPANET to modern 5G infrastructures, cemented the architectural philosophy of the Internet Engineering Task Force and end-to-end connectivity championed by pioneers like Vint Cerf and Bob Kahn. Category:Internet Standards Category:Internet protocols Category:1981 documents