互聯網種子下載那些事

背景

我們都知道我們經常訪問的互聯網是非對稱的,就是我們有著很高的下載速度,但是卻有著很低的上傳速度。因此當很多人下載同一個地址的文件的時候,由於帶寬的限制,就會導致每個人的下載速度很慢,這個時候,聰明的軟件開發人員就想出了一個解決辦法,那就是對等網絡。


互聯網種子下載那些事


對等網絡:

把一個大文件分割成許多小的文件塊,每個人在下載的時候下載不同的文件塊,當你下載好一個文件塊的時候,你本身就會把你下載的文件塊上傳給其它的下載者,這樣其它人就會從你這裡下載文件塊,而不是都去服務器去請求每個小文件塊,理論上,下載的人數越多,我們下載的文件越快,這就是分享的好處,越分享越快樂。

互聯網種子下載那些事

種子文件

提到這個,老司機都會嘿嘿嘿,那麼究竟什麼是種子文件呢?它是什麼結構呢?它都包含什麼內容呢?

種子文件就是包含一個下載文件的相關信息,具體內容如下:

  • 文件的SHA1值,校驗傳輸的正確性
  • Tracker地址,用來記錄文件服務器地址
  • 文件夾和文件名以及結構
  • 擴展信息,比如其它下載地址,作者信息等
互聯網種子下載那些事

從上面可以看到,我們的種子其實就是告訴了我們從哪裡去下載,下載後的文件結構是怎樣的,下載後怎樣驗證文件是否正確。

下載過程

當我們拿到種子之後,我們如何進行下載,下載的過程是怎樣的呢?

互聯網種子下載那些事

當我們拿到種子之後,我們會請求Tracker服務器,服務器會告訴我們有哪些人在下載這個文件,然後會把他們的IP發送給你,收到IP之後,你就會和他們進行溝通,它們會把他們下載好的文件片段發給你,然後你下載好一個片段之後,也會把它發給其它人,經過這樣的過程,你們的整個文件就會都下載好了。

互聯網種子下載那些事

但是這裡有個問題,那就是如果不湊巧,下載文件的就只有你自己怎麼辦呢?還記得我們說的種子的擴展信息嗎?那裡面會有文件的服務器下載地址,當只有你一個人的時候,或者說你是第一個下載文件的人的時候,你會從那裡下載整個文件,當然,如果又不湊巧,那個服務器還壞掉了,那麼你當然只會看到你的下載進度條一直顯示為0。

這裡面還要說明的一點就是p2p(peer to peer)的好處,那就是如果提供下載的服務器壞掉了,但是有些人已經下載好了這個文件,那麼我們就可以從其它人那裡下載這個文件,其實這就是分佈式下載的好處,把文件多處存放,避免了一處服務器壞掉,整個文件都不能下載了。

分佈式哈希表(DHT)

我們使用種子下載文件,都是需要連接tracker進行查找下載的,一旦tracker被封或者掛掉,我們自然就無法進行繼續下載,這個時候分佈式哈希表出現了,它是一種只需要在網絡上提供一串文件ID和儲存在本地的K桶數據即可高效的找到需要下載的文件的,通過它資源的發佈者和傳播者也只需要分享這40個16進制的數字即可,也就是我們常見的磁力鏈接,足夠簡單、方便和隱私。

互聯網種子下載那些事

福利

我們都知道平時我們使用某雷下載的時候,經常會遭遇到資源被封,或者速度受限制,這個時候大部分可能是因為tracker被限制導致的,而一個文件理論上有很多個tracker,只要我們多提供幾個tracker,我們的下載速度就會大幅提升,而如何尋找tracker,只要你去搜索引擎搜索,或者去github去查找,你就會找到的。


分享到:


相關文章: