PeerCDN:使用WebRTC构建基于浏览器的P2P CDN
2013-04-08 10:56
288 查看
一组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搜索网站。
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搜索网站。
相关文章推荐
- 使用python构建基于hadoop的mapreduce日志分析平台 推荐
- 基于Node.js的JavaScript项目构建工具gulp的使用教程
- 使用Postfix构建基于FreeBSD的邮件系统(简化版)
- 使用ASP.NET Web Api构建基于REST风格的服务实战系列教程【二】——使用Repository模式构建数据库访问层
- 《Spark机器学习》笔记——基于MovieLens数据集使用SparkMLib机器学习库构建电影推荐引擎
- 基于MVC4+EasyUI的Web开发框架经验总结(3)- 使用Json实体类构建菜单数据
- 简单两步快速实现shiro的配置和使用,包含登录验证、角色验证、权限验证以及shiro登录注销流程(基于spring的方式,使用maven构建)
- 使用Three.js + Blender构建在浏览器端显示的3D模型(4)
- [导入]使用Office System构建基于项目的文档管理系统的设想
- 使用ASP.NET Web Api构建基于REST风格的服务实战系列教程【三】——Web Api入门
- 基于vue.js 2.0,不使用webpack,只在浏览器上单独使用Element UI的Table表格控件完成增删改查页面
- 使用PowerApps快速构建基于主题的轻业务应用 —— 进阶篇
- 使用ASP.NET Web Api构建基于REST风格的服务实战系列教程【外传】——Attribute Routing
- 使用Three.js + Blender构建在浏览器端显示的3D模型(5)
- 使用Three.js + Blender构建在浏览器端显示的3D模型(5)
- 使用基于Node.js的构建工具Grunt来发布ASP.NET MVC项目
- 使用ASP.NET Web Api构建基于REST风格的服务实战系列教程【外传】——Attribute Routing
- 使用WebRTC实现电脑与手机通过浏览器进行视频通话
- 使用Spring Boot快速构建基于SQLite数据源的应用
- 基于微软开发平台构建和使用私有NuGet托管库