Skip to main content

Fonctionnement

Le numéro de protocole Internet de TCP est #6. Avant de transférer des données entre deux hôtes ou un hôte et un serveur, il est nécessaire pour les deux partis d'établir une session pour maintenir un suivi des données transmises, à transmettre, reçues et à retransmettre.

Structure d'en-tête

Une en-tête TCP est considérablement plus longue et plus complexe qu'une en-tête UDP. En plus des ports de source et destination, elle contient, entre autres, un numéro de séquence, du numéro de séquence attendu ensuite, et d'un identifiant de type de paquet (flag, ex. SYN, ACK, FIN, RST, etc.).

Dans l'exemple suivant, la connexion est déjà établie et il s' agit du 37 paquet acheminé du client vers le serveur confirmant la réception de la 85e partie de la donnée à transférer. On y voit aussi dans les "Flags" la mention "FIN". Cette mention indique au serveur que le client désire clore sa connexion auprès du serveur.

Transmission Control Protocol, Src Port: 62928, Dst Port: 53, Seq: 37, Ack: 85, Len: 0
    Source Port: 62928
    Destination Port: 53
    Sequence Number: 37    (relative sequence number)
    Sequence Number (raw): 743751263
    Acknowledgment Number: 85    (relative ack number)
    Acknowledgment number (raw): 287489219
    0101 .... = Header Length: 20 bytes (5)
    Flags: 0x011 (FIN, ACK)
    Window: 65434
    Checksum: 0x3188 [unverified]
    Urgent Pointer: 0

Échange de poignée de main

image.png

Pour établir la connexion entre un hôte et un serveur, le client doit tout d'abord envoyer une demande de connexion au serveur. Ce paquet sera identifié par la mention "SYN" pour "synchronisation". Le serveur répondra ensuite avec une validation de la synchronisation ou un "SYN-ACK" pour "Synchronization Acknowledgement". Le client répondra ensuite par un "ACK" ou "Acknowledgement" pour indiquer au serveur que la session est bien établie.

Transfert de données

Une fois la connexion établie, le transfert de données peut être entâmé. À chaque donnée reçue, le client fera parvenir au serveur un accusé de réception. Plusieurs données peuvent être transférées au sein d'une unique session.

Fermeture de la session

À la fin du transfert de la donnée, le client pourra faire parvenir un "FIN" ou "Final" au serveur pour lui indiquer la fin de la session. Si le serveur désire rompre la connexion prépaturément avec le client, il fera parvenir un "RST" ou "Reset" pour couper la connexion.

image.png