文章

什么是BT,BT和PT有什么关系

BT,它的全称是Bittorrent,属于一种文件传输通信协议。
现在如果你要下载一个软件,你往往会直接前往它们的官网或者去各大下载站下载这个软件,资源存放在服务器上单向分发,但这种下载方式也存在着一些问题,例如服务器带宽有限,同时下载的一多,下载的速度就变慢了;更要命的是,如果你要下载的资源属于本来就不应该分发的资源,只要服务器被关停,大家都别想下载了。
针对这一系列问题,美国工程师Bram Cohen在2001年发布了Bittorrent协议,相比于传统下载方式,资源不再仅由一个或多个中心服务器提供,而是所有人提供给所有人,每个下载者都相当于一台资源服务器,每个网络中的用户互相交换彼此下载好的部分,在这种网络下,下载资源的用户越多,用户下载的速度就会越快
为了做到这一点,用户需要为资源生成一个信息文件,其中包含资源的名称,分块大小,分块的哈希值(你可以理解为哈希值是文件的身份证,全世界独一无二),tracker服务器地址等信息,这个信息文件就是我们常说的种子文件,用户就可以靠分发这个种子文件来分发对应的资源
有了这种网络机制,我们还需要解决一个问题——资源发现,用户该如何找到拥有对应资源的其它用户呢?最先给出的答案是Tracker,tracker是一台服务器,但它并不负责存储资源,而是负责登记资源的下载者与做种上传者,当用户用bt下载软件打开种子文件后,下载软件就会尝试联系种子里内置的tracker,联系上之后软件就会向tracker请求正在下载和作者的用户IP地址名单,并定时向tracker汇报自己的下载进度和IP地址以便其他人找到自己,下载软件就可以根据这个名单来连接其他资源持有者了。这也就是为什么未添加tracker的下载软件在下载时会非常慢甚至没有速度的原因
不难发现,tracker也带来了一些问题,如果tracker被关闭了,用户之间无法相互发现,也就无法交换资源,情况就又倒退回传统下载的问题了
针对这一弱点,DHT出现了,用户可以仅靠一个磁力链接就能进行下载,而不需要预先连接到一个tracker。磁力链接的本质是把所有人变成一个小型tracker联结成一张大型网络,用户在下载时会联系最近的几个节点询问是否有这个资源,如果没有节点就会代你询问离它最近的几个节点,一传十十传百直到找到拥有这个资源的节点,然后将拥有资源的节点的IP地址返回给你,你就能愉快的连接上对方进行下载了
而PT(Private Tracker),则是将种子禁用掉DHT功能,仅内置私有的tracker地址,如果用户要连接到这个tracker就需要一串密钥用于验证身份,也就是passkey,而不像公网tracker一样谁都能连接上,以此来控制下载行为;private tracker一般还会记录下你汇报的下载进度等信息,以此来进行数据统计,计算做种时间做种大小等数据来显示在站点的个人信息中
可以看出,BT属于一种协议,而PT属于一种tracker类型

License:  CC BY 4.0