Overview
The 4th version of RFC 675, and final two seperate RFCs:
- RFC 791 - Internet Protocol(IPv4)
- RFC 793 - Transmission Control Protocol
TCP provides:
- Effective abstraction.
- A reliable network running over unreliable channel.
- Hiding most the complexity of network communication:
- retransmission of lost data,
- in-order delivery,
- congestion control and avoidance,
- data integrity,
- and more.
Three-Way Handhsake
Sequence numbers are important for keep in-order delivery, and they are picked randomly from both sides for security reasons.
- SYN - CLIENT picks a random sequence number X and sends a SYN packet, which may also include addition TCP flags and options.
- SYN ACK - SERVER increments X by one, picks own random sequence number Y, appends its own set of flags and options, and dispatches the response.
- ACK - CLIENT increments both X and Y by one and completes the handhsake by dispatching the last ACK packet in the handshake.
Implications of Performance: Expensive to Create - Every new TCP connection will have a full roundtrip of latency before any application data can be transferred. 1
Congestion Avoidance and Control
-
TCP Fast Open aims to solve the Expensive to Create problem. ↩︎