TCP : Transmission Control Protocol

Le Transmission Control Protocol (TCP, « protocole de contrôle de transmissions »), est un protocole de transport fiable, en mode connecté . Dans le modèle TCP/IP, TCP est situé entre la couche de réseau N°3 (généralement le protocole IP), et la couche application N°7 . Les applications transmettent des flux d'octets sur le réseau. TCP découpe le flux d'octets en segments, dont la taille dépend de la MTU du réseau sous-jacent (couche liaison de données).
Une session TCP fonctionne en trois phases :
1 l'établissement de la connexion            2 les transferts de données             3 la fin de la connexion.
L'établissement de la connexion se fait par une poignée de main en trois temps. La rupture de connexion, elle, utilise une poignée de main en quatre temps. Pendant la phase d'établissement de la connexion, des paramètres comme le numéro de séquence sont initialisés afin d'assurer la transmission fiable (sans perte et dans l'ordre) des données.

Structure d'un segment TCP

Signification des champs :

Port source : Numéro du port source
Port destination : Numéro du port destination
Numéro de séquence : Numéro de séquence du premier octet de ce segment
Numéro d'acquittement : Numéro de séquence du prochain octet attendu
Taille de l'en-tête : Longueur de l'en-tête en mots de 32 bits (les options font partie de l'en-tête)
Réservé : Réservé pour un usage futur
ECN : signale la présence de congestion
URG : Signale la présence de données URGentes
ACK : Signale que le paquet est un accusé de réception (ACKnowledgement)
PSH : Données à envoyer tout de suite (PuSH)
RST : Rupture anormale de la connexion (ReSeT)
SYN : Demande de SYNchronisation ou établissement de connexion
FIN : Demande la fin de la connexion
Fenêtre : Taille de fenêtre demandée, c'est-à-dire le nombre d'octets que le récepteur souhaite recevoir sans accusé de réception
Checksum : Somme de contrôle calculé sur l'ensemble de l'en-tête TCP et des données.
Pointeur de données urgentes : Position relative des dernières données urgentes
Options : Facultatives
Remplissage : Zéros ajoutés pour aligner les champs suivants du paquet sur 32 bits, si nécessaire
Données : Séquences d'octets transmis par l'application (par exemple: +OK POP3 server ready, ...)

Établissement d'une connexion

Un système ouvre un 'socket' (point d'accès à une connexion TCP) et se met en attente passive de demandes de connexion d'un autre système. Ce fonctionnement est communément appelé ouverture passive, et est utilisé par le côté serveur de la connexion. Le côté client de la connexion effectue une ouverture active en 3 temps (poignée de mains en trois temps) :
1 Le client envoie un
segment SYN au serveur,
2 Le serveur lui répond par un
segment SYN/ACK,
3 Le client confirme par un
segment ACK.

Ports TCP

À chaque extrémité de la connexion, TCP est associé un numéro de port sur 16 bits assigné à l'application émettrice ou réceptrice. Les ports peuvent faire partie de trois catégories de base : les ports bien connus, les ports enregistrés et les ports dynamiques/privés. Les ports bien connus sont souvent utilisés par des processus système ou ayant des droits privilégiés. Exemples : FTP (21), Telnet (23), SMTP (25) et HTTP (80). Les ports enregistrés et dynamiques/privés sont généralement utilisés par des applications utilisateur comme ports sources éphémères .

Lycée Saint Rémi de Roubaix
Messagerie : labo.si.mpi@voila.fr