Clean
Clean
false

7.8 磅
0
2

false
false
false

EN-US
ZH-CN
AR-SA


/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:none;
font-size:10.5pt;
font-family:等线;
mso-ascii-font-family:等线;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:等线;
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:等线;
mso-hansi-theme-font:minor-latin;
mso-font-kerning:1.0pt;}

简单说明:

众多公有云厂商似乎都是和传统CDN厂商一同合作实现在云下的CDN服务供给。

最近甚至有老牌CDN反攻云厂商(CDN厂商卖私有云)。

借着前段时间护网行动,好多CDN都工作的不太正常,有的经过自我调整之后慢慢的都恢复了。

我也借着这个机会了解了很多关于CDN的知识,这里分享给好奇朋友们。

我平时用的最多的公有云服务就是Azure提供的,作为微软的云品牌,Azure的先进,易用,强壮等特性都是行业首屈一指的。

Azure CDN目前可以提供Standard Microsoft、Standard Akamai、Standard Verizon、Premium Verizon 这四种类型,作为微软自己的多种产品(例如powershellgallery.com的下载通道、Defender的安全更新、Azure的门户等)使用Premium Verizon这个类型的居多。看价格Premium Verizon这个类型也是最贵的,看功能Premium Verizon这个类型也是最全的。

分享时间:

不做特别说明,以下阐述均以Premium Verizon这个类型进行。

Azure CDN 的使用过程

1.      用户(Alice)通过使用具有特殊域名的URL(例如<endpoint name>.azureedge.net)来请求文件(也称为资产)。此名称可以是端点主机名或自定义域。DNS将请求路由到性能最佳的POP位置,该位置通常是地理上最靠近用户的POP。

2.      如果POP中没有边缘服务器(edge Servers)将文件放在其缓存中,则POP会从源服务器请求该文件。源服务器可以是Azure Web App,Azure云服务,Azure存储帐户或任何可公开访问的Web服务器。

3.      源服务器将文件返回到POP中的边缘服务器(edge Servers)。

4.      POP中的边缘服务器(edge Servers)缓存该文件并将该文件返回给原始请求者(Alice)。该文件将缓存在POP中的边缘服务器上,直到其HTTP标头指定的生存时间(TTL)到期为止。如果源服务器未指定TTL,则默认TTL为7天。

5.      然后,其他用户可以使用Alice使用的相同URL来请求相同的文件,也可以定向到同一个POP。

6.      如果文件的TTL未过期,则POP边缘服务器(edge Servers)直接从缓存返回文件。此过程可带来更快,响应更好的用户体验。

查看Azure CDN POP位置的链接 https://docs.microsoft.com/en-us/azure/cdn/cdn-pop-locations

以缩写方式查找POP的链接 https://docs.microsoft.com/en-us/azure/cdn/cdn-pop-abbreviations

POP 是一个逻辑概念,自带区域属性,边缘服务器是在CDN算法之后为用户提供被请求文件本体寄存的服务资源,用户无法看到边缘服务器IP地址,但可以看到被请求POPIP中返回的边缘服务器信息(一般以缩写方式提供)。

Azure CDN 厉害之处他会按照地理位置区域统一POP的暴露IP地址,这对简化基于IP的访问策略很有效果。

用联网测试工具get一下Azure CDN 后,可以发现暴露出的IP数量很少。

 SEQ 图 \*
ARABIC 1按照全球区域进行POPIP的暴露

表格  SEQ 表格 \*
ARABIC 1对测试站点统计响应IP的结果

响应IP

计数项:响应IP

117.18.232.200(亚太地区 edgecast.com)

152.199.19.161(欧洲 EDGECAST.COM verizon.com)

72.21.81.200(美国 edgecast.com)

2606:2800:133:206e:1315:22a5:2006:24fd(美国 edgecast.com)

2606:2800:11f:17a5:191a:18d5:537:22f9(美国 edgecast.com)

2606:2800:147:120f:30c:1ba0:fc6:265a(美国 edgecast.com)

192.16.48.200(南美 EDGECAST.COM edgecast.com)

2606:2800:157:1508:1539:174:1a75:1191(美国 edgecast.com)

总计

表格中的统计可以证明全球范围内Azure的CDN实际上只有上面的几个POPIP暴露了出来,这样的做法非常简单也很安全,但也……

单一IP是如何支撑起全球如此多的访问?

首先这些IP地址都在一个AS自制域内,他们对应的ASN编号都是AS15133,而该编号的所有者就是EDGECAST,他所拥有全球107,072个IPv4地址和16,515,072个IPv6地址。

 SEQ 图 \*
ARABIC 2世界范围内AS15133编号所拥有的地址分布情况

 SEQ 图 \*
ARABIC 3亚太地区以日本分布的IP最多,其次是中国香港

本次测试中还从http headers 头信息中读取到了边缘服务器(edge Servers)的(可能是)物理位置的标记信息ECAcc。

就目前的CDN算法得到来自于中国大陆联通线路会请求到边缘服务器的香港点,电信线路会请求到东京点,但是这个信息在6月份的时候都会请求到香港点,不排除CDN度量算法进行自我调整用以更好的适配请求者网络。

 SEQ 图 \*
ARABIC 4虽然解析到同一个POPIP(117.18.232.200),但ECAcc的边缘服务器信息是不一样

后来我进一步测试了将请求域名绑定到特定POPIP会有怎样的效果?

测试结果是CDN会根据你指定的POPIP给出对应的边缘服务器。

 SEQ 图 \*
ARABIC 5我是电信线路,未进行指定主机与POPIP绑定关系,我拿到了东京都的服务器信息

 SEQ 图 \*
ARABIC 6将72.21.81.200 psg-prod-eastus.azureedge.net进行绑定后,我拿到了来自于洛杉矶的服务器信息

总结几点:

至于更详细的CDN算法这个应该是商业机密了,目前测试到的结果已经颠覆了我对传统CDN的概念:

1、原本以为会有一大堆的反馈IP暴露在互联网上

2、Azure CDN 似乎按照请求者链接的POPIP所在的区域分配合适的边缘服务器

3、对智能DNS的需求还是有的,用错了DNS拿到了错误的POPIP,可能会分配到绕路的边缘服务器

4、本以为单一IP会压力很大,但将其与BGP、ASN自治号、暴露的POPIP联系到一起,剩下的就是CDN自己的算法了,其实压力就在内部分担了

5、这种单一IP也可能出现风险,例如有捣乱者用这个触发了某防火城.墙,将会影响整体这区域的请求者(这个是猜测)

-=EOB=-

有意思的 CDN的更多相关文章

  1. codinglife主题小修改和有意思的博客挂件

    这个主题很漂亮,不过为了迎合自己的喜好ヽ(•̀ω•́ )ゝ,修改了字号.阴影之类的小细节.同时下面还有我博客里面的两个有意思的小挂件,请向右边看(๑و•̀ω•́)و 1.主题修改:复制下面的css代码 ...

  2. 史上最全的CDN内容分发网络实战技巧(网络优化)

    今天来给大家分享下关于 CDN 的东西,以及我自己的一些发现.一些个人的拙见.总共分为 3 个部分:原理.详解.各种坑. 首先说一下 CDN 的基本原理部分,主要分 4 块来描述:CDN 的由来.调度 ...

  3. CDN网络科普小文(小说版)

    引言 作为公司 cdn 小组的一名小码仔,我为写一篇 cdn 的科普文章准备了好一段时间(大概有一个多月没有更新我的社交账号了). 在我刚进入公司,培训完,进入小组,了解到我们做的是 cdn 相关的工 ...

  4. 百度MIP移动页面加速——不只是CDN

    MIP是用CDN做加速的么?准确答案是:是,但不只是. MIP全称Mobile Instant Pages,移动网页加速器,是百度提出的页面加速解决方案.MIP从前端渲染和页面网络传输两方面进行优化, ...

  5. 游戏AI系列内容 咋样才能做个有意思的AI呢

    游戏AI系列内容 咋样才能做个有意思的AI呢 写在前面的话 怪物AI怎么才能做的比较有意思.其实这个命题有点大,我作为一个仅仅进入游戏行业两年接触怪物AI还不到一年的程序员来说,来谈这个话题,我想我是 ...

  6. 【初码干货】使用阿里云对Web开发中的资源文件进行CDN加速的深入研究和实践

    提示:阅读本文需提前了解的相关知识 1.阿里云(https://www.aliyun.com) 2.阿里云CDN(https://www.aliyun.com/product/cdn) 3.阿里云OS ...

  7. 阿里云系列——6.给你的域名使用CDN加速(详细步骤+简单配置)

    网站部署之~阿里云系列汇总 http://www.cnblogs.com/dunitian/p/4958462.html 进入管理页面:https://home.console.aliyun.com/ ...

  8. Signalr系列之虚拟目录详解与应用中的CDN加速实战

    目录 对SignalR不了解的人可以直接移步下面的目录 SignalR系列目录 前言 前段时间一直有人问我 在用SignalR 2.0开发客服系统[系列1:实现群发通讯]这篇文章中的"/Si ...

  9. CDN模式介绍

    body{ font: 16px/1.5em 微软雅黑,arial,verdana,helvetica,sans-serif; }        CDN(content delivery networ ...

随机推荐

  1. ABP缓存示例

    private readonly ICacheManager _cacheManager; public ProgrammeManage(ICacheManager cacheManager) { _ ...

  2. ADT eclipse的几个快捷键

    智能内容感知 Alt+/ ,该快捷键可以方便的匹配我们使用的类信息,/ 在键盘上和?是同一个按键. ctrl+.及ctrl+1:下一个错误及快速修改 ctrl+.将光标移动至当前文件中的下一个报错处或 ...

  3. 基于 CSP 的设计思想和 OOP 设计思想的异同

    LinkerLin Go语言推崇的CSP编程模型和设计思想,并没有引起很多Go开发者包括Go标准库作者的重视.标准库的很多设计保留了很浓的OOP的味道.本篇Blog想比较下从设计的角度看,CSP和OO ...

  4. 使用aws和tomcat搭建服务器过程中的一些坑.

    在国外没啥事做, 考前也不愿意复习, 看到aws能免费试用一年, 于是就试着搞了搞, 就准备搭建个个人网站玩玩. aws的注册与创建实例 首先个人感觉这个东西使用起来还是很方便的, 一开始注册完验证完 ...

  5. WPF Binding Path妙用

    <Window x:Class="XamlTest.Window9"        xmlns="http://schemas.microsoft.com/winf ...

  6. 检查Android是否支持指纹识别以及是否已经录入指纹

    原文:检查Android是否支持指纹识别以及是否已经录入指纹 Android M 开始,系统中加入了指纹相关功能. 主要用到的类为:FingerprintManager 只提供三个方法: 返回值 方法 ...

  7. ubuntu Linux 操作系统安装与配置

    Ubuntu是一个以桌面应用为主的Linux操作系统.Ubuntu每六个月发布一个新版本(一般是4和10月份,命名为YY.MM),每一个普通版本都将被支持 18个月,长期支持版(Long Term S ...

  8. 【转】在C#中简单的科学计算,包括幂数,指数,对数,Math类

    用Math类进行一些简单的科学计算,包括幂数,指数,对数等的计算: double m,n; m=Math.Exp(0.5); //自然对数e的0.5次方 n=Math.Exp(); //自然对数e的3 ...

  9. Android零基础入门第56节:翻转视图ViewFlipper打造引导页和轮播图

    原文:Android零基础入门第56节:翻转视图ViewFlipper打造引导页和轮播图 前面两期学习了 ViewAnimator及其子类ViewSwitcher的使用,以及ViewSwitcher的 ...

  10. Android零基础入门第55节:ImageSwitcher和TextSwitcher使用

    原文:Android零基础入门第55节:ImageSwitcher和TextSwitcher使用 上一期我们了解了ViewAnimator组件和ViewSwitcher组件的使用,你都掌握了吗?本期一 ...