Ici, deux formats d'en-tête, suivant que l'on a affaire à des segments ou des datagrammes.
Autrement-dit TCP.
C'est le mode connecté qui utilise TCP. Pratiquement, c'est un mode utilisé systématiquement lorsque l'application au dessus génère des données qui nécessitent d'être découpées avant leur envoi. Nous avons vu lors de l'étude de la couche d'accès réseau que les trames ne peuvent théoriquement pas contenir plus de 1500 octets de charge utile. Les applications qui génèrent des données pouvant entrer dans un seul segment utiliseront plutôt UDP.
L'en-tête a toujours une dimension multiple de 32 bits. Elle contient:
Les champs
Sequence number
et Acknowledgment number
sont calculés de façon tout-à-fait logique comme le montre l'illustration d'un client qui ouvre une session TCP pour envoyer des données à un serveur. Les valeurs numériques ne sont que des exemples:
Sequence number
côté client = 1. Soit la longueur du segment = 669.Acknowledgment number
= 1 + 669.Sequence number
l' Acknowledgment number
que lui a envoyé le serveur.Notons que les longueurs indiquées sont les longueurs du segment TCP.
Cette façon de faire permet au serveur de garantir qu'il classera les segments reçus dans le bon ordre, même si IP avait fait que ces segments avaient été transportés dans le désordre.
Comprenons bien l'utilité de la fenêtre.
Lorsqu'un nœud transmet des informations à un nœud, que ces informations sont contenues dans plusieurs paquets, il n'est pas nécessaire que le destinataire envoie un ACK à chaque paquet reçu. Dit autrement, l'émetteur n'est pas contraint d'attendre un ACK après chaque émission d'un paquet.
Les deux nœuds disposent d'un tampon de réception d'une certaine taille et l'ACK ne devient vraiment nécessaire que lorsque le tampon va déborder. Nous avons vu que la taille de ce tampon est définie sur 16 octets soit 216 octets soit 65535 octets. Si cette taille de tampon pouvait sembler largement suffisante pour les performances du matériel dans les années 1990, Compte tenu des progrès des capacités de stockage, des vitesses de transmission et de la qualité de ces transmissions, il s'est avéré nécessaire de trouver une astuce pour définit des tailles de tampon largement supérieures.
Comme il n'est pas possible, à l'échelle mondiale, de changer la structure de l'en-tête TCP, l'astuce consiste à utiliser une option, puisqu'un espace d'options est prévu. Cette option s'appelle «Window Scalling» définie dans le RFC 1323.
Les deux nœuds négocient ce paramètre WS
lors de l'établissement de la connexion (SYN,SYN+ACK). Ce WS
permet de calculer un multiplicateur de la taille définie dans le paramètre Window
de la façon suivante: 2WS x Window. avec 0 ⇐ WS ⇐ 14.
Ceci permet de bien ouvrir la fenêtre…
Autrement-dit UDP.
Alors là, pas de chichi ! Même pas besoin de faire un dessin. L'en-tête UDB, c'est 8octets:
Compte tenu de l’extrême simplicité de ce type de transport, il est principalement utilisé pour des données intégralement insérées dans un datagramme. Dans tous les cas de figure, si l'application qui a émis la donnée s'inquiète de savoir si elle est bien arrivée, il faudra espérer qu l'application destinataire elle-même lui fasse part de la nouvelle.