bittorrent協議

簡述

Bittorrent(BT) wiki:https://wiki.theory.org/index.php/BitTorrentSpecification

文件分發協議,下載過程主要包括:BT客戶端Peer(有.torrent文件)首先解析.torrent文件得到Tracker地址,然後連接Tracker服務器。Tracker服務器迴應Peer的請求,提供下載者其他Peer(包括髮布者)的IP。Peer再連接其他Peer,根據.torrent文件,兩者分別對方告知自己已經有的塊,然後交換對方沒有的數據。

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

尋址方式

DHT網絡(分佈式Hash表) + PEX(Peer Exchange) + MagNet指紋

DHT

在不需要服務器的情況下,每個客戶端負責一個小範圍的路由,並負責存儲一小部分數據,從而實現整個DHT網絡的尋址和存儲。

 

MagNet

文件的“數字指紋“,需要藉助DHT網絡來索引需要下載的文件的,在對等網絡中進行信息檢索和下載文檔。和基於“位置”連接的統一資源定位符(URL)不同,磁力鏈接是基於元數據(metadata)文件內容,屬於統一資源名稱(URN)。是在分佈式數據庫中,通過散列函數值來識別、搜索來下載文檔。

peer與tracker

tracker:管理BitTorrent協議的服務器。

Peer:遵循BitTorrent協議來交換文件數據用戶

 

DataPiece

Data:遵循BitTorrent協議傳輸的文件。

Piece:文件對應的切片數據(數據傳輸的最小單位)。

Data依據bittorrent被分爲較小片段在peers之間傳輸,其中Piece大小是固定的,除了最後一塊片段的大小是不規則的,其餘片段的大小都是一致的

MetaInfo

MetaInfo文件是什麼?:就是“.torrent”文件,包含協議運行所需的所有詳細信息的文件。就是說,我們拿到MetaInfo就可以找到對應的文件。

主要包括Tracker信息和文件信息,Tracker信息主要是BT下載中需要用到的Tracker服務器的地址和針對Tracker服務器的設置,文件信息是根據對目標文件的計算生成的,計算結果根據BitTorrent協議內的B編碼規則進行編碼

GitHub-Go

Taipei Torrenthttps://github.com/jackpal/Taipei-Torrent

較輕量的,基於命令行接口的Torrent客戶端,主要功能有支持多Torrent文件,Magnet鏈接,DHTUPnP/NAT-PMP打洞,也提供簡單的tracker服務。

anacrolix/torrenthttps://github.com/anacrolix/torrent

實現了BitTorrent協議相關功能包,以及提供較豐富的命令行工具集。支持加密協議,DHTPEXuTP以及多種擴展

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章