PeerCDN:使用WebRTC构建基于浏览器的P2P 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年,为所有类型的静 态文件提供服务非常容易且成本低廉,所以大的视频可能是唯一的使用场景,而如果使用这种方式加载视频,需要大量的种子才能快速缓冲并播放。此外,还有存储 这些内容需要占用用户多大的磁盘空间,是否会在当前页面上下文之外存储内容等问题。
人们并不想这样共享自己的带宽,特别是他们自己没有选择权的情况下。很多用户可能并不知道发生了什么,但是他们会发现自己访问网页时的速度变慢了。另外,现在人们通常会打开大量的标签页,但是他们并不希望一些忘记关闭的标签页占用大量的流量。
当然,也有人持肯定意见,认为互联网需要更多这样的技术。只有ADSL连接才存在人们所关心的带宽问题,但是对称访问连接(FttH)会越来越多,这将推动P2P协议向前发展。
如果你想了解社区中对该项目的相关讨论,可以打开新闻中给出的链接阅读更详细的信息。
PeerCDN项目的开发者之一Feross Aboukhadijeh是一位著名的HTML 5开发者,他在最近构建了一个网站,能够自动地通过GB大小的猫图填满访问者的硬盘(可参考InfoQ中文站之前的报道)。在此之前,他还创建了一个名为YTInstant的YouTube搜索网站。