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以及多种扩展

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