Jare.io,一个即时和免费的 CDN

  • Hrishikesh Barua
  • 李东辉

2016 年 4 月 27 日

话题:CDNDevOps

Jare.io,号称是一个免费的内容分发网络(CDN),其本质是亚马逊 CloudFront 服务的包装。当配置 CloudFront 的麻烦超过其好处时,Jare.io 能够用于在低流量情况下快速地试验 CDN。

CloudFront 不是免费的,但 jare.io 创建者背后的公司 teamed.io 支付了 CloudFront 的使用费用。Jare 和 cf.jare.io 的 CDN 域名指向了 CloudFront 的分发域名。当一个请求第一次到达 CloudFront 至 cf.jare.io 时,CloudFront 会将请求转发给 jare.io 的服务器上作为源站或内容起始服务器,Jare.io 则依次从实际源站获取内容并且那些内容必须被指定整合为 Jare.io的一部分。

当选择 CDN 时,一些需要关注的点:

  • 全球接入点 (POPs) 数量
  • 防止分布式拒绝服务(DDOS)攻击
  • 内容失效和传输的时间
  • API 支持
  • HTTPS 支持

内容分发网络维护全球的 POPs 能够使静态内容从靠近用户的地点上提供,从而减少延迟。测量靠近度的方法可以是地理上的、网络跳数的数量或用户与 POP 之间的往返时间(RTT)。POP 会从源站获取内容后进行缓存。InfoQ 接触了一些主要的 CDN 供应商并询问了他们的技术。

CDN 供应商使用 DNS 单播(Unicast)或选播(Anycast)之一的通信方法以保证用户的请求传播自最近的位置。通常用户对定制域名(像 cdn.infoq.com)的请求,会映射到 CDN 供应商的主机上。当单播的方法被使用时,DNS 服务器会负责返回最靠近用户的 CDN 节点的地址。

当使用选播时,多个节点能拥有相同的 IP 地址。当发生一个请求时,DNS 服务器解析域名为 IP 地址,并负责发送请求到最拓扑靠近用户的节点上。最拓扑靠近可能不会转换至地理上的最近。选播能够用于 DNS(定位最近的域名服务器) 和 HTTP(定位最近的内容 POP)。

在 HTTP 选播方式中,DNS 服务器给全部用户返回相同的 IP 地址,边界网关协议(BGP)负责路由用户到最近的 IP 地址所在的服务器,BGP是一个用于在网络上交换路由信息的基础协议。

像 MaxCDN 的供应商使用了选播和 DNS 路由的组合。Verizon,在 2013 年收购了 EdgeCast,在 DNS 和 HTTP 上都使用了选播方法。 HTTP 选播同样被FastlyGoogle使用。Akamai 拥有一个更复杂的设置的 DNS 选播技术。

在最近几年已经有各种各样的努力使互联网(或者说万维网)更快。网页关键协议——HTTP,已经看到了升级 ——HTTP2。目前只有一些 CDN支持它,但它会在接下来几个月随着大部分浏览器增加对它的支持而增加。像 Verizon 和 Fastly 的提供商朝着支持它的方向上努力着。

另外一种用于在 TCP 协议上提高初始拥塞窗口(initcwnd)的改进已经实施一段时间了,initcwnd 的设置控制了那些仍保持未回复的服务器(直到它能够发送更多)的发送包的最大数量。在老版本操作系统包括 Linux 的默认值非常小。一个低的值能影响浏览器从服务器接收应答的速度而与多高的可用带宽无关。提高值的方法,首次提出于 2010 的Google 论文和之后于 2013 年作为RFC标准,已经被大多数主要的 CDN 供应商采用

Akamai 在最大量接入点上已经领先,大多数其他 CDN 供应商在功能提供上也紧跟其后。

查看英文原文:Jare.io, an Instant and Free CDN


感谢张龙对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们。

CDNDevOps