The checksum field is the 16 bit one's complement of the one's complement sum of all 16 bit words in the header and text.
. Cependant tu calcules la somme des mots de 16 bits sans prendre le complément à 1.
2 - Tu risques des problèmes d'endianness en castant ta struct en unsigned short (surtout si tu es sur une little endian comme les x86) : problème des retenues dans la somme.
Remarque : Le unsigned short ne fait pas forcément 16 bits. Mieux vaut utiliser les types définis dans inttypes.h (Single Unix) intXX_t et uintXX_t.
# 2 idées et 1 remarque
Posté par jcs (site web personnel) . En réponse au message Probleme de calcul du Checksum TCP. Évalué à 1.
2 - Tu risques des problèmes d'endianness en castant ta struct en unsigned short (surtout si tu es sur une little endian comme les x86) : problème des retenues dans la somme.
Remarque : Le unsigned short ne fait pas forcément 16 bits. Mieux vaut utiliser les types définis dans inttypes.h (Single Unix) intXX_t et uintXX_t.