「DNS」和「CDN」


DNS

DNS(Domain Name System)服务器会首先进行域名的映射;

a、浏览器DNS缓存;

b、电脑本地DNS缓存;

c、路由器NDS缓存;

d、ISP(网络服务提供商)DNS缓存;

e、你的ISP的DNS服务器会从根域名开始进行递归/迭代查询(默认使用递归查询);

​ 本地域名服务器向根域名服务器的查询通常是采用迭代查询

​ 当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么返回给本地域名服务器所要查询的IP地址,要么返回给 本地域名服务器下一步应当查询的域名服务器的IP地址(每个服务器都会首先查询自己的缓存)。

1、递归查询:

img

a、递归-迭代查询 b、递归-递归查询

img

a.DNS客户端和本地名称服务器是递归**,而本地名称服务器和其他名称服务器之间是迭代。**

b.DNS客户端和本地名称服务器是递归**,而本地名称服务器和其他名称服务器之间也是**递归。

2、迭代查询

img

本地服务器

1、本地dns到底是什么?为什么有时候看到的本地dns的ip是局域网类型的ip?

本地DNS一般是指你电脑上网时IPv4或者IPv6设置中填写的那个DNS。这个有可能是手工指定的或者是DHCP自动分配的。
如果你的电脑是直连运营商网络,一般默认设置情况下DNS为DHCP分配到的运营商的服务器地址。如果你的电脑和运营商之间还加了无线或者有线路由,那极有可能路由器本身还内置了一个DNS转发器,这玩意的作用是将发往他所有的DNS请求转发到上层DNS。此时由于路由器本身也接管了下挂电脑的DHCP服务,所以它分配给下面电脑的DNS地址就是它自身,所以你能看到电脑的DNS分配到的可能是192.168.1.1。实际上就是路由器自身,而路由器的DNS转发器将请求转发到上层ISP的DNS。所以这里说DNS是局域网或者是运营商的都可以

2、 权威dns服务器是什么? 是域名商在管理他吗?

权威服务器是特殊的DNS服务器,所谓的权威是针对特定域名来说的。所以一般会说某某域名的权威DNS是谁,不能单纯的抛离域名问权威DNS是谁。是域名商在管理,负责解析在他这里购买的域名的权威解析。

CDN

1、CDN是什么

CDN (全称 Content Delivery Network),即内容分发网络

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

CDN 的关键技术主要有内容存储和分发技术,简单来讲,CDN就是根据用户位置分配最近的资源

于是,用户在上网的时候不用直接访问源站,而是访问离他“最近的”一个 CDN 节点,术语叫「边缘节点」,其实就是缓存了源站内容的代理服务器。如下图:

img

2、原理分析

在没有应用CDN时,我们使用域名访问某一个站点时的路径为:

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

应用CDN后,DNS 返回的不再是 IP 地址,而是一个**CNAME(Canonical Name ) **别名记录,指向CDN的全局负载均衡

CNAME实际上在域名解析的过程中承担了中间人(或者说代理)的角色,这是CDN实现的关键

负载均衡系统

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

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

整体流程如下图:

img

缓存代理

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

其中有两个衡量CDN服务质量的指标:

命中率:用户访问的资源恰好在缓存系统里,可以直接返回给用户,命中次数与所有访问次数之比;

回源率:缓存里没有,必须用代理的方式回源站取,回源次数与所有访问次数之比缓存系统也可以划分出层次,分成一级缓存节点和二级缓存节点。一级缓存配置高一些,直连源站,二级缓存配置低一些,直连用户;

回源的时候二级缓存只找一级缓存,一级缓存没有才回源站,可以有效地减少真正的回源;

现在的商业 CDN命中率都在 90% 以上,相当于把源站的服务能力放大了 10 倍以上

3、总结

CDN 目的是为了改善互联网的服务质量,通俗一点说其实就是提高访问速度

CDN 构建了全国、全球级别的专网,让用户就近访问专网里的边缘节点,降低了传输延迟,实现了网站加速

通过CDN的负载均衡系统,智能调度边缘节点提供服务,相当于CDN服务的大脑,而缓存系统相当于CDN的心脏,缓存命中直接返回给用户,否则回源。

参考

面试官:如何理解CDN?说说实现原理?

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值