Abstract:
RFC 675, authored by Vinton Cerf, Yogen Dalal, and Carl Sunshine in December 1974, provides the foundational specification for the Internet Transmission Control Program (TCP). It establishes the architectural framework for reliable, full-duplex, process-to-process communication across interconnected packet-switching networks. The document defines the "socket" as a unique identifier (concatenating Network, TCP, and Port IDs) and introduces the "three-way handshake" for connection synchronization. It details the Transmission Control Block (TCB) for state management and specifies a sliding window mechanism for flow control and error recovery. This specification serves as the seminal blueprint for the modern Internet Protocol Suite’s transport layer.
TCP Specification and Architectural Summary:
[Section 1] Foundational Architecture: Network communication is defined as inter-process communication. Systems utilize "ports" to distinguish multiple streams, which are concatenated with Network and TCP identifiers to create "sockets." A connection is uniquely identified by a <local socket, foreign socket> pair.
[Section 1] Letters and Fragments: Processes exchange "letters" (finite-length data units). If a letter exceeds transmission limits, it is broken into "fragments." The TCP is responsible for reassembling fragments into letters before delivery to the receiving process.
[Section 2.2] Addressing and Sockets: Sockets enable multiplexing. "Well-known sockets" (WKS) are reserved for specific services (e.g., loggers). Sockets can be "unspecified" (using zero identifiers) to allow listening for connections from any foreign address.
[Section 2.3] User/TCP Interface: The protocol defines six primary service calls:
OPEN: Establishes a TCB and initiates synchronization.
SEND/RECEIVE: Handles data transfer using buffers; includes an "End of Letter" (EOL) flag to maintain boundaries.
CLOSE: Terminates the connection.
INTERRUPT: Signals an immediate condition to the destination, flushing pending data.
[Section 2.4] Event Signaling: TCP communicates with users via Type Codes and Event Codes. Event flags indicate error status (E), origin (Local/Foreign), and persistence (Permanent/Temporary).
[Section 3.3] Reconnection Protocol (RCP): A mechanism is outlined for dynamically exchanging port identifiers via a well-known process (e.g., a logger) to establish service connections between processes without pre-arranged addresses.
[Section 4.2] Internetwork Packet Format: The packet header includes 32-bit sequence and acknowledgment numbers, a 16-bit window size, and control bits (SYN, ACK, FIN, DSN, EOS, EOL, INT). It also carries source/destination addresses for networks, TCPs, and ports.
[Section 4.3.1] The Three-Way Handshake: To prevent errors from old duplicate packets, TCP uses a clock-driven Initial Sequence Number (ISN) selection and a three-way exchange: (1) SYN, (2) SYN/ACK, (3) ACK. This synchronizes both ends before data transfer.
[Section 4.3.6] TCB State Machine: Connections transition through seven major states: Unsync, SYN Sent, SYN Received, Established, FIN Wait, FIN Received, and No TCB.
[Section 4.4.1] Functional Processes: Implementation is divided into four concurrent processes:
Packetizer: Formats letters into internetwork packets.
Output Packet Handler: Transmits packets to the network and manages retransmission queues.
Reassembler: Reconstructs letters from the receive packet queue and delivers them to user buffers.
[Section 4.5] Flow Control and Windowing: TCP employs a sliding window for congestion and flow control. The receiver dictates the "window size," representing the amount of data it can accept. Senders must not transmit beyond the "right window edge."
[Section 5] Measurement and Diagnostics: The protocol includes internal measurement hooks for tracking round-trip delay, packet size histograms, disorderly arrival rates, and effective throughput to optimize network performance.
3. Reviewer Recommendation
Target Review Group:
A suitable group to review this topic would be the Internet Engineering Steering Group (IESG) or a specialized Historical Network Systems Working Group.
Reviewer Summary:
This document represents the transition from host-specific networking to true internetworking. Reviewers should focus on the robustness of the three-way handshake in high-latency environments, the scalability of the 24-bit port identifier, and the efficacy of the "letter/fragment" reassembly logic compared to byte-stream segmentation. The TCB state transitions and the window-based flow control remain the critical areas for assessing the protocol's reliability and throughput potential.