BT原理分析

2021-09-30 14:39:59 字數 1504 閱讀 3515

bittorrent協議。

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

下面是用bittorrent分享的流程:

其實跟ed也十分相似,ed跟bt不同的地方有:

ed--要連上乙個固定server bt--沒有固定server,只要分享者製作出該分享檔案的.torrent檔公布出來便可

ed--分享的人越多速度越快? bt--種子seed越多速度越快

ed--世界性的分享 bt--團體性的分享(可做到速度保證)

ed--知道在分享者的user name &速度 bt--沒顯示使用者/分享者名字

比起其它的p2p軟體,bt有個獨特的地方,它存在乙個中間的web伺服器,就是我們在發布的時所填寫的announce。 該伺服器提供了發布的統一管理,不像其它p2p軟體那樣到處去找哪些非常不穩定的個人伺服器,相對起來讓人安心的多。

.torrent 的作用

首先是 announce 紀錄了發布伺服器的位置,讓bt知道是那個web伺服器發布的,然後是一些檔案資訊,檔名,目錄名,長度等等,最後是片段長度,和片段的 sha1 校驗碼,(bt為了事現續傳和檔案校驗,就把檔案分成若干個片段),大家可以用寫字板打看torrent檔案看看,就是知道個大概,後面的亂碼是片段 sha1 校驗碼。

開始-續傳的實現 sha校驗

得到 peer

是發布伺服器的位址

info_hash 是torrent檔案中的 info 部分的sha校驗碼,web通過它在發布列表找到對應的紀錄

peer_id 是自身的標識,它是12個0和當前時間+全球的唯一標識碼(guid)的sha校驗的前八位,共20位

port 你提供上傳的 port

ip 你的ip位址,沒有的話伺服器會自己找到

以上這個操作預設 5 分鐘做一次,或由伺服器設定

伺服器會做甚麼

interval 1800 是告訴 bt 隔多少秒來查詢一次這裡是 30 分鐘 (有點過分了),最後如果你是公網使用者它會把你提交的 ip 和 port 放到info_hash 對應的列表中,這樣其它人就可以找到你

內網使用者可以做send的原理

1 內網使用者開始做 seed,

2 伺服器收到請求,由於是第乙個所以也沒有peer返回

4 內網經過 interval 時間間隔後,再向伺服器放出請求,得到上面得公網ip

5 得到公網ip後,內網馬上進行連線

6 公網使用者建立連線,資料開始傳輸 (注意現在是公網使用者做伺服器,內網使用者做客戶端,是不是有點怪)

以上可見,內網使用者不能和內網使用者連線,其它使用者無法從伺服器查到你,所以無法主動連線你,你只能每隔30分鐘從伺服器找到公網使用者乙個個進行連線。

由於中國很多使用者的是內網使用者(我從伺服器上查回來的peer還沒試過超過10個的),所以內網使用者用bt的確要比公網使用者要慢很多

BT原理分析

bittorrent協議。下面是一般用ftp,http等分享流程 下面是用bittorrent分享的流程 其實跟ed也十分相似,ed跟bt不同的地方有 ed 要連上乙個固定server bt 沒有固定server,只要分享者製作出該分享檔案的.torrent檔公布出來便可 ed 分享的人越多速度越快...

BT原理收集 1

bt是通過web伺服器來實現的,首先bt會通過分析 torrent 來得到下面一串 http btfans.3322.6969 announce 是發布伺服器的位址 info hash 是torrent檔案中的 info 部分的sha校驗碼,web通過它在發布列表找到對應的紀錄 peer id 是自...

BT種子的原理

這個可以分兩個層面來解釋下 1 torrent檔案的原理 如果您這個問題是指torrent檔案本身,那麼,當您對乙個檔案 或者資料夾 製作成.torrent檔案,實際上生成的.torrent檔案裡面主要包括了這些資訊 b 一般製作torrent檔案時,還會要指定乙個或者多個tracker的位址,比如...