溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

怎么進(jìn)行BitTorrent下載原理分析

發(fā)布時(shí)間:2021-12-03 17:05:35 來(lái)源:億速云 閱讀:111 作者:柒染 欄目:云計(jì)算

怎么進(jìn)行BitTorrent下載原理分析,針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。

BitTorrent協(xié)議。

BT全名為BitTorrent,是一個(gè)p2p軟件,你在下載download的同時(shí),也在為其他用戶(hù)提供上傳upload,因?yàn)榇蠹沂恰盎ハ鄮椭保圆粫?huì)隨著用戶(hù)數(shù)的增加而降低下載速度。

下面是一般用ftp,http等分享流程:

怎么進(jìn)行BitTorrent下載原理分析

下面是用BitTorrent分享的流程:

怎么進(jìn)行BitTorrent下載原理分析

其實(shí)跟ED也十分相似,ED跟BT不同的地方有:

ED--要連上一個(gè)固定server BT--沒(méi)有固定server,只要分享者制作出該分享檔案的.torrent檔公布出來(lái)便可

ED--分享的人越多速度越快? BT--種子seed越多速度越快

ED--世界性的分享 BT--團(tuán)體性的分享(可做到速度保證)

ED--知道在分享者的user name &速度 BT--沒(méi)顯示使用者/分享者名字

比起其它的P2P軟件,BT有個(gè)獨(dú)特的地方,它存在一個(gè)中間的WEB服務(wù)器,就是我們?cè)诎l(fā)布的時(shí)所填寫(xiě)的announce。 該服務(wù)器提供了發(fā)布的統(tǒng)一管理,不像其它P2P軟件那樣到處去找哪些非常不穩(wěn)定的個(gè)人服務(wù)器,相對(duì)起來(lái)讓人安心的多。

該WEB服務(wù)器更大的作用是內(nèi)網(wǎng)用戶(hù)可以做 Send(下面會(huì)說(shuō)明原理),這是其它軟件無(wú)法做到的,但不好的地方是announce當(dāng)機(jī)的時(shí)候就無(wú)法下載了。要知道P2P下載關(guān)鍵是要人氣要高,announce停一下就搞到人氣全沒(méi)有了。

.torrent 的作用

大家都知道我們要用BT下載 ,就要先下載一個(gè).torrent文件,這個(gè)文件到底有甚么呢:

首先是 announce 紀(jì)錄了發(fā)布服務(wù)器的位置,讓BT知道是那個(gè)WEB服務(wù)器發(fā)布的,然后是一些文件信息,文件名,目錄名,長(zhǎng)度等等,最后是片段長(zhǎng)度,和片段的 Sha1 校驗(yàn)碼,(BT為了事現(xiàn)續(xù)傳和文件校驗(yàn),就把文件分成若干個(gè)片段),大家可以用寫(xiě)字板打看torrent文件看看,就是知道個(gè)大概,后面的亂碼是片段 Sha1 校驗(yàn)碼。

開(kāi)始-續(xù)傳的實(shí)現(xiàn) sha校驗(yàn)

BT 打開(kāi)一個(gè) torrent文件后,先要你選擇文件保存那里。然后判斷文件不存在的話就建立新文件,存在的話就用 Sha1 校驗(yàn)碼去校驗(yàn)文件---錯(cuò)誤的就是還沒(méi)下載的,這樣就可以實(shí)現(xiàn)續(xù)傳了,但128位校驗(yàn),想不慢都不行

得到 peer

現(xiàn)在知道要下載甚么了,到那里下載呢?這就要尋找有誰(shuí)提供上傳了,這里BT是通過(guò)WEB服務(wù)器來(lái)實(shí)現(xiàn)的,首先BT會(huì)通過(guò)分析 torrent 來(lái)得到下面一串網(wǎng)址

http://btfans.3322.org:6969/announce?info_hash=%CDg%D4%19%AD%96%9D%93%03%DB%E4%FFXA%C6%5D%043%17O&peer_id=%00%00%00%00%00%00%00%00%00%00%00%00%A3E%E0%9BeB%90d&port=6882&uploadED=0&downloadED=0&left=19171922&event=startED

http://BTfans.3322.org:6969/announce 是發(fā)布服務(wù)器的地址

info_hash 是torrent文件中的 info 部分的Sha校驗(yàn)碼,WEB通過(guò)它在發(fā)布列表找到對(duì)應(yīng)的紀(jì)錄

peer_id 是自身的標(biāo)識(shí),它是12個(gè)0和當(dāng)前時(shí)間+全球的唯一標(biāo)識(shí)碼(GUID)的Sha校驗(yàn)的前八位,共20位

port 你提供上傳的 port

IP 你的ip地址,沒(méi)有的話服務(wù)器會(huì)自己找到

uploadED downloadED 你上傳和下載了多少,服務(wù)器可以用它來(lái)做流量分析

left 你還要下載多少個(gè)字節(jié)

event 狀態(tài),告訴服務(wù)器你是準(zhǔn)備開(kāi)始下載,還是停止,還是下載完成了

以上這個(gè)操作默認(rèn) 5 分鐘做一次,或由服務(wù)器設(shè)定

服務(wù)器會(huì)做甚么

服務(wù)器中有個(gè)一個(gè) track 程序來(lái)管理這些請(qǐng)求,得到這一串代碼后就會(huì)用 info_hash 來(lái)查找列表,找到你就可以下載,找不到就對(duì)不起啦。接著它會(huì)反連(NatCheck)你的 IP 和 Port這樣就可以知道你是內(nèi)網(wǎng)用戶(hù)還是共網(wǎng)用戶(hù)(如果你是內(nèi)網(wǎng)用戶(hù),它是連不通的,因?yàn)樗鼤?huì)連到你的服務(wù)器上,你的服務(wù)器當(dāng)然沒(méi)有這個(gè)端口啦),然后服務(wù)器返回現(xiàn)在正在下載這個(gè)文件的所有公網(wǎng)用戶(hù)的IP和port,就像是:d8:intervali1800e5eersld2:ip14:xxx.xxx.xx.xxx7eerid20:00180531904b7e3abdd74orti6881eeee

interval 1800 是告訴 BT 隔多少秒來(lái)查詢(xún)一次這里是 30 分鐘 (有點(diǎn)過(guò)分了),最后如果你是公網(wǎng)用戶(hù)它會(huì)把你提交的 IP 和 Port 放到info_hash 對(duì)應(yīng)的列表中,這樣其它人就可以找到你

下載

得到這些 peer IP后,BT就可以找到對(duì)應(yīng)的IP下載了,BT會(huì)到所有的peer去尋找自己要下載的東西,不是一定要到seed下載。BT每找到一個(gè)peer就和建立一個(gè)Socket來(lái)下載,所以下載的人越多,速度就越快。

內(nèi)網(wǎng)用戶(hù)可以做Send的原理

上面說(shuō)到服務(wù)器只會(huì)返回公網(wǎng)的ip的,那內(nèi)網(wǎng)用戶(hù)怎么可以做Send呢,這是因?yàn)锽T是一個(gè)主動(dòng)連接的軟件(即使你已經(jīng)下載完了,也不也會(huì)主動(dòng)連接他人)下面是一個(gè)仿真流程:

1 內(nèi)網(wǎng)用戶(hù)開(kāi)始做 seed,

2 服務(wù)器收到請(qǐng)求,由于是第一個(gè)所以也沒(méi)有peer返回

3 公網(wǎng)用戶(hù)提交請(qǐng)求,由于seed是內(nèi)網(wǎng)用戶(hù)所以也沒(méi)有peer返回,等待下載,但服務(wù)器會(huì)把它的IP放到列表中

4 內(nèi)網(wǎng)經(jīng)過(guò) interval 時(shí)間間隔后,再向服務(wù)器放出請(qǐng)求,得到上面得公網(wǎng)IP

5 得到公網(wǎng)IP后,內(nèi)網(wǎng)馬上進(jìn)行連接

6 公網(wǎng)用戶(hù)建立連接,數(shù)據(jù)開(kāi)始傳輸 (注意現(xiàn)在是公網(wǎng)用戶(hù)做服務(wù)器,內(nèi)網(wǎng)用戶(hù)做客戶(hù)端,是不是有點(diǎn)怪)

7 其它內(nèi)網(wǎng)用戶(hù)去上面公網(wǎng)用戶(hù)下載數(shù)據(jù)

所以,內(nèi)網(wǎng)用戶(hù)做 seed 一定要有公網(wǎng)用戶(hù)得參與,否則其它內(nèi)網(wǎng)用戶(hù)無(wú)法下載。如果全部是內(nèi)網(wǎng)用戶(hù),那個(gè)所有連接都不會(huì)成立,當(dāng)然這是比較極端的情況。

以上可見(jiàn),內(nèi)網(wǎng)用戶(hù)不能和內(nèi)網(wǎng)用戶(hù)連接,其它用戶(hù)無(wú)法從服務(wù)器查到你,所以無(wú)法主動(dòng)連接你,你只能每隔30分鐘從服務(wù)器找到公網(wǎng)用戶(hù)一個(gè)個(gè)進(jìn)行連接。

由于中國(guó)很多用戶(hù)的是內(nèi)網(wǎng)用戶(hù)(我從服務(wù)器上查回來(lái)的peer還沒(méi)試過(guò)超過(guò)10個(gè)的),所以?xún)?nèi)網(wǎng)用戶(hù)用BT的確要比公網(wǎng)用戶(hù)要慢很多

迅雷的下載原理:

迅雷下載原理分析

迅雷的工作原理?yè)?jù)稱(chēng)為”多資源超線程技術(shù)基于網(wǎng)格原理,能夠?qū)⒕W(wǎng)絡(luò)上存在的服務(wù)器和計(jì)算機(jī)資源進(jìn)行有效的整合”。實(shí)際上還是傳統(tǒng)的下載技術(shù),只不過(guò)這種下載技術(shù)綜合應(yīng)用HTTP、FTP傳輸協(xié)議將文件的文件進(jìn)行分塊、分片下載;而且還可以將文件等分,然后去不同地址下載;并且在這些傳統(tǒng)下載的過(guò)程中穿插P2P技術(shù),也就是一種新的盜鏈技術(shù)??傮w來(lái)說(shuō),迅雷的下載呈現(xiàn)以下特點(diǎn):

1、多點(diǎn)下載。收集網(wǎng)上的所有下載地址以便多點(diǎn)下載。其他軟件如網(wǎng)際快車(chē)不會(huì)收集在下載地址里包含了用戶(hù)名和密碼的下載地址,但迅雷一樣收集,然后供其他人使用。這就就是“盜鏈”,即盜用別人的鏈接。

2、使用類(lèi)似BT的P2P下載技術(shù)。迅雷啟動(dòng)后,會(huì)在系統(tǒng)背后啟動(dòng)兩個(gè)線程Thunder。exe和Issue。exe,在線程里可以看得到。這兩個(gè)線程,就是要像BT那樣,共享本地硬盤(pán)上的文件,讓其它迅雷用戶(hù)下載。

3、收集用戶(hù)提供的資源。例如:當(dāng)有一個(gè)用戶(hù)在一個(gè)電影網(wǎng)站上,得到一個(gè)下載地址(A),然后用迅雷下載,這個(gè)下載地址就會(huì)被發(fā)到迅雷的服務(wù)器上;另一個(gè)地方又有一個(gè)用戶(hù)在另一個(gè)網(wǎng)站上下載同一部電影,迅雷的服務(wù)器又得到另一個(gè)下載地址(B)。迅雷服務(wù)器就會(huì)把相同文件的下載地址(A,B)集合在一起,形成一個(gè)資源,而那兩個(gè)用迅雷下載這兩個(gè)電影的用戶(hù)也算上,就會(huì)有四個(gè)下載點(diǎn)。當(dāng)又有用戶(hù)在別的地方準(zhǔn)備下載相同的電影的時(shí)候,迅雷就會(huì)在數(shù)據(jù)庫(kù)里比較,找出相同的資源(其它下載點(diǎn)也就是原先收集到的),提供給那個(gè)準(zhǔn)備下載的用戶(hù)下載,這個(gè)用戶(hù)就會(huì)同時(shí)有多個(gè)下載點(diǎn)來(lái)下載而達(dá)到速度的飛升。

例:當(dāng)有一個(gè)用戶(hù)在一個(gè)電影網(wǎng)站上,得到一個(gè)下載地址(A),然后用迅雷下載,這個(gè)下載地址就會(huì)收集到迅雷的服務(wù)器上。

在地球的另一個(gè)地方又有一個(gè)用戶(hù)在另一個(gè)網(wǎng)站上下載同一部電影,而得到另一個(gè)下載地址(B),就又會(huì)給迅雷服務(wù)器收集。然后迅雷服務(wù)器就會(huì)把相同文件的下載地址(A,B)集合在一起,形成一個(gè)資源。那兩個(gè)用迅雷下載這兩個(gè)電影的用戶(hù)也算上。就會(huì)有四個(gè)下載點(diǎn)了。而又有用戶(hù)在別的地方準(zhǔn)備下載相同的電影的時(shí)候,迅雷就會(huì)在數(shù)據(jù)庫(kù)里比較,找出相同的資源(其它下載點(diǎn),也就是上面收集到的),提供給那個(gè)準(zhǔn)備下載的用戶(hù)下載,那這個(gè)用戶(hù)就會(huì)同時(shí)有多個(gè)下載點(diǎn)來(lái)下載,而達(dá)到速度的提升。而這個(gè)用戶(hù)當(dāng)然也不可能只是享受高速的下載,他同時(shí)也會(huì)上傳了他下載的那部份數(shù)據(jù)(BT原理)。

所以,當(dāng)一個(gè)用戶(hù)用迅雷下載時(shí),就會(huì)連上迅雷服務(wù)器,查找資源,如果是熱門(mén)的文件,迅雷就能返回大量的下載點(diǎn),供這個(gè)用戶(hù)下載。從而達(dá)到下載速度的提升。

BT下載原理

BT是目前最熱門(mén)的下載方式之一,它的全稱(chēng)為“BitTorrent”簡(jiǎn)稱(chēng)“BT”,中文全稱(chēng)“比特流”,但很多朋友將它戲稱(chēng)為“變態(tài)下載”,這又是什么原因呢?

就HTTP、FTP、PUB等下載方式而言,一般都是首先將文件放到服務(wù)器上,然后再由服務(wù)器傳送到每位用戶(hù)的機(jī)器上,它的工作原理如圖1所示。因此如果同一時(shí)刻下載的用戶(hù)數(shù)量太多,勢(shì)必影響到所有用戶(hù)的下載速度,如果某些用戶(hù)使用了多線程下載,那對(duì)帶寬的影響就更嚴(yán)重了,因此幾乎所有的下載服務(wù)器都有用戶(hù)數(shù)量和最高下載速度等方面的限制。

很明顯,由于上述的原因,即使你使用的是寬帶網(wǎng),通常也很難達(dá)到運(yùn)營(yíng)商許諾的最高下載速度,這里面固然有網(wǎng)絡(luò)的原因,但與服務(wù)器的限制也不無(wú)關(guān)系。正因如此,BT下載方式出現(xiàn)之后,很快就成為了下載迷們的最?lèi)?ài)。

BT服務(wù)器是通過(guò)一種傳銷(xiāo)的方式來(lái)實(shí)現(xiàn)文件共享的,它的工作原理如圖2所示。舉個(gè)例子來(lái)說(shuō)吧,例如BT服務(wù)器將一個(gè)文件分成了N個(gè)部分,有甲、乙、丙、丁四位用戶(hù)同時(shí)下載,那么BT并不會(huì)完全從服務(wù)器下載這個(gè)文件的所有部分,而是根據(jù)實(shí)際情況有選擇地從其他用戶(hù)的機(jī)器中下載已下載完成的部分。例如甲已經(jīng)下載了第1部分,乙已經(jīng)下載了第2部分,那么丙就會(huì)從甲的機(jī)器中下載第1部分,從乙的機(jī)器中下載第2部分,當(dāng)然甲、乙、丁三位用戶(hù)也在同時(shí)從丙的機(jī)器中下載相應(yīng)的部分,這就大大減輕了BT服務(wù)器的負(fù)荷,也同時(shí)加快了丙的下載速度,也就是說(shuō)每臺(tái)參加下載的計(jì)算機(jī)既從其他用戶(hù)的計(jì)算機(jī)上下載文件,同時(shí)自身也向其他用戶(hù)提供下載,因此參與下載的用戶(hù)數(shù)量越多,下載速度也越高。

關(guān)于怎么進(jìn)行BitTorrent下載原理分析問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI