作者klb0905 (klb)
看板P2PSoftWare
標題Re: [騾子] 乾脆廢了ED2K...
時間Mon Sep 24 14:38:37 2007
※ 引述《sarsman (錢全輸光了...)》之銘言:
: 現在,騾子已經沒有真正能保證安全、可靠的伺服器
: 大家為了一個新的安全伺服器不斷的討論、尋找
: 可是,又找到一個安全的伺服器又怎樣?
: 這個伺服器能夠永永遠遠的經營下去嗎?
: DS已經是一個最好的例子
: 再好的伺服器總有一天也會被抄
: 我認為emule官方應該要稱這個時候把心力放在KAD,把KAD網路做的更加完善
: 最後讓騾子變成一個純KAD的P2P軟體
: 小弟第一次發表感想,請不要鞭太大力
我不知道eMule的KAD實作
我只就我所了解的理論討論一下
KAD這個架構有它先天的問題
他也算是DHT的一種變化
如果要拿來做keyword search
1.keyword index會分散到各peer上
2.相同keyword的index會交給同一個peer
3.儲存相似關鍵字的peer,在DHT網路上不會在附近
這導致想做更有彈性的關鍵字搜尋非常困難
所以不太可能會有萬用字元的功能可用......
以下是較詳細的描述,懶得看的人可以跳過
先說明3,以KAD來看,它的hash function是用SHA-1
原則上,兩個相似的關鍵字,所取得的key會相差很大
所以若我們打"Car","car","cars","CAR"...,etc.
會各取得截然不同的key
根據key,DHT網路會找到一個peer
所以原則上,雖然是不同peer,但它們會根據同樣的關鍵字找到相同的peer
因此,當一個peer加入DHT網路,會將自己擁有的檔案資訊
根據不同的keyword,交給不同的peer管理index
這樣其他peer就可以進行keyword search.....
因為DHT的topology是根據各自的algorithm決定
所以即使非常類似的關鍵字,通常負責管理index的peer也相隔非常遠
那問題就是,如果user想進行keyword search
他必須使用非常精準的keyword
例如:輸入"car"找不到"cars","Car",...,etc.等資訊
有方法可以簡單的處理掉這個問題
判斷單字時態或單複數,強制做成某種型態使用
一律轉成大寫或小寫處理
但萬用字元就不同了
一個user如果輸入"cos*",它要怎麼做?
我能想到的有兩種方法:
1.由application自己想辦法透過字典檔
自動把"cos*"轉成"coser","cosplay",...,etc.
不過想找的字不見得在字典檔裡
另外,這樣做"極度"沒有效率
2.再建一個overlay network(類似freenet或gnutella)
根據keyword類似程度相連
使用萬用字元時就用這個overlay network搜尋
不過這種頭痛醫頭腳痛醫腳的方式不但沒效率,還非常蠢
但很明顯的,上述兩個方法都只是硬在這個架構下解決問題
效率跟效果恐怕都好不到那去
DHT的很多問題可以慢慢改善
關鍵字搜尋效果可以越來越好
效率我相信也會越來越好
可是我也相信,萬用字元應該不太可能加入
勉強加入的效果,效率恐怕也不會太好
中文或日文,eMule有時斷字做的有點兩光的情況下
有時必須得用萬用字元的方式才找的到檔案
Server還是有它不可取代的好處.......
--
講的很亂.....
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.105.201.166
推 kira925:不是DHT學KAD嗎? 印象中是先有kad然後bt軟體商開發dht的 09/24 14:40
推 sarsman:jyhfang大之前打了一篇文章,在10492篇,裡面有講到KAD的 09/24 14:46
→ sarsman:一些知識,我覺得對於KAD的推廣很有用 09/24 14:47
推 amateratha:話說之前那篇還沒被M.... 09/24 17:37
→ sarsman:M吧!版主呢? 09/24 17:52