Алгоритм rsync
Алгоритм rsync:
- Beta разбивает файл B на блоки длиной L (последний блок может быть меньше L байт) и вычисляет две сигнатуры Rb и Sb для каждого блока, после чего пересылает эти сигнатуры к Alpha .
- Alpha вычисляет сигнатуры Ra для блоков длинной L , для каждого байтового смещения. После чего сравнивает их с Rb .
- Для блоков, чьи R сигнатуры совпали, Alpha вычисляет Sa и сравнивает с Sb .
- Если S сигнатуры совпадают, Alpha отсылает уведомление с номером совпавшего блока, в противном случае Alpha пересылает один байт.
- Beta получает номера совпавших блоков из B или одиночные байты из файла A и на основе этих данных создаёт копию файла A .
Важно понимать, что ключом алгоритма является создание двух сигнатур - быстрой и стойкой. Быстрая ( R ) используется как фильтр (на компьютере Alpha она вычисляется для каждого байтового смещения!). Стойкая ( S ) используется для более точной проверки.

Алгоритм rsync.