當前位置:編程學習大全網 - 源碼下載 - 怎樣用BT下載?

怎樣用BT下載?

BT運行原理分析及內網提速方法。

由於內網用戶無法提供壹個對外的端口,所以無法做服務器.但用BT的時候,發現它可以讓內網用戶做 Send,作為程序員就忍不住下載了它的源代碼分析了壹把(為了看它,還專門去寫了壹下Python:})

比起其它的P2P軟件,BT有個獨特的地方,它存在壹個中間的WEB服務器,就是我們在發布的時所填寫的announce.該服務器提供了發布的統壹管理,不像其它P2P軟件那樣到處去找哪些非常不穩定的個人服務器,相對起來讓人安心的多.

該WEB服務器更大的作用是內網用戶可以做 Send(下面會說明原理),這是其它軟件無法做到的,但不好的地方是announce當機的時候就無法下載了,要知道P2P下載關鍵是要人氣要高,announce停壹下就搞到人氣全沒有了

.torrent 的作用

大家都知道我們要用BT下載 ,就要先下載壹個.torrent文件,這個文件到底有甚麽呢:

首先是 announce 紀錄了發布服務器的位置,讓BT知道是那個WEB服務器發布的

然後是壹些文件信息,文件名,目錄名,長度等等

最後是片段長度,和片段的 Sha1 校驗碼

(BT為了事現續傳和文件校驗,就把文件分成若幹個片段)

大家可以用寫字板打看torrent文件看看,就是知道個大概,後面的亂碼是片段 Sha1 校驗碼

開始-續傳的實現 sha校驗

BT 打開壹個 torrent文件後,先要妳選擇文件保存那裏.然後判斷文件不存在的話就建立新文件,存在的話就用 Sha1 校驗碼去校驗文件---錯誤的就是還沒下載的,這樣就可以實現續傳了,但128位校驗,想不慢都不行

得到 peer

現在知道要下載甚麽了,到那裏下載呢?這就要尋找有誰提供上傳了,這裏BT是通過WEB服務器來實現的,首先BT會通過分析 torrent 來得到壹面壹串網址

pleted或stopped(或empty,等同於沒有運行)。如果沒有運行,這個聲明會定期間隔壹定時間發出。開始下載時發出started值,完成下載時發出completed。當文件完整後再開始,沒有completed發出,下載者中止下載時發出stopped。

Tracker的回應也是B編碼字典。如果Tracker回應中有關鍵值failure reason(失敗原因),就會對應壹個人可以讀懂的字符串信息解釋質詢失敗的原因,不需要其它關鍵值。否則,回應必須有兩個關鍵值:interval(間隔)對應下載者定期發出請求的間隔秒數;peers,peers對應壹個與peers相通信的字典列表,peers,peer自選ID,IP地址或DNS主機名的字符串和端口號之壹。記住,假如下載者發生壹個事件或者想要更多的peers,他們不會完全按照計劃的間隔發送請求。

如果妳想對元信息文件或者Tracker質詢進行擴展,請與Bram Cohen進行協調,確保所有擴展都兼容。

BitTorrent peer協議通過TCP協議進行操作。它不用調節任何socket選項就可以流暢運行。

peer之間的連接是對稱的。兩個方向送出的信息要協調壹致,數據可以流入任壹方。

peer協議是按照元信息文件所描述的索引的文件塊,以零開始。當壹個peer完

  • 上一篇:巢湖整站推廣源代碼
  • 下一篇:DNF,所有職業EX技能名稱
  • copyright 2024編程學習大全網