Adresse | Taille | Nom | Informations supplémentaires |
---|---|---|---|
1er octet | 1 octet | Port source | Port du terminal ayant envoyé la trame TCP, si une réponse doit avoir lieu elle sera envoyée à ce port. |
2ème octet | 1 octet | Port destination | Port de la machine réceptrice au quel est envoyé la trame TCP. |
3ème et 4ème octet | 2 octets | Numéro de séquence | Le numéro de séquence permet d'identifier la trame et correspond à la valeur d'acquittement de la précédente trame reçue |
4ème et 5ème octet | 2 octets | Numéro d'acquittement | Le numéro d'acquittement correspond à la valeur du numéro de séquence de la précédente trame plus le nombre d'octets de données que celle-ci comportée. Ce mécanisme permet d'assurer que le nombre d'octets de donnée envoyé a bien été reçu. |
6ème octet, 4 premiers bits | 4 bits | Nombre de groupes de 4 octets de l'entête (offset) | Le nombre de mots de 32 bits (groupe de 4 octets) composant l'entête TCP (hors pseudo entête). Par conséquent cela indique l'emplacement où commence les données de la trame. Tous les entêtes TCP y compris ceux possédant des options ont une taille équivalente un multiple entier de 4 octets. |
6ème octet, du 4ème au 8ème bit et les deux premiers bits du 7ème octet | 6 bits | Réservé | Cette espace est réservé pour une utilisation future et doit être valorisé à 0. |
7ème octet, 3ème bit | 1 bit | Indicateur d'urgence | Indique si cette trame est urgente (0 : Non; 1 : Oui) |
7ème octet, 4ème bit | 1 bit | Indicateur d'acquittement de réception | Si ce top est valorisé à 1 alors cette trame est un acquitté de réception. |
7ème octet, 5ème bit | 1 bit | Indicateur de méthode Push | Si ce top est valorisé à 1, la trame fonctionne selon la méthode Push |
7ème octet, 6ème bit | 1 bit | Indicateur de réinitialisation | Si ce top est valorisé à 1 la connexion doit être réinitialisée |
7ème octet, 7ème bit | 1 bit | Indicateur de connexion | Si ce top est valorisé à 1, il s'agit d'une demande de connexion |
7ème octet, 8ème bit | 1 bit | Indicateur de déconnexion | Si ce top est valorisé à 1, la connexion s'interrompt |
8ème et 9ème octet | 2 octets | Nombre d'octets pouvant être envoyés sans acquittement | Nombre d'octets que l'émetteur peut envoyer sans avoir reçu d'acquitté de réception en retour. Cette option permet notamment d'envoyer plusieurs trames TCP en parallèle ce qui accèlere les envois. |
9ème et 10ème octet | 2 octets | Somme de contrôle (checksum) | Ce champ de contrôle permet de contrôler que la trame n'a pas été altérée lors de sa transmission sur le support physique (cable de cuivre, onde radio, ...). Le calcul du check sum s'effectue en découpant le pseudo entête (pseudo header), l'entête (header) et les données par bloc de deux octets. Sachant que le pseudo entête est de taille fixe de 12 octets et que l'entête est impérativement d'une longueur multiple de 4 octets, seul la longueur des données peut ne pas être d'une taille multiple de 2 octets. Dans ce cas là un octet valorisé à 0x00 est ajoutés à la fin (droite) du dernier bloque de données pour le calcul du checksum. Le détail du calcul du checksum est indiqué après ce tableau. |
11ème et 12ème octet | 2 octets | Pointeur d'urgence | Si le bit d'indicateur d'urgence est valorisé à 1 ce champ correspond à l'offset des données urgentes. Sinon ce champs n'est pas exploité. |
13ème à X octets | x octets | Champs d'option (facultatif) | Ce champ de taille variable permet d'indiquer des options supplémentaires. Sa taille est déduite de la taille de l'offset et peut ne pas exister. |
De la fin du champs d'option jusqu'à obtenir une longueur de trame multiple de 4 octet | x octets | Bourrage | Complète l'entête d'octets valorisés à 0x00 jusqu'à obtenir une longueur d'entête multiple de 4 octets. |