標籤: 暫無標籤

  BitTorrent(簡稱BT)是一個文件分發協議,它通過URL識別內容並且和網路無縫結合。它對比HTTP/FTP協議,MMS/RTSP流媒體協議等下載方式的優勢在於,一個文件的下載者們下載的同時也在不斷互相上傳數據,使文件源(可以是伺服器源也可以是個人源,一般特指第一個做種者或種子的第一發布者)可以在增加很有限的負載之情況下支持大量下載者同時下載,所以BT等P2P傳輸方式也有」下載的人越多,下載的速度越快「這種說法。


  下載原理1


  BT原理普通的HTTP/FTP下載使用TCP/IP協議,BitTorrent協議是架構於TCP/IP協議之上的一個P2P文件傳輸協議,處於TCP/IP結構的應用層。BitTorrent協議本身也包含了很多具體的內容協議和擴展協議,並在不斷擴充中。


  根據BitTorrent協議,文件發布者會根據要發布的文件生成提供一個.torrent文件,即種子文件,也簡稱為「種子」。


  torrent文件本質上是文本文件,包含Tracker信息和文件信息兩部分。Tracker信息主要是BT下載中需要用到的Tracker伺服器的地址和針對Tracker伺服器的設置,文件信息是根據對目標文件的計算生成的,計算結果根據BitTorrent協議內的B編碼規則進行編碼。它的主要原理是需要把提供下載的文件虛擬分成大小相等的塊,塊大小必須為2k的整數次方(由於是虛擬分塊,硬碟上並不產生各個塊文件),並把每個塊的索引信息和Hash驗證碼寫入.torrent文件中;所以,.torrent文件就是被下載文件的「索引」。


  下載者要下載文件內容,需要先得到相應的.torrent文件,然後使用BT客戶端軟體進行下載。


  下載時,BT客戶端首先解析.torrent文件得到Tracker地址,然後連接Tracker伺服器。Tracker伺服器回應下載者的請求,提供下載者其他下載者(包括發布者)的IP。下載者再連接其他下載者,根據.torrent文件,兩者分別對方告知自己已經有的塊,然後交換對方沒有的數據。此時不需要其他伺服器參與,分散了單個線路上的數據流量,因此減輕了伺服器負擔。


  下載原理2


  下載者每得到一個塊,需要算出下載塊的Hash驗證碼與.torrent文件中的對比,如果一樣則說明塊正確,不一樣則需要重新下載這個塊。這種規定是為了解決下載內容準確性的問題。


  一般的HTTP/FTP下載,發布文件僅在某個或某幾個伺服器,下載的人太多,伺服器的帶寬很易不勝負荷,變得很慢。而BitTorrent協議下載的特點是,下載的人越多,提供的帶寬也越多,種子也會越來越多,下載速度就越快。


  而有些人下載完成後關掉下載任務,提供較少量數據給其他用戶,為盡量避免這種行為,在非官方BitTorrent協議中存在超級種子的演算法。這種演算法允許文件發布者分幾步發布文件,發布者不需要一次提供文件所有內容,而是慢慢開放的下載內容的比例,延長下載時間。此時,速度快的人由於未下載完必須提供給他人數據,速度慢的人有更多機會得到數據。
上一篇[一壺鄉愁]    下一篇 [浪花兄弟]

相關評論

同義詞:暫無同義詞