#11 : 2004-11-23 02:25 AM
只看本作者
|
送花
(8)
送出中...
|
|
|
引用: brodigit寫到:
WebCache是一種讓騾子上傳經過proxy(代理伺服器)的技術,這個跟瀏覽器可以設定的proxy是同一個東東,基本原理也一樣:客戶端經過proxy要求資料,proxy抓取你要的檔案並且留下副本,下次有別的客戶端要求相同資料時便可以直接從proxy下載。
好像一樣阿?
讓驢子的hash檔也能使用proxy的cache功能?
不一樣啦
我不玩驢子了, 所以沒興致去仔細研究
但是從技術上去思考這件事情, 他應該是這樣的:
一般連線用的proxy, 對browser 而言會有效, 因為proxy 知道HTTP protocol, 知道HTML 網頁的資訊, 所以, 他也能知道是否其他人就是要那樣東西
而以前驢子的proxy, 他是用來協助驢子連線的, 因為有些單位會有規定沒透過proxy 不能往外連線
webcache 理論上運作模式如同原發文者所描述, 但是, proxy 不可能知道檔案區塊是不是你要的, proxy 又沒有辦法去辨認驢子的protocol, 所以, 理論上, 驢子是把檔案的每一個小區塊"假裝"成一個網頁資訊, 例如利用hash 當成網址的一部分, 同樣的, 接收的一端也需要知道怎樣產生那個hash 網址, 然後用那個hash 網址透過proxy 抓資料, 這時候, proxy 發現是一個HTTP 的request, 就會把資料當作網頁一般的處理, 將"網頁"資料cache 在server 裏面, 當有其他人也需要該份資料時, 就不需要找原供應者, 而從cache 裏面把資料直接扔給想抓的人.
這個架構其實頂好玩的, 不知道哪個作者想出來的妙招, 確實值得喝采, 因為, 如果大家都經過proxy 來玩, 那上傳者只需要上傳一次, 所有經過該proxy 的人, 都能直接從proxy 取得資料, 如此, 可以避開上傳者頻寬不足的窘境, 然後大家都可以下載的粉過癮, 因為, 都是直接找ISP 要資料而已. 當然, 這時候proxy server 是不是你的ISP 提供的, 就會很重要, 如果你是hinet 用戶, 卻跑去跟大家擠seednet 的proxy, 其實, 你的速度會受影響的, 但是, 還是會比直接從上傳者那兒抓資料快才對. so, 其實不一定要擠同一個proxy, 而是要幾個同ISP 的, 一起掛上ISP 的proxy, 才能達到最高效率.
這個架構底下, 有個可能潛在的漏洞跟風險
1. 如果某個人的壞資料上傳後被proxy cache 住了, 凡是企圖從該人抓檔案的人, 永遠都會抓到壞資料, 除非關閉webcache 功能 @_@
2. ISP 會不會針對此偽裝HTTP protocol 的方式進行攔截 (理由在後面)
3. 因為要讓proxy server 能夠辨認, 要有網址, 而網址應該是由上傳者的IP+區塊Hash 組成, 所以, 一堆人時, 可能對ISP proxy 造成極大困擾外 (要記住, 同樣的東西, 很多人都造假了一份放在proxy 裏面, 因為IP 不同, proxy server 不知道是一樣的東西), 如果沒有連接到同一個上傳者, 其實還是沒有用, 除非驢子有增加把上次從proxy 那兒抓來的東西的資訊傳出去的protocol, 否則, 一堆造假資料, 會嚴重破壞proxy 的效能, ISP 應該是會翻臉的 ^^"
anyway, 我沒有去研究驢子的東西, 不知道他是否可以確保一份上傳至proxy 的資料, 可以被所有人都分享得到, 理論上, 聰明的作者應該有想到才對啦, 實際上, 因為驢子用戶實在太多了, so, 總是有可能失控的, 呵呵
不過, 這個方法真的粉妙, 實在應該給想出來的作者強力喝采一下
Acute.
[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
|