2011-10-03 2 views
3

Dans TCP/UDP, l'expéditeur xors mots de 16 bits et le résultat final est complété à nouveau pour obtenir la somme de contrôle. Maintenant, ceci est fait de sorte que le récepteur recalculerait la somme de contrôle avec les données et la somme de contrôle et si le résultat était tous ceux, il peut être certain (eh bien, presque!) Qu'il n'y a pas d'erreur. Ma question est pourquoi devrions-nous faire un complément final du résultat à l'expéditeur. Nous pourrions aussi bien l'envoyer en tant que tel que lorsque le récepteur recalculera la somme de contrôle, il devra vérifier tous les zéros, au lieu de tous les zéros comme dans l'autre cas.Pourquoi la somme de contrôle TCP/UDP est-elle enfin complétée?

Répondre

0

Alors que le récepteur peut faire une somme de 1 complète de toutes les données (y compris le champ de somme de contrôle) et voir si elle est -0 (0xffff).

+0

Pourquoi le récepteur ne peut-il pas prendre la somme du complément de 1 et vérifier les données avec 0, au lieu de -0? – borncrusader

3

Parce que 0 a une signification particulière. Il est utilisé pour indiquer que le calcul de la somme de contrôle doit être ignoré.

Questions connexes