在rsync算法中滚动校验和
发布时间:2020-12-13 18:48:09 所属栏目:Linux 来源:网络整理
导读:我试图理解 the rsync algorithm如何处理以交错方式匹配的滚动校验和和块. 维基百科页面似乎表明发送方和接收方都计算并交换所有可能块的滚动校验和.但这意味着每个字节基本上发送一个校验和!我肯定错过了什么.如何对齐块? 例如如果S = 16字节块,并且发送
我试图理解
the rsync algorithm如何处理以交错方式匹配的滚动校验和和块.
维基百科页面似乎表明发送方和接收方都计算并交换所有可能块的滚动校验和.但这意味着每个字节基本上发送一个校验和!我肯定错过了什么.如何对齐块? 例如如果S = 16字节块,并且发送方具有文本A的此文本:
并且接收者将此文本用于文件B:
rsync交换如何工作? 解决方法
接收器仅针对非重叠块计算和发送滚动校验和.
相反,发件人会为每个可能的块计算它(但保持结果是本地的).然后对于发送方来说,只需检查非重叠块(由接收方发送)中的一个是否与任何(重叠)本地块匹配. 您的示例太简单,看不到任何有趣的内容,最后两个块根本不匹配,将被发送以进行合并. 有一个更有趣的例子(大写是一个块): 发件人: A B Cabc D 接收器: A B C D 接收器将为A,B,C和D发送MD5和滚动哈希值.发送方将为每个(重叠)块计算滚动散列,它将匹配A,C和D.由于abc不匹配,它将发送它与合并它的信息. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |