P2P下載工作原理簡要解釋


朋友給了一個BT的種子,查后得知就是視頻的下載鏈接,於是質問朋友:“為什么不給我視頻,而給種子。”朋友無語,仿佛對待外星生物一樣看待我,於是心有不甘,趕忙查清為什?摘錄如下,與大家分享:

大家,都用過bt吧。現在bt可以說是繼局域網、ftp、http之后最廣泛使用的文件分享和傳播途徑,可以說已經融入了廣大網民的生活中。bt,全稱BitTorrent,是一種P2P下載方式。常見的P2P除了bt就是emule(俗稱電騾,當然也有人叫電驢的--,區別見: http://www.quanyo.com/zt/emule/618.shtml)。

為什么P2P可以在如此短的時間內風靡世界呢,這里就要從它的原理說起,在介紹P2P的原理之前,有必要先解釋下傳統的http下載。

傳統的http下載是從服務器(sever)上直接復制數據給客戶端(PC),這種傳輸的快慢有帶寬的限制。[什么是帶寬?比如你家用的是2M ADSL,那么帶寬就是2M,此處的2M指2Mbps,就是250kb/s(2000/8)。想想你下載的時候達到過帶寬嗎]由於一般服務器連接的客戶端不止一個,服務器的帶寬就會被分享[當然服務器的帶寬比咱家大多了,一般都是光纖;沒有特殊限制的話,服務器的帶寬是等分的。]假設服務器的帶寬是100M,即12500kb/s,有100台客戶端連接,那么每一台分享到的帶寬就是125kb/s,可見客戶端的帶寬沒有完全發揮,為了彌補這種狀況,flashget發明了多線程下載,這里就不深究了。

但是現實中,情況顯然嚴重的多,大型軟件下載站的訪問量有多少大家可以百度百度。網民越來越多,這種情況需要改變。P2P就是在這種情況下誕生的。下面是P2P的示意圖:

 

如圖所示,P2P下載時,服務器(sever)不再擔任以前的http下載中服務器的角色,他只負責將文件的基本信息在客戶端之間中轉,本身並未存放任何文件。P2P軟件將文件被分成若干塊,這里假設為A~Z塊,客戶端可以先下載K段再下載別的,沒有固定的順序,只要等最后文件被“填滿”就完成了。這樣的好處就是,http下載中宕機了你就下不全了(雖然也有斷點續傳,不過現在隨機地址越來越多了--+),使用P2P你就完全不必擔心這一點,即使你沒有M段,只要等有M段的人傳給你就行了,而且在別人傳給你的同時,你也在將自己完成的部分分享給沒有此區塊的人,這樣就是分享。當然單組客戶端之間的傳送速度是非常慢的,但是連接的用戶數越多,理論上一台客戶端連接的用戶數就可以增多,下載速度就這樣提起來了,既充分利用了帶寬又保證了完整性。

下面是補充部分了:

1.在P2P傳輸中有“種子”這種說法。所謂的“種子”,就是指那些已經將文件下載完成的人,他們擁有全部的區塊。發布資源的人自己就是一個最原始的種子,最先連接的客戶端得到的塊都是從他這邊來的,直到新的種子出現。當種子消失時會發生兩種情況,一是缺少區塊,剩下的客戶端最多下載到完全相同的進度;另一種就是區塊正好完整,只不過分布在不同的客戶端上而已,這樣下去就會有人下載完,成為種子。所以,種子可是很重要的,大家如果下載完了一定要自覺做種,這是P2P世界默認的准則。

2.有關上傳。在連接數能保證的情況下,下載的速度就要看你的帶寬了。但是,如果你限制上傳,你的下載速度可是會受到影響的哦。一般可以使用軟件自動檢測下可用上傳/下載速度,然后將稍稍限制一下上傳,這樣在下載同時瀏覽網頁也不會太卡。

3.有關內網與外網、ICS、upnp、端口映射等等請參考:http://bbs.btchina.net/showthread.php?s=48fde9c000f98be54974c9538ee9a2fa&threadid=459806 這里不贅述了。

4.目前常用的P2P軟件:

正宗型:Bitcomet、Bitspirit、utorrent、BitTorrent Plus! II、Emule

邊看邊下型:Funshion、ToToLook、Blin

新興加入型:迅雷、flashget

 

轉自:http://blog.chinaunix.net/uid-20446794-id-1677434.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM