![Kazaa 或 Limewire 等较旧的 P2P 程序中的网络如何工作?](https://linux22.com/image/1552555/Kazaa%20%E6%88%96%20Limewire%20%E7%AD%89%E8%BE%83%E6%97%A7%E7%9A%84%20P2P%20%E7%A8%8B%E5%BA%8F%E4%B8%AD%E7%9A%84%E7%BD%91%E7%BB%9C%E5%A6%82%E4%BD%95%E5%B7%A5%E4%BD%9C%EF%BC%9F.png)
我特别感兴趣的是节点如何查询其他节点的搜索结果。
我原本以为该节点会向网络上的所有其他节点发送多播消息。但除了给网络带来巨大压力之外,情况也不可能如此,因为网络上所有节点之间的每个路由器都需要配置为使用多播,这最多只能提供非常糟糕的用户体验。
我能想到的唯一其他方法是有一个中央服务器来跟踪每个节点。节点将通过向中央服务器发送其文件列表来加入网络。所有查询实际上都是节点查询该中央服务器。
虽然后续的文件共享遵循 P2P 模型,但查询网络在我看来更像是客户端/服务器模型。
这是实际发生的情况吗?如果不是,那么当节点查询网络时究竟发生了什么?