DNS

DNS,英文全称Domain Name System,也就是域名系统。它的作用是:用于解析用户访问域名的对应IP地址

DNS解析

当我们输入一个URL,我们的计算机首当其冲就会施展第一道魔法:DNS解析

做这一步的目的是:为了找到我们输入的域名的对应IP地址,如https://www.baidu.com是域名,他对应的ip地址可能是36.152.44.95

注意:我们在互联网上的资源最终都是以ip地址的形式来进行定位的,我们日常输入的域名只是为了方便大家记忆。毕竟相比于36.152.44.95这一串数字的ip地址,我们更容易记得www.baidu.com这种域名形式。

那么,我们的DNS是如何查找到我们输入域名的对应IP呢?我们还是以我们在浏览器输入www.baidu.com为例,它的流程是这样的:

加速DNS解析:CDN

通过上面的DNS解析过程我们可以看到,DNS解析是一个复杂的过程,用户想要请求到域名对应的IP地址需要经过一层又一层的环节,所以这个过程是很漫长的。还有一个问题是:我们的一个域名www.baidu.com一般都会存在多个ip对应,一个ip对应一台服务器,那么用户请求的时候应该分散到各个服务器上(应该根据服务器的远近和服务器的状况进行请求,而不是大家都只请求同一台服务器)。

为了解决这些问题,一个名为CDN(Content Delivery Network:内容分发网络)的解决方案出现了,简单来讲CDN就是一种加速DNS寻址过程的一种手段,CDN的主要由CDN节点调度CDN节点更新两部分组成。

CDN节点调度

我们之前说到,一个理想的方式是:可以让用户访问到最合适自己的服务器(服务器距离近且健康)。CDN的节点调度系统就可以帮我们分配节点完成这样的需求:CDN调度系统会把最合适的CDN节点分配给我们,分配的方式主要靠以下两种手段:

  1. dns调度:根据ldns(本地dns)的位置进行节点就近分配
  • 优点:只需一次请求,无需转发二次请求
  • 缺点:准确性无法保障,用户的ldns位置可能与实际位置不符(比如:北京联通用户使用深圳电信的LDNS)
  • 适用场景:小文件传输(寻址开销小)
  1. http调度:分析用户ip,然后通过302转发到就近的CDN节点
  • 优点:准确性相比于dns要高
  • 缺点:由于通过302转发,所以会请求两次
  • 适用场景:大文件传输(寻址开销大,但是可以找到更高效的节点)

通过这些CDN调度优化,我们就可以寻找到最适合自己的CDN节点,优化页面的传输过程

CDN节点更新

之前我们有说:CDN调度系统是把最合适的CDN节点分配给我们,那么CDN节点里面的内容是从何而来呢?当新内容更新的时候CDN节点里的内容如何更新?这就要说到我们的第二个点:CDN节点更新

CDN节点更新的方式主要有两种:

  1. 服务端主动推送:服务端主动下发内容

    1. 问题:服务端推送不及时可能存在404情况
  1. 客户端被动查询:客户端请求时检查节点,如果节点无内容/内容已过期,则请求新的资源内容并存在对应的CDN节点上

优化手段

除了CDN这种优化手段,我们在每个网页上面也有对应的DNS优化手段,由于DNS本身是一个比较漫长的过程,所以我们的主要优化目标是减少DNS的请求数量提前进行DNS的查询和链接

减少DNS的请求数量

由于每个域名都需要进行DNS解析的过程,所以减少域名的请求,那就可以减少DNS解析的次数,这样就可以完成对应的DNS优化了。

聪明的小朋友可能会疑惑,这么说的话我们只需要把所有资源都放在同一域名下不是最优方案了吗?那为什么我看好多网站的资源还要分好多域名呢?

其实这是因为我们的域名并发请求是有数量限制的,比如说:如果浏览器在同一域名下请求资源,一次最多请求5个资源。那么如果我们要总共请求15个资源,就只能分三批先请求5个,再请求5个,最后再请求5个。关于浏览器具体一次能请求多少并发资源,经测试:Chrome浏览器的最大并发数为6个。想要了解其他浏览器的并发数,可以看这里。

提前进行DNS解析

提前进行DNS解析有两种手段:

  1. dns提前加载

    1. 提前进行dns解析:<link rel="dns-prefetch" href="//atanx.alicdn.com">
    2. 禁用(防止dns解析滥用):<meta http-equiv="x-dns-prefetch-control" content="off">
  1. 链接提前建立
    <link rel="preconnect" href="//example.com">
    <link rel="preconnect" href="//cdn.example.com" crossorigin>

我们也可以通过prefetchprerender提前加载将要跳转的页面资源

DNS无法解析IP_计算机网络-DNS相关推荐

  1. DNS无法解析IP_通过YouTube的封杀窥视DNS原理

    YouTube是世界上最流行的视频网站,但由于任何人都可以在YouTube上发布视频,使视频的真实性无法得到保障,甚至一些侮辱民族感情.亵渎宗教的视频也频频出现,引发争议.从2010年3月23日晚上起 ...

  2. DNS无法解析IP_域名解析错误怎么办?域名解析错误原因有哪些?

    dns域名解析错误的原因有不少,但主要由以下原因造成的,大家可以使用排除法. 域名解析错误怎么办?域名解析错误原因有哪些? 方法1.电脑中病毒 如果电脑中病毒一般是恶意软件篡改用户主页,劫持电脑dns ...

  3. shell脚本详解(九)——一键部署DNS正向解析

    shell脚本详解(九)--一键部署DNS正向解析 一.DNS正向解析 二.shell脚本一键部署 一.DNS正向解析 详情请点击:DNS正向解析 二.shell脚本一键部署 #!/bin/bash ...

  4. 为什么选择高防DNS云解析?

    DNS(Domain Name System,域名服务器)是互联网的一项核心服务,是域名与对应IP地址进行转换的系统,可将易于记忆的域名转换为可由服务器识别的用于互连通信的数字IP地址.随着大数据时代 ...

  5. 【Windows Server 2019】DNS服务器的配置与管理——DNS正向解析

    目录 6. DNS正向解析 6.1 创建正向解析区 主机记录 6.3 为主机记录添加别名 别名 6.4 为区域创建邮件交换记录 邮件交换记录 6.5 验证正向解析功能 参考资料 关联博文 6. DNS ...

  6. 【Windows Server 2019】DNS服务器的配置与管理——DNS反向解析

    目录 7. DNS反向解析 7.1 创建反向解析区 7.2 增加指针记录 指针记录 7.3 验证反向解析功能 参考资料 关联博文 7. DNS反向解析 7.1 创建反向解析区 (1)打开[DNS管理工 ...

  7. DNS服务器 - 解析与集群

    1.关于dns的名词解释 dns: domain name service(域名解析服务) 关于客户端: /etc/resolv.conf ##dns指向文件 host www.baidu.com # ...

  8. DNS服务解析与原理笔记

    引言 DNS介绍 DNS原理与解析 DNS查询 DNS服务搭建 DNS劫持和污染 计算机面试 or 真题 DNS应用扩展 参考与推荐 引言 我想很多人遇到过这样一种情况,电脑突然上不了网了,或者说可以 ...

  9. 计算机网络——DNS域名解析服务器原理

    摘要 本博文主要介绍DNS协议和DNS服务器域名解析相关知识和原理,帮助大家在理解计算机网络中的域名解析服务原理. 计算机网络知识脑图 计算机网络--计算机网络知识脑图_庄小焱的博客-CSDN博客_计 ...

最新文章

  1. Cloneable接口和循环冗余校验算法
  2. 转 C++STL之string
  3. Dockerfile 里指定执行命令用RUN 、ENTRYPOING和用CMD有何不同?
  4. POJ1552-Doubles
  5. wxWidgets:wxRibbonBar类用法
  6. Android之ExpandableListView
  7. Java运行时数据区及对象的分配
  8. 计算机网络学习笔记(15. OSI参考模型③、TCP/IP参考模型)
  9. UVA11876 N + NOD (N)【欧拉筛法+前缀和】
  10. 虚拟机里ubuntu扩容主分区/dev/sda1
  11. Top 10 Security Issue Solution
  12. BZOJ【1606】购买干草
  13. Dockerfile文件:使用脚本文件生成镜像
  14. 【CVE】CVE-2015-5254:ActiveMQ 反序列化漏洞利用
  15. Android显示图片崩溃的解决办法
  16. 小程序 H5页面video的适配问题
  17. gcc利用-m32编译报错问题处理
  18. 【算法笔记】二叉树之基础遍历
  19. 汇编作业:人均GDP
  20. oracle直截取汉字,ORACLE_从字符串中提取汉字(不包括全角符及日文韩文等字符) | 学步园...

热门文章

  1. 2019年工程造价表_2019年工程造价咨询统计公报
  2. JS将数字转换为带有单位的中文表示
  3. CXF 入门:创建一个基于SOAPHeader的安全验证(CXF拦截器使用)
  4. css【清除浮动】常用方法*********** ******* *****
  5. stm32f103c8t6移植uCOS Ⅲ出现Error: L6407W,解决方法:内核配置以减小代码规模
  6. 浅淡HTML5移动Web开发
  7. 变量dwNKDrWatsonSize
  8. 动态规划--电路布线(circuit layout)
  9. 函数和构造函数的区别
  10. 浅谈vue,小程序,react基础绑定值