BitTorrent (協定)
原作者 | 布萊姆·科恩 |
---|---|
開發者 | Rainberry, Inc. |
首次發佈 | 2001年 |
原始碼庫 | github |
標準 | BitTorrent協定規範[1] |
類型 | 對等網絡檔案分享 |
網站 | www |
檔案分享系列 |
檔案分享 |
---|
技術 |
網絡及協定 |
發展和社會影響 |
非公開檔案分享 |
網站及服務 |
用戶端 |
串流 |
學術 |
國家/地區 |
相關條目 |
BitTorrent協定(簡稱BT,俗稱位元洪流、BT下載)是用在對等網絡中檔案分享的網絡協定程式。和對等(point-to-point)的協定程式不同,它是用戶群對用戶群(peer-to-peer),而且用戶越多,下載同一檔案的人越多,上載同一檔案的人越多,下載該檔案的速度越快。且下載後,繼續維持上載的狀態,就可以「分享」,成為其用戶端節點下載的種子檔案(.torrent),同時上載及下載。
歷史
[編輯]該技術由美國的程式設計師布萊姆·科亨於2001年4月時發佈,並於2001年7月2日時首次正式應用。
原理簡述
[編輯]普通的HTTP/FTP下載使用TCP/IP協定,BitTorrent協定是架構於TCP/IP協定之上的一個P2P檔案傳輸通訊協定,處於TCP/IP結構的應用層。BitTorrent協定本身也包含了很多具體的內容協定和擴展協定,並在不斷擴充中。
根據BitTorrent協定,檔案發佈者會根據要發佈的檔案生成提供一個.torrent檔案,即種子檔案,也簡稱為「種子」。
種子檔案本質上是文字檔案,包含Tracker資訊和檔案資訊兩部分。Tracker資訊主要是BT下載中需要用到的Tracker伺服器的地址和針對Tracker伺服器的設置,檔案資訊是根據對目標文件的計算生成的,計算結果根據BitTorrent協定內的Bencode規則進行編碼。它的主要原理是需要把提供下載的檔案虛擬分成大小相等的塊,塊大小必須為2k的整數次方(由於是虛擬分塊,硬碟上並不產生各個塊檔案),並把每個塊的索引資訊和Hash驗證碼寫入種子檔案中;所以,種子檔案就是被下載檔案的「索引」。
下載者要下載檔案內容,需要先得到相應的種子檔案,然後使用BT客戶端軟件進行下載。
下載時,BT客戶端首先解析種子檔案得到Tracker地址,然後連接Tracker伺服器。Tracker伺服器回應下載者的請求,提供下載者其他下載者(包括發佈者)的IP。下載者再連接其他下載者,根據種子檔案,兩者分別告知對方自己已經有的塊,然後交換對方所沒有的數據。此時不需要其他伺服器參與,分散了單個線路上的數據流量,因此減輕了伺服器負擔。
下載者每得到一個塊,需要算出下載塊的Hash驗證碼與種子檔案中的對比,如果一樣則說明塊正確,不一樣則需要重新下載這個塊。這種規定是為了解決下載內容準確性的問題。
一般的HTTP/FTP下載,發佈檔案僅在某個或某幾個伺服器,下載的人太多,伺服器的頻寬很易不勝負荷,變得很慢。而BitTorrent協定下載的特點是,下載的人越多,提供的頻寬也越多,下載速度就越快。同時,擁有完整檔案的用戶也會越來越多,使檔案的「壽命」不斷延長。
為了解決某些用戶「下完就跑」的現象,在非官方BitTorrent協定中還存在一種慢慢開放下載內容的超級種子的演算法。
DHT網絡
[編輯]目前,又發展出DHT網絡技術,可以在無Tracker的情況下下載。
DHT全稱為分散式雜湊表(Distributed Hash Table),是一種分散式儲存方法。在不需要伺服器的情況下,每個客戶端負責一個小範圍的路由,並負責儲存一小部分數據,從而實現整個DHT網絡的定址和儲存。使用支援該技術的BT下載軟件,用戶無需連上Tracker就可以下載,因為軟件會在DHT網絡中尋找下載同一檔案的其他用戶並與之通訊,開始下載任務。
有些軟件(如比特精靈)還會自動通過DHT搜尋種子資源,構成種子市場。
另外,這裏使用的DHT演算法叫Kademlia(在eMule中也有使用,稱為Kad網絡,具體實現協定有所不同)。
這種技術好處十分明顯,就是大大減輕了Tracker的負擔(甚至不需要)。用戶之間可以更快速建立通訊(特別是與Tracker連接不上的時候)。
BT中相關概念
[編輯]- Tracker:收集下載者資訊的伺服器,並將此資訊提供給其他下載者,使下載者們相互連接起來,傳輸數據。
- 種子:指一個下載任務中所有檔案都被某下載者完整的下載,此時下載者成為一個種子。發佈者本身發佈的檔案就是原始種子。
- 做種:發佈者提供下載任務的全部內容的行為;下載者下載完成後繼續提供給他人下載的行為。
BitTorrent與自由軟件
[編輯]BitTorrent對於大型文件和自由軟件如Linux、FreeBSD的發佈幫助很大。對於發佈數百MiB以至數十GiB的檔案時,如Fedora的光碟鏡像格式檔,BitTorrent的使用能大大減低伺服器的數據流量從而減低發佈的成本。另外,一般有新版本軟件推出時,連結該伺服器的人數必定非常龐大,使用BitTorrent也能大大減低繁忙時間伺服器的負擔。
歷史
[編輯]2002年,布萊姆·科亨在CodeCon初次露面,發表首個BT軟件BitTorrent。它以Python寫成,以MIT許可證發佈。
影響
[編輯]以線上遊戲為例,有些線上遊戲的線上更新(如魔獸世界)就是採用BT的技術。所以當每次有改版時,動輒數百MiB的更新檔,透過遊戲廠商所提供的更新程式,以BT的方式進行下載分流。這為以往的其他種線上遊戲,每次重大改版就必須重新壓製光碟,或是等待單一下載點的下載方式,帶來另一種節省成本的經營模式。
BT下載方式目前引起社會的廣泛討論。利用BT免費發佈版權內容肯定損害版權所有者的合法權益,但傳播非收費性內容的好處有目共睹。爭論的焦點是,是否應因此立法全面禁止BT,並且對從事BT下載的人作出懲罰。目前為止,中國大陸和西歐等地區的國家,對BT仍沒有任何法律上的約束。不過2009年12月,國家廣播電影電視總局曾大範圍打擊和封鎖在中國的Tracker伺服器,以BTChina為代表的一批知名Tracker伺服器均因此停止服務。
在香港,陳乃明因為發佈電影的種子而被海關拘捕。2005年10月24日,香港司法機關裁定陳乃明的侵權罪成立,需要即時監禁三個月。香港工商貿易部門領導曾俊華與海關關長湯顯明對今次裁決感到滿意,並表示香港政府和業界將不容忍任何侵權行為的存在,同時政府亦會隨時與商人合作打擊侵權行為。香港海關再於2008年9月及2009年4月先後拘捕兩人,分別為一名27歲任職收銀員的女性及一名38歲無業的男性。他們都被懷疑以BT非法上載兩套外國電影而被捕,其中男疑犯涉及的電影為英國電影《故園風雨後》(Brideshead Revisited)及美國電視電影《十級颶風》(NYC: Tornado Terror)。他們成為當局自2007年中啟用,24小時運作的「網線監察系統」(Lineament Monitoring System)以來首兩名被捕者,使香港因以BT非法上載而被捕人士的總數提升至三名[2][3][4]。
而台灣需受到美國特別301報告報復的壓力,常與IFPI及商業軟件聯盟(BSA)等商業版權組織合作查緝提供BT來源的網站及討論區,台灣討論區首度因為供應BT下載遭到被捕,卡提諾王國為全台灣最大的BT及違法分享的分享平台,也於不久後被法務部調查。
大部分的BT下載都是歌曲或影片,尤以後者為多。舉個例子,一集電視劇集的大小約200至300MiB,而電影則是幾百MiB至幾GiB(1GiB=1024MiB),BT技術出現前,要下載這些類影片頗困難和花時間。因此BT的發展使互聯網用戶下載影片的數量大大增加。除了下載本地的歌曲影片外,用戶同時也能下載其他國家地區的歌曲影片,一些在其他國家播放的電視劇或綜藝節目,次日BT網站已能提供下載。所以BT的發展也促使互聯網用戶更加快地能接觸到其他國家的影視,而不需等待自己國家購買回來播放或出版VCD/DVD才能看。這樣使用戶多了選擇,不需只跟隨本地電視台或電影院播映什麼,就只看什麼。同樣地,他們的偶像也漸漸由本地化轉為國際化,以中國大陸及台灣為例,年輕人追捧的偶像越來越多是來自其他國家,如日本、韓國等。而這或多或少和他們能以BT下載其電視電影,更快和更多地接觸外地資訊娛樂有關。
支援此協定的軟件
[編輯]相關條目
[編輯]參考文獻
[編輯]- ^ Cohen, Bram. BitTorrent Protocol 1.0. BitTorrent.org. October 2002 [1 June 2020]. (原始內容存檔於8 February 2014).
- ^ 兩電影斬件上載古惑漢落網. 大公報. 2009-04-29 [2009-04-29]. (原始內容存檔於2013-04-28).
- ^ 分段上載電影侵權無業漢被拘. 明報/新浪. 2009-04-29 [2009-04-29]. (原始內容存檔於2009-07-07).
- ^ HK Man Arrested for Sharing Films with BitTorrent. Xinhua/CriEnglish.com. 2009-04-29 [2009-04-29]. (原始內容存檔於2009-06-14) (英語).
外部連結
[編輯]- 官方網站
- Specification (頁面存檔備份,存於互聯網檔案館)
- 開放目錄專案中的「BitTorrent」
- Unofficial BitTorrent Protocol Specification v1.0 (頁面存檔備份,存於互聯網檔案館) at wiki.theory.org
- Unofficial BitTorrent Location-aware Protocol 1.0 Specification (頁面存檔備份,存於互聯網檔案館) at wiki.theory.org