2009-10-08 11 views
6

Próbuję zrozumieć, jak działa the rsync algorithm w odniesieniu do ruchomych sum kontrolnych i bloków pasujących w sposób z przesunięciem.toczące się sumy kontrolne w algorytmie rsync

Strona wikipedii wydaje się sugerować, że nadawca i odbiorca zarówno obliczają, jak i wymieniają sumy kontrolne dla wszystkich możliwych bloków. Ale oznaczałoby to wysłanie w zasadzie jednej sumy kontrolnej na bajt! Muszę czegoś przegapić. Jak to działa, aby móc wyrównywać bloki?

np. jeśli S = 16 bloków bajtów, a nadawca ma ten tekst do pliku A:

Szybki brązowy lis przeskoczył nad leniwych psów

i odbiornik ten tekst do pliku B:

szybki brązowy lis przeskoczył nad leniwym psem

jaki sposób rsyn c wymiana pracy?

Odpowiedz

14

Odbiornik wylicza i wysyła toczące się sumy kontrolne tylko dla niepokrywających się bloków. Odbiorca przeciwnie oblicza go dla każdego bloku możliwe (ale zachować wynik lokalny). W przypadku nadawcy chodzi tylko o sprawdzenie, czy jeden z nie nakładających się bloków (wysłanych przez odbiornik) nie pasuje do żadnego lokalnego bloku ().

Twój przykład jest zbyt prosty, by zobaczyć coś interesującego, dwa ostatnie bloki po prostu nie będą pasować i zostaną wysłane do scalenia.

Przy bardziej interesujący przykład (wielkimi literami jest blok)

nadawcy:

A B Cabc D 

odbiornika:

A B C D 

Odbiornik wysyła MD5 i toczenia mieszania dla A, B, C i D. Nadawca oblicza wartość toczącego skrótu dla co (nakładający się) bloku, dopasuje dla A, B, C i D. Ponieważ nie pasuje, wyśle ​​go z informacją, gdzie ma się złączyć.

+0

oh, musiałem źle odczytać fragment o odbiorniku nie wysyłając wszystkich sum kontrolnych. Dzięki. –

Powiązane problemy