首先是160 bit的node id 和 infohash id 。
其次,把这160bit 表示的空间分成160个表(bucket),每个表K 个节点。(当节点个数不多时,未必需要160个表)
表的数学表示方法如下链接可以看到(博客贴图太麻烦)。
%3A%28f2fb4ca28a828cc1ece3368df1a9e377%29&filter=sc_long_sign&tn=SE_xueshusource_2kduw22v&sc_vurl=http%3A%2F%2F%2Fp-742376902.html&ie=utf-8&sc_us=5817970001667367562
%3A%28add8f723afca44eb20c21aec132f724a%29&filter=sc_long_sign&tn=SE_xueshusource_2kduw22v&sc_vurl=http%3A%2F%2F%2Fp-447470039.html&ie=utf-8&sc_us=14576433273426385911
第三,按照表的表示方法,我们可以把它的拓扑结构画出来,其实是一个二叉查找树。
第四,二叉查找树的所有性质这个算法都可以利用到了。如果有N个节点,最多只需要查找logN次即可找到我们要的数据。
参考链接:
红黑树,二叉查找树:
%3A%28ba40987204c2ae7af1e00ec350af5ac4%29&filter=sc_long_sign&tn=SE_xueshusource_2kduw22v&sc_vurl=http%3A%2F%2F%2Fp-1434493663.html&ie=utf-8&sc_us=9878409105384907908
阅读(2858) | 评论(0) | 转发(0) |