DNS系统使用UDP协议来进行域名解析的原因是因为域名解析需要的是速度而非可靠性。使用TCP协议会增加数据包传输的可靠性,但是会增加数据包传输的延迟。而使用UDP协议虽然有可能丢包,但是能够更快地传输数据包,因此在域名解析中使用UDP协议更为合适。
DNS域名解析系统的工作原理如下:当用户输入一个域名时,首先会查询本地DNS缓存,如果本地DNS缓存中没有找到相应的IP地址,则本地DNS将向根DNS服务器发出请求,根DNS服务器并不直接返回IP地址,而是告诉本地DNS该域名对应的顶级DNS服务器的地址。本地DNS再向顶级DNS服务器发出请求,顶级DNS服务器返回该域名对应的权威DNS服务器的地址。本地DNS最后向权威DNS服务器请求该域名对应的IP地址,获取到IP地址后,再将其缓存到本地DNS中并返回给用户。整个过程可以用以下步骤来概括:
- 用户输入域名
- 查询本地DNS缓存
- 如果缓存中没有,向根DNS服务器发出请求
- 根DNS服务器告诉本地DNS该域名对应的顶级DNS服务器的地址
- 本地DNS向顶级DNS服务器发出请求
- 顶级DNS服务器返回该域名对应的权威DNS服务器的地址
- 本地DNS向权威DNS服务器请求该域名对应的IP地址
- 本地DNS缓存IP地址并返回给用户
-
参考文献:
- https://www.gksd.cloud/news/3343
- https://www.ruanyifeng.com/blog/2016/06/dns.html
权威DNS服务器是指对一个特定的域名记录有权威的DNS服务器,它保存了特定域名下所有主机记录的信息。当递归服务器无法从缓存或其他递归服务器中找到指定域名的IP地址时,递归服务器会向权威DNS服务器发出请求,请求其提供该域名对应的IP地址信息。如果权威DNS服务器能够提供这些信息,它就会向递归服务器返回所需的IP地址信息,否则返回未找到该域名的信息。
DNS解析的过程如下:
- 用户在浏览器中输入一个域名,比如www.example.com。
- 浏览器向本地DNS服务器发出请求,请求解析该域名对应的IP地址。
- 如果本地DNS服务器中已经有该域名对应的IP地址缓存,则直接返回该IP地址给浏览器;否则本地DNS服务器向根DNS服务器发出请求。
- 根DNS服务器返回给本地DNS服务器一个所查询顶级域(com)的权威DNS服务器的IP地址。
- 本地DNS服务器向所查询的顶级域(com)的权威DNS服务器发起请求。
- 权威DNS服务器返回给本地DNS服务器一个所查询二级域(example.com)的权威DNS服务器的IP地址。
- 本地DNS服务器向所查询的二级域(example.com)的权威DNS服务器发起请求。
- 权威DNS服务器返回给本地DNS服务器所查询域名对应的IP地址。
- 本地DNS服务器缓存该IP地址,并将该IP地址返回给浏览器。
- 浏览器得到IP地址后,向该IP地址对应的Web服务器发起请求,请求Web页面。
- Web服务器返回HTML页面给浏览器,浏览器将页面解析并显示出来。
DNS服务器的分类主要有以下几种:
1.根域DNS服务器:这是DNS服务器的最高级别。它们是一个重要的组成部分,因为它们是域名解析系统的起点。根DNS服务器回答的是顶级域名的解析请求。
2.顶级域名服务器:负责特定顶级域名的DNS服务器。例如,com顶级域名服务器就是负责.com域的DNS服务器,它们经常维护一个域的主机名和IP地址的映射表。
3.权威DNS服务器:这些服务器是与特定域有关的。当客户端请求解析特定域名时,它们是给出正确答案的机器。它们必须维护该域中所有主机的IP地址。
4.缓存DNS服务器:这些服务器也称为递归DNS服务器。当本地客户端请求解析域名时,它们会递归地查找DNS解析,从而找到所需的答案。为了提高效率,它们通常会缓存以前的解析结果,并在以后的请求中重复使用它们。
在Windows 7系统中,可以按照以下步骤设置本地DNS服务器:
-
打开控制面板,选择"网络和共享中心"。
-
点击"更改适配器设置"。
-
找到你要修改的本地连接,右键点击,选择"属性"。
-
选中"Internet协议版本4(TCP/IPv4)"。
-
点击"属性"。
-
在弹出的窗口中,选择"使用下面的DNS服务器地址"。
-
输入你想要设置的本地DNS服务器的IP地址。
-
点击"确定",保存设置。
以下是设置本地DNS服务器的代码演示:
1. 打开控制面板,选择"网络和共享中心"。
# 可以通过快捷键 Win+R,输入 "control",或者在开始菜单中找到控制面板来打开。
2. 点击"更改适配器设置"。
# 可以在"网络和共享中心"页面找到。
3. 找到你要修改的本地连接,右键点击,选择"属性"。
# 可以找到"本地连接"或者"以太网"。
4. 选中"Internet协议版本4(TCP/IPv4)"。
5. 点击"属性"。
# 可以在"本地连接属性"页面找到。
6. 在弹出的窗口中,选择"使用下面的DNS服务器地址"。
7. 输入你想要设置的本地DNS服务器的IP地址。
# 可以输入你的路由器IP地址,也可以输入你想要使用的公共DNS服务器的IP地址,例如:114.114.114.114。
8. 点击"确定",保存设置。
修改本地DNS服务器通常是为了解决网络连接问题。DNS服务器用于将域名转换为IP地址,如果使用的DNS服务器无法正常解析域名,就会导致无法访问网络。此时我们需要修改本地DNS服务器,以便能够顺利地访问互联网。同时,有时候我们需要使用特定的DNS服务器以获取更好的网络性能和安全性。