文件共享系統:BitTorrent

歷史

2002年首推,BT軟件BitTorrent,以Python寫成

原理概述

BitTorrent協議是架構于TCP/IP協議之上的一個P2P文件傳輸協議,處于TCP/IP結構的應用層

  根據BitTorrent協議,文件發布者會根據要發布的文件生成提供一個.torrent文件,即種子文件,也簡稱為種子.torrent文件本質上是文本文件,包含Tracker信息和文件信息兩部分。Tracker信息主要是BT下載中需要用到的Tracker服務器的地址和針對Tracker服務器的設置,文件信息是根據對目標文件的計算生成的,計算結果根據BitTorrent協議內的B編碼規則進行編碼。它的主要原理是需要把提供下載的文件虛擬分成大小相等的塊,塊大小必須為2k的整數次方(由于是虛擬分塊,硬盤上并不產生各個塊文件),并把每個塊的索引信息和Hash驗證碼寫入.torrent文件中;所以,.torrent文件就是被下載文件的索引

  下載者要下載文件內容,需要先得到相應的.torrent文件,然后使用BT客戶端軟件進行下載。

  下載時,BT客戶端首先解析.torrent文件得到Tracker地址,然后連接Tracker服務器Tracker服務器回應下載者的請求,提供下載者其他下載者(包括發布者)的IP。下載者再連接其他下載者,根據.torrent文件,兩者分別告知對方自己已經有的塊,然后交換對方沒有的數據。此時不需要其他服務器參與,分散了單個線路上的數據流量,因此減輕了服務器負擔

校驗)下載者每得到一個塊,需要算出下載塊的Hash驗證碼與.torrent文件中的對比,如果一樣則說明塊正確,不一樣則需要重新下載這個塊。這種規定是為了解決下載內容準確性的問題。

HTTP/FTP下載的比較

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

  

技術框架

發布內容

對等發布

流水作業

片斷選擇

1.          嚴格的優先級

2.          最少的優先

3.          隨機的第一個片斷

4.          最后階段模式

BT軟件

  BT Plus!

  BitBuddy

  BitComet

  BitTornado

  Azureus

  比特精靈

  BitTorrent

  迅雷

  Flashget >1.96

  uTorrent

  電驢(eMule)

  脫兔