cdn技术简介(偏直播方向)

什么是cdn

CDN的全称为Content Delivery Network,即内容分发网络,是一个策略性部署的整体系统,主要用来解决由于网络带宽小、用户访问量大、网点分布不均匀等导致用户访问网站速度慢的问题。如果把某个互联网系统比喻为一家企业,那内容分发网络就是它遍布世界各地的分支销售机构。一个运作良好的内容分发网络,能为互联网系统解决跨运营商、跨地域物理距离所导致的时延问题,能为网站流量带宽起到分流、减负的作用。
在这里插入图片描述
如果抛却其他影响服务质量的因素,仅从网络传输的角度看,一个互联网系统的速度取决于以下四点因素:

  • 网站服务器接入网络运营商的链路所能提供的出口带宽。
  • 用户客户端接入网络运营商的链路所能提供的入口带宽。
  • 从网站到用户之间经过的不同运营商之间互联节点的带宽,一般来说两个运营商之间只有固定的若干个点是互通的,所有跨运营商之间的交互都要经过这些点。
  • 从网站到用户之间的物理链路传输时延。爱打游戏的同学应该都清楚,延迟(Ping 值)比带宽更重要。

以上四个网络问题,除了第二个只能通过换一个更好的宽带才能解决之外,其余三个都能通过内容分发网络来显著改善。一个运作良好的内容分发网络,能为互联网系统解决跨运营商、跨地域物理距离所导致的时延问题,能为网站流量带宽起到分流、减负的作用。举个例子,如果不是有遍布全国乃至全世界的阿里云 CDN 网络支持,哪怕把整个杭州所有市民上网的权力都剥夺了,把带宽全部让给淘宝的机房,恐怕也撑不住全国乃至全球用户在双十一期间的疯狂“围殴”。

cdn的应用场景

CDN(内容分发网络)在网络世界中有广泛的应用场景,其中一些主要的应用包括:

网站加速: 提供网站内容加速传输,包括静态资源(如图片、CSS、JavaScript文件)和动态内容,从而加快网页加载速度,改善用户体验,并提升网站SEO。

流媒体分发: 提供视频和音频内容的流媒体分发,用于视频直播、点播服务和在线音频流媒体服务,确保高质量的流畅播放和低延迟。

软件和应用分发: 用于软件、应用程序和游戏等文件的快速分发和更新,确保用户能够快速下载并访问更新的版本。

移动应用加速: 为移动应用提供服务,加快应用内容的加载速度,改善应用性能,减少加载时间和用户等待时间。

云存储优化: 将云存储中的数据内容分发到全球各地,提供高速、高可用的云存储服务,确保数据快速、安全地传输和访问。

安全防护: 通过分布式网络结构和缓存技术,提供防止DDoS攻击、缓解网络负载和保护源服务器的安全防护功能。

全球化服务: 允许企业提供全球化服务,将内容快速分发到全球各地,降低跨国传输时的网络延迟。

总的来说,CDN在提高网络性能、提升用户体验、加速内容传输、提高安全性等方面有着广泛应用。随着互联网内容和服务的不断增长,CDN的应用也在不断扩展和发展。

用户访问和内容分发

在这里插入图片描述

CDN主要包含:源站、缓存服务器、智能DNS、客户端等几个主要组成部分。

源站:是指发布内容的原始站点。添加、删除和更改网站的文件,都是在源站上进行的;另外缓存服务器所抓取的对象也全部来自于源站。对于直播来说,源站为主播客户端。

缓存服务器:是直接提供给用户访问的站点资源,由一台或数台服务器组成;当用户发起访问时,他的访问请求被智能DNS定位到离他较近的缓存服务器。如果用户所请求的内容刚好在缓存里面,则直接把内容返还给用户;如果访问所需的内容没有被缓存,则缓存服务器向邻近的缓存服务器或直接向源站抓取内容,然后再返还给用户。

智能DNS:是整个CDN技术的核心,它主要根据用户的来源,以及当前缓存服务器的负载情况等,将其访问请求指向离用户比较近且负载较小的缓存服务器。通过智能DNS解析,让用户访问同服务商下、负载较小的服务器,可以消除网络访问慢的问题,达到加速作用。主要用到了dns的cname功能,CNAME(Canonical Name)是DNS(Domain Name System,域名系统)中的一种记录类型。它用于将一个域名指向另一个域名,实现域名的别名或重定向。

客户端:即发起访问的普通用户。对于直播来说,就是观众客户端。

在 DNS 服务器的协助下,无论是对用户还是服务器,内容分发网络都可以是完全透明的,在两者都不知情的情况下,由 CDN 的缓存节点接管了用户向服务器发出的资源请求。后面随之而来的问题是缓存节点中必须有用户想要请求的资源副本,才可能代替源站来响应用户请求。这里面又包括了两个子问题:“如何获取源站资源”和“如何管理(更新)资源”。
CDN 获取源站资源的过程被称为“内容分发”,“内容分发网络”的名字正是由此而来,可见这是 CDN 的核心价值。目前主要有以下两种主流的内容分发方式:
主动分发(Push):分发由源站主动发起,将内容从源站或者其他资源库推送到用户边缘的各个 CDN 缓存节点上。
被动回源(Pull):当某个资源首次被用户请求的时候,CDN 缓存节点发现自己没有该资源,就会实时从源站中获取,这时资源的响应时间可粗略认为是资源从源站到 CDN 缓存节点的时间,再加上资源从 CDN 发送到用户的时间之和。
在这里插入图片描述
全局负载均衡(Global Sever Load Balance)一般简称为 GSLB,它是 CDN 的“大脑”,主要的职责是当用户接入网络的时候在 CDN 专网中挑选出一个“最佳”节点提供服务,解决的是用户如何找到“最近的”边缘节点,对整个 CDN 网络进行“负载均衡”。
这里就有两个 CDN 的关键概念:“命中”和“回源”。
“命中”就是指用户访问的资源恰好在缓存系统里,可以直接返回给用户;“回源”则正相反,缓存里没有,必须用代理的方式回源站取。相应地,也就有了两个衡量 CDN 服务质量的指标:“命中率”和“回源率”。命中率就是命中次数与所有访问次数之比,回源率是回源次数与所有访问次数之比。显然,好的 CDN 应该是命中率越高越好,回源率越低越好。现在的商业 CDN 命中率都在 90% 以上,相当于把源站的服务能力放大了 10 倍以上。

如何提升性能和安全性

刷新

以淘宝为例,商品的主图贯穿整个导购和交易链路,相比文字,图片更能吸引眼球,主图对消费者的购物决策有很大的影响。主图上表达的内容各式各样,但其中一定少不了的一定是价格的表达。当商品价格发生变化后,系统自动计算新的价格,自动合成图片,然后更新商品主图。
这样会带来2个问题:
(1)CDN及手机淘宝原本缓存的图片内容失效了,用户访问图片会全部回源到img-picasso。
(2)由于更改了商品的字段,交易的核心应用(购物车和商品中心)的缓存也失效了,用户浏览及购物时,对商品的访问会走到db。
在这里插入图片描述
cdn刷新保证图片变化后url不变,在预热或回源后也能拿到最新的图片同时商品链路的缓存还生效
在这里插入图片描述

预热

对于刚push到源站的静态资源(或刷新),边缘节点没有内容,用户访问的速度就会很慢,通常会采取cdn预热,将资源主动push到二级、三级缓存上,提高用户的访问速度。
通过预热功能您可以在业务高峰前预热热门资源,提高资源访问效率。

鉴权

鉴权功能用于保护用户站点资源不被非法下载盗用,并减少带宽资源的浪费,用于当其他防盗链方式(例如:IP禁用、referer 防盗链、UA 防盗链等)无法满足资源保护的高实时性及高安全性要求时的使用场景,所以它是一种更为安全可靠防盗方法。
在这里插入图片描述
目前阿里也在自己的CDN节点,部署了CDN鉴权功能。在接收到终端用户请求时,都需要去客户的鉴权服务器进行验证。

cdn有哪几种

cdn分为点播,直播,静态资源三种

点播

一般的流媒体点播系统由三部分组成,即流媒体内容采集封装,内容分发存储和客户端软件组成。流媒体服务器将输入的文件内容转化成适合内容分发服务器进行传输的流媒体文件,再利用视频编码器将收集的视音频文件进行编码,转化成统一的传输流,流分割器将这些传输流分割为一系列的流媒体文件并把文件发送到分发组件中的WEB服务器中存储。

一般情况下,先对流媒体文件进行统一切片封装,好处是可以将音视频流媒体严格按时序进行交织复用,任意分段都能独立解码播放而不依赖前一段内容。内容分发是通过分发服务器将分割后的流媒体文件通过一定的协议发送至客户端,客户端通过访问WEB网页中的链接,来获得选定的流媒体内容,客户端下载的流媒体文件达到一定量后,就能进行解码播放。可将要分发的内容预先发送到CDN节点网络,用户可以就近访问节点获得想要的内容。
在这里插入图片描述

直播

直播的内容分发一般依赖于两种方案,rtc和cdn

rtc方案(或厂商自建协议)

rtc直播 比如 web rtc 或 一些厂商的主要基于udp的私有协议,比如声网的sd-rtn,通过在互联网上不同地区的数据中心放置软件组网单元,相互连接互相调度,在现有的公共互联网基础上构建一层新的虚拟网络。实时根据各节点的连接和传输状况、负载状况以及到用户的距离和响应时间,自动分配最优、最通畅的传输路径,达到实时传输需要的质量保障级别。
在这里插入图片描述
在这里插入图片描述

cdn方案

CDN的技术原理见上图,具体实现是通过在现有的网络中,增加一层新的网络架构,将网站的内容发布到离用户最近的网络节点上,这样用户可以就近获取所需的内容,解决之前网络拥塞、访问延迟高的问题,提高用户体验。
在这里插入图片描述
主要流程为:

  • 主播开始进行直播,向智能DNS发送解析请求;
  • 智能DNS返回最优CDN节点IP地址;
  • 主播端采集音视频数据,发送给CDN节点,CDN节点进行缓存等处理;
  • 观众端要观看此主播的视频,向智能DNS发送解析请求;
  • 智能DNS返回最优CDN节点IP地址;
  • 观众端向CDN节点请求音视频数据;
  • CDN节点同步其他节点的音视频数据;
  • CDN节点将音视频数据发送给观众端;

短板:
1、延迟高,无法实时交互(主播与主播pk,主播与用户连麦)
CDN直播中用到的RTMP、HLS、HTTP FLV等协议都是在TCP的基础之上。TCP一个很重要的特性是可靠性,即不会发生数据丢失的问题。如果传输中发生了丢包,没有收到对端发出的“收到”信号,那么就会自动重传丢失的包,一直到超时。由于互联网的网络状况是变化的,以及主播端的网络状况是无法控制的。所以当网络中丢包率开始升高时,重传会导致延时会不断增大,甚至导致不断尝试重连等情况,这样不能有效的缓存,严重情况下会导致观众端视频无法观看。
优点:可以实现预览,h5播放(不需要使用专门的播放器)可以分享

rtc 与 cdn结合

也可以结合cdn 和 rtc,通过旁路推流实现
在这里插入图片描述

静态资源

淘宝的图片访问,有98%的流量都走了CDN缓存。只有2%会回源到源站,节省了大量的服务器资源。
同一张商品图片会用于不同的场景坑位展现,不同的坑位对图片的尺寸有不同的要求。为此,图片空间提供了一项功能,可以方便的生成不同尺寸的缩率图。只需要访问图片时,给图片增加不同的后缀,img-picasso源站就可以按要求进行图片进行缩放。
在这里插入图片描述
用户访问图片的过程如下:
(1)用户通过手机淘宝来搜索商品或者查看宝贝详情。
(2)详情/搜索/推荐通过调用商品中心返回商品的图片URL。
(3)客户端本地如果有该图片的缓存,则直接渲染图片,否则执行下一步。
(4)从CDN L1回源图片,如果L1有该图片的缓存,则客户端渲染图片,同时缓存到本地,如果L1没有缓存,则执行下一步。
(5)从CDN L2回源图片,如果L2有该图片的缓存,则客户端渲染图片,同时CDN L1及客户端缓存图片内容,如果CDN L2没有缓存该图片,则执行下一步。
(6)从图片空间回源图片,图片空间会从OSS拉取图片源文件,按要求进行尺寸缩放,然后执行编解码,返回客户端能够支持的图片内容,之后客户端就可以渲染图片,同时CDN的L1、L2以及客户端都会缓存图片内容。

cdn的计费方式有哪些

CDN(Content Delivery Network,内容分发网络)的计费方式通常根据使用的服务和资源消耗来确定。计费方式可能因提供商而异,但以下是一些常见的计费模式:

按流量计费: 这是最常见的计费方式之一。根据用户的实际流量消耗来计费,通常以每GB或每TB的流量为单位计费。不同的CDN提供商可能会根据使用的区域、流量峰值等因素进行不同的定价。这种模式可以在流量较低时减少成本支出,而在高峰期提供更大的灵活性。

按峰值带宽计费: 基于实际使用的带宽来计费。用户所使用的带宽越高,费用也会相应增加。这种模式常用于需要保证稳定带宽的场景。峰值带宽计费可以确保在高流量时期也能提供稳定的服务,而不用担心因为超出流量限制而影响用户访问体验。

固定价格计费: 有些CDN服务商提供预付费套餐,用户按照预定的价格购买固定的服务容量,不受实际流量或带宽使用的影响。这种方式适用于预先了解自己需求的用户。

按地域或区域计费: CDN服务商可能会根据不同的地理区域或国家/地区收费不同的价格,因为提供服务的成本和需求量在不同地区可能有所不同。

附加服务费用: 有些CDN服务商还提供额外的增值服务,比如安全服务、缓存优化、数据分析等,这些服务可能会以额外费用的形式提供。

参考

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值