自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

BitTorrent協(xié)議原理簡單描述

網(wǎng)絡(luò) 網(wǎng)絡(luò)管理
BitTorrent協(xié)議是我們使用BT下載和BT種子的基礎(chǔ)。那么對于這個非常有名的下載程序它的一些網(wǎng)絡(luò)協(xié)議是如何規(guī)定的,本文將為大家介紹一下它的原理。

在我接觸電腦并且使用下載軟件的時候是螞蟻,后來我們就使用BT這個工具了。到了現(xiàn)在,下載軟件無數(shù),但是最基本的我們還是要了解一下BitTorrent協(xié)議。這也是BT種子,BT下載等內(nèi)容的規(guī)范。普通的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ā)布者會根據(jù)要發(fā)布的文件生成提供一個.torrent文件,即種子文件,也簡稱為種子。

.torrent文件本質(zhì)上是文本文件,包含Tracker信息和文件信息兩部分。Tracker信息主要是BT下載中需要用到的Tracker服務(wù)器的地址和針對Tracker服務(wù)器的設(shè)置,文件信息是根據(jù)對目標(biāo)文件的計算生成的,計算結(jié)果根據(jù)BitTorrent協(xié)議內(nèi)的Bencode規(guī)則進(jìn)行編碼。它的主要原理是需要把提供下載的文件虛擬分成大小相等的塊,塊大小必須為2k的整數(shù)次方(由于是虛擬分塊,硬盤上并不產(chǎn)生各個塊文件),并把每個塊的索引信息和Hash驗證碼寫入.torrent文件中;所以,.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)確性的問題。

一般的HTTP/FTP下載,發(fā)布文件僅在某個或某幾個服務(wù)器,下載的人太多,服務(wù)器的帶寬很易不勝負(fù)荷,變得很慢。而BitTorrent協(xié)議下載的特點是,下載的人越多,提供的帶寬也越多,種子也會越來越多,下載速度就越快。

而有些人下載完成后關(guān)掉下載任務(wù),提供較少量數(shù)據(jù)給其他用戶,為盡量避免這種行為,在非官方BitTorrent協(xié)議中存在超級種子(super seed)的算法。這種算法允許文件發(fā)布者分幾步發(fā)布文件,發(fā)布者不需要一次提供文件所有內(nèi)容,而是慢慢開放的下載內(nèi)容的比例,延長下載時間。此時,速度快的人由于未下載完必須提供給他人數(shù)據(jù),速度慢的人有更多機(jī)會得到數(shù)據(jù)。

BitTorrent協(xié)議原理圖

 

BitTorrent協(xié)議原理在該圖示中,由不同顏色區(qū)分的是某一文件的不同部分,當(dāng)傳輸開始時,只有種子發(fā)布都擁有全部文件,在傳輸進(jìn)行中,有部分用戶獲得部分文件(帶顏色線條表示),隨著傳輸?shù)睦^續(xù),文件已經(jīng)全部公布在系統(tǒng)中,此時,種子擁有者可以退出,也不會影響該文件的傳播。

責(zé)任編輯:佟健 來源: IT實驗室
相關(guān)推薦

2010-07-08 14:54:30

BitTorrent協(xié)

2010-06-24 17:03:45

BitTorrent協(xié)

2010-07-14 17:34:57

SMTP協(xié)議

2010-07-13 16:17:03

BitTorrent協(xié)

2010-06-17 17:53:28

2010-06-21 14:09:33

Bittorrent協(xié)

2010-07-02 11:45:09

BitTorrent協(xié)

2010-06-24 16:40:16

Bittorrent協(xié)

2010-06-21 14:42:27

BitTorrent協(xié)

2010-06-21 16:56:03

BitTorrent協(xié)

2010-06-21 13:26:32

BitTorrent協(xié)

2010-06-28 10:35:18

Bittorrent協(xié)

2010-06-28 09:31:13

BitTorrent協(xié)

2010-06-28 11:08:32

BitTorrent協(xié)

2010-06-28 11:15:45

BitTorrent協(xié)

2009-09-22 12:45:00

Hibernate性能

2009-09-28 15:43:42

Hibernate O

2009-09-14 10:57:46

LINQ入門

2009-09-23 10:58:32

Hibernate T

2009-09-09 15:28:43

Linq to obj
點贊
收藏

51CTO技術(shù)棧公眾號