BT 1.0
- 誕生背景是傳統(tǒng)下載方式給用戶造成很多困難
- 在傳統(tǒng)下載方式中,一般是把文件由服務(wù)器端傳送到客戶端,例如FTP,HTTP,PUB等等。由于是從一臺服務(wù)器下載,服務(wù)器所提供的帶寬是一定的,因而下載人越多速度越慢。但是這樣就出現(xiàn)了一個問題,隨著用戶的增多,對帶寬的要求也隨之增多,用戶過多就會造成瓶頸,而且搞不好還會把服務(wù)器掛掉,所以很多的服務(wù)器會都有用戶人數(shù)的限制,下載速度的限制,這樣就給用戶造成了諸多的不便。
-
BT下載原理
- 與傳統(tǒng)下載不同,用BT下載反而是用戶越多,下載越快,這是因為BT用的是一種傳銷的方式來達(dá)到共享的。
- BT 首先在上傳端把一個文件分成了Z個部分,甲在服務(wù)器隨機(jī)下載了第N個部分,乙在服務(wù)器隨機(jī)下載了第M個部分,這樣甲的BT就會根據(jù)情況到乙的電腦上去下載乙已經(jīng)下載好的M部分,乙的BT就會根據(jù)情況到甲的電腦上去下載甲已經(jīng)下載好的N部分,這樣就不但減輕了服務(wù)器端的負(fù)荷,也加快了用戶方(甲乙)的下載速度,效率也提高了,更同樣減少了地域之間的限制。比如說丙要連到服務(wù)器去下載的話可能才幾K,但是要是到甲和乙的電腦上去下載就快得多了。所以說用的人越多,下載的人越多,大家也就越快,BT的優(yōu)越性就在這里。而且,在你下載的同時,你也在上傳(別人從你的電腦上下載那個文件的某個部分),所以說在享受別人提供的下載的同時,你也在貢獻(xiàn)。
- **BitTorrent協(xié)議 **
- 與BT下載相比,普通下載原理圖普通的HTTP/FTP下載使用TCP/IP協(xié)議,BitTorrent協(xié)議是架構(gòu)于TCP/IP協(xié)議之上的一個P2P文件傳輸協(xié)議,處于TCP/IP結(jié)構(gòu)的應(yīng)用層。BitTorrent協(xié)議本身也包含了很多具體的內(nèi)容協(xié)議和擴(kuò)展協(xié)議,并在不斷擴(kuò)充中。根據(jù)BitTorrent協(xié)議,文件發(fā)布者發(fā)布的文件生成提供一個.torrent文件,即種子文件,簡稱為“種子”。
-
torrent文件本質(zhì)上是文本文件,包含Tracker信息和文件信息兩部分。
- Tracker信息:主要是BT下載中需要用到的Tracker服務(wù)器的地址和針對Tracker服務(wù)器的設(shè)置。
- 文件信息:是根據(jù)對目標(biāo)文件的計算生成的,計算結(jié)果根據(jù)BitTorrent協(xié)議內(nèi)的B編碼規(guī)則進(jìn)行編碼。它的主要原理是需要把提供下載的文件虛擬分成大小相等的塊,塊大小必須為2k的整數(shù)次方(由于是虛擬分塊,硬盤上并不產(chǎn)生各個塊文件),并把每個塊的索引信息和Hash驗證碼寫入.torrent文件中;所以,.torrent文件就是被下載文件的“索引”。
-
torrent文件本質(zhì)上是文本文件,包含Tracker信息和文件信息兩部分。
- 與BT下載相比,普通下載原理圖普通的HTTP/FTP下載使用TCP/IP協(xié)議,BitTorrent協(xié)議是架構(gòu)于TCP/IP協(xié)議之上的一個P2P文件傳輸協(xié)議,處于TCP/IP結(jié)構(gòu)的應(yīng)用層。BitTorrent協(xié)議本身也包含了很多具體的內(nèi)容協(xié)議和擴(kuò)展協(xié)議,并在不斷擴(kuò)充中。根據(jù)BitTorrent協(xié)議,文件發(fā)布者發(fā)布的文件生成提供一個.torrent文件,即種子文件,簡稱為“種子”。
-
整個下載流程
- 下載者要下載文件內(nèi)容,需要先得到相應(yīng)的.torrent文件,然后使用BT客戶端軟件進(jìn)行下載。
- 下載時,BT客戶端首先解析.torrent文件得到Tracker地址,然后連接Tracker服務(wù)器。
- Tracker服務(wù)器回應(yīng)下載者的請求,提供給下載者其他下載者(包括發(fā)布者)的IP。下載者再連接其他下載者,根據(jù).torrent文件,兩者分別告知對方自己已經(jīng)有的塊,然后交換彼此的數(shù)據(jù)。此時不需要其他服務(wù)器參與,分散了單個線路上的數(shù)據(jù)流量,因此減輕了服務(wù)器負(fù)擔(dān)。
- 下載者每得到一個塊,需要算出下載塊的Hash驗證碼與.torrent文件中的對比,如果一樣則說明塊正確,不一樣則需要重新下載這個塊。這種規(guī)定是為了解決下載內(nèi)容準(zhǔn)確性的問題。
BT 2.0 磁力鏈接
-
誕生背景
-
BT下載速度不夠穩(wěn)定,當(dāng)中斷種時則無法完整下載。從2009年開始,BT下載遭遇到了“更大的困難”——很多的BT服務(wù)器被關(guān),不僅很多種子文件無法找到,BT Tracker服務(wù)器也斷開解析工作,這就使得BT下載成為很大的難題。磁力鏈接很好地解決了這個問題。磁力鏈接的問世與大行其道,標(biāo)志著BT 1.0時代已經(jīng)過去,BT 2.0 時代已經(jīng)到來。
- 其實 BT1.0 時代還是沒有完全去中心化,因為它還是需要一個中心服務(wù)器去鏈接機(jī)器,雖然傳輸并不需要機(jī)器。
-
BT下載速度不夠穩(wěn)定,當(dāng)中斷種時則無法完整下載。從2009年開始,BT下載遭遇到了“更大的困難”——很多的BT服務(wù)器被關(guān),不僅很多種子文件無法找到,BT Tracker服務(wù)器也斷開解析工作,這就使得BT下載成為很大的難題。磁力鏈接很好地解決了這個問題。磁力鏈接的問世與大行其道,標(biāo)志著BT 1.0時代已經(jīng)過去,BT 2.0 時代已經(jīng)到來。
-
磁力鏈接Demo
- magnet:?xt=urn:bite:4D9FA761D69964B00DF0B3B0C9C1F968EA6C47D0 &****xt = urn:ed2k:7655dbacff9395e579c4c9cb49cbec0e &dn=bbb_sunflower_2160p_30fps_stereo_abl.mp4 & **tr = **udp%3a%2f%2ftracker.openbittorrent.com%3a80%2fannounce & tr = u dp%3a%2f%2ftracker.publicbt.com%3a80%2fannounce & ws = http%3a%2f%2fdistribution.bbb3d.renderfarming.net%2fvideo%2fmp4%2fbbb_sunflower_2160p_30fps_stereo_abl.mp4
- 分解一下這個網(wǎng)址:
- magnet :協(xié)議名。
- xt :exact topic的縮寫,包含文件哈希值的統(tǒng)一資源名稱。BTIH(BitTorrent Info Hash)表示哈希方法名,這里還可以使用ED2K,AICH,SHA1和MD5等。這個值是文件的標(biāo)識符,是不可缺少的。
- dn :display name的縮寫,表示向用戶顯示的文件名。這一項是選填的。
- tr :tracker的縮寫,表示tracker服務(wù)器的地址。這一項也是選填的。
- ws : webseed的縮寫,表示網(wǎng)絡(luò)種子。
-
Tracker服務(wù)器和“BT種子”即將雙雙退役,取而代之的是DHT+ PEX網(wǎng)絡(luò)和Magnet Link,DHT網(wǎng)絡(luò)是分布式存在的,所以不存在“被拔線”的問題,而Magnet Link僅是一串字符,所以也不再需要Torrent文件。
- DHT:DHT是一種分布式存儲方法。DHT的作用是找到那些與本機(jī)正在下載(上傳)相同文件的對端主機(jī)(Peer),當(dāng)然,實現(xiàn)這一過程并不依賴Tracker服務(wù)器。在DHT網(wǎng)絡(luò)中的每個客戶端負(fù)責(zé)一個小范圍的路由,并負(fù)責(zé)存儲一小部分?jǐn)?shù)據(jù),從而實現(xiàn)整個DHT網(wǎng)絡(luò)的尋址和存儲。這種信息獲取方式保證了整個網(wǎng)絡(luò)沒有單個的中心,即使一個節(jié)點下線,依然可以通過其他節(jié)點來獲取文件,因此也就不需要Tracker服務(wù)器來告訴你,其他節(jié)點在什么地方。
-
PEX:是Peer Exchange的簡寫,我們可以將其理解為“節(jié)點信息交換”。雖然DHT解決了去中心化的問題,但要在沒有“中心協(xié)調(diào)員”(Tracker)的情況下實現(xiàn)高效尋址,就要借助PEX。PEX所提供的功能有點類似于以前的Tracker服務(wù)器,但工作方式卻非常不同,我們可以打個比方來說明:
- 小趙在A班,她不認(rèn)識B班的小何,也不認(rèn)識C班的小溫,但小趙認(rèn)識同班的小王,而小王認(rèn)識B班的小何,也可能還認(rèn)識C班的小溫,或者小王僅認(rèn)識B班的小何,但小何認(rèn)識C班的小溫,而小溫又認(rèn)識同班的所有同學(xué),結(jié)果就是小趙可以“無限”地延伸自己的關(guān)系網(wǎng),不管怎樣,總有一條溝通途徑可以將這些同學(xué)聯(lián)系在一起,待小趙“認(rèn)識”了小溫后,他們就可以直接溝通了,在P2P世界里,就是進(jìn)行上傳與下載。
- Magnet links:有網(wǎng)友將其稱為磁鏈。DHT+ PEX解決了BT“尋址”的問題,但是如何告訴BT客戶端找(尋)什么又是另外一個問題。在Torrent文件中包含的內(nèi)容就是用戶真正要下載的文件的特征信息,或稱為“電子指紋”,BT客戶端知道了要找什么,也知道如何去找,于是P2P方式的下載、上傳就實現(xiàn)了。
Note :海盜灣(The Pirate Bay),自稱“世界上最大的電信分享網(wǎng)站“,是一個專門存儲,分類及搜索電信資源的網(wǎng)站,同時它也運(yùn)行著世界上最大的BTTracker服務(wù)器。
</div>