《高等计算机网络:体系结构、协议机制、算法设计与路由器技术(第2版)》
Chord原理
Chord是实现有结构的Overlay网络的一种实现方法,除Chord之外,还有CAN、Pastry、Taperstry等
Chord实现了这样一种操作:给定一个关键字(key),将key映射到某个节点。
相容哈希与Chord
Chord采用了相容哈希(Consistent Hashing)的一种变体,为节点分配关键字。在Chord中,节点并不需要知道所有其他节点的信息,每个Chord节点只需要知道关于其他节点的少量的“路由”信息。在由N个节点组成的网络中,每个节点只需要维护其他O(logN)个节点的信息,同样,每次查找只需要O(logN)条消息。当节点加入或者离开网络时,Chord需要更新路由信息,每次加入活着离开需要传递O(log2N)条消息。
相容哈希函数为每个节点和关键字分配m位的标识符,此标识符可以用SHA-1等哈希函数产生。节点的标识符可以通过哈希节点的IP地址产生,而关键字的标识符可以直接哈希此关键字。如IP地址为198.10.10.1的节点经过SHA-1哈希之后得到的标识符为123,而关键字LetItBe哈希之后的关键字为60.标识符长度m必须足够长,这样才能保证两个节点或者关键字哈希到同一个标识符上的概率小到可以忽略不计。
在相容哈希中,每个关键字都保存在它的后继(successor)节点中,后继节点是节点