• # 2 idées et 1 remarque

    Posté par (site web personnel) . En réponse au message Probleme de calcul du Checksum TCP. Évalué à 1.

    1 - La RFC 793 dit
    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.