作用:
分析差异数据块过程中需要不完整文件各个数据块的两种校验:滚动校验和md4校验,先对完整文件的各个分块依次进行滚动校验,若相同再进行md4校验,若再次相同说明数据块匹配,否则不匹配,在文件中向后移动一个字节形成的新分块进行校验(利用滚动校验的特性可以很快完成)。
核心算法1-滚动校验(参考rsync源码,并作了少量类型修改(unsigned转long)):
弱校验,优点是速度快(但不能保证唯一性),两个校验函数,一种是根据一整个数据块生成校验码,另一种是根据前一个数据块已知的校验码和新的字节信息产生校验码(快)。
源码:
/**
* 非递推滚动校验 a simple 32 bit checksum that can be upadted from ei