由於DHT包含多種存儲模式,由於學習須要,這裏暫時只講解chord,這個也是相對比較簡單的node
首先使用的hash格式數據<key,value>學習
key是關鍵字,用來做爲尋找節點,即經過K=hash(key),而後查找K來找出存儲節點信息表blog
value是包含了數據存儲的具體節點信息,例如IP等hash
接下來是看是如何查找的:im
一、有如下節點N1,N8,N14,N21,N32,N38,N42,N48,N51,N56,每一個節點都存有一張大小爲8的finger表,前面三個指向附近節點,後面指向遠處節點d3
二、咱們要查找K54(即K=hash(key)=54)數據
三、初始查找節點爲N8img
四、記住,節點查找規則是由遠及近,首先對於newnode=N8+32---->42節點,符合8<newnode<54,因此跳到當前節點,繼續查找(注,這裏的大小符號僅僅指範圍,並不是真的只是數字大小)co
五、newnode=N42+32----->14,顯然不符合42<newnode<54,繼續newnode=N42+16----->1,依舊不符合,再繼續newnode=N42+8---->51,符合,調到51節點繼續查找d3
六、最終發如今N51節點到N56節點之間,因此節點信息在N56查找到Value,再經過value上的信息直接找到數據存儲的物理位置。
關於刪增節點
最重要的是維護好後繼節點,與前序節點
這裏暫不詳述。