P2P 的文件同步软件

2020-04-26 06:21:42 +08:00
 cnt2ex

比如 A 、B 、C 三个节点共享同个文件。一开始 A 拥有整个文件,A 先和 B 同步一部分,同时 A 和 C 也同步一部分。之后 B 和 C 也会交换自己没有的那部分。

我试过 syncthing,但我发现这玩意在同步的时候并不是通过以上那种 P2P 方式分发的,而是同时把整个文件传给 B 和 C (不知道是不是我配置的问题)。

4045 次点击
所在节点    程序员
13 条回复
ysc3839
2020-04-26 06:58:52 +08:00
怀疑是 B 和 C 不能互相连接。
yeqizhang
2020-04-26 07:55:29 +08:00
涨姿势了……原来 syncthing 的 P2P 和迅雷下载类似的,机器越多还能越快,我一直以为只是个去中心化的分布式
cnt2ex
2020-04-26 08:05:27 +08:00
@ysc3839 #1 这两个都是公网上的服务器,都有公网 IP,应该不是这个问题。
@yeqizhang #2 我是想问有没有这样的软件来着,syncthing 好像不是通过 p2p 方式分发的。
ronman
2020-04-26 08:09:46 +08:00
@cnt2ex resilio sync
janxin
2020-04-26 08:09:58 +08:00
有是有的,日本某共享软件就是这样,后来作者被抓了...
yeqizhang
2020-04-26 08:28:35 +08:00
@cnt2ex 好吧,抱歉之前没认真看,还特意去搜了有文章说机器越多越快……我之前还想着这玩意应该还没有这么高级= =
Deteriorator
2020-04-26 09:59:45 +08:00
verysync
ruixue
2020-04-26 10:13:14 +08:00
Resilio Sync 的同步模式就是你说的这种,BitTorrent 公司开发的,原理和 BT 差不多,原名就叫 BTSync,Tracker 服务器被墙之后,国内做了个和它差不多的,叫微力同步
实际上如果没有同步的需求,只需要分发文件而不需要更新文件,装个 qBittorrent 打开内置的 Tracker 功能,把需要分发的文件做成种子,写入 Tracker 地址发给其他电脑 BT 下载就行了,客户端越多下载速度越快
imn1
2020-04-26 11:14:04 +08:00
关键是两者原理是不同的
P2P 是分享,文件基本不变,基于 hash
sync 是同步,文件可变(增删改都有),在相同目录结构下,基本以文件名确认文件,更重要是日期信息,检查有没有更新,大多数时候是两两设备对照
sync 除了首次同步外,大量传送机会不多,除非经常乾坤大挪移,比较大的缺点是子目录改名要重新传,但如果不用传,程序的检查方案就会复杂,产生大量检查,不利日常,这是鱼与熊掌
snip
2020-04-26 13:37:33 +08:00
大部分的 bt 软件都支持的,超级种子模式

以下为转载:

超级种子模式发布,限速将拖慢整体下载速度!!!

超级种子原理:种子制作时记录了文件的信息,并自动把电影文件分成数十个小块,当然文件还是一个整体,但 BT 软件会从种子文件里的信息识别分开每个小块下载,我们下载时就是一小块一小块的下的,而不是整个文件一起下的。发布者使用超级种子模式发布时,下载者从发布者处下载一小块文件后,必须将此小块文件上传、互传给其他下载者,才能继续从发布者处下载第二小块文件,这样如果你上传限速的话,那么你从发布者处下载所花的时间越长!同时其他下载者必须接收完你的文件后才能继续从发布者处下载新的文件小块,并上传给你。这样如果有人限速的话,就会拖慢整体的下载速度!

在 BT 下载里,大家都知道要有一个有效的种子文件(Torren 文件)才能完成下载。下载最重要就是速度,种子传输的速度和带宽、下载人数、外网或内网等多种因素有关。然而,超级种子就可以对于培养新的种子和改善传输速度是有一定的帮助,那么如何制作超级种子呢?什么又是超级种子呢?我们现在详细说明一下及教教大家怎样制作超级种子。
何为超级种子?
超级种子模式是为 Torrent 发布者设计的一种新的做种运算法则,是利用他们有限的带宽来更好地培养新的种子。当一个客户端启用超级种子模式时,他将不再是一个普通的种子,而是伪装成一个没有数据的普通客户端。当其他客户端连接时,超级种子模式传输给他一个从没被传输出去的块,当所有文件块都被发出时,将意味着不再需要你这个种子的其他下载者就可以完成下载进程,这样将大大降低一个文件块被下载多次的几率,还提高了做种效率。当一个下载者完成了这个文件块的下载,程序将不再传送这个文件块直到它已看到这个文件块被至少一个其他的客户端传送。这样的话,客户端将无权访问任何这个种子的其他文件块,因此也减少了种子的带宽占用。这个方法将会提高做种效率,它通过两者间的高效率数据传输,从而降低多余的数据传送,并限制贡献少的下载者的数据传送。
在使用这个功能之前,你可能要为一个 torrent 文件上传两倍的文件来培养一个新种子。可使用这个功能后,你只要上传 105%的大小就可以培养出新种子,这是普通种子效率的 1.5 到 2 倍。但我们不推荐普通人使用这个功能。虽然它能帮助下载者高效地传输数据,但它因为限制了一个客户端可选的文件块,也限制了那些有能力的客户端下载数据。所以,超级种子模式只推荐 Torrent 文件发布者使用。
newmlp
2020-04-26 15:34:51 +08:00
@imn1 p2p 是点对点的意思,啥分享啊,p2p sync 就是点对点同步,数据不经过三方服务器
imn1
2020-04-26 16:09:52 +08:00
@newmlp #11
p2p 是顺着楼主的话说的,如果只是“点对点”,难道 syncthing 不是么?这样的话楼主的问题就不存在了
cnt2ex
2020-04-26 18:10:07 +08:00
@ronman
@ruixue
谢谢,我去尝试一下


@imn1 #9
我是想说分发的时候也通过 P2P 方式来分发的文件共享软件。这两个应该并不冲突。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/666129

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX