admin管理员组文章数量:1567745
[真实IP地址查询—DNS]
浏览器解析URL并生成HTTP消息后,需要委托操作系统将消息发送给Web服务器,此时必须提供服务器对应的IP地址,有一种服务器专门保存了Web服务器域名与IP地址的关系,它就是DNS服务器。
DNS是什么?
DNS即域名系统
- 是一个由分层的DNS服务器实现的分布式数据库
- 一个使得主机能够查询分布式数据库的应用层协议
DNS是一个分布式数据库,整个DNS系统由分散在世界各地的很多台DNS服务器组成,这些DNS保存了一些数据,这些数据可以帮助我们找到最终的主机服务器对应的IP地址。
分布式:这个世界上没有一台服务器拥有因特网上所有主机的映射,每台DNS只负责部分映射。
层级关系:域名的层级关系类似一个树状结构,以www.server.为例,句点“.”代表了不同层级之间的界限,越靠右的位置表示的层次越高。
- 根DNS服务器(.)
- 顶级域DNS服务器(com)
- 权威DNS服务器(server)
根DNS服务器信息保存在互联网中所有的DNS服务器中,因此,客户端只需要能够找到任意一台DNS服务器就可以通过它找到根域服务器,通过询问根域就可以得到主机名对应的顶级域服务器的IP地址,再去找下一台对应的顶级域DNS服务器,通过顶级域DNS得到下一级权威DNS的IP地址,找到权威DNS服务器,通过权威DNS服务器返回主机-IP的最终映射。
域名解析的查询流程
- 输入URL,操作系统会先查hosts文件是否有记录,有的话就把相应映射的IP返回,没有就去本地DNS服务器,客户端发送一个DNS请求,并发送给本地DNS服务器(就是在客户端的TCP/IP设置中填写的DNS服务器地址)
- 本地域名服务器如果能在缓存中找到直接返回IP地址,如果没有则会去询问根域名服务器。根域名通过观察www.server告诉本地DNS服务器对应的顶级域DNS服务器的地址
- 本地DNS又去询问顶级域服务器,顶级域告诉本地服务器对应server的权威服务器的地址,权威服务器将查询后的IP地址告诉本地DNS
- 本地DNS再将IP地址返回客户端,客户端和目标建立连接。
查询过程原理
客户端向本地DNS服务器发出的查询过程是递归查询,这个查询是客户端以自己的名义向本地DNS服务器请求想要的IP映射,并且本地DNS服务器直接返回映射结果给到客户端。
后面的三次查询是迭代查询,包括:本地DNS服务器向根DNS服务器发送查询请求,本地DNS服务器向顶级域DNS服务器(TLD)发送查询请求,本地DNS服务器向权威DNS服务器发送查询请求,所有的请求都是由本地DNS服务器发出,所有响应都是直接返回给本地DNS服务器
但并不是所有查询都是递归-迭代查询,任何DNS查询既可以是递归的,也可以是迭代的。
为了更快的拿到IP,DNS广泛使用缓存,在查询过程中,当某一台DNS服务器接收到一个DNS应答,它就能很快映射到本地,下次查询就可以直接缓存里面的内容,缓存并不是永久的,每一条映射记录都有一个对应的生存时间,一旦过了生存时间,这条记录就从缓存中移走。
前端的DNS优化?
答:可以在html页面头部写入DNS缓存地址。
注:本文整理内容参考公众号:‘小林coding’;掘金‘我是陆小北’
版权声明:本文标题:【DNS查询过程,你清楚了吗】 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dongtai/1726533231a1074398.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论