發新話題

[轉貼][教學]BitTorrent 的原理 (詳細附圖版)

[轉貼][教學]BitTorrent 的原理 (詳細附圖版)

BitTorrent 可以說是最新概念的 P2P 下載工具、採用多點對多點原理,簡稱 BT(BitTorrent) / 變態下載 ! !
平時我們用傳統 P2P (例如 ICQ /FTP..)工具來下載檔案,如果愈多人下載,下載速度就愈慢.....
傳統 P2P 下載概念是,一台擁有檔案的電腦、將檔案分享出來,讓多名下載者在其上而下載,
這就是傳統 P2P 原理,亦離不開這個 "一對一" 或 者 ""一對多人" 的共享概念。


下圖就是傳統 P2P 原理(問題: 太多下載者下載檔案速度就愈慢 !)




BitTorrent 的原理是每一個下載者同時都會擔當了上載的角色,而愈多人下載,
亦即表示擁有愈多上載者將它們暫時不用的上載寬頻分享出來,形成了一個"上載流",再平均分給各個下載者,
簡單來說:你每下載檔案時,同時間你就會將下載完的檔案再分享出來,不論是幾多 MB 都會平均分享給每一位下載者,這就 "多點對多點" 的共享概念。
下圖就是多點對多點原理




舉一個例子:

若使用1M /64K ADSL(max upload 是64Kbps=6~8Kbyte),而使用 BT 來發佈一個 300 MB 的動畫,有15個人正在下載,不用兩個小時經己將我的 300 MB 的動畫成功分享給這15個人,為什麼這麼快 ?
其實很簡單,因為每個人接收了檔案都會成為另一個發佈者,這亦即是所謂的多點對多點傳送,愈多人下載,那麼其他電腦下載的速度便愈來愈快~
如果用 P2P 來傳送 1 G 檔案,1M /64K ADSL(max upload 是64Kbs)最少要用上 7-8 小時才可以成功分享給一個人,
如用上了 BT 來分享 1 G 檔案,7-8 小時後可以成功分享給幾十人,是不是很厲害 !
還有就是只要還有一粒種子(seeds)或叫做分佈者分享檔案,你就一定可以下載檔案,直至沒有種子(seeds)為止,不像 Kazza /emule 要排隊下載,限制多多,往往用了不少大家時間來下載,甚至乎呆等幾天檔案仍然未下載完成,BitTorrent 就無這些煩腦囉!

.torrent 的作用

大家都知道我們要用BT下載 ,就要先下載一個.torrent文件,這個文件到底有甚麼呢︰
首先是 announce 紀錄了發佈伺服器的位置,讓BT知道是那個WEB伺服器發佈的,然後是一些文件訊息,文件名,目錄名,長度等等,最後是片段長度,和片段的 Sha1 校驗碼,(BT為了事現續傳和文件校驗,就把文件分成若干個片段),大家可以用寫字板打看torrent文件看看,就是知道個大概,後面的亂碼是片段 Sha1 校驗碼。

開始-續傳的實現 sha校驗

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

得到 peer

現下知道要下載甚麼了,到那裡下載呢?這就要尋找有誰提供上傳了,這裡BT是透過WEB伺服器來實現的,首先BT會透過分析 torrent 來得到下面一串網址
訪客無法瀏覽此圖片或連結,請先 註冊登入會員

訪客無法瀏覽此圖片或連結,請先 註冊登入會員 是發佈伺服器的位址

info_hash 是torrent文件中的 info 部分的Sha校驗碼,WEB透過它在發佈列表找到對應的紀錄

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

port 你提供上傳的 port

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

uploadED downloadED 你上傳和下載了多少,伺服器可以用它來做流量分析

left 你還要下載多少個位元組

event 狀態,告訴伺服器你是準備開始下載,還是停止,還是下載完成了

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

[ 本帖最後由 philxyz0316 於 2006-6-25 18:48 編輯 ]

本帖最近評分記錄

TOP

大 大 如 此 詳 盡 解 說 使 頂 客 一 族 受 益 非 淺 我 支 持

TOP

我是個BT新手
大大解說很詳盡唷!  目前我繼續摸索中
感謝大大!!

TOP

download la....i support you!!!

TOP

BT雖然已經用一陣子了,不過學海無盡,多看多學習才會有進步呀,更希望BT能長長久久囉

TOP

想瞭解bt很久了,可是一直找不到人可以問,經過大大詳細的解說,我終於知道了!謝謝啊

TOP

用BT用了很久,說實在的,要調整到自己滿意的還真不簡單,所以只好多看多學了,感謝大大指教

TOP

BT雖然已經使用一陣子了
  不過學海無涯
      多看多學習才會有進步
        更希望BT能長長久久

TOP

終於有一點瞭解

多爬文還是有用的

感謝分享

TOP

有一點點瞭解bt了


感謝大大分享

TOP

發新話題

本站所有圖文均屬網友發表,僅代表作者的觀點與本站無關,如有侵權請通知版主會盡快刪除。