以下为自己个人做的笔记,不带有商业性质,纯粹交流分享学习资料,如有侵权,请联系作者,作者看到会第一时间删除,如有侵权敬请见谅。
7.1 CDN概述
(又是概述,每个章节第一节都是概述,老概述了,但总觉得一整章的内容全部都是概述,这个课程 的内容全部都是概述 )
我们来看一个图,图中黑色的小人表示用户所在的位置,蓝色的点表示用户所访问服务器的位置。从图中可以看出,不同位置的用户所访问到的服务器都是离他们最近的服务器,就是这样一种网络服务,
它能够使用户就近访问所需要的内容,从而解决网络拥挤的情况,提高用户访问网站或应用的响应速度。
Cdn是怎么产生的呢?
在讲解cdn产生的背景之前,我们首先来了解一个正常的web请求过程,用户首先在浏览器上输入目标网站的网址,接着用户客户端将目标网站的域名发送给DNS服务器,要求DNS服务器对译名进行解析。当一名服务器接收到请求后,查询并返回该域名对应的IP地址。浏览器在得知目标服务器的IP地址以后,根据返回的IP地址,直接向web延账服务器发起web请求。
Web服务器接收到用户浏览器的web请求后,对请求内容进行分析,并返回相应的请求结果。用户浏览器接收到的返回结果以后,根据特定的方式进行内容显示。大家看到这就是一个正常的web请求流程。
我们以一个互联网公司的成长历程为例,来解析cdn的产生背景,在第一阶段我们称之为最小规模阶段。此时公司在某个地方架设了一台服务器,公司的所有用户都访问该服务器上提供的服务和资源。
到第二阶段公司的规模发生了扩大,公司在另一个地区也开展了业务,此时如果在新地区的用户访问原来的服务器,则可能会由于用户和服务器的距离较远,导致访问速度缓慢的情况。为了满足新地区用户的访问需求,该公司在另一个地方又架设了一台服务器,并且提供和原来服务器一样的内容,通过在不同地方的用户访问不同的服务器来加速访问。
在第三阶段,公司的规模不断增加,在多个地点部署了多台服务器,让不同的用户访问不同地方的服务。此时公司的运维人员必须同时维护多台服务器,保持多台服务器上内容的一致性,这种多区域多服务器、多副本架构,为公司的服务运营带来了巨大的挑战。
正是在这样的场景下产生的一种内容分发机制,cdn业务提供商在网络中的各个地方部署了大量的服务器,当用户访问网络资源时,的用户就近访问距离较近的服务器,提高用户访问速度,减轻业务服务器的压力。Cdn的提出使用户能够就近获取首席内容,降低网络拥塞,提高用户访问响应速度和命中率。同时当某一台或多台服务器发生故障时,cdn可以引导用户访问其他没有故障的服务器,能够有效提高业务系统的稳定性和安全性。
这节课我们对cdn的产生背景进行了介绍,后期我们将对cdn的工作原理的分类以及安全机制应用的内容进行详细介绍。
关于CDN的说法不正确的是?A.CDN能够使用户就近访问所需要的内容B.CDN有助于缓解网络拥挤状况C.CDN业务提供商在网络中的各个地方部署了大量的服务器D.CDN在一定程度上会降低用户访问网站或应用的响应速度
D
以下哪项不属于CDN的优点?A.提升网站的稳定性和安全性B.直接降低网站获客成本C.提高用户的访问速度D.减轻原服务器的压力
以下说法正确的是? A.为了保证用户访问内容的一致性,一定要让所有用户访问相同地点的服务器B.CDN指的是在同一台服务器上进行的内容分发服务C.CDN服务有助于提高用户访问响应速度和命中率D.当某一台服务器发生故障时,CDN目前暂时无法引导用户访问其他没有故障的服务器
C
7.2 CDN的工作原理
cdn即通过站点将内容发布到全国的海量加速节点,此其用户可以就近获取手机内容,避免网络拥塞,地域运营商等因素带来的访问延迟问题,能有效提升下载速度,降低响应时间,提供流畅的用户体验。
C d n这样好,他是怎么工作的?其实在工作的时候分布在各个地方的边缘镜像服务器,将原子服务器中需要分发的内容复制过来,在镜像服务器上产生内容副本,服务器根据用户的位置告诉用户去访问就近的镜像服务器,并通过镜像服务器向用户提供内容。
我们来看一个详细的cdn加速过程,首先用户在浏览器中输入目标网站的域名,系统将域名发送到DNS服务器进行解析,此时以传统方式不同的地方出现的 **DNS服务器并不能直接返回域名地址对应的服务器IP,而是将请求解析到对应的智能DNS服务器。**智能DNS服务器收到请求以后,根据用户请求的位置信息返回合适的镜像服务器IP。
注意这里的智能DNS服务器是由cdn加速服务商提供的,它能根据用户的位置信息进行判断,给出相应的镜像服务器信息。
服务器收到智能返回的接口后,将结果返回给用户。此时域名解析结束,用户端收到DNS服务器返回的IP后,就根据结果去请求指定的镜像服务器,镜像服务器收到请求,根据请求内容查询相应的内容副本,并提供给用户加速网络访问。此时用户的浏览器接收到返回结果,向用户展现相应的内容,这就是一个cdn加速后的网络访问过程。从整个过程可以看出,cdn加速是系统后台完成的操作,用户根本感觉不到cdn的存在,不同的是应用服务商需要将原来的地址解析转到智能DNS服务器,并提前将需要发送的副本推送到相应的镜像服务器。
那么CDN有哪些优点呢?首先cdn提供的本地镜像加速提高了企业站点,尤其是含有大量图片和静态网页的站点的访问速度,并大大提高以上性质站点的稳定性。其次,cdn的镜像服务器消除了不同运营商之间互联瓶颈造成的影响,实现了跨运营商的网络加速,保证不同网络中的用户都能得到良好的访问质量。再次cdn的远程加速功能,利用DNS负载技术为用户选择合适的镜像服务器,加快了远程访问的速度。接着cdn通过自动生成服务器的远程镜像服务器,让用户从镜像服务器上读取数据,减少远程访问的带宽,分担网络流量,减轻原站点外部服务器的负载等功能。最后广泛分布的cdn站点加上节点之间的智能容易机制,可以有效预防黑客入侵,以及降低各种ddos攻击时对网络的影响,同时保证较好的服务质量。这堂课我们对的工作原理和优点进行了介绍,后期我们将结合的推送内容推送方式对进行分类。
关于CDN的工作原理说法不正确的是?A.镜像服务器需要从原始服务器中复制需要分发的内容 B.从镜像服务器获取内容的速度通常比从从原始服务器要慢C.CDN服务器根据用户的位置,告知用户去访问就近的镜像服务器D.用户访问的内容实际上是镜像服务器提供的 确定
C
以下哪项不属于CDN的优点?A.CDN能够提高企业站点的访问速度和稳定性B.CDN能够保证不同网络中的用户都能得到良好的访问质量C.CDN的镜像服务消除了不同运营商之间互联瓶颈造成的影响D.使用CDN的网站一般用户能够感知的到CDN的存在
D
以下说法正确的是?A.CDN加速是系统后台完成的操作,用户根本感觉不到CDN的存在B.CDN的缺点是容易导致网站受到黑客入侵C.CDN需要花时间为用户选择合适的镜像服务器,这会使得用户的访问速度变慢D.CDN需要短时间内匹配很多的镜像服务器,因此容易导致网络拥堵
A
7.3 CDN分类
我们可以根据cdn的分发内容以及cdn的推送方式来对cdn进行分类。
如果按照分发内容对cdn进行分类,则可以将cdn分为静态网页加速音视频加速、下载加速和应用协议加速4种。
首先来看网页加速,在图中我们给出了一个小型网站的托福结构,做过网页开发的人都知道,通常网站由静态资源和动态资源两个部分组成,静态资源有html、CSS、图片、gs文件等。这些文件与数据库没有太多关系,无需动态生成,并且短时间内不会发生变化。服务器主要是针对这些静态资源进行加速,通过将静态资源复制到cdn的边缘缓冲服务器,然后引导用户访问最近的边缘服务器,加速静态资源下载,从而提高用户访问速度。
例如腾讯云可以对门户网站、电商、ugc社区等业务场景提供强大的静态内容,加速分发处理能力,可以显著提升网页用户的体验。
Cdn是怎样对音视频内容进行加速的呢?当前为了向用户提供更好的浏览体验,
各大音视频平台均采用流媒体技术进行音视频内容分发,流媒体技术是指将一连串的媒体数据压缩后,以流的方式在网络中分段传输,实现在网络上实时传输影音以供观赏的一种技术。
为了保护流媒体的知识产权,几乎所有的流媒体平台都采用了分片处理技术
。我们来看一个图,图中给出了一个简单的流媒体切片处理过程,用户将视频内容上传到流媒体服务器,后流媒体服务器会对上传的视频内容进行切片,切片后的视频文件会被存放到文件存储服务器,由于这些切片的文件不会产生太多的变化,符合cdn加速的业务条件。此时视频网站可以将切片后的视频内容推送到cdn进行加速,方便用户就近下载。
例如腾讯云依托多年的在线视频运营经验,可以对在线音视频播放业务场景提供高峰期海量并发支持,能够有效保证服务的高可用性和媒体传输速度提供稳定流畅的观看体验。
下载加速主要是指对安装包补丁独立完整的大视频,安卓的APk压缩包和大量数据等固定不变的内容进行下载加速。由于这些文件通常是固定不变的,可以将这些文件放到cdn边缘服务器中,方便用户下载,减轻源站的访问压力。
例如腾讯云可以对游戏安装包获取、手机用户升级、应用程序包下载等业务场景提供稳定优质的下载加速,通过海量弹性带宽储备,承载突发性的超大容量,让业务用户获取极速的下载体验。
最后是应用协议加速,相信很多人都用过下载工具来下载文件。我们来看一个简单的案例,如果用户需要下载某一个文件,它可以直接到服务器中进行下载。此时由于目标服务器可能受到带宽限制或者距离较远,用户的下载速度比较慢,
但是如果用户使用既有加速功能的下载工具,可能下载工具已经将要下载的内容提前保存到了代理服务器上,用户可以直接从代理服务器获取下载的信息,无需到源站去下载。
由于代理服务器的带宽往往较大,文件下载的速度就比较快。当然代理服务器也有可能没有保存目标下的文件,此时cd N会使用多台代理服务器去源服务器上下载文件的不同部分,然后再同时传输给用户,加快下载速度。
如果按照推送类型对cdn分类,则可以将cdn分为主动推送和被动推送两种。在主动推送中,web服务器主动将延展内容分发到各个边缘服务器,让各个边缘服务器保存加速文件的副本。但用户请求文件时智能DNS服务器会引导用户访问最近的边缘服务器,加速下载内容。
相对主动推送而言,web源站服务器则不会主动向cdn边缘服务器推送相关资源,但用户发起请求时,智能DNS服务器将用户引导到最近的边缘服务器,向边缘服务器请求支援。如果边缘服务器上没有相关内容,边缘服务器向援藏发出请求获取数据,原站收到数据后,将内容数据返回给镜像边缘服务器,最后镜像边缘服务器再将相应内容返回给用户。
那么这种方式有什么优点呢?在被动获取模式中,第一个用户访问网站时,由于镜像服务器没有需要的数据副本cdn并不能提供任何加速效果。但是当第二个用户或者以后的用户在进行访问相应资源时,镜像服务器中已经有了相应的文件副本,则可以返回相应的内容,达到加速效果。被动获取方式可以节省镜像服务器的空间,把需要的数据及时缓存过来,而无需保存长时间未使用的数据副本。
按照分发内容对CDN进行分类不包括下列哪种?A.静态网页加速B.音视频加速C.网络带宽加速D.下载加速
C
关于音视频加速的表述不正确的是?A.目前各大音视频平台均采用流媒体技术进行音视频内容分发B.为了保护流媒体的知识产权,几乎所有的流媒体平台都采用了分片处理技术C.视频网站可以将切片后的视频内容推送到CDN进行加速D.切片的视频文件经常发生变化
D
以下说法正确的是?A.手机程序安装包经常更新,因此不能将这些文件放到CDN边缘服务器中B.在主动推送中,Web服务器主动将源站内容分发到各个边缘服务器C.如果边缘服务器上没有相关内容,边缘服务器将让用户直接到原服务器下载内容D.被动获取的方式没有任何优点,将会被逐步淘汰
B
7.4 CDN安全机制
关于DNS被劫持的表现中,下列哪项上网体验可以表明目前域名正在被劫持?A.在浏览器中输入A网址时,打开的是B网站B.上网速度过慢C.只能使用域名上网,无法使用IP地址打开网页D.只可以使用浏览器下载,而不可以使用P2P工具下载
A
您在腾讯云的CDN控制台上已经成功接入了一个域名,腾讯云系统分配给您一个abc.cdn.dnsv1.com,为了让您的用户可以使用符合企业形象的域名访问,您可以在DNS中,配置以下哪项记录?A.A记录B.CNAME记录C.MX记录D.SPF记录
B
腾讯云SSL证书的优势有哪些?A.腾讯云SSL证书与国际顶级的CA机构合作,安全更有保障B.兼容性高C.采用HTTPS有利于提升网站的搜索排名及站点可信度D.数据加密传输
ABCD
7.5 腾讯云CDN加速产品简介
腾讯云CDN加速产品把这部分放在比较后一点,主要是因为这些CDN加速产品实际上都是基于前面的这种cdn的架构以及这些安全机制。
可以理解为每一个加速产品就是cdn在具体的应用场景下的一个优化的产品包装,
那么我们这里会讲6个部分,也是普通的通用的车丁加速产品有一个海外加速,动态网络加速,全球应用加速,边缘计算以及智能cdnxP2P。
静态内容加速它的适用场景。我们在一些门户网站电商或者用户自主生产的社区提供了这种静态内容,比如说网页的样式图片小文件的加速分发能力,我们有些通用的一些客户案例,比如大众点评小红书,它主要就是对这种静态内容的一个分发。
第二个是下载分发加速,下载分发加速其实主要应用在那种什么APP安装包,游戏升级包以及这种手机固件升级的,需要那种大文件下载,快速下载的这种场景。
音视频加速,因为大家知道我们看视频,它消耗流量还是比较大的,一些什么视频网站,还有电视盒子,还有一些主流的流媒体拍到用户,访问这些视频内容能够快速高效的访问,肯定是需要通过 cdn提前把这些内容缓存到边缘节点,这样用户能够就近访问。所以有两个场景,通用场景,有一一般的这种视频网站,实现这种内容的精准快速的推送。第二种是一种专业性的场景,就是我不仅仅是要推动那种实际上要海量的并发,而且还要对这些视频进行高度的传输与处理,包括一些建房转马方庄等处理措施。
第二类是叫海外加速GCD它其实是解决我们在跨国访问的时候,因为一些网络造型一些带宽无法保障,导致了颜值比较高,或者是甚至丢包还有抖动的情况。那么很多客户他的业务要出海,比如说我现在游戏业务,我要让国外的客户可以用,那么我如何保障我这个性能,我的体验比较好,实际上就通过我们海外销售的方案,可以提前把你游戏的资源缓存到海外的节点。美国节点、欧洲节点、东南亚的节点,那么用户就可以就近接入他所在的国家或者地区的节点,能够获得最好的访问体验。
可以看到腾讯云我们在海外已经覆盖了五十几个国家,有200家海外节点,我们整个覆盖范围还是比较全的,同时达到20t以上带宽储备实力还是比较好的,是可以保障用户的需求得到很好的满足的。
下一个是动态加速网络dsa它其实是解决了跨运营商访问,前面我们也提到跨运营商的话,它其实有一个网络造型,还有网络不稳定,这样子会导致什么?响应慢、网络化、丢失,服务不稳定等等,通过动态网络加速。然后这里面除了我们前面说的,我们可以通过这种https实现快速的寻址,找到最优路径。同时我们内部其实腾讯有一套自然的最优链路算法,他做了这种协议层和这种调度层的优化,可以保障说你这个动态内容,通过安全可靠的最优的东西快速的发给用户,我们在选择的时候可以基于你的输入的所有的信息,给你选择出最佳的环节,保证你能够最快速的把这些内容给分发出去到对应的节点。你在国内国外跨运营商也好,这些都是通过最优链路算法去进行调度的。而且它还支持这种多链路的冗余计算的时候,我算出有三条链路,其中有一条是最优链路,有两条可能是次优的链路。那么这个时候我这两天我同样也记录下来,如果说自由电路出现问题了,比如说做电路上的某个节点网络转换出现问题了,这个时候立马会启用次优的电路,它就变成最优电路了,而且可以保证数据传输过程中的可靠性和可用性,这是一个非常好的机制。
全球应用加速实际上是,因为现在很多游戏也好,还有这种软件它都有全球客户,用户要从不同的地方去切入,比如说我的服务器在香港对吧?但是我要从硅谷去接入的话,要跨国跨网,这个性能其实是没办法保障的。所以就需要通过我们这种全球应用加速,它会在之前建立这种不同硅谷的节点和香港元旦节点之间会建立高速通道,而且通过这种转发集群和智能路由的技术,这样子能够用快速的缓存到硅谷节点,那么用户就可以直接去访问硅谷的节点,然后是通过高速通道来到香港在去到源站,这样子可以保证网络质量,而且可以降低它的延迟,那么它的接入方式可以通过域名介入,就是你访问的时候是通过访问域名或者通过IP地址来介入都是可以的。另外一种场景就是这种全球游戏头同服朋友帮你,比如说我的游戏服务器在香港,我的正常情况下对吧?我中国的玩家香港的玩家是美国的玩家,俄罗斯玩家、日本玩家都在不同的点线接入,如果没有加速的话,他们的访问的性能体验延迟都会有很大的不同,这样子对玩家来说它的公平性还是这种体验都不好。所以我通过全球应用加速可以建立从比如说硅谷、多伦多、莫斯科、东京的这些节点都可以有一个高速通道连到香港的节点,那么他们这些玩家从当地就近接入之后,他通过高速节点访问来之后,会发现他体验颜值都会达到一个很高的水平,这样子就可以避免了同一个源,但是不同地方服务质量是不同的。
Cdn边缘计算其实前面讲cdn发展趋势的时候,我们有提到边缘计算,那么腾讯云也是专门针对边缘计算推出了我们的产品叫cdn它实际上就是我们把原有的这种cdn缓存能力,我们把它延伸到到边缘计算,就是说通过一些编程或者配置的方式,将一些部分原来需要在数据中心或者是在云环境处理的功能,我们下次来设定边缘节点,之所以这样做的原因在于一个是这种视频产生比较多,比如说一些物联网数据量比较多,最简单的比如说我们路上的一些监控摄像头,它收集了大量的视频数据,如果你让这个数据直接返回到云端去处理的话,第一个是他在网上传输的数据量非常大,带宽流量消耗比较大。第二个因为他的数量很大,到云端以后大量的数据汇总对云端存储处理以及数据的分析压力也会非常的大。第三个你传输的过程有可能它没有经过一些处理加密,他可能还存在一些安全的风险。所以我们就希望说你在边缘节点有一些预处理能力,比如说你的视频采集了之后,你在边缘界做一些压缩编码甚至加密,然后通过这种形式你可以保证甚至你可以做一些这种预分析,在边缘做一些分析完之后,
你可以把处理过的数据再传输到后端,这个好处就是我处理完我这个网络延时就会降低了,
对吧?因为我不用再把所有的数据都返回到后端,减少网络上的一个拥塞,同时有很多可能在现场我就可以输出一些东西,比如说我的这些物联网,我在这个边缘节点我就可以输出一些处理的结果,不用等到云端处理完再返回来。这个是网络延时。第二个因为你是通过压缩通过处理,那么你网上传输负载肯定会大大减少,你需要传到带宽流量消耗也会给你减少。第二个因为少量的数据传到后端,那么后端处理压力也会减少,这样子就形成一个前端预处理,然后优化的传输以及后端集中处理,这是一个非常好的方式。
那么它的应用场景主要在一些这种定制化的应用,对吧?主要是这样,lot物联网环境,因为我们的终端这种传感器采集了大量的数据,这些数据实际上是可以在边缘针对于这种边缘的采取数据的特点做一些定制化的处理,如果你到云端在处理的话,云端其实很多通用的处理,因为云端做定制化处理的话会比较麻烦。
第二种是这种灰度的发布,比如说我的一些软件要从灰度发布,那么我可以在这个边缘节点做一些控制,做一些处理。还有一些什么动态源的选择,我在源站选择的时候,我在编写就动态去选择,我要从哪里去或者数据都可以在编写处理。包括一些访问控制,我有大量的用户去访问,那么肯定是在介入的边缘节点的时候,进行这些基本的安全的验证,安全的防护,而不是等他进入到这个环境之后我再去防护,这样子就会影响我们整个系统的安全性,所以说整体来看,整个边缘计算它可以降低整个系统的压力,当然也是提升整个系统处理效率是一个非常的方向。
最后我们再看一下智能cdn技术x-p2p然后它主要的特点我是基于 p2p技,相对于传统cdn,传统cdn的话是每一个用户他的边缘节点,他去拿数据都是拿一整份,你比如说我这个边缘节点在广州,那么可能在广州也有成千上万的用户,每一个用户都去边缘节点,他去拿这个数据都是拿完整的一份数据,比如说100g的数据,每个数据用500兆的一个视频,每一个用户去访问的时候拿完整的500M的事情对吧?这边节点和用户之间就会形成一个大量的访问,而且它的带宽消耗也是比较大的,成本也会比较高。
所以应用了P2P技术之后,它的原理就是说假设我有50个用户要访问500兆的同一个视频,我就会把这500兆的视频来均分给他50个用户,每个人取1/50,这样子500个用户取完之后,他们又互相共享,互相共享之后的实现的好处就是每一个用户我并没有去完整的500兆,我只取了1/50,然后但是对每个用户来说,其他用户取来的他也同时可以共享联网,这样子我们最终用户拿到的还是完整的一一份视频。但是对于服务器来说,这50个用户原来是要提供50份数据,现在只需要提供一份,这样子对于处理服务器的处理压力来说就降低了很多,同时带宽来说原来要传输50个500兆,那么现在只需要传输一个500兆,它的带宽也会降低很多。
所以我们会看到它带来的优势,第一个就是价格很低,因为它带宽成本很低。第二个就是延迟会降低对吧?因为在网上的传输的量变小了,延迟也会降低,而且这些P2P节点和固定节点之间,它这个调度是通过智能化调度的,我们还提供很多的机制来保障服务质量的,那么这种主要的应用还是在这种音视频领域,为了提供这种SARS化的服务,基本上是一个高体验和性价比比较高的方案。
如果需要解决跨运营商、跨国、网络不稳定等因素导致的响应慢、丢包、服务不稳定等问题,需要选择CDN的哪个加速产品?A.应用加速B.动态加速网络C.边缘计算D.智能CDN
B
腾讯云CDN提供边缘计算的能力,以下哪些都属于腾讯云边缘计算的应用场景?A.定制化应用B.灰度发布C.动态源选择D.访问控制
ABCD
针对门户网站、电商需要增强大量静态内容(网页样式、图片、小文件等)加速分发处理能力,可以选择腾讯云CDN哪个加速产品?A.静态内容加速B.下载分发加速C.音视频加速D.全球应用加速
A
制作不易,既然看到这里了^ ^不妨点个赞或评论一下吧
你的互动就是对原作者最大的支持力