P2P(对等网络)、 PT 下载与 BT 下载
0. P2P 對等網絡
我的理解是對等網絡中的主機之間不存在誰為服務器,誰為客戶端的問題。彼此在網絡在網絡中的地位是相同的,也即互為服務器和客戶機。
對等網絡,即對等計算機網絡,是一種在對等者(Peer)之間分配任務和工作負載的分布式應用架構,是對等計算模型在應用層形成的一種組網或網絡形式?!癙eer”在英語里有“對等者、伙伴、對端”的意義。因此,從字面上,P2P 可以理解為對等計算或對等網絡。國內一些媒體將P2P翻譯成“點對點”或者“端對端”,學術界則統一稱為對等網絡(Peer-to-peer networking)或對等計算(Peer-to-peer computing),其可以定義為:網絡的參與者共享他們所擁有的一部分硬件資源(處理能力、存儲能力、網絡連接能力、打印機等),這些共享資源通過網絡提供服務和內容,能被其它對等節點(Peer)直接訪問而無需經過中間實體。在此網絡中的參與者既是資源、服務和內容的提供者(Server),又是資源、服務和內容的獲取者(Client)。
在 P2P 網絡環境中,彼此連接的多臺計算機之間都處于對等的地位,各臺計算機有相同的功能,無主從之分,一臺計算機既可作為服務器,設定共享資源供網絡中其他計算機所使用,又可以作為工作站,整個網絡一般來說不依賴專用的集中服務器,也沒有專用的工作站。網絡中的每一臺計算機既能充當網絡服務的請求者,又對其它計算機的請求做出響應,提供資源、服務和內容。通常這些資源和服務包括:信息的共享和交換、計算資源(如 CPU 計算能力共享)、存儲共享(如緩存和磁盤空間的使用)、網絡共享、打印機共享等。
總線型對等網絡示意圖:
1. BT 下載
無論是 BT 還是 PT,還是 FTP,都是一種下載方式,或者學術點的講法,叫文件傳輸。
BT 是一種互聯網上新興的 P2P 傳輸協議(即 BT 是一種特殊的 P2P),BT 下載通過一個 P2P 下載軟件(點對點下載軟件)來實現,克服了傳統下載方式的局限性,具有下載的人越多,文件下載速度就越快的特點。其好處是不需要資源發布者擁有高性能服務器就能迅速有效地把發布的資源傳向其他的 BT 客戶軟件使用者,而且大多數的 BT 軟件都是免費的。
1.1 傳統方式
在傳統下載方式中,一般是把文件由服務器端傳送到客戶端,例如 FTP,HTTP,PUB 等等。由于是從一臺服務器下載,服務器所提供的帶寬是一定的,因而下載人越多速度越慢。但是這樣就出現了一個問題,隨著用戶的增多,對帶寬的要求也隨之增多,用戶過多就會造成瓶頸,而且搞不好還會把服務器掛掉,所以很多的服務器會都有用戶人數的限制,下載速度的限制,這樣就給用戶造成了諸多的不便。
1.2 BT 方式
與傳統下載不同,用 BT 下載反而是用戶越多,下載越快,這是因為 BT 用的是一種傳銷的方式來達到共享的。
BT 首先在上傳端把一個文件分成了 Z 個部分,甲在服務器隨機下載了第 N 個部分,乙在服務器隨機下載了第 M 個部分,這樣甲的 BT 就會根據情況到乙的電腦上去下載乙已經下載好的 M 部分,乙的 BT 就會根據情況到甲的電腦上去下載甲已經下載好的 N 部分,這樣就不但減輕了服務器端的負荷,也加快了用戶方(甲乙)的下載速度,效率也提高了,更同樣減少了地域之間的限制。比如說丙要連到服務器去下載的話可能才幾K,但是要是到甲和乙的電腦上去下載就快得多了。所以說用的人越多,下載的人越多,大家也就越快,BT 的優越性就在這里。而且,在你下載的同時,你也在上傳(別人從你的電腦上下載那個文件的某個部分),所以說在享受別人提供的下載的同時,你也在貢獻。
與 BT 下載相比,普通下載原理圖普通的 HTTP/FTP 下載使用 TCP/IP 協議,BitTorrent 協議是架構于 TCP/IP 協議之上的一個 P2P文件傳輸協議,處于 TCP/IP 結構的應用層。BitTorrent 協議本身也包含了很多具體的內容協議和擴展協議,并在不斷擴充中。根據 BitTorrent 協議,文件發布者發布的文件生成提供一個 .torrent 文件,即種子文件,簡稱為“種子”。
torrent 文件本質上是文本文件,包含:
- Tracker 信息, BT 下載中需要用到的 Tracker 服務器的地址和針對Tracker 服務器的設置
- 文件信息兩部分。
文件信息是根據對目標文件的計算生成的,計算結果根據 BitTorrent 協議內的 B 編碼規則進行編碼。它的主要原理是需要把提供下載的文件虛擬分成大小相等的塊,塊大小必須為2k的整數次方(由于是虛擬分塊,硬盤上并不產生各個塊文件),并把每個塊的索引信息和 Hash 驗證碼寫入.torrent文件中;所以,.torrent文件就是被下載文件的“索引”。下載者要下載文件內容,需要先得到相應的.torrent文件,然后使用 BT 客戶端軟件進行下載。
BT 客戶軟軟件:
- uTorrent(Windows):現在uTorrent由BitTorrent公司所有(不要和BT協議混淆)。
- Deluge(所有平臺):跨平臺 uTorrent
- Transmission(Mac OS X/*nix)
下載時,BT客戶端首先解析.torrent文件得到Tracker地址,然后連接Tracker服務器。Tracker服務器回應下載者的請求,提供給下載者其他下載者(包括發布者)的 IP。下載者再連接其他下載者,根據 .torrent 文件,兩者分別告知對方自己已經有的塊,然后交換彼此的數據。此時不需要其他服務器參與,分散了單個線路上的數據流量,因此減輕了服務器負擔。
下載者每得到一個塊,需要算出下載塊的 Hash 驗證碼與 .torrent 文件中的對比,如果一樣則說明塊正確,不一樣則需要重新下載這個塊。這種規定是為了解決下載內容準確性的問題。
而有些人下載完成后關掉下載任務,提供較少量數據給其他用戶,為盡量避免這種行為,在非官方BitTorrent協議中存在超級種子的算法。這種算法允許文件發布者分幾步發布文件,發布者不需要一次提供文件所有內容,而是慢慢開放的下載內容的比例,延長下載時間。此時,速度快的人由于未下載完必須提供給他人數據,速度慢的人有更多機會得到數據。由此往往造成用戶卡在任務的99%,下載1G的任務要上傳3G之多。
2. PT 下載
PT(Private Tracker)下載其實是原理類似 BT(BitTorrent,比特流) 下載的一種,但有兩個明顯的改進:
- 一是私密的小范圍下載;
- 二是進行流量統計,根據下載量決定你的權限。
總結
以上是生活随笔為你收集整理的P2P(对等网络)、 PT 下载与 BT 下载的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: activiti 设置可选处理人_新品速
- 下一篇: linux火狐浏览器49.0安装教程,火