首页 > 编程学习 > 网络面试-0x08如何理解CDN?

网络面试-0x08如何理解CDN?

发布时间:2022/11/8 17:10:37

一、CDN是什么?

CDN(Content Delilvery Network) 内容分发网络

构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络阻塞,提高用户访问响应速度和命中率。

关键技术主要有:内容存储分发技术

简而言之:CDN就是根据用户位置分配最近的资源

所以,用户在上网的时候不有给你直接访问源站,而是访问离它"最近的"一个CDN节点(边缘节点),其实就是缓存了源站内容的代理服务器

二、CDN原理分析

没有CDN时,访问某个站点时的路径:

用户提交域名 ——> 浏览器对域名进行解释 ——> DNS解析得到目的主机的IP地址 ——> 根据IP地址访问发出请求 ——> 得到请求数据并回复

应用CDN之后:

DNS返回的不再是IP地址,而是一个CNAME(Canonical Name)别名记录,指向CDN的全局负载均衡。 CNAME实际上再域名解析的过程中承担了中间人(或者说代理)的角色,这时CDN实现的关键。

负载均衡系统

由于没有返回IP地址,于是本地DNS会向负载均衡系统再发送请求,则进入到CDN的全局负载均衡系统进行智能调度:

1)看用户的IP地址,查表得知地理位置,找相对最近的边缘节点。
2)看用户所在的运营商网络,找相同网络的边缘节点。
3)检查边缘节点的负载情况,找负载较轻的节点。
4)其他,比如节点的“健康状况”、服务能力、宽带、响应时间等。
5)得到合适的边缘节点,把这个节点返回给用户,用户就能够将就近访问CDN的缓存代理。

CDN的整体流程
CDN的整体流程

缓存代理

缓存系统是CDN的另一个关键组成部分,缓存系统会有选择地缓存那些最常用的那些资源。

衡量CDN服务质量的两个指标

1)命中率:用户访问的资源恰好在缓存系统里,可以直接返回给用户,命中次数与所有访问次数之比。
2)回源率:缓存里没有,必须用代理的方式回源站取,回源次数与所有访问次数之比。

缓存系统层次划分

(1)分成一级缓存节点和二级缓存节点。 一级缓存配置高一些,直接源站,二级缓存配置低一些,直连用户。
(2)回源的时候二级缓存只找一级缓存,一级缓存没有才回源站,可以有效地减少真正的回源
(3)现在的商业 CDN命中率都在 90% 以上,相当于把源站的服务能力放大了 10 倍以上

三、总结

1)CDN为了改善互联网的服务质量。(提高访问速度)
2)构建了全国、全球级别的专网,让用户就近访问专网里的边缘节点,降低了传输延迟,实现浪了网站加速。
3)通过CDN的负载均衡系统,智能调度边缘节点提供服务,相当于CDN服务的大脑,而缓存系统相当于CDN的心脏,缓存命中直接返回给用户,否则回源


公众号:`技术小难`
[简书](https://www.jianshu.com/u/1851ec413025)
[博客园](https://account.cnblogs.com/blog-apply) 链接需要替换
[CSDN](https://blog.csdn.net/u012496940?spm=1000.2115.3001.5343)
[知乎](https://www.zhihu.com/people/gu-han-90-61)
[掘金](https://juejin.cn/user/1943592286824333)
[segmentfault](https://segmentfault.com/u/natqeeak/articles)

本文由 mdnice 多平台发布

Copyright © 2010-2022 dgrt.cn 版权所有 |关于我们| 联系方式