Torrents(種子) — 每次聽到這個詞時,在我的腦海裡想到的唯一的事情就是免費的電影、遊戲、和被破解的軟體。但是我們並不知道它們是如何運作的,在「種子」中涉及各種概念。因此,透過這篇文章我們從技術的角度來了解種子下載是什麼。
#「種子」是一個到因特網上文件位置的連結。它們不是一個文件,它們只是動態指向到你想去下載的原始文件。
例如:如果你點擊 Google Chrome[1],你可以從Google的伺服器上下載 Google Chrome 瀏覽器。
如果你明天、或下週、或下個月再去點擊那個鏈接,這個文件仍然可以從谷歌伺服器上去下載。
但是當我們使用「種子」下載時,它並沒有固定的伺服器。檔案是從以前使用「種子」下載的其它人的個人電腦上下載的。
##假設 ‘A’ 上有一些視頻,它希望以「種子」方式去下載。因此,他創建了一個“種子”,並將這個連結發送給 ‘B’,這個連結包含了那個影片在因特網上的準確 IP 位址的資訊。因此,當 ‘B’ 開始下載那個檔案的時候,‘B’ 連接到 ‘A’ 的電腦。在 ‘B’ 下載完成這個影片之後,‘B’ 將開始做為種子,也就是 ‘B’ 將允許其它的 ‘C’ 或 ‘D’ 從 ‘B’ 的電腦上下載它。
因此每個人先下載檔案然後會上傳,下載的人越多,下載的速度也越快。而且在任何情況下,如果想停止上傳,也沒有問題,隨時可以。這樣做並不會成為什麼問題,除非很多的人下載而上傳的人很少。
##下載完成特定檔案的使用者將會立即做為上傳者,因此,可以被新使用者下載的已下載者稱為播種者。
而一些還沒有完成特定檔案的下載者,而且也正在下載的使用者稱為索取者。
#所有的「種子」檔案都獨立分割成固定大小的資料包,因此,它們可以非線性順序和隨機順序下載。每個區塊都有唯一的標識,因此,一旦所有的區塊下載完成之後,它們會被拼接出原始檔案。
正是因為這種機制,如果你正在從某人處下載一個文件,假如這個時候因某些原因他停止了上傳,你可以繼續從其它的播種者處繼續下載,而不需要從頭開始重新下載。
對端是指目前連結到你的索取者。一個正在上傳的索取者,不論它下載了多少塊,它就是一個對端。
例如:
一個已經下載了文件的前 50 個區塊的使用者就是一個索取者,但是,他又同時上傳這些文件,而你只有前 10 個區塊,因此,你可以從他那裡下載最多 50 個區塊。這時候他就成了你的對端。
當你下載一個「種子」時,總是選擇最大的播種者。這就是最佳經驗。
這裡沒有最小的標準,但是只要確保你選擇的是最大的那一個播種者就可以了。
##「種子」相關的法律和其它的法律並沒有什麼區別,對受版權保護的其它任何東西一樣,侵權行為會受到法律的製裁。大多數的政府都攔截「種子」網站和協議,但是「種子」下載本身並不是有害的東西。
「種子」對快速分享檔案是非常有用的,而且它們被用來共享開源社群的軟體,因為它們能節約大量的伺服器資源。但是,許多人卻因為盜版而使用它們。
Torrenting 是降低伺服器上負載的一個非常完美的技術。 「種子」下載可以使我們將下載速度提升到網路卡的極限,這是非常好的。但是,在這種非中心化的伺服器上,盜版成為必然發生的事。限制我們分享的內容,從不下載盜版的東西,這是我們的道德責任。
請在下面的評論中分享你使用「種子」的心得,分享你喜歡的、法律許可下載的「種子」網站。
以上是Torrents(種子)檔案的原理的詳細內容。更多資訊請關注PHP中文網其他相關文章!