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


  1. TCP Fast Open aims to solve the Expensive to Create problem. ↩︎