什么是CDN?
CDN(Content Delivery Network,内容分发网络),是现有 Internet 中增加的一层新的网络架构,由遍布全球的高性能加速节点构成。
这些高性能的服务节点都会按照一定的缓存策略存储您的业务内容,当您的用户向您的某一业务内容发起请求时,请求会被调度至最接近用户的服务节点,直接由服务节点快速响应,有效降低用户访问延迟,提升可用性。
cdn原理
1、用户向浏览器提供要访问网站的域名,域名解析的请求被发往本地用户使用的DNS服务器,本地DNS服务器将解析请求转发至网站的DNS服务器(NS)。
2、由于网站的DNS服务器(NS)对此域名的解析设置了CNAME,请求最终被指向到CDN网络中的GLB系统。
3、GLB系统对域名进行智能解析,将响应速度非常快的节点IP返回给用户。
4、浏览器在得到实际的IP地址以后,向CDN节点发出访问请求。
5、由于是第一次访问,CDN节点将回到源站获得用户请求的数据并发给用户,同时CDN节点根据缓存策略对该数据进行缓存。
6、当有其他用户再次访问同样内容时,CDN节点直接将数据返回给客户,完成请求/服务过程。
加速原理
假设业务源站域名为: www.test.com,我方 CNAME 域名: www.test.com.cdn.com。
域名接入CDN使用加速服务后,如果用户向 www.test.com下的某图片资源发起请求:
1、首先向Local DNS 发起域名解析请求对应的IP。当Local DNS 首先检查缓存中是否有解析 www.test.com的记录,如果有直接返回给终端用户,如果没有,则继续向网站授权DNS请求www.test.com的解析记录,会发现已经配置了 CNAMEwww.test.com.cdn.dnsv1.com并返回。
2、Local DNS 向DNS调度系统请求域名www.test.com.cdn.dnsv1.com的解析记录,阿里云CDN的DNS调度系统将为其分配最佳节点IP地址。
3、Local DNS 获取 DNS 调度系统返回的解析 IP。
4、用户获取解析 IP,用户向获取的 IP 发起对资源 1.jpg 的访问请求。如果该最佳节点已缓存该资源,则会将请求的资源直接返回给用户,此时请求结束。若该节点未缓存 1.jpg,则节点会向业务源站发起对 1.jpg 的请求。
5、获取源站资源后结合用户自定义配置的缓存策略,将资源缓存到CDN节点并返回给用户,此时请求结束。
调度机制
一、DNS调度
1、基于DNS解析的调度
使用LocalDNS出口地址作为查询IP,根据查询IP对用户进行地域调度,但获取的可能不是用户真实的所在地址。
2、基于故障切换的调度
一套完备的CDN系统都会具备边缘服务节点故障切换机制,且同时满足人工切换和自动切换的要求。但无论何种故障切换,总归是产生故障后的补救措施,会造成CDN加速的服务质量波动,大大影响了CDN“可用”的服务重点。
3、基于边缘服务节点轮询的调度
CDN服务商通过架设权威DNS服务器,将某个域名在各个区域的对应边缘cache服务节点A记录集合提供给LocalDNS解析查询和缓存。
二、基于HTTP的CDN调度
http的cdn调度原理
用户通过一个正常的http请求,发送一个get请求,里面以参数的形式携带一个需要解析的域名。
服务器通过数据库查询,通过http的正常响应,把请求的IP通过http协议返回。
这种协议有一个特点就是必须双端都支持,因为这种模式是非标准的。
这有点类似是一种API的这种方式,那如果要实现的话就必须双端都支持。
优势
1、HTTP协议调度能够根据互联网用户的真实IP地址将其请求引导到临近的边缘cache服务节点,实现绝对有效的CDN加速。
2、由于HTTP服务器即调度中心服务器与用户端直接建立了连接,能够做到单机级别的精准调度,并实时根据当前带宽信息与集群负载状况,做出决策调度调整,大大提高CDN加速服务的质量与客户满意度。
3、HTTP服务器的灵活性让其能够轻松实现互联网加速需求企业对于不同加速资源的个性化加速策略。
如何进行调度和进行定位的?
通过Local DNS的具体地址。假设你是广东电信客户,那你所使用的DNS服务器去做递归查询的时候会访问到某一个CDN厂商的GRB,GRB可以看到Local DNS来自于哪里。如果用户和Local DNS使用同一个区域的服务器,GRB就会间接认为用户也是广东电信的。
DNS全局负载均衡(GSLB)
前提:在不同地区设立了多个数据中心,业务已经做了分布式部署的规划。无论用户从哪个IDC(网站服务器组的托管场所)访问都能得到相同的结果,或者用户基本不会出现跨区域流动访问的情况,只会访问就近IDC,或者有一套入口调度机制,能将用户调度到所属的节点。
为什么不让所有的用户都走 DNS 调度呢?
1、地理位置调度不准确。
2、用户使用的LDNS地址和ip是同一个区域,那么cdn的调度才有可能是正确的。
如果用户是北京联通,但是使用广东电信的Local DNS,就会让GRB系统误以为是广东电信的用户,这样就会错误的调度过去。因为在DNS解析过程当中,与权威服务器通信的只有 DNS 缓存服务器,所以权威服务器只能根据 DNS 缓存服务器的IP来进行调度。
总结
DNS 调度有一个前提:假定用户使用的缓存DNS与用户本身在同个网络内,即至少在同一个 AS(自治域)内,在该前提下,DNS 的解析才是准确的。
通常情况下,用户使用 ISP 提供的本地缓存(简称 local DNS),local DNS 一般与用户在同个网络内,这时候 DNS 调度是有效的。
DNS和具体CDN的调度的关系
用户获得一个具体的DNS域名地址时,LDNS给的就是一个IP地址。没有CDN之前,就是原始服务器地址。如果做过CDN,用户最终拿到的IP地址是CDN节点,而并不是真正的原始服务器。
CNAME记录与A记录的差别
A记录就是把一个域名解析到一个IP地址,而CNAME记录则是把域名解析到另外一个域名。如果需要长期建站,则建议使用CNAME记录。因为CNAME可以用于CDN加速,在加速的同时,又能够隐藏网站的真实IP地址,减少被攻击的概率。
CDN计费方式
CDN的计费方式有两种,一种是按带宽计费,一种是按流量计费。
IDC机房(CDN业务)大带宽都是采取保底+突发带宽来计算,保底带宽一般是合同带宽的30%,每月保底固定的带宽按保底价格计算,超出部分的带宽按超出部分价格计算,超出部分费用采用95计费原则。
什么是95计费呢?
对带宽的95%流量计费,就是根据域名进行带宽的统计,根据每个月的第N峰值(一般是第三峰值)的95%来作为平均流量。这也是常说的95计费。
P2P CDN
P2P(Peer-To-Peer)是指一种点对点传输的网络结构,形象地描述为一个搭档式的组织结构。如同人与人之间的交流,每个节点(也就是搭档)之间地位相同,又相互独立,处于对等状态,不以个人为中心,既可以作为客户端又可以作为服务端,彼此之间实现资源共享,还能动态地加入或退出系统,消除了中间环节,减轻了节点之间的沟通代价。
简单来说,P2P就是指数据的传输不再通过服务器,而是网络用户之间直接传递数据。
四个特点
1、无中心点。
P2P 技术是将网络中所有的资源和服务分散在每一个节点上,这样每一个节点都具有了相同的地位,兼具双重功能, 既可以请求服务也可以提供服务。 这一特点是 P2P 技术模式显著区别于 CDN 技术的鲜明特点。
2、健壮性和可扩展性。
突破了传统的 C/S 模式限制,每一个节点工作的过程中受网络和其他节点的影响较小, 即使少量的节点或者网络遭到破坏出现故障, 也不会影响整个系统的正常运行。
3、高性价比。
P2P 技术具有较高的性价比,在较低成本的前提下能够兼顾优良的工作性能。
4、负载均衡。
由于 P2P 模式的客户/服务双重性特点,资源分配的均衡降低了传统 C/S 模式对服务器运算和储存能力的要求,体现了整个网络的负载均衡。
PCDN是什么?
在CDN产品的基础上融合新一代P2P技术,充分利用边缘网络海量碎片化的计算、存储、网络等闲置资源构建低成本、高质量的内容分发网络服务。通过创新的分发网络优化技术和精准的智能调度系统,在为用户提供稳定、高质量的分发加速服务的同时,显著降低分发成本。
适用于视频点播、直播、大文件下载等业务场景。
优势
1、减少中心节点数据源的压力
CDN 服务节点获取数据的方式为直接访问数据源服务器,内容中心压力大、消耗带宽多。
融合方案对 CDN 服务节点采用 P2P 方式进行组织,节点间点对点互相共享、数据缓存, 缓解内容中心压力。
2、系统服务能力的高可靠性
CDN 系统的自我恢复能力和整体冗余能力在不同服务节点对中心数据的多点备份下得以提高, 系统稳定性亦进一步加强。
3、服务灵活性提升
P2P 下的数据共享方式, 可提供的服务节点数量大大增加,同时各个服务节点灵活性大大提升。
4、可扩展性增强,提升服务效率
面对用户访问高并发、无规律的情况,采用 P2P 技术对下层内容进行分发,使整体系统具有良好的弹性,能够保持良好的服务效率。
5、提高网络的可管理性,避免流量无序
传统 P2P 技术容易造成过多的跨地区而导致的骨干网拥塞、流量无序的问题。 系统将 P2P 的范围严格限制在某一边缘服务节点的服务区域内,增强了网络服务的可靠性。
CDN行业的现状
存在一种现象,即不同的服务平台之间是相互割裂的。红海竞争造就的价格战无限拉低了客单价,使得厂商不得不以各种方式降低成本,同时又要斥巨资储备带宽,以构建资源壁垒。这导致了厂商的各自封闭,最终呈献给客户的是服务质量的良莠不齐。一边自我封闭,一边不得不继续在价格战中残喘,同时又想打破限制以提高服务质量。
传统CDN服务一般会采用一主多备,主要的CDN流量消耗在主方,一但主方有故障,则切到备方。这种模式,进一步导致了使用弊端的产生,即调度空间有限、稳定性差、管理成本高,这是CDN行业客户的三大痛点。有效方法是打破地域、时间、以及不同运营商的限制,从而解决网络拥堵,提升用户体验。
融合CDN
所谓融合CDN,就是把各个厂商的CDN资源聚合起来,融合云不光聚合CDN,还可以聚合云存储、云计算,为客户提供服务。
客户只采购一家CDN厂商的服务是不够的,单一CDN服务商风险太大,如果服务商出现重大故障,将导致服务中断不可用。
每个CDN厂商都在强调自己拥有多少节点,强调自身的调度能力,事实上只有所有厂商节点能够为用户所用,跨平台调度才能发挥最大作用。把越来越多的节点接入一个开放的调度平台,配置上智能调度体系,客户一次接入,就能享受多厂商优质资源服务。因此,开放融合能够有效解决这一矛盾,这是行业趋势,也是融合CDN诞生的逻辑。
什么是全站加速?
全站加速DCDN(Dynamic Route for Content Delivery Network)在CDN静态加速服务的基础上,进一步提供了动态加速、TCP和UDP四层加速、Websocket加速等能力。同时加速静态和动态资源。
支持纯动态加速和动静态混合加速
1、纯动态加速
针对POST请求等不能在边缘缓存的业务,基于智能选路技术,从众多回源线路中择优选择一条线路进行传输。
2、动静态混合加速
智能识别动态和静态资源,静态资源缓存在边缘节点,供用户就近访问;动态资源基于智能选路技术,从众多回源线路中择优选择一条线路进行传输。