BitTorrent

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

原理 
普通嘅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 協議中有超級種子嘅演算法。這種演算法畀文件發佈者分幾步發佈文件，發佈者唔洗一次提供文件所有嘅內容，而係慢慢咁開放嘅下載內容嘅比例，延長下載時間。呢個時候，速度快嘅人由於未下載完，就必須畀數據其他人，速度慢嘅人有更加多嘅機會得到數據。

拎 
http://www.bittorrent.org/
http://www.bittorrent.com/
Bitgle - the bit torrent search engine powered by Google CSE

互聯網