最近在看Kademlia的協議原理,我對裡面的內容一知半解,其中乙個就是,為什麼乙個節點知道另外乙個節點的ID,卻不知到IP和port?這個ID是怎麼得到的?還有就是,為什麼要找這個ID呢?

時間 2021-06-02 07:40:33

1樓:李陶冶

Kad主要是這樣的,它既可以用來找節點,也可以用來找內容。

用來找節點的方式大概是這樣:A節點希望找到B節點,那麼A需要知道B的ID。在已知ID的情況下,A向周圍的節點打聽,你們誰知道B的情況?

但向誰問這本身是一門學問,如果盲目的亂問,效率就會比較低,因此A應當從周圍節點中選出乙個離B最近的來問,我們叫他A1。如果A1知道B,那麼他告訴A,B的IP和Port是啥!當然更多情況下是A1也不知道B,那麼A1再從他周圍選出乙個離B最近的A2(A2離B需要比A1離B更近),把A2的IP和Port告訴A,這意思就是A2是我乙個可靠的哥們,他比我清楚,有什麼問題你直接問他。

於是A2也成了A周圍的節點,然後又回到上面的步驟,以此類推直到找到B為止。當然這個迭代過程可能會收斂的很慢,碰上極端情況都是單線聯絡,找個幾萬次也是有可能的,為了避免這樣的問題,每個節點都需要保留一些可以讓這個迭代快速收斂的節點,也就是說離他遠和離他近的節點都要留一些,兩個節點的每一次通訊有些類似盤道,互相說我還認識誰誰誰呢......然後各自拿個小本記下來,以備以後用的上。

找內容同找節點類似,內容通過計算Hash同樣得到乙個ID,然後找到離這個ID最近的真實節點,這個節點上儲存著內容的索引(也就是說都誰有這個內容,他們的IP和Port)。

可以推薦一下最近在看的動漫嗎

徐子虔 安達與島村 真百合但很清水,人物心理刻畫很細膩 點兔 輕百,日常番純度很高 輝夜大小姐想讓我告白 校園戀愛番 輕音少女 輕百,輕音部日常吃茶點,滑稽 白箱 講述動畫製作 冰果 校園日常推理番 中二病也要談戀愛 是的!人的一生都活在中二病裡!五等分 黨爭番 新番的話vivy和影宅聽說都不錯,準...

你最近在看什麼電視劇集呢?

sophia 最近又刷 亮劍 電視劇集和書同步在看電視劇集對李雲龍結婚後的部隊生活描寫較少,書中還是有不少內容可看的,包括蘇聯特種專家對李雲龍部隊的訓練,田雨給老李的幾次來信,內容都很精彩。之所以又開始刷亮劍,一是想通過這部劇找到抗日,解放戰爭,抗美援朝戰爭的時間脈絡。二是國企的工作壓抑 人浮於事,...

你最近在看哪一部漫畫?

HHWY 我最近在看神之塔 可能剛開始看畫風一般,但後面是相當好的,而且這絲毫沒有套路的故事情節,以及裡面巨集大的世界觀,我個人強烈推薦,好有個建議是等一季完結了再看,不然會看的難受。 Yung 噬謊者老實說,我也沒想過我會推薦這部,畢竟封面勸退動漫之家封面 這個封面的光暗很奇怪,很醜,但是他的故事...