Aller au contenu principal

RFC 793 - TRANSMISSION CONTROL PROTOCOL

PROGRAMME INTERNET DARPA
SPÉCIFICATION DU PROTOCOLE

Publié : Septembre 1981
Statut : Standard Internet (STD 7)
Auteur : Jon Postel (Information Sciences Institute, USC)
Organisation : Programme Internet DARPA


Statut de ce mémo (Status of this Memo)

Ce RFC spécifie une norme pour la communauté Internet DARPA. Les hôtes sur l'Internet DARPA sont censés adopter et implémenter cette norme.


Résumé (Abstract)

Le Transmission Control Protocol (TCP) est destiné à être utilisé comme un protocole hôte-à-hôte hautement fiable entre des hôtes dans des réseaux de communication informatique à commutation de paquets, et dans des systèmes interconnectés de tels réseaux.

Ce document décrit les fonctions à exécuter par le Transmission Control Protocol, le programme qui l'implémente, et son interface avec les programmes ou les utilisateurs qui nécessitent ses services. TCP fournit un service de flux d'octets fiable et orienté connexion.


Table des matières (Table of Contents)

Préface

1. Introduction

  • 1. Introduction
    • 1.1 Motivation
    • 1.2 Portée
    • 1.3 À propos de ce document
    • 1.4 Interfaces
    • 1.5 Fonctionnement

2. Philosophie

  • 2. Philosophy (Philosophie)
    • 2.1 Éléments du système internet
    • 2.2 Modèle de fonctionnement
    • 2.3 L'environnement hôte
    • 2.4 Interfaces
    • 2.5 Relation avec d'autres protocoles
    • 2.6 Communication fiable
    • 2.7 Établissement et fermeture de connexion
    • 2.8 Communication de données
    • 2.9 Priorité et sécurité
    • 2.10 Principe de robustesse

3. Spécification fonctionnelle

Annexes


Référence rapide des concepts fondamentaux

Format d'en-tête TCP

    0                   1                   2                   3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Port | Destination Port |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Acknowledgment Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Data | |U|A|P|R|S|F| |
| Offset| Reserved |R|C|S|S|Y|I| Window |
| | |G|K|H|T|N|N| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Checksum | Urgent Pointer |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Options | Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| data |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Caractéristiques clés de TCP

CaractéristiqueDescription
Orienté connexionDoit établir une connexion avant la communication (poignée de main à trois voies)
Transmission fiableMécanismes d'accusé de réception, de retransmission et de séquençage
Flux d'octetsTraite les données comme un flux continu d'octets
Contrôle de fluxMécanisme de fenêtre glissante
Contrôle de congestionPrévient la congestion du réseau
Full-DuplexTransmission bidirectionnelle simultanée

États de connexion

CLOSED → LISTEN → SYN-RECEIVED → ESTABLISHED → FIN-WAIT-1 → ...

États principaux :
- CLOSED : Fermé
- LISTEN : En écoute
- SYN-SENT : SYN envoyé
- SYN-RECEIVED : SYN reçu
- ESTABLISHED : Connexion établie
- FIN-WAIT-1 : Première attente FIN
- FIN-WAIT-2 : Deuxième attente FIN
- CLOSE-WAIT : Attente de fermeture
- CLOSING : Fermeture en cours
- LAST-ACK : Dernier accusé de réception
- TIME-WAIT : Attente temporelle

Poignée de main à trois voies

Client                          Serveur
| |
| SYN (seq=x) |
|------------------------------->|
| |
| SYN-ACK (seq=y, ack=x+1) |
|<-------------------------------|
| |
| ACK (ack=y+1) |
|------------------------------->|
| |
| ESTABLISHED |

Comparaison TCP vs UDP

CaractéristiqueTCPUDP
ConnexionOrienté connexionSans connexion
FiabilitéFiableNon fiable
OrdreGarantit l'ordrePas de garantie
VitessePlus lentRapide
SurchargeÉlevée (20-60 octets d'en-tête)Faible (8 octets d'en-tête)
Contrôle de fluxOuiNon
Contrôle de congestionOuiNon
Cas d'usageHTTP, FTP, EmailDNS, Streaming vidéo, Jeux

Ressources associées

  • Texte officiel : RFC 793 (TXT)
  • Page officielle : RFC 793 DataTracker
  • Standard : STD 7
  • Protocoles associés :
    • RFC 791 (IP) - Couche réseau
    • RFC 792 (ICMP) - Messages de contrôle
    • RFC 768 (UDP) - Protocole de comparaison
    • RFC 2581 (Contrôle de congestion TCP)
    • RFC 5681 (Mise à jour du contrôle de congestion TCP)
    • RFC 7323 (Extensions TCP)

Note importante : TCP est l'un des protocoles fondamentaux de la couche transport Internet. Combiné avec le protocole IP, il forme la base de la pile de protocoles TCP/IP. Il fournit un service de flux d'octets fiable et orienté connexion et constitue la base de nombreux protocoles d'application tels que HTTP, FTP et SMTP.