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 編輯 ]