首页
学习
活动
专区
圈层
工具
发布
29 篇文章
1
eBPF技术简介
2
关于存储技术的最强入门科普
3
360度无死角 | Pulsar与Kafka对比全解析
4
Event-Driven Architecture思考
5
什么是事件驱动架构(EDA)?
6
Spring和RabbitMQ消息队列(AMQP)整合详解
7
Apache Kafka,Apache Pulsar和RabbitMQ的基准测试:哪一个是最快的MQ?
8
看这里!鹅厂大佬深度解析 Apache Pulsar 五大应用场景
9
常用消息队列介绍和对比
10
深度 | 生物神经网络基础:从尖峰放电神经元谈起
11
人工神经网络太简陋了,《Science》新作揭露,神经元树突也隐含计算能力
12
深度神经网络(DNN)是否模拟了人类大脑皮层结构?
13
深度分析NVIDIA A100显卡架构(附论文&源码下载)
14
CUDA是什么-CUDA简介「建议收藏」
15
英伟达 GPU 十年架构演进史
16
英伟达A100 Tensor Core GPU架构深度讲解
17
DNS、CDN加速和域名解析之间的关系
18
深入理解 CPU 和异构计算芯片 GPU/FPGA/ASIC (下)
19
深入理解 CPU 和异构计算芯片 GPU/F10PGA/ASIC
20
卷积神经网络(CNN):从原理到实现
21
从AlexNet理解卷积神经网络的一般结构
22
浅谈神经网络发展史:从莫克罗-彼特氏神经模型到深层神经网络
23
深度神经网络DNN的多GPU数据并行框架 及其在语音识别的应用
24
ImageNet冠军带你入门计算机视觉:卷积神经网络
25
【转载】淘宝架构框架发展史
26
认识多种处理芯片的特性和实战(下篇)
27
认识多种处理芯片的特性和实战(上篇)
28
沉吟至今,生而为云 :异构FPGA在云端一次算力的升华
29
FPGA异构计算芯片的特点

DNS、CDN加速和域名解析之间的关系

DNS

什么是DNS?

DNS,英文全称为:Domain Name System,中文译名:域名系统。

本质上,是存储域名和IP地址映射关系的分布式服务。

它将人类可读的域名,转换成数字IP地址,供计算机之间相互连接。

DNS的工作原理

如图所示,模拟的是用户打开浏览器,输入网址,到显示页面到显示器上的流程。

按图中的数字,逐步拆解如下:

  1. 用户打开web浏览器,在地址栏中输入www.example.com,然后敲击回车键。
  2. www.example.com的请求,被路由到本地DNS服务器,如果在本地DNS服务器查找到域名映射的缓存记录,则直接返回IP地址给浏览器。
  3. 如果在本地DNS服务器查找不到域名映射的记录,则由本地DNS服务器将域名www.example.com,转发给DNS根服务器DNS根服务器不负责解析域名,但是会将对应的域服务器,作为响应,返回本地DNS服务器。这里对应的域服务器.com域服务器。也即顶级域名TLD(top level domain)。
  4. 本地DNS服务器发送域名到.com域服务器.com域服务器会使用与example.com相关的DNS服务器作为响应,返回给本地DNS服务器
  5. 本地DNS服务器选择其中一台DNS服务器(命名为:Amazon Route 53),将www.example.com的请求,转发到该服务器。
  6. Amazon Route 53服务器,查找出www.example.com的记录,获取到对应的IP地址,并将IP地址返回给DNS解析程序。
  7. 本地DNS服务器接收到域名对应的IP地址后,将IP值返回给浏览器。并根据TTL,缓存域名www.example.com的映射。
  8. web浏览器根据IP地址,发送请求到目标服务器,请求相关资源。
  9. 目标服务器将相关资源返回给浏览器,浏览器接收到资源,显示到页面上。

此处的本地DNS服务器,一般是ISP(Internet Service Provider)提供。ISP,即是互联网服务提供商。比如,我们熟知的电信,就是ISP。

TTL

DNS解析中,一般都会有一个参数需要设置,即TTL(Time To Live)。

TTL的作用,是告知本地DNS服务器,域名可以在其机器上缓存的最长时间是多久。

比如阿里云,默认的TTL是10分钟,也即本地DNS服务器,可以对域名缓存10分钟。10分钟之后,本地DNS服务器会删除这条记录。删除之后,如果用户再次访问www.example.com,则需要重复上述流程。

TTL的最大值是:24小时。

CDN

什么是CDN?

CDN,英文全名:Content Delivery Network,即内容分发网络。

它是构建在现有互联网基础上的一层智能虚拟网络

通过现实世界,部署在各个地区的物理实体节点服务器,提供内容给用户就近访问。

CDN服务器的本质,是存储源服务器分发的资源,也即资源副本,供用户就近访问,缩短用户查看内容的访问延迟。

比如,Leon公司,源服务器部署在英国,并在中国和英国都部署有CDN服务器。则中国的用户,只需要访问中国CDN服务器即可,不需要通过路由多层转发,访问英国的源服务器。依此,提高网络资源的访问速度。

CDN的好处

CDN服务器,可以解决 网络带宽小用户访问量大网点分布不均匀等问题,并提高用户访问网站的响应速度增强网站的可用性

CDN怎么工作?

CDN加速原理

浏览器发起HTTP请求到本地DNS服务器本地DNS服务器使用CNAME的方式,将资源域名重定向到CDN服务,依靠CDN的策略,查找到最佳CDN节点IP。浏览器访问该节点,用最短访问时延,下载所需的资源。

工作流程

CDN节点有缓存
  1. 用户在浏览器输入网站域名www.example.com,浏览器向本地DNS服务器发起域名解析请求
  2. 域名解析请求,被本地DNS服务器转发到域名授权DNS服务
  3. 域名授权DNS查找到,域名通过CNAME,映射到www.example.com.c.cdnhwc1.com,返回给本地DNS服务器
  4. 本地DNS服务器,访问www.example.com.c.cdnhwc1.com对应的CDN服务器
  5. CDN服务器对域名进行解析,使用CDN策略,查找出最佳的CDN节点的IP地址,返回给本地DNS服务器
  6. 本地DNS服务器返回CDN节点IP地址给浏览器
  7. 浏览器得到域名www.example.com对应的IP地址后,向该IP地址(CDN节点)发出请求
  8. CDN节点将用户请求的资源进行返回
CDN节点无缓存

前7步的流程,和CDN节点有缓存的情况一致。

区别是:访问的CDN节点,没有资源副本,需要先向源服务器拉取资源,缓存到CDN节点后,再返回给浏览器。

增加的步骤解析:

  1. 浏览器的请求到达CDN节点,CDN节点在本地缓存查找不到资源
  2. CDN节点请求源服务器(ps: 也可以是上级缓存服务器),拉取用户所需的资源
  3. CDN节点将拉取的资源缓存到本地
  4. CDN节点将用户请求的资源进行返回

域名解析

什么是A记录?

A记录用来指定主机名或域名,对应的IP地址。

如上图所示,是我的阿里云域名配置,将fe-interview.wangxiaokai.vip指向对应的IP地址****

什么是CNAME记录?

CNAME的作用,是将一个域名映射到另一个域名,也即域名的别名

如上图所示, 我将note.wangxiaokai.vip指向另一个域名hosting.gitbook.com

访问note.wangxiaokai.vip等同于访问hosting.gitbook.com

CNAME的应用,是需要服务保持稳定域名的场景。

比如CDN节点域名,就是使用CNAME进行映射的。如果后续的地区CDN节点服务器更换IP地址,只需要维护CDN策略而已,不需要用户修改接入逻辑。


最近笔者在整理第一本电子书书稿《前端面试手册》,有兴趣的同学可以关注下~

喜欢我文章的朋友,可以通过以下方式关注我:

关注
下一篇
举报
领券