Question

Je suis en train de comprendre comment l'algorithme de rsync fonctionne pour du matériel et des blocs checksums qui correspondent d'une manière échelonnée.

La page wikipedia semble indiquer que l'émetteur et le récepteur à la fois calculer et checksums de roulement d'échange pour tous les blocs possibles. Mais cela signifierait l'envoi d'une somme de contrôle essentiellement par octet! J'ai dû louper quelque chose. Comment ça marche pour être en mesure d'aligner des blocs?

par exemple. si S = 16 blocs d'octets, et l'expéditeur a ce texte pour le fichier A:

  

Le renard brun rapide saute par-dessus la   chiens paresseux

et le récepteur a ce texte pour le fichier B:

  

Le renard brun rapide a sauté sur la   chien paresseux

Comment un travail d'échange de rsync?

Était-ce utile?

La solution

Le récepteur calcule et envoie des sommes de contrôle de roulement seulement pour les blocs non en chevauchement. L'expéditeur au contraire, il calcule pour chaque possible bloc (mais gardez le résultat local). Ensuite, pour l'expéditeur, il est juste une question de vérifier si l'un des blocs non chevauchement (envoyé par le récepteur) avec correspondance any (chevauchement) bloc local.

Votre exemple est trop simple pour voir quelque chose d'intéressant, les deux blocs derniers simplement ne correspondent pas et seront envoyés pour la fusion.

Avec un exemple plus intéressant (en majuscules est un bloc):

expéditeur:

A B Cabc D

récepteur:

A B C D

Le récepteur envoie le hachage MD5 et roulant A, B, C et D. L'expéditeur calcule le hachage pour rouler tous (chevauchement) bloc, il correspondra A, B, C et D. Puisque abc est correspond pas à elle envoyer les informations où de fusionner.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top