rsync всегда использует контрольные суммы для проверки правильности передачи файла. Если целевой файл уже существует, rsync может пропустить обновление файла, если время и размер изменения соответствуют исходному файлу, но если rsync решает, что данные должны быть переданы, контрольные суммы всегда используются для данных, передаваемых между отправляющим и получающим процессами rsync. , Это подтверждает, что полученные данные совпадают с данными, отправленными с высокой вероятностью, без значительных накладных расходов при сравнении на уровне байтов по сети.
Как только данные файла получены, rsync записывает данные в файл и полагает, что, если ядро указывает на успешную запись, данные были записаны без повреждения на диск. rsync не перечитывает данные и сравнивает их с известной контрольной суммой в качестве дополнительной проверки.
Что касается самой проверки, для протокола 30 и выше (впервые поддерживается в 3.0.0), rsync использует MD5 . Для старых протоколов используется контрольная сумма MD4 .
Хотя долго считалось устаревшим для безопасных криптографических хэшей, MD5 и MD4 остаются адекватными для проверки повреждения файлов.
Источник: справочная страница и просмотр исходного кода rsync для проверки.