p2psearcher 中文文档 下载 App

ED2K 和 DHT 两个网络有什么区别

ED2K(电驴)网络

ED2K 是 eDonkey 协议的第二代,典型的"服务器-客户端"架构。

工作方式

  1. 客户端先连接一台 ED2K 服务器
  2. 向服务器发送关键词查询
  3. 服务器返回匹配的文件(服务器维护了一份索引)
  4. 服务器告诉客户端哪些节点正在共享这个文件
  5. 客户端直接从这些节点下载

优点

痛点

DHT(分布式哈希表 / KAD)网络

DHT 没有中心服务器,每个客户端同时是服务器和节点,通过一个分布式哈希表来定位资源。

工作方式

  1. 客户端先接入 KAD 引导节点
  2. 每个节点有一个唯一的节点 ID
  3. 搜索关键词被哈希成一个 ID,找"最接近这个 ID"的节点
  4. 那个节点再找"更接近"的节点,形成一个链
  5. 最终找到持有匹配文件的节点,结果直接回传

优点

痛点

P2PSearcher 为什么要同时用两个网络

简单说:ED2K 搜得准,DHT 搜得广。

两个网络的活跃节点集合有重叠但不相同,同时搜就能拿到合并后的结果集。在运营商屏蔽 ED2K 服务器的场景下,DHT 网络通常还能正常工作,这就是穿透模式能解决大部分"搜不到"问题的原因。反过来,在 DHT 网络抖动的时候,ED2K 服务器能兜底。

云播界面
P2PSearcher 主界面,两个网络状态都在面板上显示

在软件里怎么看两个网络的状态

P2PSearcher 主界面底部或侧边会分别显示 ED2K 和 DHT 的连接状态。正常情况下,两个网络都应该能连上——ED2K 显示"已连接 N 台服务器",DHT 显示"已发现 M 个节点"。如果只有一个连得上,另一个挂了但还能用;两个都挂才是真的需要排查。