DHT--Distributed Hash Table

DHT(Distributed Hash Table,分布式哈希表)类似Tracker的根据种子特征码返回种子信息的网络。DHT全称叫分布式哈希表(Distributed Hash Table),是一种分布式存储方法。在不需要服务器的情况下,每个客户端负责一个小范围的路由,并负责存储一小部分数据,从而实现整个DHT网络的寻址和存储。新版BitComet允许同行连接DHT网络和Tracker,也就是说在完全不连上Tracker服务器的情况下,也可以很好的下载,因为它可以在DHT网络中寻找下载同一文件的其他用户。


哈希表把所有的东西都存储在一台机器上,当这台机器坏掉了之后,所存储的东西就全部消失了。分布式哈希表可以把一整张哈希表分成若干个不同的部分,分别存储在不同的机器上,这样就降低了数据全部被损坏的风险。


分布式哈希表通常采用一致性哈希函数来对机器和数据进行统一运算。这里先不用深究一致性哈希究竟是什么,只需要知道它是对机器(通常是其IP地址)和数据(通常是其KEY值)进行统一的运算,把他们全都映射到一个地址空间中。假设有一个一致性哈希函数可以把一个值映射到32bit的地址空间中,从0一直到2^32 – 1。我们用一个圆环来表示这个地址空间。


假设有N台机器,那么hash()就会把这N台机器映射到这个环的N个地方。然后我们把整个地址空间进行一下划分,使每台机器控制一个范围的地址空间。这样,当我们向这个系统中添加数据的时候,首先使用hash()函数计算一下这个数据的index,然后找出它所对应的地址在环中属于哪个地址范围,我们就可以把这个数据放到相应的机器上。这样,就把一个哈希表分布到了不同的机器上。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值