将 DHT 公告发送到哪里?

Posted

技术标签:

【中文标题】将 DHT 公告发送到哪里?【英文标题】:Where to send DHT announce to? 【发布时间】:2015-08-21 12:44:46 【问题描述】:

在编写另一个支持 DHT 的 torrent 客户端时,我遇到了一个关于宣布 DHT 的问题。很明显,我必须将 get_peers 发送到越来越接近搜索到的信息哈希的节点,直到至少一个节点响应具有该信息哈希的节点列表。

据我了解,我可以找到多个节点响应重叠的节点列表,知道信息哈希。现在的问题是,我应该向所有返回节点列表的节点宣布我的存在还是只选择一个节点。对此帐户有什么建议?

也许我弄错了,它的工作方式有些不同,我的假设是错误的,不可能有多个节点具有相同信息哈希的对等列表?

【问题讨论】:

【参考方案1】:

很明显,我必须将 get_peers 发送到越来越接近搜索到的信息哈希的节点,直到至少一个节点响应具有该信息哈希的节点列表。

您实际上执行迭代查找,直到响应不返回任何新节点联系信息,该信息比已响应并包含写入令牌的 K 个最接近的条目更接近目标键。

现在的问题是,我是否应该向所有返回列表的节点宣布我的存在

仅对 K-closest-node-set。如果宣布失败(错误消息或无响应),您还可以回溯以确保您至少得到 K 个商店请求得到确认。

【讨论】:

以上是关于将 DHT 公告发送到哪里?的主要内容,如果未能解决你的问题,请参考以下文章

如何将具有值的函数发送到子组件 React?

将图像链接发送到电报而不显示图像 url

将路由参数作为参数发送到中间件 Laravel

如何将复杂的参数发送到 asp.net

将小型 UDP 数据包从 Linux 内核发送到 LOOPBACK

PyQt在连接到信号时将参数发送到插槽