P2P 原理淺述及如何加快 BT 下載的速度
十二月 26th, 2006 | 9,274 Views |
我想應該很多人都對這個主題很有興趣。
BT (BitTorrents) 其實是個很方便的程式,它採取了共享及分流的概念,讓檔案在網路上的傳播變得既迅速又方便。
傳統的檔案傳播方式大多是 Client-Server 架構 (ex. FTP),這樣的傳播方式,在 Server 端會有大量的頻寬消耗,在以前 Client 端的頻寬普遍不高的時代,這樣的做法並不會有太大的問題。但在現在,Client 端的頻寬普遍都提高了,這樣的傳統架構對 Server 的負擔提高了不少,對於檔案的傳播,也較不具有效率。因而有了 P2P 的傳輸方式的產生。
P2P 的概念是這樣的,在一開始,還是要有個檔案的原始提供者。假設就是 Server 好了(實際上並沒有 Server 這樣的機器存在,改以 Seed 的方式存在於 P2P 網路上)。Server 在提供檔案的時候,會依照一定的規則,將這個檔案細分為若干的小區塊,Client 來要求檔案的時候,則依一定的規則來傳輸這些小區塊出去。到目前為止,這個系統的行為模式與傳統的 Client-Server 架構並沒有太大的不同。
假設現在同時有 5 個 Client 正在下載這些小區塊,Server 會分配不同的區塊分別讓這些 Client 下載。而這些 Clients,在下載區塊的同時,又會將自己己經下載完的小區塊,同時再分享上傳給其他的 Clients。也就是說,除了從 Server 下載的之外,所有的 Clients 之間還會彼此交換自己所擁有的區塊,大大的加速了完成下載的時間。
舉個例子來說,假設今天我們的 Server 可以提供 20Mbps 的頻寬,且提供了 4GBytes 的檔案供下載,以傳統的 Client-Server 架構要分享檔檔案的話,若有 4 個 Client 要同時下載檔案,這 4 個 Client 的頻寬都是 10M 的頻寬的話,全部下載完約需要 6500 秒。
若改為 P2P 的方式,4個 Clients 除了同時由 Server 端下載的 5Mbps 頻寬之外,自己也會同時上傳自己所有的部份給其他的 Clients。每個 Clients 約可分得 1.5Mbps。整個加總起來,在最佳的狀態下,所有的 Clients 都可以用接近 10Mbps 的速度下載,全部下載完只需耗時 3300秒。
這樣的架構對 Server及 Client來說,都能做有效的頻寬利用。但是對於 ISP 業者來說,這就變成了大大的惡夢了。P2P的流量會對骨幹造成較大的負擔,對 ISP 來說,成本也會跟著增加。因此,現在有些 ISP就針對了 BT等的 P2P 流量進行了管制,而使得現在的 P2P 速度越來越慢。
為了解決糟到 ISP 限制流量的困境,BT軟體也發展出了加密的功能來反制 ISP 的限制。透過加密的功能, ISP 就沒辦法輕易的辨識 P2P 的 Traffic (還是有辦法的,只是比較難),自然就不會受到限制了。
現在支援加密的 BT Clients 有以下這些,可以選用看看:
下面這張圖是 uTorrent 開啟加密的示範(點圖可放大觀看)。其他軟體可以照樣打開,應對下載速度有幫助。

The P2P 原理淺述及如何加快 BT 下載的速度 by 連小峰, unless otherwise expressly stated, is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 2.5 Taiwan License.

