问题标签 [p2p]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1520 浏览

java - 开始使用自定义 JXTA PeerGroup

在过去一年左右的时间里,我一直在使用JXTA 2.3 来开发我正在开发的点对点计算平台。我正在迁移到JXTA 2.5 并且在此过程中我试图清理我对JXTA的大量使用。在大多数情况下,我与JXTA接触时只是抱着让它工作的态度。我用它来快速创建和管理我的点对点覆盖网络并提供基本的通信服务。我想以更JXTA的方式使用它,因为无论如何我都在进行更改以迁移到 2.5。

我的第一步将是一个自定义的基本创建PeerGroupMETA-INF.services我看到了一些使用Java 基础架构的新机制。我应该PeerGroup在此处列出一个带有GUID的相关实现对象net.jxta.platform.Module吗?据我了解,如果我这样做,当遇到并加入或创建具有与GUID匹配的规范 ID 的组时,它应该自动使用匹配的对象。我应该能够手动将一个PeerGroup对象绑定到组,但是这种使用的新方法META-INF似乎更容易管理。

有没有人有任何使用此基础架构进行PeerGroup实施的指示或示例?此外,有关 Java 机制的一些一般信息META-INF.services也会有所帮助。

0 投票
7 回答
3391 浏览

networking - 为什么点对点编程是一个很难获得良好研究的主题?

在阅读了更多关于 Gnutella 和其他 P2P 网络如何运作的信息后,我想开始我自己的点对点系统。我开始认为我会找到很多可以应用的教程和与语言无关的指南,但是我遇到了一个模糊简单的概述。

我只能找到非常小的、精确的 P2P 代码,这些代码除了在所有用户上使用客户端/服务器架构之外没有做更多的事情,而这并不是我真正想要的。我想要像 Gnutella 这样的东西,但似乎没有任何公开的文章可以加入网络。

0 投票
1 回答
441 浏览

language-agnostic - 如何在对等系统中稳健但最少地分发项目

如果一个人有一个可以查询的点对点系统,那么他想

  • 减少整个网络的查询总数(通过广泛分布“流行”项目和“相似”项目一起)
  • 避免每个节点的过多存储
  • 在客户停机、硬件故障和用户离开(可能为档案管理员/历史学家检测稀有物品)的情况下,确保即使是中等稀有物品的良好可用性
  • 避免在网络分区的情况下查询无法找到匹配项

鉴于这些要求:

  1. 有没有标准的方法?如果没有,是否有任何受人尊敬但实验性的研究?我熟悉一些分配方案,但我还没有看到任何真正解决学习健壮性的东西。
  2. 我是否缺少任何明显的标准?
  3. 有人有兴趣研究/解决这个问题吗?(如果是这样,我很乐意将我这个周末拼凑的一个非常蹩脚的模拟器的一部分开源,并且通常会提供无用的建议)。

@cdv:我现在已经观看了视频,它非常好,虽然我不觉得它完全符合可插拔的分发策略,但它绝对是 90% 的方式。然而,这些问题突出了这种方法的有用差异,这些差异解决了我的一些进一步担忧,并为我提供了一些后续参考。因此,我暂时接受你的回答,尽管我认为这个问题是开放的。

0 投票
3 回答
7601 浏览

networking - P2P 应用程序中的直接 TCP/IP 连接

来自Joel 在 Copilot 上的帖子

直接联系!我们总是尽我们所能确保 Fog Creek Copilot 可以在任何网络情况下连接,无论有什么防火墙或 NAT 就位。为了实现这一点,双方都与我们的服务器建立出站连接,该服务器代表他们中继流量。好吧,在许多情况下,这不是必需的。所以 2.0 版做了一些相当聪明的事情:它通过我们的服务器建立了初始连接,因此您可以立即以 100% 的可靠性连接。但是一旦你们都连接起来,它就会在后台悄悄地寻找一种直接连接的方法。如果不能,没什么大不了的:您只需继续通过我们的服务器进行中继。如果您可以建立直接的点对点连接,它会默默地将您的数据转移到直接连接上。

他们如何将服务器连接更改为 P2P 连接?

0 投票
4 回答
75858 浏览

theory - 分布式哈希表(DHT)的简单基本解释

任何人都可以解释 DHT 的工作原理吗?

没什么太重的,只是基础。

0 投票
4 回答
1660 浏览

.net - 如何通过 Internet 分发 WCF 对等应用程序?

有人可以指出我正确的方向吗?我希望通过 Internet 分发 WCF 点对点云。到目前为止,我已经看到了它如何在同一子网上工作的示例。我想把它推得更远一点。

0 投票
4 回答
431 浏览

file - 为 P2P 应用程序拆分文件

我必须实现一个用于文件共享的中间件系统,它必须拆分文件,这与在 bittorrent 上发生的情况不同,它同时从各种来源发送和接收单独的片段。我怎么做?它是一个库还是我必须自己实现文件拆分?

0 投票
2 回答
244 浏览

networking - 在对等系统中协商公共“网络通道”

网络中的对等节点是否有一个通用或已建立的算法来决定一个唯一的“网络通道”(或任何其他形式的半秘密标识符)?

我工作的环境是SecondLife。我试图弄清楚如何让许多相同的对等脚本对象就允许它们形成网络的“通道”编号达成一致,而不会干扰同类对象的其他现有网络。

所有对象大致在同一时间被实例化,并且可以访问(公共)系统时间。

我想到的方法:

  1. 基于实例化时间。Channel 是从 unix 时间派生的(通过 md5)。问题是“大致相同的时间”部分。它们可能会在新的一秒前被实例化。

  2. 随机等待。让对象等待一个随机量,并宣布一个(随机生成的)通道号,该通道号由第一个唤醒的对象决定。问题是,系统的时间粒度较低,在处理公告之前可以唤醒多个对象。

  3. 结合 1 和 2。等待一个随机量后宣布一个高分辨率的时间戳,并从最低宣布的时间戳导出频道。

这一定是比我想象的更聪明的人。有更好的方法吗?

0 投票
13 回答
36789 浏览

p2p - 点对点:寻找点的方法

是否有任何已知的方法可以在不使用专用中央服务器的情况下找到对等点?

即:如果我有对等方断开并重新连接到互联网但每次都获得一个新的 IP 地址,并且我想连接到它们而不设置专用服务器进行注册。

我正在考虑使用对等点的电子邮件地址定期发送已连接对等点的清单,并带有某种时间码,从而无需专用服务器。如果在尝试所有先前已知的对等地址后没有一个对等点可以连接,这将是一个后备。但是现有的寻找同伴的模型会更可取。

0 投票
1 回答
1193 浏览

p2p - 正在寻找一些了解 Bittorrent 的好书/资源?

正在寻找一些好的书籍或技术资源来详细了解 Bittorrent 的工作原理?它可能涉及网络编程、P2P 编程和其他主题的书籍。