BitTorrent(簡稱 BT、BT 下載、變態下載)係一個網路文件傳輸協議,佢能夠實現點對點文件分享嘅技術。比起其他點對點嘅協議,佢有更多點對多點嘅特性,呢個特點簡單咁講就係:下載嘅人越多,速度就越快。下載完之後只要唔閂 BitTorrent 軟件,就可以成為種(擁有完整檔案嘅人)分流畀其他人下載。

BT原理

原理 編輯

普通嘅HTTP/FTP下載使用TCP/IP協議,BitTorrent協議係起喺 TCP/IP 協議之上嘅一個 P2P 文件傳輸協議,喺TCP/IP結構嘅應用層。 BitTorrent協議本身都包含咗好多具體嘅內容協議同擴展協議,而且喺度不斷擴充緊。

根據 BitTorrent 協議,文件發佈者會根據要發佈嘅文件整一個 .torrent 文件,即係文件個種,亦都叫做「種」。

.torrent 文件其實係文本文件,包含 Tracker 信息同文件信息兩部分。Tracker 信息主要係 BT 下載時需要用到嘅 Tracker 伺服器地址同針對 Tracker 伺服器嘅設置,文件信息係用目標文件計出嚟嘅,計算結果根據 BitTorrent 協議入面嘅編碼規則進行編碼。主要原理係將畀人下載嘅文件分成大小一樣、分成一塊塊,每塊大小一定要係 2k 整數次方,將每塊嘅索引信息同 Hash 驗證碼寫入 .torrent 文件入面;所以 .torrent 文件就做咗被下載文件嘅「索引」。

下載者要下載文件內容,要先攞到相應嘅 .torrent 文件,然後用 BT 客戶軟件嚟下載。

下載嗰陣,BT 客戶先解析 .torrent 文件得到 Tracker 地址,然後連接到 Tracker 伺服器。Tracker 伺服器回應下載者嘅請求,提供下載者其他下載者(包括發佈者)嘅 IP 地址。下載者再連接去其他下載者,根據 .torrent 文件,兩者分別話畀對方聽自己已經有嘅塊,然後從對方度攞自己冇嘅。呢個時候,唔需要其他伺服器嘅參與,分散咗單個線路上嘅數據流量,亦都減輕咗伺服器嘅負擔。

下載者每得到一個塊,就要對比下載塊嘅 Hash 驗證碼同 .torrent 文件裏面嘅,如果一樣,即係話呢塊啱,唔一樣嘅話,就需要重新下載嗰塊。呢種規定係為咗解決下載內容準確性嘅問題。

一般嘅 HTTP / FTP 下載,發佈文件只係喺某個或者某幾個伺服器,下載嘅人太多,伺服器的頻寬好容易受唔住,變得好慢。而 BitTorrent 協議下載嘅特點係,下載嘅人越多,提供嘅頻寬亦都越多,種子亦會越來越多,下載速度就越快。

而有啲人下載完成之後閂咗,提供比較少嘅數據畀其他用戶,為咗盡量避免呢種行為,喺非官方 BitTorrent 協議中有超級種子嘅演算法。這種演算法畀文件發佈者分幾步發佈文件,發佈者唔洗一次提供文件所有嘅內容,而係慢慢咁開放嘅下載內容嘅比例,延長下載時間。呢個時候,速度快嘅人由於未下載完,就必須畀數據其他人,速度慢嘅人有更加多嘅機會得到數據。

編輯