Qu'est-ce que TCP?



Qu'est-ce que TCP?

Transmission Control Protocol,
C''est un protocole utilisé pour transmettre des données
entre une machine A et une Machine B.
Il gère de "A à Z" la connexion (Établissement, Transfert, etc) en utilisant un système de Drapeaux ou Flags.
"Couplé" avec IP (Internet Protocole) qui assure le bon routage des paquets,il forme le modèle TCP/IP.
Une trame TCP est constituée comme ceci:


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 
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |         Port Source           |     Port de Destination       |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                      Numéro de Séquence                       |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                    Numéro d'acquiescement                     |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |Offset |           |+|+|+|+|+|+|                               |
 |  des  | Reservé   |+| Flags |+|      Fenêtre (Window)         |
 |données|           |+|+|+|+|+|+|                               |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |           Checksum            |         Pointeur Urgent       |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                    Options                    |    Padding    |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                             Données                           |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+



Port source (16 bits):
C'est le port qui est utilisé par la machine source.

Port de Destination (16 bits):
C'est le port qui est utilisé par la machine de destination.

Numéro de Séquence (32 bits):
C'est le numéro du paquet

Numéro d'acquiescement (32 bits):
C'est un accusé de réception pour les paquets reçus.
Il définit le prochain "Numéro de Séquence".

Offset des données (4 bits):

Ce champ indique où débute les données.

Réserve:
Ce champ sert pour des besoins futurs, il est à 0.

Flags (1 bit):
URG: Pointeur de données urgente
ACK: Acquittement
SYN: Synchronisation
PSH: Transfert de données
FIN: Fin de transmission
RST: Reset de la connexion

Fenêtre (16 bits):
C'est le nombre d'octets que le récepteur est capable de recevoir à partir de la position indiquée dans l'accusé de réception

Checksum (16 bits):
Indique la validité du paquet

Pointeur Urgent (16 bits):

Donne la position de données urgentes et son décalage par rapport au numéro de séquence, ce champ est activé que lorsque le Flag URG est à 1

Options (8 bits):
Option mono-octet Octet de type, de longueur et de valeur d'option

Padding (0 à 7 bits):

"Bourre" le champ Options pour obtenir une trame TCP multiple de 32 bits

Données:
Ce sont les données transmises (login, mot de passe, etc)

Pour plus d'informations consultez la RFC739.