Le check sum comme l'a expliqué mimix sert à contrôler l'intégrité de ton fichier. C'est une somme obtenu à partir d'un algorithme donné qui a statistiquement peu de chance de donner le même résultat si ton fichier a été modifié. Pour vulgariser c'est une sorte de "preuve par 9".
CRC32 est un de ces algorithmes, mais il en existe beaucoup d'autres : MD5, SHA1, SHA256, ADLER32... pour ne citer que les plus connus.
Le header, rien à rajouter.
Swap byte : je n'en suis pas trop sûr, par contre le lien qu'à posté Infogames est hors sujet. Cet article wikipedia s'applique dans le cadre de la gestion mémoire effectuée par un OS, rien à voir avec ce qui nous occupe.
Je ne suis pas sûr du tout mais je pense que cela à peut être un rapport entre une conversion big/little endian ?