• ↑↓ pour naviguer
  • pour ouvrir
  • pour sélectionner
  • ⌘ ⌥ ↵ pour ouvrir dans un panneau
  • ←→ pour naviguer
  • esc pour rejeter
⌘ '
raccourcis clavier

The Problem

Networks are inherently unreliable — packets get lost, corrupted, duplicated, or arrive out of order. Applications like file transfer and email need guarantees that data arrives correctly and completely.

Core Idea

A set of mechanisms ensuring data is delivered completely, in order, without errors, despite network unreliability.

How It Works

  1. Sequence numbers track packet order and detect missing packets
  2. Acknowledgments (ACKs) confirm successful receipt
  3. Retransmission of lost or corrupted packets after timeout
  4. Error detection via checksums or CRC
  5. Flow control prevents overwhelming the receiver
  6. Ordered delivery through receiver buffering and reordering

Visual Explanation

G Sender Sender Seq Add Sequence Numbers Sender->Seq Send Packet Receiver Receiver ACK Wait for ACK Receiver->ACK Send ACK Deliver Deliver in Order Receiver->Deliver Ordered Seq->Receiver Packet + Seq Retrans Retransmit on Timeout Seq->Retrans Lost? ACK->Sender Retrans->Seq

Key Properties

  • Guaranteed delivery through retransmission
  • Preserves packet ordering
  • Detects and recovers from packet loss, corruption, duplication
  • Requires state maintenance (sequence numbers, timers, buffers)

Connections

Edge Cases & Gotchas

  • Ack loss can cause unnecessary retransmission (handled by duplicate detection)
  • Retransmission timeout tuning is critical — too short causes unnecessary retrans, too long adds latency
  • Duplicate packets must be detected and discarded