Удалённое дифференциальное сжатие ( RDC ) — это алгоритм синхронизации клиент-сервер, который позволяет синхронизировать содержимое двух файлов, передавая только различия между ними. Он был представлен в Microsoft Windows Server 2003 R2, входит в более поздние клиентские и серверные операционные системы Windows, но к 2019 году не разрабатывается и не используется ни одним продуктом Microsoft.
В отличие от Binary Delta Compression (BDC), который предназначен для работы только с известными версиями одного файла, RDC не делает предположений о схожести файлов или версиях. Различия между файлами вычисляются на лету, поэтому RDC подходит для эффективной синхронизации файлов, которые были обновлены независимо, когда пропускная способность сети мала или когда файлы большие, но различия между ними невелики.
Используемый алгоритм основан на снятии отпечатков с блоков каждого файла локально на обоих концах партнеров по репликации. Поскольку многие типы изменений файлов могут привести к перемещению содержимого файла без других существенных изменений (например, небольшая вставка или удаление в начале файла может привести к тому, что остальная часть файла будет смещена относительно исходного содержимого), блоки, используемые для сравнения, основаны не на статических произвольных точках разреза, а на точках разреза, определенных содержимым каждого сегмента файла. Это означает, что если часть файла изменяется по длине или блоки содержимого перемещаются в другие части файла, границы блоков для частей, которые не изменились, остаются фиксированными относительно содержимого, и, таким образом, серии отпечатков для этих блоков не меняются, они просто меняют положение. Сравнивая все хэши в файле с хэшами для того же файла на другом конце пары репликации, RDC может определить, какие блоки файла изменились, а какие нет, даже если содержимое файла было существенно перетасовано. Поскольку сравнение больших файлов может подразумевать выполнение большого количества сравнений сигнатур, алгоритм рекурсивно применяется к наборам хэшей для определения того, какие блоки хэшей были изменены или перемещены, что значительно сокращает объем данных, которые необходимо передать для сравнения файлов.
Более поздние версии Windows поддерживают кросс-файловый RDC, который находит файлы, похожие на реплицируемый, и использует блоки похожих файлов, которые идентичны реплицируемому файлу, чтобы минимизировать объем данных, передаваемых по WAN. Кросс-файловый RDC может использовать блоки из пяти похожих файлов. [1]
RDC во многом похож на старый (1996) протокол rsync , но с некоторыми полезными нововведениями, в частности рекурсивным алгоритмом и кросс-файловым RDC. [2]
RDC реализован в операционных системах Windows с помощью файла DLL , MSRDC.DLL, который будет присутствовать в каталоге %SYSTEMROOT%\System32, если и только если RDC включен. Существует очень мало программного обеспечения, которое использует его, особенно в несерверных системах. Согласно слухам в Интернете, включение RDC значительно замедляет локальную передачу файлов, и его не следует включать; веб-страница Microsoft TechNet подробно оспаривает это, [3] несмотря на частые сообщения о том, что его удаление помогло восстановить скорость передачи. [ необходима цитата ]
С выпуском Windows Server 2019 от Microsoft поддержка RDC была включена в раздел « Функции, которые мы больше не разрабатываем » (который может быть удален из будущего обновления) с комментарием «Эта поддержка в настоящее время не используется ни одним продуктом Microsoft». [4]