PeerCDN:使用 WebRTC 构建基于浏览器的 P2P CDN

  • 孙镜涛

2013 年 4 月 7 日

话题:云计算CDN语言 & 开发

一组 Web 黑客构建了一个基于 P2P 的 CDN,能够借助于一些 JavaScript 代码在 Web 浏览器之间分发网站数据。该项目称为PeerCDN,它基于WebRTC这个新兴的技术构建。

PeerCDN 的官网是这样介绍该项目的:

PeerCDN 是一个对等的分布式 CDN,它能够让 Web 变得更快、更可靠,同时能够帮助网站降低带宽消耗。PeerCDN 会自动地通过网站当前访问者所建立起来的 P2P 网络为网站内的静态内容(图片、视频和文件下载)服务,降低 Web 主机的一部分负担,同时也减少网站访问者的带宽消耗。除此之外,它还具有以下优点:

  • 纯 JavaScript,非常快,也非常轻量级,使用它不需要安装任何浏览器插件。
  • 能够轻松地处理瞬间流量增长。访问量高的文件可以被对等节点快速有效地传递,而常规的 Web 服务器和传统的 CDN 则可以为长尾内容提供可靠的服务。
  • 广泛的浏览器支持。PeerCDN 利用 WebRTC 的数据通道在网站访问者之间建立对等的连接,Chrome 和夜间版 Firefox 已经实现了该数据通道协议,而根据 StatCounter 提供的数据,这两款浏览器一共占有全球 58% 的浏览器使用率。此外,IE 和 Safari 可能很快就会支持该协议。
  • 可以和传统的 CDN 一起工作。可以在需要提供更好的网站性能或需要减少服务器带宽使用率的情况下采用 PeerCDN。
  • 内置的安全性。PeerCDN 使用集中的资源认证服务器为网站资源生成 SHA1 哈希。对等节点提供的数据都会在确认安全性和原始性(内容未被篡改)的情况下才会被接受。同时,对等节点间的通信也是加密的。
  • 可靠性。如果对等节点慢或者中央 PeerCDN 服务器无法访问,那么网站就会按照正常方式加载。
  • 易于安装。我们的目标是易于复制、粘贴。只要在一个网站上粘贴一个 script 标签,网站马上就会变快,使用的带宽更少,更加弹性地处理瞬间流量。

为了解释 PeerCDN 的实现方式,该项目还制作了一个截屏视频。该视频首先介绍了 PeerCDN 的一些优点;然后通过文件下载、视频和图片三个示例讲解了其工作方式;最后简要介绍了其安全性、浏览器支持和性能。

当然,对于该项目的前景还有一些不同的声音,有些人就在HackNews 上提出了自己的疑问

这对网站很好,但是对移动或者有数据上限的用户而言就有问题了。移动用户和某些使用无线网络的情况下会有流量限制。

除此之外,有人提出了隐私问题,认为向其他的对等节点泄漏信息根本就不好,因为可以暗地里使用这些信息跟踪用户。同时在 2013 年,为所有类型的静态文件提供服务非常容易且成本低廉,所以大的视频可能是唯一的使用场景,而如果使用这种方式加载视频,需要大量的种子才能快速缓冲并播放。此外,还有存储这些内容需要占用用户多大的磁盘空间,是否会在当前页面上下文之外存储内容等问题。

Reddit 网站上也有人对该项目发表了自己的看法

人们并不想这样共享自己的带宽,特别是他们自己没有选择权的情况下。很多用户可能并不知道发生了什么,但是他们会发现自己访问网页时的速度变慢了。另外,现在人们通常会打开大量的标签页,但是他们并不希望一些忘记关闭的标签页占用大量的流量。

当然,也有人持肯定意见,认为互联网需要更多这样的技术。只有 ADSL 连接才存在人们所关心的带宽问题,但是对称访问连接(FttH)会越来越多,这将推动 P2P 协议向前发展。

如果你想了解社区中对该项目的相关讨论,可以打开新闻中给出的链接阅读更详细的信息。

PeerCDN 项目的开发者之一 Feross Aboukhadijeh 是一位著名的 HTML 5 开发者,他在最近构建了一个网站,能够自动地通过GB 大小的猫图填满访问者的硬盘(可参考InfoQ 中文站之前的报道)。在此之前,他还创建了一个名为YTInstant的 YouTube 搜索网站。

云计算CDN语言 & 开发