文章目录
1.什么是DNS?
DNS( Domain Name System)是“域名系统”的英文缩写,是一种组织成域层次结构的计算机和网络服务命名系统,它用于TCP/IP网络,它所提供的服务是用来将主机名和域名转换为IP地址的工作。DNS就是这样的一位“翻译官”,它的基本工作原理可用下图来表示。
2.为什么有DNS?
要知道全世界联网的电脑都会有一个IP地址用来确定电脑身份,就如同博主的身份证一样,不过非常难记。而电脑之间相互通信都是通过IP来交互的,所以不知道要访问电脑的IP地址还是不行滴。这时候域名就应运而生,域名可以理解为IP的别名,和博主的姓名是一个性质,是不是很好记。那电脑又是怎么知道域名和IP之间的关系呢?这时候就需要DNS服务器了,可以理解DNS服务器里面存放全世界的域名和IP的绑定关系,前提是域名都是申请且备案过的。这时候电脑就能通过DNS服务器将域名转换成IP地址啦
3.DNS介绍
DNS解析分为两种方式:
①正向解析:将域名解析为IP地址
②逆向解析:将IP地址解析为域名。
不过最经常使用的当然是正向解析,比如将域名为:www.qq.com输入到浏览器中,DNS服务器作为中间人会将域名:www.qq.com解析为与www.qq.com映射的IP地址,从而完成访问网址的目的。
下面我们就来测试下访问一个域名,看计算机是否能识别到IP地址。(ping www.baidu.com)
4.DNS的分布式结构
5.DNS解析过程
DNS解析过程分为递归查询和迭代查询。
递归查询:客户端只发一次请求,要求对方给出最终结果。
迭代查询:客户端发出一次请求,对方如果没有授权回答,它就会返回一个能解答这个查询的其它名称服务器列表,客户端会再向返回的列表中发出请求,直到找到最终负责所查域名的名称服务器,从它得到最终结果。
以www.baidu.com为例
DNS工作原理:
在主机向本地DNS服务器发送域名解析的请求时,如果本地服务器缓存内有该域名和IP的映射关系,那么本地服务器就会将该IP地址返回给主机。 反之如果在本地服务器无缓存的情况下,本地服务器找不到有该域名映射的IP地址,那么本地的DNS服务器就会以DNS客户端的身份向根服务器发送请求。DNS本地服务器通过根域名服务器找到管理.com(顶级域)这个域的DNS服务器,本地DNS服务器再通过管理.com这个域的DNS服务器,找到能管理baidu.com(二级域)的DNS服务器,再通过管理baidu.com(二级域)的DNS服务器找到www.baidu.com的主机地址然后就能通过IP地址访问到百度的网址啦。
PS:
递归:通俗点就是我要(客户端)到学校找我儿子张三但是不知道在哪个班(IP)。首先问学校保安(本地DNS)知不知道我儿子张三,保安如果知道就会告诉我儿子张三在5班,我直接去5班找到我儿子。
迭代:反之如果学校保安不知道我儿子张三在哪个班?保安就会以我的身份去问校长,校长给保安一个地址让保安问教导主任。找到教导主任后,教导主任会给保安个地址,让保安去问班主任 。找到班主任,班主任给保安说张三在5班。最后保安把张三在5班告诉我,我就去5班找到我儿子张三啦。