La somme de contrôle TCP (checksum), destiné au contrôle d’intégrité du paquet, utilise un pseudo-en-tête qui se compose de l’IP source d’origine, de destination, du nom de fichier réservé (identifié par 0000 0000), du protocole (x06) et de la longueur de l’en-tête TCP.
IP source = | 192.168.0.1 |
IP destination = | 192.168.0.2 |
Reserved/TCP Control = | 0 / 6 |
Padding/Lenght = | 0 / 10 |
TCP port source = | 20 |
TCP port destination = | 10 |
Numéro de séquence = | 11 |
Numéro d’accusé de réception ACK = | 0 |
Offset / Reserved / Flag = | 5 / 0 / 2 (Flag SYN) |
Window = | 8192 |
Checksum = | 0 |
Pointeur urgent = | 0 |
Données = | « Ah » (41 68 unicode convertit en hexadecimal) |
IP source (32 bits) = | 11000000.10101000. |
00000000.00000001 | |
IP destination (32 bits) = | 11000000.10101000. |
00000000.00000010 | |
Reserved/TCP Control (16 bts) = | 00000000.00000110 |
Padding/Lenght = 0 / 10 (16 bts) = | 00000000.00001010 |
TCP port source = 20 (16 bit) = | 00000000.00010100 |
TCP port destination = 10 = | 00000000.00001010 |
Numéro de séquence = 11 (32 bits)= | 00000000.00000000 |
00000000.00001011 | |
Numéro d’accusé de réception ACK = | 00000000.00000000 |
Offset / Reserved / Flag | |
= 5 / 0 / 2 (Flag SYN) = | 01010000.00000010 |
Window = 8192 = | 01010000.00000010 |
Checksum = 0 = | 00100000.00000000 |
Pointeur urgent = 0 = | 00000000.00000000 |
Données = « Ah » | |
(41 68 unicode | |
convertit en hexadecimal) = | 01000001.01101000 |
SOMME DE CONTROLE | |
à l’étape 1 (addition) = | 10.10000010.00001110 |
L’addition binaire est basée sur les règles :
- Règle n° 1 : 0 + 0 = 0 ;
- Règle n° 2 : 1 + 0 = 1 ;
- Règle n° 3 : 1 + 1 = 0 avec report de 1 ;
- Règle n° 4 : 1 + 1 + 1 = 1 avec report de 1.
Pour additionner plusieurs nombre binaire il faut procéder par paire et effectuer des reports.
SOMME DE CONTROLE (etape 1)= 00000000.00000010.10000010.00001110
La somme calculée est alors sur 32 bits on effectue l’addition des 16 premiers bits avec les 16 derniers
Soit :
SOMME DE CONTROLE (etape 2) | 00000000.00000010 |
+ 10000010.00001110 | |
= 10000010.00010000 |
L’étape suivante est de calculer le complément à 1 du nombre binaire trouvé précédemment.
Le complément à un d’un nombre binaire est la valeur obtenue en inversant tous les bits de ce nombre (en permutant les 0 par des 1 et inversement).
SOMME DE CONTROLE = 01111101.11101111
Soit 7D EF en hexadecimal
La conversion en hexadecimal base 16 s’effectue en decomposant le nombre binaire en paquets de 4 bits soit :
0111/1101/1110/1111
7/D/E/F