目录
1、DNS
2、域名的层级关系
3、DNS域名解析过程
递归查询
迭代查询
4、高速缓存
5、DNS相关面试问题
**
1、DNS
**
DNS(Domain Name System)是域名系统的英文缩写,是一种组织成域层次结构的计算机和网络服务命名系统,用于 TCP/IP 网络。
域名系统作为将域名和 IP 地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。
当我们在浏览器地址栏中输入某个Web服务器的域名时,用户主机首先在自己的DNS高速缓存中查找该域名所应的IP地址。
eg:如下图
没有找到的话,则会向网络中的某台DNS服务器查询,DNS服务器中有域名和IP地映射关系的数据库。当DNS服务器收到DNS查询报文后,在其数据库中查询,之后将查询结果发送给用户主机。
用户主机中的浏览器可以通过Web服务器的IP地址对其进行访问
**
2、域名的层级关系
**
域名服务器可以划分为以下四种不同的类型:
根域名服务器 根域名服务器是最高层次的域名服务器。每个根域名服务器都知道所有的顶级域名服务器的域名及其IP地址。因特网上共有13个不同IP地址的根域名服务器。当本地域名服务器向根域名服务器发出查询请求时,路由器就把查询请求报文转发到离这个DNS客户最近的一个根域名服务器。这就加快了DNS的查询过程,同时也更合理地利用了因特网的资源。
顶级域名服务器 这些域名服务器负责管理在该顶级域名服务器注册的所有二级域名。当收到DNS查询请求时就给出相应的回答(可能是最后的结果,也可能是下一级权限域名服务器的IP地址)。
权限域名服务器 这些域名服务器负责管理某个区的域名。每一个主机的域名都必须在某个权限域名服务器处注册登记。因此权限域名服务器知道其管辖的域名与IP地址的映射关系。另外,权限域名服务器还知道其下级域名服务器的地址。
本地域名服务器 本地域名服务器不属于上述的域名服务器的等级结构。当一个主机发出DNS请求报文时,这个报文就首先被送往该主机的本地域名服务器。本地域名服务器起着代理的作用,会将该报文转发到上述的域名服务器的等级结构中。本地域名服务器离用户较近,一般不超过几个路由器的距离,也有可能就在同一个局域网中。本地域名服务器的IP地址需要直接配置在需要域名解析的主机中。
eg:如下图所示
**
3、DNS域名解析过程
**
域名解析包含两种查询方式,分别是递归查询和迭代查询。
递归查询
eg:如下图所示
迭代查询
eg:如下图所示
4、高速缓存
为了提高DNS的查询效率,并减轻根域名服务器的负荷和减少因特网上的DNS查询报文数量,在域名服务器中广泛地使用了高速缓存。高速缓存用来存放最近查询过的域名以及从何处获得域名映射信息的记录。
由于域名到IP地址的映射关系并不是永久不变,为保持高速缓存中的内容正确,域名服务器应为每项内容设置计时器并删除超过合理时间的项(例如,每个项目只存放两天)。
eg:如下图所示
5、DNS相关面试问题
(1)DNS为什么用UDP?
正确的答案是 DNS 既使用 TCP 又使用 UDP。当进行区域传送(主域名服务器向辅助域名服务器传送变化的那部分数据)时会使用 TCP,因为数据同步传送的数据量比一个请求和应答的数据量要多,而 TCP 允许的报文长度更长,因此为了保证数据的正确性,会使用基于可靠连接的 TCP。
当客户端向 DNS 服务器查询域名 ( 域名解析) 的时候,一般返回的内容不会超过 UDP 报文的最大长度,即 512 字节。用 UDP 传输时,不需要经过 TCP 三次握手的过程,从而大大提高了响应速度,但这要求域名解析器和域名服务器都必须自己处理超时和重传从而保证可靠性。
所有内容只为了记录学习过程,部分内容源于网络。
想要了解更详细的工作原理,推荐访问下方链接
https://blog.csdn.net/weixin_45629285/article/details/122969104?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168480673316800184123219%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=168480673316800184123219&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_positive~default-1-122969104-null-null.142v87koosearch_v1,239v2insert_chatgpt&utm_term=%E5%9F%9F%E5%90%8D%E8%A7%A3%E6%9E%90&spm=1018.2226.3001.4187