Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

什么是DNS?DNS查询方式?DNS解析的详细过程? #19

Open
GGXXMM opened this issue Aug 10, 2019 · 0 comments
Open

什么是DNS?DNS查询方式?DNS解析的详细过程? #19

GGXXMM opened this issue Aug 10, 2019 · 0 comments
Labels

Comments

@GGXXMM
Copy link
Owner

GGXXMM commented Aug 10, 2019

什么是DNS?

DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。

DNS查询方式(递归查询、迭代查询)

递归查询

局部DNS服务器自己负责向其他DNS服务器进行查询,一般是先向该域名的根域服务器查询,再由根域名服务器一级级向下查询。最后得到的查询结果返回给局部DNS服务器,再由局部DNS服务器返回给客户端。
image

迭代查询

当局部DNS服务器自己不能回答客户机的DNS查询时,也可以通过迭代查询的方式进行解析,如图所示。局部DNS服务器不是自己向其他DNS服务器进行查询,而是把能解析该域名的其他DNS服务器的IP地址返回给客户端DNS程序,客户端DNS程序再继续向这些DNS服务器进行查询,直到得到查询结果为止。也就是说,迭代解析只是帮你找到相关的服务器而已,而不会帮你去查。

例如,baidu.com的服务器ip地址在14.215.177.39这里,你自己去查吧,本人比较忙,只能帮你到这里了。

image

DNS解析的详细过程

1.先从浏览器缓存里找IP,因为浏览器会缓存DNS记录一段时间。
2.如没找到,再从本地Hosts文件查找是否有该域名和对应IP,看是否有网络映射关系。
3.如没找到,再从本地DNS缓存查找。
4.如没找到,再从DNS服务器缓存查找。
5.如果都没找到,浏览器域名服务器向根域名服务器(baidu.com)查找域名对应IP,还没找到就把请求转发到下一级,直到找到IP。
https://juejin.im/post/5c303d6ff265da615b719aff

@GGXXMM GGXXMM added the 网络 label Dec 7, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant