P2P 原理淺述及如何加快 BT 下載的速度
星期二, 十二月 26th, 2006我想應該很多人都對這個主題很有興趣。
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 [...]
