一個小實驗: Coralized Web Proxy

作者:   發佈於: ,更新於:   #proxy

前幾天突發奇想,在 Twitter 上問了這麼一句:

Wonder if there's any p2p-based web caching proxy implementation.

直接 google 「p2p-based web caching proxy implementation」這個字串的話,找到的都是論文,這一點讓我很感興趣。

而後 gslin 立刻點出也許 CoralCDN 是一種。後來想想十分正確。CoralCDN 骨子裡確實是以 P2P 的方式散佈檔案(雖然僅為伺服器之間的 p2p),並且在各節點都有 content cache。於是我花了 30 分鐘寫了一個小 proxy。程式碼如後:

需安裝 CPAN 的 HTTP::Proxy 模組。執行後的 proxy 網址是本機 3128 port,也就是 http://localhost:3128/。

正如 gslin 指出的, p2p 傳檔案本來就不會比較快,不過我自已試用了兩天,發現了以下的特點:

後兩點的症頭基本上跟用 Tor 當 proxy 伺服器完全相同。這其實也可以預期,因為另一終端的節點,也就是實際連到目標網站的節點,時常變化的關系。但我認為有以下的不同之處:

也就是說,雖然都是 p2p 架構,但 Tor 的優化方向是將連線「匿名化」,而 CoralCDN 則是優先找到已經有資料的節點。因此後者的償還效果會逐漸變好,會愈用愈順。

不過這樣的 proxy 實際上倒底有什麼用效益呢,其實並不明顯。除了這個架構免費、差不多是等於 open proxy、速度也還可以接受之外,目前想不到什麼實際的好處。