CRC : Cyclic Redundancy Checksum
cela sert à prendre des données, d'appliquer un algorithme dessus et d'obtenir une information très courte qui permet de rajouter de la redondance dans les données pour détecter des erreurs de transmission par exemple.
si tu veux transmettre un buffer de données entre un émetteur et un récepteur, tu envoi les données ainsi que le cheksum. En réception, tu récupère les donnés, calcules le checksum et compare par rapport à celui reçu. s'ils sont différent, c'est qu'il y a eu un problem lors de la transmission. s'ils sont pareil, il y a de forte chance que la transmision est OK (sans pour autant en être sur à 100%)
il existe plusieur type d'algoritme (XOR, CRC16, CRC32....)
exemple avec un XOR : char* data; // données int length; // longueur
char crc = 0xff; while(length-- > 0) crc = crc ^ (*data++);
|