誰能徹底清除地把P2P下載的原理講清楚?

不要網上能查到的爛大街的說法!

請解答我心裡的疑惑。

關於網上能查到的資料,我感覺是說不通的。

所謂的你下載的同時,也在上傳給別人下載。我覺得僅靠這種機制根本做不成下載。

用戶下一個東西可能只要一會會兒時間,下完他就會關閉迅雷。(別說後台有p2p服務還在上傳,有點常識的看到流量一直在跑都會上網查資料,然後學會殺進程吧。)

像我這樣的用戶還會限制上傳速度。而且我有整理下載後文件的習慣:下載統一在一個目錄下,下完之後移動到各種類型文件的歸類目錄下,又或者用完了就刪除。

這種情況下,p2p服務怎麼把資源上傳?

就算排除了以上種種用戶給p2p造成的阻撓。從概率的角度來講,也不可能保證資源一直有在線用戶接力下載吧(永遠有「正在下載」A資源的人,好給後來的用戶當下載源)。尤其是冷門的資源,怎麼可能恰巧你下載的時候,就有另一個人在給你上傳?

請真正理解這裡面原理的人給我解惑,謝謝。

*********************************************

沒想到這個問題惹來這麼多人噴——遍地都是程序員的知乎,果然了不起。

我從學生時代第一次接觸到電腦,以這種方式使用迅雷到今天,還是第一次意識到這居然還是個道德問題。

原本只是一個純粹探討P2P下載原理的問題,客觀描述了一下我產生這種疑惑的緣由,不涉及到一點炫耀的意思。到了某些程序員的嘴裡,就變成我偷了東西還不知道偷著樂,還要炫出來找罵。

噴吧,噴吧。你們精神得到勝利就好。


不懂該問,弄懂了才能執行「利人利己」的道德規範。

我覺得題主不該挨罵。

我的理解:從宏觀上說P2P的本質是高熱度資源分發,而不是下載。

題主的問題之所以存在,是被「P2P下載」這個概念誤導了。

傳統的下載,資源生產者往往負擔著資源分發者的角色。資源消費者僅僅下載和使用資源。這使得高需求熱門資源分發效率很低,因為資源生產者無力投入過多的伺服器帶寬去滿足所有資源消費者的需求。

在「P2P分發」模式下,資源生產者不必承擔資源分發這的責任。從網路帶寬層面理解,資源分發任務由資源消費者們承擔。在這種「一邊下載一邊上傳」新模式下,高需求的熱門資源分發效率極高。即使某資源消費者在下載完成後立即刪除資源或者斷開網路,並不會導致總體資源分髮帶寬顯著下降。

題主可以理解為「在我開始下載的時候,網路上還有很多人尚未完成下載,於是我的下載帶寬就有了保證」。反過來說,如果題主下載的是冷門資源,那麼純P2P分發模式並不能保證一定能完整下載,也不保證下載速度最快。此時題主就用到了迅雷提額外供的「加速」服務才能彌補P2P分發的不足。


@Benny 說得挺清楚的了,其實我可以再舉例說明一下。P2P本質上和傳統下載的分別不大,就好像你在20年前拿netants或者網際快車這些下載工具下載一樣,本質上就是將文件分成不同大小的數據塊,然後分別接收。而不同的是,netants和網際快車這些工具是從同一個源(即同一個下載地址)下分別接收這些數據塊,而P2P則是從不同的下載此文件的用戶中接收這些數據塊並且你也同時為其它用戶提供這些數據塊。而P2P中的tracker就是用來告訴你你可以連接到哪些用戶獲得數據塊。簡單來說:

傳統下載=一個地址為「http://www.xxxx.xxx/filename」 的地方有一堆磚塊,你僱傭多個工人來搬運這些磚塊

P2P下載=有「http://www.xxxx.xxx/filename/block1」、「http://www.xxxx.xxx/filename/block2」、「http://www.xxxx.xxx/filename/block3」 這麼幾個地址的地方有分成數量不同的數堆磚塊,你派幾組工人去這幾個地方搬磚,你這裡也有其它人要的磚塊,你就讓工人去搬磚的同時把你自己的磚塊也搬過去

再普及一下其它概念,譬如BT裡邊卡種和出種。卡種就是很明顯的一種和傳統下載模式差不多的P2P下載,因為大家都沒有足夠的數據塊組成一個完整的文件,所以擁有完整文件的種子發布者就是唯一的下載源,而當唯一的下載源為了控制下載者的進度讓後邊可以進行同時分發的人數更多的時候,發布者就會控制自己的上傳速度甚至停止上傳讓所有下載者的進度都在差不多的範圍,這樣當全部人完成下載的時候就可以有大量同時上傳的分發者並且完成的人數有一部分退出後也可以保證這個文件可以讓後來的下載者下載完成,自己的任務也就同樣完成了。這就是我們一般玩BT比較常說的卡種和出種。在這種情況下,它就和傳統的下載模式是完全一樣的行為了。


你下載A,別人以前有下載過A的…只要他打開下載軟體就會自動上傳。。或者全盤搜索就能找到上傳。有時候掛著…說不定哪天有人打開了,突然就有速度了。


你自己的描述的問題已經可以做你的回答。

純p2p就是會有你的問題,p2p下載就是概率問題,你下載時候有人給你提供資源給你下載,你就能下載,沒有你就不能下載。

迅雷下載並不是純p2p,他是各種資源都用上,迅雷他這些資源分為很多類,你從界面也看出來了。

自己在自己的電腦上面,用BT軟體給自己做種(新資源,隨便壓縮一個文件進去,你就是全網唯一資源),你同一台電腦,或者區域網進行下載,你看詳情,只有你自己給自己提供資源下載。

從大的角度就是那麼一會事情,自己既可以用目前的BT軟體去實驗,明白其中原理,如果你是開發人員,自己用socket 寫一個簡單的bt協議,也是比較簡單的。多多思考,多多實踐即可。很多疑惑,空想不一定能解決的。


迅雷有自己的資源伺服器

BT靠自覺

PT靠考核

好人一生平安

1024


不過這是pt…你說得極端概率情況當然存在咯 就是死種,0kb的那種


你說得這些問題都是存在的,答案就是……

目前沒法解決,所以才會有所謂死種、吸血驢的說法。

諸如盜版電影之類的基本只能靠自覺,部分公司通過BT做軟體/遊戲的分發,此時他們的目的僅僅是減少帶寬投入,那麼能省一點是一點,省不了就老老實實用自己的伺服器分發,所以這種時候一般這類公司會保證自己的伺服器一直在線做種。

稍微好一點的辦法就是所謂的PT,即配合類似於論壇積分的形式鼓勵做種和上傳。

但是PT實質上是引入了一定的中心化機制,算是一種折中。

理論上可以通過類似於比特幣的形式完成完全去中心化、鼓勵上傳的網路,但是實際開發起來會有很多問題,且並不具有迫切性。

BTW,很討厭題主的語氣,已拉黑。


就是因為有你這種人的存在,才會有死種的產生

p2p講的就是一個分享,如果你下載時限制上傳速度,下完就殺進程,那你不配使用p2p,是的,你不配

突然看到一組圖,趕緊過來編輯一下。。。


是的,只有你下完馬上關掉進程並且限上傳還改文件目錄


迅雷在pt圈裡名聲是很差的,迅雷用戶往往只下載不上傳,也就是所謂吸血。很多對此深惡痛絕的人會屏蔽迅雷的請求。奈何迅雷的地位是無法取代的。用ut下載的時候基本連上的都是國外的用戶。不遠千里來做種,這就是P2P的分享精神。

但依靠自覺不如依靠技術,不知道以後會不會出現類似比特幣的全網驗算上傳量下載量的BT下載。


第一,迅雷不是純粹的p2p。

那種短時間就能下載完成的東西大部分都是由鏈接指向的伺服器直接傳輸的。

第二,p2p也是可以有中央伺服器的。

正在下載的用戶之間分享資源只是減輕中央伺服器壓力的一種方式。當某個資源只有一個用戶在下載的時候,p2p就變成了伺服器到唯一用戶的點對點連接。也就是上一點描述的情況。

如果題主願意關掉迅雷,選擇一些來自國外的p2p下載器,比如vaze的話,就能看到來自各個國家和地區的用戶與你一起下載一個資源。

感覺還是很不錯的。


你吸血不代表別人也吸血,

別人不做種不代表我也不做種。

謝謝。


拉個黑吧


推薦閱讀:

如何禁止迅雷遊戲盒子自動安裝?
chrome如何禁止迅雷監聽?
如何看待迅雷極速版下架?
為什麼 Linux 的 BT 下載如此慢?
iOS迅雷被蘋果下架了,有沒有可以替代迅雷的?

TAG:互聯網 | 迅雷軟體 | P2P | BT下載BitTorrent |