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

2013 年 4 月 07 日

一组 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 搜索网站。

2013 年 4 月 07 日 21:37 8402
用户头像

发布了 321 篇内容, 共 100.9 次阅读, 收获喜欢 6 次。

关注

评论

发布
暂无评论
发现更多内容

2.2.2 类反射场景与使用 -《SSM深入解析与项目实战》

谙忆

Github+docsify零成本轻松打造在线文档网站

Java全栈封神

Java GitHub 全栈 文档 docsigy

计算机网络基础(十七)---传输层-TCP的可靠传输

书旅

TCP 计算机网络 网络协议 计算机基础 TCP/IP

获奖名单公布 | 写作平台八月宠粉福利来袭,参与创作领取限时大奖~

InfoQ写作平台

写作平台 有奖活动 征稿 活动专区

libuv 异步网络编程之 TCP helloworld

Huayra

网络编程 libuv

英特尔推出“OpenVINO领航者联盟”,携手DFRobot推进AI商业落地新探

飞天鱼2017

丢弃掉那些BeanUtils工具类吧,MapStruct真香!!!

Hollis

Java 程序员 后端

不断壮大的电竞生态——英特尔大师挑战赛携手李宁中国选手等你来战!

飞天鱼2017

支持 100 种语言的 Canva 是怎么做本地化管理的?

葛仲君

产品经理 本地化 产品本地化 国际化

微服务架构

不在调上

Linux神器strace的使用方法及实践

华为云开发者社区

Linux 运维 工具 后端 Strace

week 10

Geek_2e7dd7

十五张图带你彻底搞懂从URL到页面展示发生的故事

执鸢者

前端 浏览器 页面展示

9个常用ES6特性归纳(一般用这些就够了)

华为云开发者社区

JavaScript 程序员 编程语言 ES6 编程效率

腾讯SaaS千帆对渠道的态度——合作共赢的诚意

人称T客

原创 | 使用JPA实现DDD持久化- O:对象的世界(3/3)

编程道与术

Java hibernate DDD JDBC jpa

IMC御用设备到底有多强?英特尔携手掠夺者呈现“飞”一般5GHz电竞盛宴

飞天鱼2017

week 10

Geek_2e7dd7

DT时代释放金融数据价值,驱动金融商业裂变

华为云开发者社区

金融科技 华为云 modelarts 数据价值 用户细分

最右JS2Flutter框架——动画、小游戏的实现(四)

刘剑

flutter 前端 探索与实践

微服务的认识

chenzt

十二张图搞懂浏览器安全——(同源策略、XSS、CSRF、跨域、HTTPS、安全沙箱等知识点)

执鸢者

https 浏览器安全 同源策略 XSS 跨域

LeetCode题解:21. 合并两个有序链表,迭代(优化),JavaScript,详细注释

Lee Chen

LeetCode 前端进阶训练营

AndroidStudio解决Unknown host 'd29vzk4ow07wi7.cloudfront.net'. You may need to adjust the proxy settings in Gradle

小菜鸟学php

华为阿里下班时间曝光:所有的光鲜,都有加班的味道

程序员生活志

华为 加班 阿里

当我们谈注册中心时谈什么?

小楼

zookeeper nacos 注册中心

论做AI芯片的正确姿势

flow

你是否真的懂数组?

架构师修行之路

数组 数据结构与算法

【权限系统设计】ACL, DAC, MAC, RBAC, ABAC模型的不同应用场景

小隐乐乐

为什么 90 后一言不合就跳槽?

非著名程序员

程序员 个人成长 职业成长 延迟满足感 即时反馈

5招详解linux之openEuler /centos7防火墙基本使用指南

华为云开发者社区

centos7 网络安全 防火墙 openEuler 网络环境

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