dht相关内容
我正在尝试对 DHT 服务器进行简单查询. 我正在尝试做一个简单的示例来测试对服务器的查询,但我没有得到服务器以任何形式的响应... 小例子: $socket = fsockopen("udp://router.bittorrent.com", 6881, $errno, $errstr, 3);fwrite($socket, 'p');$Head = fread($socket,
..
我已经查看了许多关于此主题的文件,但有一些不太清楚.例如比特流文件 (http://www.bittorrent.org/beps/bep_0005.html) 状态 路由表被细分为“桶",每个桶覆盖一个空间的一部分.一个空表有一个带 ID 空间的桶最小值=0,最大值=2^160 的范围.当一个 ID 为“N"的节点插入到表,它被放置在具有 min 一切都已经在桶里了.即使我们使用 bit
..
Kademlia 论文指出,节点被分配了随机的 160 位 ID 和密钥.这是严格的限制吗?如果我觉得足够好,我还能继续使用 128 位密钥空间吗? 解决方案 选择长度是因为 SHA1,用作哈希表键的哈希函数,输出 160 位,这是当时使用最广泛的哈希函数. 路由算法本身不需要特定的长度才能工作,它只需要足够大的密钥空间以避免随机选择的 ID 中的冲突.128 位 ID 将提供 64
..
我正在阅读 BEP-0005 ,但我不太了解节点ID转换为(IP,端口)对.考虑以下代码: import bencode import random import socket import pprint # Generate a 160-bit (20-byte) random node ID. rand = lambda: ''.join([chr(random.randint(0,
..
我想建立一个Kademlia网络来连接对等点并建立一个p2p网络.我将分配网络内节点的处理能力.对于网络,我发现此Kademlia Java从git实现了安装程序. https://github.com/JoshuaKissoon/Kademlia 我想知道如何设置它并用于实现网络. 我发现了 JKademliaNode kad1 = new JKademliaNode("Node1",
..
我在BitTorrent生成的DHT流量的本字典中找到了一个条目,我不理解,也无法在 http://bittorrent.org/beps/bep_0005.html . 使用wireshark进行数据包查询和响应的示例: query = {"a":{"id":".=...4...R..%..s~..;"}, "q":"ping", "t":"..oo", "v":"UThK", "y
..
这严重困扰了我. 原始的Kademlia提议出于明显的原因,应使用类似于sha1的160位十六进制: 在搜索与信息哈希相关的对等节点时,您可以简单地搜索nodeID,因为它们应该与sha1信息哈希相同的系统. 但请阅读以下内容: http://www.bittorrent.org/beps/bep_0005.html id为abcdefghi0123456789,即: 1)一半大
..
有时我会收到其他节点的奇怪回应.交易ID与我的请求交易ID以及远程IP都匹配,因此我倾向于认为节点对此进行了响应,但它看起来像是响应和请求的组合 d1:q9:find_node1:rd2:id20:.éV0özý.?tjN.?.!2:ip4:DÄ.^7:nodes.v26:.ï?M.:iSµLW.Ðä¸úzDÄ.^æCe1:t2:..1:y1:re 最糟糕的是它格式不正确.看7:no
..
我可以不使用跟踪器,打开跟踪器,dht和对等交换来生成已经在内部包含对等项的torrent文件吗? 如果是,我该怎么做? / p> 我要这样做的原因是,我想通过DHT获得对等端,并将该对等端传递给不支持DHT或对等端交换且不能 我发现了这一点,但我不知道什么是节点,以及我是否在寻找它。 http://www.bittorrent.org/beps/bep_0005 .html#
..
在我的新周末项目中,我决定从头开始编写一个bittorrent客户端,根本不准备使用库.在寻找文档两天后,我已经准备放弃:smile:.我知道有 BEP ,但它们远远不足以理解所有规范.阅读更多内容后,我认为跟踪器和对等协议似乎已经过时并且易于理解/实现(是的,我知道,要编写一个具有平衡,对等选择,优化的良好代码,这并不像我刚才所说的那样容易,但是我要做的只是做基础学习,而不是与数十个好的客户竞争
..
ThePirateBay.org等网站如何工作?我听说跟踪器的时代已经结束,所以我猜想它们是从DHT提取数据的。我写了一个简单的DHT刮板,但是查询服务器的速度很慢-TPB是否有自己嗅探的DHT节点?他们是否验证对等方是否确实有数据? 解决方案 我不是TPB(或任何其他洪流索引站点)的工作人员并且没有确切的信息,但是我最大的猜测是,他们经常从(工作)跟踪器中获取完全刮擦,该跟踪器位于现场。
..
为什么 Kademlia分布式哈希表使用UDP作为其网络传输协议,即使它是不可靠? 解决方案 主要原因是您快速查询了许多以前从未建立过联系的节点,并且在查找过程中可能再也看不到. Kademlia查找是迭代的,即不会转发请求.转发DHT更适合于长期的TCP连接. 即很大一部分流量由网络节点之间的短暂请求和响应交换组成,可能在数以百万计的范围内.快速建立数千个TCP连接的开销将令
..
我正在尝试访问Torrent DHT网络,并且很难确定如何访问DHT中的“入口"节点. 如何在Bittorent客户端中获取DHT "bootstrapped"? 描述可以在端口6881(UDP)上运行的router.bittorrent.com和router.utorrent.com使用几个标准入口节点. AND http://www.bittorrent.org/beps/bep_
..
我正在尝试对DHT服务器进行简单的查询. 我正在尝试制作一个简单的示例来测试对服务器的查询,但是我没有从服务器获得任何形式的响应... 小例子: $socket = fsockopen("udp://router.bittorrent.com", 6881, $errno, $errstr, 3); fwrite($socket, 'p'); $Head = fread($soc
..
我在 bep_0005 页中阅读了DHT协议. 但是,当我发送ping查询或find_node查询时,服务器会显示乱码(都是 router.bittorrent.com:6881 或 dht.transmissionbt.com:6881 ) 这是下面的Java源代码 public String ping(final String id) { System.out
..
我正在努力实现另一个bittorrent客户端,目前正与DHT进行斗争.它是根据此规范 http://www.bittorrent.org/beps/bep_0005.html ,但开始调试它时,我注意到网络上其他节点的响应有所不同. 例如,应该使用find_node返回目标节点信息或8个最近的节点.大多数节点会回复最近的34个节点,通常只有34个节点中的1-3个能够成功回复随后的ping请
..
如果我的洪流中没有任何跟踪程序,并且我刚刚启动了一个痛苦的客户端,所以我还没有同龄人...我怎么知道谁首先要与DHT联系?看来我必须至少知道DHT中的一个节点才能开始...。 解决方案 何时使用BitTorrent客户端连接到DHT,那里有一个寻找对等对象的初始位置。使用原始的BitTorrent客户端,有一个指向bitorrent.com的URL,它将帮助您开始工作。我尝试查找参考,但找
..
kademlia纸讨论了水桶的组织, 简洁和条款. §2.2讨论了一组固定的160个存储桶,每个存储桶覆盖了键空间的固定子集.但是后面的章节将涉及覆盖键空间不同部分的其他拆分和存储桶.不太适合固定列表 组织存储桶的正确方法是什么? 元:由于困惑反映在许多问题中,部分信息分散在许多答案中,因此本问答集旨在提供易于链接的说明 解决方案 混淆源于纸张的不同版本 平面布局
..
我试图了解Kademlia在寻找资源方面的工作方式.现在有很好的描述来构建最接近自身节点的节点树,如何查找节点之间的距离,如何启动过程等.我不了解的是文件infohash如何适合此图片.所有描述都告诉我们如何发挥作用,并构建自己的分布式哈希表部分,但事实并非如此.我们这样做是为了实际找到资源,即具有特定信息哈希值的文件.它是如何存储在此节点树中的?或者有单独的树?查找具有此信息哈希并因此具有文件的
..
我认为最接近的问题。 构造路由表的一种显而易见的方法是简单地维护 a文字表。 Map(XOR,Node) Kademlia讨论了“ Bucket”的用法,这些桶由XOR的最高有效位组织。 “存储桶”的实际用途是什么? 当我们只需将“实际” XOR用作地图中的键时,为什么会搞混“最长前缀”? 显然,地图可能会大2 ^ 160,但是我们可以使用一些试探法来限制地图的大小,而不是实
..