У меня есть набор географически удаленных узлов с разнородными операционными системами, которым необходимо передавать файлы и обновления с помощью Java-программы, которую я пишу. В настоящее время мне нужно отправить весь файл снова, если файл изменяется. Есть ли способ определить разделы файлов, которые отличаются и отправлять только те (обратите внимание, что эти файлы не обязательно текстовые, они могут быть любого формата). Единственный способ, которым я могу придумать, - это разбить файл на блоки, хэшировать блоки и отправить хэши обратно запрашивающей стороне, которая затем запрашивает только те блоки, которые ему нужны, но для маленьких блоков и больших файлов это большие издержки, так что способ отправить какое-либо сообщение с описанием моего файла, так что единственное сообщение может быть проанализировано, чтобы предоставить список блоков, которые должны быть переданы?
Большинство дайджест-функций спроектированы таким образом, что небольшое изменение данных приводит к значительному изменению всего хеш-вывода, мне в основном нужна обратная сторона, которая будет работать во всех операционных системах.