简述一下dns的原理(一文秒懂DNS解析原理)(1)

阅读本文约需要10分钟,您可以先关注我们,避免下次无法找到。

不知道你有没有遇到过类似的情况,你的电脑明明连接了网络,而且微信、QQ等软件的客户端也能正常使用,但是就是网页打不开。

怎么回事呢?

可能是你的DNS服务器地址获取的有问题。

那DNS又是什么呢?

好,成哥今天就跟大家聊聊关于DNS的知识。

01 域名系统

DNS (Domain Name System)即域名系统

何为域名系统呢?就是把我们常用的URL自动转换成IP地址的系统。

URL就是域名,也可以简单理解为网址,比如我们经常使用的百度(), 淘宝()等,这些都是域名。

熟悉TCP/IP协议的同学都知道,互联网上的主机之间的通信,是需要明确IP地址和MAC地址的。

我们通过IP地址是可以访问目标网址的。但是我觉得没有人想通过这种方式进行上网,除非你是个数字狂人,你能记住各种数字。

简述一下dns的原理(一文秒懂DNS解析原理)(2)

所以域名服务器应运而生,通过域名系统做IP和URL的转换,我们就不用记这个复杂的数字了,只需要记住有实际含义的URL即可。

我们知道互联网连通的是全球资源,单一的域名服务器不足以支撑全球的地址转换操作。

因此全球有多套域名服务器相互配合使用。早在1983年互联网就开始采用层次树状结构的命名方法了,并使用分布式的域名系统。

02 域名结构

互联网采用层次树状结构的命名方法主要为了解决全球不同地区同时接入互联网的需求。

互联网中所有Web服务器都有全球唯一的域名。

域名的结构如下所示:

每一个域名都由标号序列组成,各个标号之间使用小数点隔开。

简述一下dns的原理(一文秒懂DNS解析原理)(3)

简述一下dns的原理(一文秒懂DNS解析原理)(4)

这是微信下载页面的域名。从三个标号组成,其中标号com是顶级域名,标号qq是二级域名,标号weixin是三级域名。

同时,域名的级别是从左到右,从高到低的书写方式。

也就是说只是www.qq.com的一个下级域名。

域名中没有规定一个域名可以包含多少个下级域名,也没有规定各级别域名有具体含义,只要能有明确的标识即可。

各级域名由其上一级的域名管理机构管理,而最高的顶级域名则由ICANN进行管理。

域名中的标号通常由标号和数字组成,每个标号不超过63个字符,不区分大小写。

但是标号也可以出现短横杠(-),比如中国制造网。

简述一下dns的原理(一文秒懂DNS解析原理)(5)

03 域名空间

所谓域名空间,即域名的组成。

包括根、顶级域名、二级域名、三级域名、四级域名…

其中顶级域名主要分为三类:

(1)第一类,国家和地区顶级域名(country code top-level domains),简称ccTLDs。

目前200多个国家和地区都按照ISO3166国家代码分配了顶级域名。例如,cn代表中国,jp代表日本,us代表美国,sg代表新加坡等。

(2)第二类,通用顶级域名(generic top-level domains),简称gTLDs。

例如表示工商企业的.com,表示网络提供商的 .net,表示非盈利组织的 .org等。

(3)第三类,新顶级域名(New gTLD)。

新顶级域名意在标新立异,比如.ltd代表有限公司,.work代表工作,.site代表网站属性,.club代表俱乐部等等。

域名空间示意图如下:

简述一下dns的原理(一文秒懂DNS解析原理)(6)

04 域名服务器

域名服务器也是按照层次划分的。

主要包括:根域名服务器、顶级域名服务器、权限域名服务器、本地域名服务器等。

(1)根域名服务器

最高层次的域名服务器,也是最重要的域名服务器。

所有的根域名服务器都知道所有的顶级域名服务器的域名和IP地址。

不管是哪一个本地域名服务器,若要对因特网上任何一个域名进行解析,只要自己无法解析,就首先求助根域名服务器。

(2)顶级域名服务器

负责管理在该顶级域名服务器注册的二级域名。

(3)权限域名服务器

负责一个"地区"的域名服务器。

(4)本地域名服务器

当一个主机发出DNS查询请求时,这个查询请求报文就发送给本地域名服务器。

05 域名解析过程

域名解析一般采用递归查询的方式进行。

一个完整的域名解析过程如下图所示:

简述一下dns的原理(一文秒懂DNS解析原理)(7)

(1)步骤一:查询浏览器缓存。

浏览器一般会按照一定的频率缓存DNS记录。此步骤适用于已执行过DNS解析的主机。

(2)步骤二:查询主机hosts文件。

如果浏览器缓存中找不到需要的DNS记录,就需要去操作系统中查找主机hosts文件。

(3)步骤三:查询本地域名服务器。

如果主机hosts文件中找不到需要的DNS记录,则继续向本地域名服务器进行查询。本地域名服务器通常是运营商提供的DNS服务器。

(4)步骤四:递归查询根域名服务器。

如果本地域名服务器中找不到需要的DNS记录,则本地域名服务器会向根域名服务器发出请求,进行递归查询。

根域名服务器不会直接告知具体的DNS记录。而是告知本地域名服务器继续向某台顶级域名服务器进行查询。

(5)步骤五:递归查询顶级域名服务器。

顶级域名服务器也不会告知本地域名服务器具体的DNS记录,而是告知本地域名服务器继续向某台权限域名服务器进行查询。

(6)步骤六:递归查询权限域名服务器。

通过查询权限域名服务器,会获知具体的DNS记录。

(7)步骤七:DNS记录的反馈。

本地域名服务器通过权限域名服务器获知的具体DNS记录,会返回给DNS客户机。

(8))步骤八:访问目标服务器。

通过DNS记录,浏览器获知具体的IP地址,通过IP地址即可访问目标Web服务器。

06 总结

关于DNS的知识今天就介绍到这里,下次再遇到DNS的问题,你就可以游刃而解了。

后如果喜欢本篇文章不要忘了点赞、关注与转发哦!

-END-

网络抖动对业务影响真的这么大吗?

  • 常用网络连通性测试工具(上)
  • 简述一下dns的原理(一文秒懂DNS解析原理)(8)

    ,