私が書いているJavaプログラムを使用してファイルと更新を転送する必要がある異種オペレーティングシステムを備えた地理的に離れたノードのセットがあります。現在、ファイルが変更された場合は、ファイル全体を再度送信する必要があります。異なるファイルのセクションを判別し、それらのみを送信する方法はありますか(これらのファイルは必ずしもテキストではなく、任意の形式である可能性があることに注意してください)。私が考えることができる唯一の方法は、ファイルをブロックに分割し、ブロックをハッシュし、ハッシュをリクエスターに送り返すことです。リクエスターは、必要なブロックのみを要求しますが、小さなブロックと大きなファイルの場合、これは大きなオーバーヘッドになるため、単一のメッセージを分析して、送信する必要のあるブロックのリストを提供できるように、ファイルを説明するメッセージを送信する方法はありますか?
ほとんどのダイジェスト関数は、データへの小さな変更がハッシュ出力全体に大きな変更をもたらすように設計されています。基本的に、これの逆が必要です。これは、すべてのオペレーティングシステムで機能します。