基于rsync同步算法的文件同步系统JAVA实现(一)——项目介绍

项目主要功能:

java实现的类似rsync项目的文件同步:A拥有不完整文件file_halfB拥有完整文件file_totalAB发送不完整文件的校验码信息,B利用完整文件进行分析后返回差异数据块,A收到差异数据块后与不完整文件file_half进行重组形成完整文件file_total_copy

优点:

同步时传送的文件内容只是差异文件,则可以减少传输的数据,减少同步时间(主要减少了网络传输时间),当差异块相对文件大小很小时,优势尤为突出。还有附加的优点就是支持断点传输,查看差异部分(这有点像svn)。


主要原理:

1.在α端将不完整文件A分割成相同大小的数据块。

2.对每个数据块进行两种校验(滚动校验和md4

3.将校验结果发送给拥有完整文件B的β端

4.β通过搜索文件B的所有大小为S的数据块,来寻找与文件A的某一块有着相同的弱校验码和强校验码的数据块。这项工作可以借助滚动校验的特性很快完成。

5.β生成差异文件块和相关信息并发送给α,α利用差异块和相关信息重新生成完整文件B’。


项目碰到的难点:

1.数据量大,测试调试困难。

2.需要对字节级别的数据进行操作。

3.分析差异数据块的算法设计与优化。

4.设计哪些数据报,怎么设计。

5.错误处理。

6.如何利用数据报控制客户端和服务端的程序运行和交流。

7.网络环境复杂。

项目进度与需要完善的问题:

1.核心同步在单机上(利用127.0.0.1环回测试)已经实现。

2.暂时只支持一次操作,用户体验较差。

3.程序运行时客户端和服务器交互能力较差。

项目主要技术:

java语言,javafx界面,rsync算法参考


项目测试界面:


项目核心时序图:



  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值