对等网络
- 不是每个人都能在世界各地设立1000 个节点的CDN 来分发他们的内容。还有一个替代品可用,它简单易用,并且可以分发大量的内容。它就是对等网络( P2P, Peer-to-Peer )。P2P 网络的异军突起始于1999 年。第一个广泛的应用是大规模的犯罪行为: 50 万Napster 用户交换没有得到版权拥有人许可的盗版歌曲,直到Napster 在一片很大的争议声中由法院裁定被关闭。如今, BT(BitTorrent )是目前最流行的P2P 协议。
- 一个P2P 文件共享网络的基本思路是将多台计算机连到一起并且把它们的资源集中起来形成一个内容分发系统。这些计算机往往是简单的家用电脑。它们并不一定是Internet数据中心的机器。这些计算机称为对等节点( peer ),因为每一个都可交替充当另一个的客户端,获取其内容:也可作为服务器,提供内容给其他对等节点。任何一个人只要有一台计算机都可以加入一个P2P 网络。正是P2P 网络具有强大的内容分发能力,因而可以和最大的网站分庭抗礼。
- 考虑一个P2P 网络,假设平均由N 个用户组成,每个用户具有1Mbps 的宽带连接。P2P 网络的上载总容量,或者用户可以往Internet 发送流量的速率是N Mbps ;而下载容量,或用户可以接收流量的速率也是N Mbps 。而且,每个用户可以同时上传和下载,因为他们在每个方向上都有1 Mbps 链路。一个并不明显但却是真实的结论是所有的容量都可用来高效地分发内容,甚至在所有其他用户共享一个文件副本的情况下。
- 请想象所有的用户组织成一棵二叉树,每个非叶结点的用户给其他两个用户发送。这棵树把文件的单个副本运载到所有的其他用户。为了让尽可能多的用户在任何时候(因此分发大文件的延迟较低)使用尽可能多的上传带宽,我们需要管道化用户的网络活动。试想,该文件被划分成1000 个小片。每个用户可以从树的上方某个地方接受一个新的小片,并且在同一时间把先前收到的一小片向树的下方发送。这样,一旦管道开始后,在一部分的小片(等于树的深度)被发送出去后,所有的非叶结点用户都将忙于上传文件给其他用户。由于有大约N/2个非叶结点的用户,该树的上传带宽是N/2 Mbps。我们可以重复这一招,通过交换叶结点和非叶结点的角色,创建另一个树来使用其他N/2 Mbps的上传带宽。综合起来,这样的结构就使用了全部的容量。 这个说法意味着P2P 网络能自我调整。它们可用的上传容量随着用户的下载需求而水涨船高。从某种意义上说,它们总是“足够大”,根本不需要任何专门的基础设施。
- P2P 网络的一个重大挑战在于当面临各种各样的用户,而且用户具有不同的下载和上传容量时,如何更好地使用带宽。尽管如此,这些数字仍然表明了P2P 的巨大潜力。P2P 网络之所以如此重要还有另外一个原因。CDN 和其他集中运行服务的系统将提供商置于一个拥有许多用户个人信息宝库的位置,从用户的浏览喜好和网上购物,到人们的地点和电子邮件地址等悉数掌握。这些信息可以被用来提供更好以及更个性化的服务,但也可以用来侵犯人们的隐私。后者可能是故意的行为(比如作为新产品推销的手段。在P2P 系统中,不可能有单个提供商具备监测整个系统的能力。这并不意味着P2P 系统一定会提供隐私保护,因为用户在一定程度上是相互信任的。它只意味着P2P 可以提供比集中式管理系统形式不同的隐私保护措施。P2P 系统现在正探索超出文件共享的服务〈例如,存储、流媒体〉,时间会告诉我们这样做的好处是否显著。
- P2P 技术的发展遵循两条相关的路径。从更实际的角度出发,每天都有正在使用的系统。这些系统中最著名的是基于BitTorrent 协议。这是P2P 系统作为整体运行性能良好的核心技术,但不需要依靠任何集中式组件。
BitTorrent
- BitTorrent 协议是2001 年由Brahm Cohen 开发的,目的是让一组同行们方便快捷地共享文件。有几十个免费可用的客户端运行这个协议,就好像有许多浏览器和Web 服务器使用HTTP 协议通信一样。BitTorrent 协议作为一个开放标准,可从www.bittorrent.org获得。
- 在一个典型的对等系统中,就像使用BT 形成的系统,每个用户有一些可能对其他用户来说感兴