Re: [問題]DHT的一些問題
※ 引述《bedocument (劍魂痴)》之銘言:
: 簡單的說 , 一般bt抓檔案的方法是 , 種子裡紀錄tracker , 開啟bt的時候連接上
: tracker , 之後再找到有哪些IP有這個檔案然後再從這些peer抓取檔案
: 如果是用DHT的方式 , 從維基的解釋 , 就是不需要先連到tracker就可以找到peer
: 然後下載檔案 , 那這樣的話它是靠什麼方法找到這些有檔案的peer , 這點讓我很疑惑
: 還有就是現在我們學校有檔bt , 應該是阻擋種子連接上tracker , 因為同樣一個種子
: 在家裡用中華電信就抓得很開心 , 學校一動也不動 , 但是如果把家裡的bt軟體資料夾
: (我用bitcomet)放到學校裡面抓 , 就可以抓檔案了(不過要勾選DHT) , 我猜應該是軟體
: 裡面已經有紀錄了peer所以才可以抓的
正解
BitComet\rules\dhtnodes.dat 就是記錄
: 以上上說了這麼多 , 我只是想知道DHT到底是靠什麼找到擁有檔案的peer的?
簡單版答案:
就是"問"啊!
一問十,十問百,一層層接力問下去總會問到擁有該檔案的那個node
進階版答案:
舉個例子概略說明DHT的原理
首先規定:
* 定義一個式子,每個檔案可由這個算式得出一個值,這裡稱它為key
假設其值的可能範圍為1~100
* 每個用戶都有一個ID,是由P2P軟體以隨機方式幫你產生,
其值的可能範圍與key一樣,為1~100
- 現在假設我的ID值是50,且其他所有用戶的ID都互不重覆,
同時所有同戶剛好都在線上 -
在我的電腦上維護兩份記錄表: A表與B表
1. A表用來記錄其他用戶的IP位址,其ID值差我越多的用戶我就記少一點
於是我記錄了以下ID值的用戶:
5, 15, 25, 35, 45~55, 65, 75, 85, 95
2. 當我遇到某用戶他有擁有某個檔案,其key值跟我的ID值很接近,我就記錄起來
例如我遇到用戶a有一個檔案,其key值為51
於是我就在B表上記錄: 用戶a有key值為51的檔
只要每個用戶都照上述規則來玩,就可達成下列條件:
* 每個用戶都只需記錄一點點資料,即可以輕易的藉此找到任何一個用戶與檔案
* 如果我想要抓某檔案,只要找出檔案的key值,再去問ID值跟這個key很接近
的那幾個用戶,他們只要查一下B表就可以馬上告訴我誰有這個檔案
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.169.2.101
※ 編輯: serate 來自: 218.169.2.101 (11/06 09:39)
推
11/06 09:53, , 1F
11/06 09:53, 1F
推
11/06 12:12, , 2F
11/06 12:12, 2F
討論串 (同標題文章)