更新时间:2021-12-10 23:13
在Kad网络中,每个节点只负责处理一小部分搜索和查找源的工作。分配这些工作的时候,通过我们每个用户端的唯一的ID和搜索文件的Hash值之间的匹配来决定。
用户可以进行简单的理解:在Kad网络的世界里,用户可以直接问其他用户“你有没有我要的文件”,如果有,就会进行文件传输,如果没有,就会告之哪个用户有或者可能有,直到文件传输完毕。
与ED2K网络的不同在于,KAD网络让用户省去了从服务器寻找用户源的步骤,可以直接找寻到合适的用户源,进行文件传输。
KAD端口则是用来进行KAD节点间沟通的端口。
目前实际上只有3个客户端程序支持Kad 网络。在国内最主要的体现是eMule下载,其余的软件为aMule 以及 MLDonkey 。
Kad(Kademlia)是一种分散式(decentralized)的P2P通信协议,是将所有的用户连成一个网络,不通过服务器,从而直接进行搜索资源和来源的操作。可以减低服务器的负担。
kad 网络是一种根本不需要服务器的架构,每个emule客户端负责处理一小部分search和source finding的工作。分配工作的原理是基于客户端的唯一id和search或者source的hash之间的匹配来决定。比如说XXX.avi这个文件 由用户a来负责,则任何用户共享这个文件的时候都会告诉用户a我有这个文件,其他用户去下载这个文件的时候也会询问a,a告诉他们谁有这个文件, source finding就完成了。至于如何找到用户a则是通过一种将用户id异或的方式,两个id的二进制异或值决定他们之间的逻辑距离,比如1100距离 1101要比距离1001近。当一个用户加入kad网络后,首先通过一个已知的用户找到一批用户的id和port。当此用户a要寻找某特定用户x时,a先询问几个已知的逻辑距离x较近的用户,如x1,x2,x3会告诉a他们知道的更加近的用户的id和port,依次类推,a最终就能找到x。