Comment une somme de contrôle de 1s est-elle utile pour la détection d'erreur?
Une somme de contrôle peut être généré en ajoutant simplement de bits. Comment est l'étape supplémentaire de la prise de la 1s complément utile?
Je comprends la théorie. Je sais comment calculer 1s complément et je sais comment l'ajout de la complète qui rend le résultat de tous les 1.
J'aimerais voir un exemple simple de comment une erreur est détectée.
source d'informationauteur node ninja
Vous devez vous connecter pour publier un commentaire.
Je crois que l'exemple que vous cherchez peut être trouvé ici.
La raison pour laquelle nous ne 1 effectif que lorsque le 1er complément est ajouté à la somme de toutes les valeurs, et le résultat est coupé à la longueur en bits de la machine (16 bits dans l'exemple ci-dessus), c'est toutes les 1 du. Les processeurs ont une fonctionnalité 1er complément de chiffres, et prendre le 1er complément de tous-1 est 0.
La raison: les Processeurs hate de travailler avec les bits sauf dans des segments de nombreux, toutefois, il utilise normalement. Ainsi, l'ajout de deux 64 bits peut prendre de 1 cycle, mais la vérification de tous les bits de ce nombre, individuellement prendre beaucoup plus (dans un naïf boucle, peut-être aussi élevé que 8x64 cycles). Les processeurs ont aussi la capacité à trivialement prendre 1 est complète, et de détecter que le résultat du dernier calcul a zéro sans l'inspecter bits individuels et de la direction générale sur cette base. Donc, fondamentalement, c'est une optimisation qui nous permet de vérifier les sommes de contrôle très rapide. Puisque la plupart des paquets sont juste très bien, cela nous permet de vérifier la somme de contrôle à la volée et d'obtenir les données à la destination beaucoup plus rapide.
Exemple, Vous avez trois mots dans des paquets UDP besoin d'envoyer.
UDP sur le côté de l'expéditeur effectue le 1s complément de la somme de tous les 16 bits
mots. La somme des deux premiers de ces mots de 16 bits est
L'ajout de la troisième mot de la somme ci-dessus donne, Note que ce dernier a plus eu de débordement, qui a été enroulé autour de
Le 1s complément est obtenue par la conversion de tous les 0 à 1s et de convertir tous les 1 à 0.
Ainsi, le 1s complément de la somme
0100101011000010
est1011010100111101
qui devient la somme de contrôle. Au niveau du récepteur, tous les quatre mots de 16 bits sont ajoutés,y compris la somme de contrôle. Si aucune des erreurs se sont introduites dans le paquet, il est clair que la somme, le récepteur sera1111111111111111
. Si l'un des bits est un 0, alors nous savons que des erreurs ont été introduites dans le paquet.Par "ajout de bits" je suppose que vous voulez dire le calcul des bits de parité. Selon cette entrée de Wikipedia sur les sommes de contrôlepour une parité de la somme de contrôle "de la probabilité d'un à deux bits erreur non détectée est de 1/n" alors qu'avec un système modulaire de somme (comme 1s compléter) "la probabilité que les deux bits d'erreur ne soit pas détectée est un peu moins de 1/n."
Cette "Demandez au Dr Mathématiques" de la colonne explique comment calculer 1s complément (le plus souvent pour le protocole TCP/IP).
De la somme de contrôle est très important pour la mise en réseau comme partickmdnet mentionné. En gros, pour chaque datagramme transmis dans le protocole IP, il y a une somme de contrôle qui a été calculée à l'avance et transmis. Si un seul bit est endommagé et envoyée de façon incorrecte dans la partie de données de la datagramme, alors la somme de contrôle calculée au routeur de réception sera différent que celui fourni avec le datagramme. Cela indique au routeur que le datagramme est endommagé (soit les données ou la somme de contrôle de la partie elle-même) et le routeur va jeter le datagramme.