P2P(对等网络)、 PT 下载与 BT 下载

0. P2P 对等网络

我的理解是对等网络中的主机之间不存在谁为服务器,谁为客户端的问题。彼此在网络在网络中的地位是相同的,也即互为服务器和客户机。

对等网络,即对等计算机网络,是一种在对等者(Peer)之间分配任务和工作负载的分布式应用架构,是对等计算模型在应用层形成的一种组网或网络形式。“Peer”在英语里有“对等者、伙伴、对端”的意义。因此,从字面上,P2P 可以理解为对等计算或对等网络。国内一些媒体将P2P翻译成“点对点”或者“端对端”,学术界则统一称为对等网络(Peer-to-peer networking)或对等计算(Peer-to-peer computing),其可以定义为:网络的参与者共享他们所拥有的一部分硬件资源(处理能力、存储能力、网络连接能力、打印机等),这些共享资源通过网络提供服务和内容,能被其它对等节点(Peer)直接访问而无需经过中间实体。在此网络中的参与者既是资源、服务和内容的提供者(Server),又是资源、服务和内容的获取者(Client)。



在 P2P 网络环境中,彼此连接的多台计算机之间都处于对等的地位,各台计算机有相同的功能,无主从之分,一台计算机既可作为服务器,设定共享资源供网络中其他计算机所使用,又可以作为工作站,整个网络一般来说不依赖专用的集中服务器,也没有专用的工作站。网络中的每一台计算机既能充当网络服务的请求者,又对其它计算机的请求做出响应,提供资源、服务和内容。通常这些资源和服务包括:信息的共享和交换、计算资源(如 CPU 计算能力共享)、存储共享(如缓存和磁盘空间的使用)、网络共享、打印机共享等。

总线型对等网络示意图:



1. BT 下载

无论是 BT 还是 PT,还是 FTP,都是一种下载方式,或者学术点的讲法,叫文件传输。

BT 是一种互联网上新兴的 P2P 传输协议(即 BT 是一种特殊的 P2P),BT 下载通过一个 P2P 下载软件(点对点下载软件)来实现,克服了传统下载方式的局限性,具有下载的人越多,文件下载速度就越快的特点。其好处是不需要资源发布者拥有高性能服务器就能迅速有效地把发布的资源传向其他的 BT 客户软件使用者,而且大多数的 BT 软件都是免费的。

1.1 传统方式

在传统下载方式中,一般是把文件由服务器端传送到客户端,例如 FTP,HTTP,PUB 等等。由于是从一台服务器下载,服务器所提供的带宽是一定的,因而下载人越多速度越慢。但是这样就出现了一个问题,随着用户的增多,对带宽的要求也随之增多,用户过多就会造成瓶颈,而且搞不好还会把服务器挂掉,所以很多的服务器会都有用户人数的限制,下载速度的限制,这样就给用户造成了诸多的不便


这里写图片描述

1.2 BT 方式

与传统下载不同,用 BT 下载反而是用户越多,下载越快,这是因为 BT 用的是一种传销的方式来达到共享的。


这里写图片描述

BT 首先在上传端把一个文件分成了 Z 个部分,甲在服务器随机下载了第 N 个部分,乙在服务器随机下载了第 M 个部分,这样甲的 BT 就会根据情况到乙的电脑上去下载乙已经下载好的 M 部分,乙的 BT 就会根据情况到甲的电脑上去下载甲已经下载好的 N 部分,这样就不但减轻了服务器端的负荷,也加快了用户方(甲乙)的下载速度,效率也提高了,更同样减少了地域之间的限制。比如说丙要连到服务器去下载的话可能才几K,但是要是到甲和乙的电脑上去下载就快得多了。所以说用的人越多,下载的人越多,大家也就越快,BT 的优越性就在这里。而且,在你下载的同时,你也在上传(别人从你的电脑上下载那个文件的某个部分),所以说在享受别人提供的下载的同时,你也在贡献。

与 BT 下载相比,普通下载原理图普通的 HTTP/FTP 下载使用 TCP/IP 协议,BitTorrent 协议是架构于 TCP/IP 协议之上的一个 P2P文件传输协议,处于 TCP/IP 结构的应用层。BitTorrent 协议本身也包含了很多具体的内容协议和扩展协议,并在不断扩充中。根据 BitTorrent 协议,文件发布者发布的文件生成提供一个 .torrent 文件,即种子文件,简称为“种子”。

torrent 文件本质上是文本文件,包含:

  • Tracker 信息, BT 下载中需要用到的 Tracker 服务器的地址和针对Tracker 服务器的设置
  • 文件信息两部分。

文件信息是根据对目标文件的计算生成的,计算结果根据 BitTorrent 协议内的 B 编码规则进行编码。它的主要原理是需要把提供下载的文件虚拟分成大小相等的块,块大小必须为2k的整数次方(由于是虚拟分块,硬盘上并不产生各个块文件),并把每个块的索引信息和 Hash 验证码写入.torrent文件中;所以,.torrent文件就是被下载文件的“索引”。下载者要下载文件内容,需要先得到相应的.torrent文件,然后使用 BT 客户端软件进行下载。

BT 客户软软件:

  • uTorrent(Windows):现在uTorrent由BitTorrent公司所有(不要和BT协议混淆)。
  • Deluge(所有平台):跨平台 uTorrent
  • Transmission(Mac OS X/*nix)

下载时,BT客户端首先解析.torrent文件得到Tracker地址,然后连接Tracker服务器。Tracker服务器回应下载者的请求,提供给下载者其他下载者(包括发布者)的 IP。下载者再连接其他下载者,根据 .torrent 文件,两者分别告知对方自己已经有的块,然后交换彼此的数据。此时不需要其他服务器参与,分散了单个线路上的数据流量,因此减轻了服务器负担。

下载者每得到一个块,需要算出下载块的 Hash 验证码与 .torrent 文件中的对比,如果一样则说明块正确,不一样则需要重新下载这个块。这种规定是为了解决下载内容准确性的问题。

而有些人下载完成后关掉下载任务,提供较少量数据给其他用户,为尽量避免这种行为,在非官方BitTorrent协议中存在超级种子的算法。这种算法允许文件发布者分几步发布文件,发布者不需要一次提供文件所有内容,而是慢慢开放的下载内容的比例,延长下载时间。此时,速度快的人由于未下载完必须提供给他人数据,速度慢的人有更多机会得到数据。由此往往造成用户卡在任务的99%,下载1G的任务要上传3G之多。

2. PT 下载

PT(Private Tracker)下载其实是原理类似 BT(BitTorrent,比特流) 下载的一种,但有两个明显的改进:

  • 一是私密的小范围下载;
  • 二是进行流量统计,根据下载量决定你的权限。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五道口纳什

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值