2010-06-03 9 views
0

J'ai compris que la somme de contrôle de tcp se calcule automatiquement si nous écrivons 0 dans la fonction libnet_build_tcp, alors pourquoi avons-nous besoin de libnet_do_checksum?Pourquoi avons-nous besoin de libnet_do_checksum? La somme de contrôle HTTP ne fonctionne pas

J'ai une erreur lorsque j'essaie de créer un nouveau paquet. Un paquet TCP standard (SYN, ACK) fonctionne bien, mais un paquet HTTP ne fonctionne pas, car une erreur de somme de contrôle tcp est utilisée. Dois-je utiliser libnet_do_checksum?

Répondre

0

Vous utilisez libnet_do_checksum() lorsque vous voulez calculer manuellement la somme de contrôle, ainsi vous pouvez le vérifier avant de l'envoyer, par exemple. Etes-vous sûr que le paquet transportant des données HTTP a une erreur de somme de contrôle? Il peut arriver que le système d'exploitation utilise le déchargement des sommes de contrôle. Wireshark signalerait une mauvaise somme de contrôle sur la machine d'origine, mais la carte réseau la calculera avant d'envoyer le paquet sur le réseau.