BitTorrent
出自維基百科,自由嘅百科全書
BitTorrent(簡稱BT、BT下載、變態下載)係一個網路文件傳輸協議,佢能夠實現點對點文件分享嘅技術。比起其他點對點嘅協議,佢有更多點對多點嘅特性,呢個特點簡單咁講就係:下載嘅人越多,速度越快。下載完唔使上關閉BitTorrent軟體,就可以成為種子(擁有完整嘅檔案者)分流俾其他人下載。
[編輯] 原理簡述
普通嘅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文件,兩者分別對方話俾人聽自己已經有嘅塊,然後交換對方冇嘅數據。呢個時候,唔需要其他伺服器嘅參與,分散咗單個線路上既數據流量,因此減輕咗伺服器嘅負擔。
下載者每得到一個塊,需要計出下載塊嘅Hash驗證碼與.torrent文件中嘅對比,如果一樣,即係話說明塊正確,不一樣既話,就需要重新下載嗰個塊。呢種規定係為了解決下載內容準確性嘅問題。
一般的HTTP/FTP下載,發佈文件只係喺某個或者某幾個伺服器,下載嘅人太多,伺服器的頻寬很容易受唔住,變得好慢。而BitTorrent協議下載嘅特點係,下載嘅人越多,提供嘅頻寬亦都越多,種子亦會越來越多,下載速度就越快。
而有些人下載完成之後山咗下載任務,提供比較少嘅數據俾其他用戶,為咗盡量避免呢種行為,在非官方BitTorrent協議中有超級種子嘅演算法。這種演算法俾文件發佈者分幾步發佈文件,發佈者唔洗一次提供文件所有嘅內容,而係慢慢咁開放嘅下載內容嘅比例,延長下載時間。呢個時候,速度快嘅人由於未下載完,就必須提供俾其他人數據,速度慢嘅人有更加多嘅機會得到數據。