网状的绿色绳索。

P2P应用的连接失忆使得它们不太容错

对等网络(P2P)应用程序发现的对等设备或者使用集中式跟踪服务器(例如Syncthing,DAT,BitTorrent的)或“无服务器的”分布式哈希表(DHT)。像DHT无服务器解决方案是从来没有真正无服务器,虽然。我有先前讨论DHT如何客户对商品的集中引导/引入服务器过于依赖,以及如何作为一个单点故障。

在早的文章,我认为,DHT-客户应该缓存会话之间的DHT同行。这些同龄人不能保证您的客户端尝试加入该网络的下一次连接到网络。然而,P2P客户端通常使数百到DHT群的连接。

这种方法可以减少客户的自举服务器和帮助的依赖维持的有意或无意的服务中断的情况下网络。作为奖励,它可以加快重新参加DHT群的过程。

P2Pclients that frequently communicate with the same peers in a topic swarm — e.g. for social networks, chat, and file syncing apps — are also needlessly dependent on the peer discovery systems. E.g. your laptop shouldn’t need to rediscover how to connect to your home-PC every time it wants to sync folders between them over Syncthing. P2P apps can simply cache the discovered peer connection information for peers it frequently communicates with.

不要误会我的意思:对等发现系统及其引导的服务器来方便在互联网最初的介绍和连接。然而,没有必要对P2P客户端重新发现每次启动应用时,同样众所周知的同行。

缓存的连接信息,可以去过时随着时间的设备网络之间漫游。大多数操作系统还每天轮换IPv6地址隐私的原因。这就够了希望与另一通信的同行人知道其他同行的当前连接的详细信息。作为奖励,缓存等连接信息可以加快会话同行之间重新连接。

我已经研究过了十P2P应用程序,定期与同龄人一样的沟通这方面的;包括Syncthing,雅米(原GNU环),Resilio同步(原BitTorrent的同步),DAT,Technitium网,RetroShare,git的助手, 和别的。只有Resilio同步和会话之间RetroShare缓存等连接信息。我已经提出了对于Syncthing提案实现这一点。

我觉得特别值得注意的是,Resilio同步实施了对等连接缓存。Resilio同步前身名称BitTorrent的同步通过BitTorrent的公司开发的下它被分拆出来作为一个独立的公司了。它从那以后开发的P2P软件和他们的工程师应该知道两件事有关操作对等发现服务和建立冗余性的分布式网络。

出了上面所列内容的,Resilio同步也是唯一的专有客户端。它有一个付费订阅服务。该软件必须努力在最大程度上,甚至在服务中断,或该公司将失去付费用户。缓存对等连接的细节是一个简单的方法,使P2P应用程式更稳健。至少对于经常与同行相同的客户端进行通信。

P2P应用,如文件同步,聊天,闲话网络开发人员已经知道了每个对等可能具有相同的同龄人交往在会话。这是一个没有脑子来决定实现对等连接缓存。然而,这些使用情况也存在于更通用的P2P应用,如DAT,多核,IPFS,和BitTorrent。应用程序可以分析连接模式和作出决定,以高速缓存某些同行,客户端频繁交换数据用。