一. CDN

1. 概念:

Content Delivery Network,内容分发网络,使用户可以就近取得所需的内容,是一种提高用户访问速度的技术。

在大中型公司里面,CDN 的应用非常的普遍,大公司为了提供更稳定的 CDN 服务会选择自建 CDN,而大部分公司基于成本的考虑还是会选择专业的 CDN 厂商,网宿、阿里云、腾讯云、
蓝汛等等。

2. CDN加速原理和应用:

  1. 内容缓存
  2. 分布在全国各地的网络节点
  3. 多线路(联通、移动、电信)支持(减少跨网访问)

3. 适用范围

  • 静态和更新频率低的内容更适用
  • 数据流量大的产品更适用 (视频网站、直播网络等)

4. 如何接入CDN?

要搭建一个 CDN 系统需要考虑哪两点:

  1. 如何将用户的请求映射到 CDN 节点上;
  2. 如何根据用户的地理位置信息选择到比较近的节点;

如何做到第一点呢?这就需要依靠 DNS 来帮我们解决域名映射的问题了。
DNS(Domain Name System,域名系统)实际上就是一个存储域名和 IP 地址对应关系的分布式数据库。而域名解析的结果一般有两种,一种叫做A 记录,返回的是域名对应的 IP 地址;另一种是CNAME 记录,返回的是另一个域名,也就是说当前域名的解析要跳转到另一个域名的解析上。

比如你的公司的一级域名叫做 example.com,那么你可以给你的图片服务的域名定义为“img.example.com”,然后将这个域名的解析结果的 CNAME 配置到 CDN 提供的域名上,比如uclound 可能会提供一个域名是“80f21f91.cdn.ucloud.com.cn”这个域名。这样你的电商系统使用的图片地址可以是“http://img.example.com/1.jpg”。用户在请求这个地址时,DNS 服务器会将域名解析到 80f21f91.cdn.ucloud.com.cn 域名上,然后再将这个域名解析为 CDN 的节点 IP,
这样就可以得到 CDN 上面的资源数据了。

当你在浏览器输入一个域名,首先通过DNS解析出IP,然后这个IP通过网络打到目标服务器上。
同理,如果给某一个应用增加CDN服务,首先你需要给你当前的域名开通CDN服务,然后在你的域名解析设置后台添加一条CDN专用的DNS解析配置 ,这条解析配置会让域名被解析之后指向一个CDN网络专用的处理DNS请求的服务器。这个服务器会根据当前系统负载等情况给你返回一条合适的链路。

参考链接:https://www.bilibili.com/video/BV12T4y1P7Fh/?spm_id_from=333.337.search-card.all.click&vd_source=4c263677a216945c0d21ca65ee15a5f9

5. CDN回源

回源是指浏览器访问CDN集群上静态资源时,文件缓存过期,直接穿透CDN集群而直接访问源站机器的形式。

6. CDN缓存 - 阿里云设置缓存过期时间:

缓存过期时间指源站资源在CDN节点缓存的时长,达到预设时间,资源将会被CDN节点标记为失效资源。如果客户端向CDN节点请求的资源已经失效,CDN会回源站获取最新资源并缓存到CDN节点(这个过程是两条路线,第一条是客户端向源站请求资源,第二条是CDN回源站获取最新的资源并缓存到CDN上)。您可以根据业务需求,按目录或文件后缀名配置静态资源的缓存过期时间。

7. 揭秘CDN缓存加速访问网络原理

8. 总结:

1. 如何让用户的请求到达CDN节点

将用户的请求映射到 CDN 服务器上,是使用 CDN 时需要解决的一个核心的问题,而 CNAME 记录在 DNS 解析过程中可以充当一个中间代理层的角色,通过将你的域名解析到CDN提供的域名上,然后在根据CDN提供的域名映射到cdn服务器所在的IP上,这样就可以把将用户最初使用的域名代理到正确的 IP 地址上。如图:

2. 如何找到离用户最近的CDN节点

GSLB(Global Server Load Balance,全局负载均衡), 它的含义是对于部署在不同地域的服务器之间做负载均衡,下面可能管理了很多的本地负载均衡组件。它有两方面的作用:
一方面,它是一种负载均衡服务器,负载均衡,顾名思义嘛,指的是让流量平均分配使得下面管理的服务器的负载更平均;
另一方面,它还需要保证流量流经的服务器与流量源头在地缘上是比较接近的。
GSLB 可以通过多种策略实现,这里就先不一一展开。

有了 GSLB 之后,节点的解析过程变成了下图中的样子:

二. DNS

1. 概念:

Domain Name System,域名系统。将域名和IP地址做映射。
DNS本质是用于TCP/IP应用程序的数据库,该数据库中记录了域名和IP的对应关系,同时也是一种用于客户端和服务端通讯的应用层的计算机网络协议。计算机要将域名解析成IP(或者将IP反解成域名),需要先去询问DNS服务器的数据库,查询得到域名和IP的对应关系,才能开始使用IP地址进行计算机通讯。

2. DNS的特点:

DNS服务器具有分布式阶层式的特点。

全球有那么多的计算机,要让一台服务器记录所有的域名和IP的对应关系的数据库,那这台服务器肯定要炸了,因此人们想到了将这些庞大的数据库分布式地存储于不同的计算机中,让他们共同提供查询域名和IP的功能,目前全球共有13台根服务器,其中1台主根服务器,12台辅助根服务器;

同时为了方便管理这些域名,人们规定域名的命名采用分层的结构,即采用类似树状结构的命名方式。在这棵倒状树中,每个节点有一个最多63个字符的标识,树的最顶端的根用 . 来标识,从最底部的节点到最顶部的根节点的标识串联起来,不同节点的标识之间也用 . 来分割,这样的一组就表示一个完整的域名(FQDN),例如www.baidu.com.,不过人们通常将最后. 去掉,即www.baidu.com,这是不完整域名。

3. DNS理论知识

3.1 域名的层次结构

域名系统必须要保持唯一性。

为了达到唯一性的目的,因特网在命名的时候采用了层次结构的命名方法:

  1. 每一个域名(本文只讨论英文域名)都是一个标号序列(labels),用字母(A-Z,a-z,大小写等价)、数字(0-9)和连接符(-)组成
  2. 标号序列总长度不能超过255个字符,它由点号分割成一个个的标号(label)
  3. 每个标号应该在63个字符之内,每个标号都可以看成一个层次的域名。
  4. 级别最低的域名写在左边,级别最高的域名写在右边。

域名服务主要是基于UDP实现的,服务器的端口号为53。

关于域名的层次结构,如下图所示:

例如:
一个域名“www.baidu.com.”由4部分:第1部分“.”代表根服务器、第2部分“.com.”代表顶级域名服务器、第3部分“baidu.com.”代表域名所有者服务器、第4部分“www.baidu.com.”代表主机域名。
域名体系是一个分级体系,最高级是根服务器,最低级是本地服务器(如114.114.114.114),域名查询需要逐级递归查询。

说明:在第3部分中的域名所有者也就是是我们平常所说的一级域名,而如果自己通过云解析设置一个zhidao.baidu.com,则这个就变成了二级域名。

4. DNS工作原理:


DNS的解析过程中最重要的两个概念是递归查询迭代查询

当你在浏览器输入www.baidu.com的时候,先查询浏览器的缓存中是否有域名和IP的映射关系,如果没有则查询本地hosts文件,然后查询客户端DNS缓存(如果存在客户端缓存的话),下一步是本地DNS服务器,检查本地DNS服务器的hosts文件和DNS缓存,如果还没有则下一步是ISP,ISP检查缓存还是没有;则ISP向根服务器发起询问请求,根服务器向ISP返回com.的IP地址,ISP向com.发起询问请求,com.向ISP返回baidu.com.的IP,则ISP再向baidu.com.发起询问,刚好baidu.com.有www.baidu.com.的IP,向ISP返回该IP地址,ISP得到www.baidu.com的IP后,将IP返回本地DNS服务器,本地DNS服务器在返回给客户端。这样完成整个流程。

DNS中的递归和迭代的重要区别是:递归是查询者变化,迭代是查询者不变。

5.DNS解析的过程:


当一个用户在地址栏输入www.taobao.com时,DNS解析有大致十个过程,如下:

  1. 浏览器先检查自身缓存中有没有被解析过的这个域名对应的ip地址,如果有,解析结束。同时域名被缓存的时间也可通过TTL属性来设置。(DNS中的TTL(Time To Live)表示一条域名解析记录在DNS服务器上的缓存时间)。

  2. 如果浏览器缓存中没有(专业点叫还没命中),浏览器会检查操作系统缓存中有没有对应的已解析过的结果。而操作系统也有一个域名解析的过程。在windows中可通过c盘里一个叫hosts的文件来设置,如果你在这里指定了一个域名对应的ip地址,那浏览器会首先使用这个ip地址.

    但是这种操作系统级别的域名解析也会被很多黑客利用,通过修改你的hosts文件里的内容把特定的域名解析到他指定的ip地址上,造成所谓的域名劫持。所以在windows7中将hosts文件设置成了readonly,防止被恶意篡改。

  3. 如果至此还没有命中域名,才会真正的请求本地域名服务器(LDNS)(也就是你的运营服务商)来解析这个域名,这台服务器一般在你的城市的某个角落,距离你不会很远,并且这台服务器的性能都很好,一般都会缓存域名解析结果,大约80%的域名解析到这里就完成了。

  4. 如果LDNS仍然没有命中,就直接跳到Root Server 域名服务器请求解析

  5. 根域名服务器返回给LDNS一个所查询域的主域名服务器(gTLD Server,国际顶尖域名服务器,如.com .cn .org等)地址。

  6. 此时LDNS再发送请求给上一步返回的gTLD

  7. 接受请求的gTLD查找并返回这个域名对应的Name Server的地址,这个Name Server就是网站注册的域名服务器。

  8. Name Server根据映射关系表找到目标ip,返回给LDNS

  9. LDNS缓存这个域名和对应的ip

  10. LDNS把解析的结果返回给用户,用户根据TTL值缓存到本地系统缓存中,域名解析过程至此结束

参考链接:https://www.imooc.com/learn/917
参考链接:https://blog.csdn.net/m0_37812513/article/details/78775629

参考链接: 小册

CDN与DNS原理和应用相关推荐

  1. CDN的工作原理以及其中的一些技术-阿里

    CDN的工作原理以及其中的一些技术-阿里 需求 CDN,全称Content Delivery Network,主要作用是为源站减少访问压力的同时,为客户端提供更快速的内容响应.除此之外,CDN还能对源 ...

  2. CDN架构以及原理分析

    详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp61 在不同地域的用户访问网站的响应速度存在差异,为了提高用户访问的响应速 ...

  3. CDN及其加速原理(详解)

    在不同地域的用户访问网站的响应速度存在差异,为了提高用户访问的响应速度.优化现有Internet中信息的流动,需要在用户和服务器间加入中间层CDN. 使用户能以最快的速度,从最接近用户的地方获得所需的 ...

  4. 计算机基础(四)——DNS原理,让开发常忘的a记录,ns记录和cname都是什么

    目录 一.为什么要熟悉DNS原理 二.dig追踪dns解析流程 1.开始从114.114.114.119服务器查询全球的根域名.root ns记录 服务器地址 2.最先返回的是jroot服务器,返回1 ...

  5. 动态服务器原理,什么叫cdn动态加速原理

    什么叫cdn动态加速原理 发布时间:2020-04-09 17:51:10 来源:亿速云 阅读:5565 作者:三月 与其他CDN服务商相比,亿速云CDN的主要优势包括稳定快速.性价比高.简单易用.高 ...

  6. Web缓存机制(浏览器缓存 CDN缓存 DNS缓存)

    在本片文章中,将阅读到的内容有: web缓存的类型 1.1数据库数据缓存 1.2 服务器端缓存 1.2.1 代理服务器缓存 1.2.2 CDN缓存 1.2.3 DNS缓存 1.3 浏览器端缓存 1.3 ...

  7. DNS原理及其解析过程 精彩剖析

    DNS原理及其解析过程 精彩剖析 网络通讯大部分是基于TCP/IP的,而TCP/IP是基于IP地址的,所以计算机在网络上进行通讯时只能识别如"202.96.134.133"之类的I ...

  8. Alexa市场占有率分析:Compute、CDN、DNS

    Alexa市场占有率分析:Compute.CDN.DNS 数据来源:http://blog.cloudharmony.com/ 时间:2015年3月11日 Alexa市场占有率のCompute Ale ...

  9. 超清晰的 DNS 原理入门指南 (资源)

    DNS 是互联网核心协议之一.不管是上网浏览,还是编程开发,都需要了解一点它的知识. 一.DNS 简介 DNS (Domain Name System 的缩写)的作用非常简单,就是根据域名查出IP地址 ...

最新文章

  1. 让Maven项目使用Nexus作为远程仓库的settings.xml配置
  2. OrgChart 组织架构与PHP结合使用
  3. Oracle PL/SQL编程之基础
  4. 【错误记录】SeeMusic 一直卡在主界面无法使用 ( 删除 C:\Users\用户名称\AppData\LocalLow\Visual Music Design 应用信息 )
  5. 笔记:企业内部因素评价
  6. hash地址_深入浅出一致性Hash原理
  7. 【Shell教程】四----输入输出,条件判断,循环
  8. Firefox 终于对退格键“下手”了!
  9. 跨网页的新手引导_用户体验之如何设计一个完美的新手引导流程?(附带案例)...
  10. 面试:Spring Boot的优缺点
  11. c语言利用公式求sin(x)的近似值,用下列公式计算sin(x)的近似值
  12. linux管理员最大密码长度,【最新】电信光猫超级管理员账户密码获取方法
  13. 陶哲轩实分析 命题7.2.9 绝对收敛判别法
  14. 全国地址数据库下载 mysql版更新共668389条记录 精确到村
  15. 数据挖掘::实验一 WEKA分类
  16. 电脑摄像头一会好使一会不好使
  17. 科研——多问、多交流
  18. Python:folium地图标记icon分组展示
  19. bootstrap 图片上传框架
  20. 权利要求的撰写 分享

热门文章

  1. 安公式得得结果Java_Java基本类实验报告
  2. java飞机场模拟程序_java 飞机大战 小游戏源码
  3. 考虑器件匹配和寄生最小化的共质心电容器布局生成
  4. 金蝶云星空管理中心,初始化密码
  5. LNMP+HAproxy+Keepalived+NFS集群架构
  6. 华信咨询唐汝林:全球边缘云产业格局大观
  7. 系统思考:换个角度想问题
  8. 100个酒瓶(含盖),每8个盖子或3个空瓶可以换一瓶酒(含盖),请计算瓶盖瓶身独立去兑换,能兑换多少...
  9. wps里为什么没有华文楷体_为什么山洞里的蜥蜴没有眼睛?
  10. 二进制包(binary file)和源代码文件的区别