DNS(Domain Name System)
访问一个网络服务必须要使用IP地址,但全球网站中的服务非常之多,不便于用户记忆。为了提升用户体验,可以建立域名(名字通常与服务相关,便于记忆)与IP地址之间的映射关系,早期是在主机内配置hosts文件,然后浏览器查找hosts文件进行映射,但随着网络服务数量增多,hosts文件需要不断增大,不断更新,这样很不方便。于是就有了DNS:DNS是一种用于将域名动态映射为IP地址的服务,他是动态的,不需要手动管理。不过至今为止hosts文件仍然在使用。
一个域名,例如www.baidu.com,包含着多个部分:
- 域名的后缀叫做顶级域,表示包含这种域的机构的性质或者用途。如.com表示这是一个盈利为目的的企业。
- 域名中间部分叫做二级域,一般用于表示公司名。如baidu就表示这是百度公司。
- 域名的前面部分叫做三级域,表示公司内一个具体的服务类型。
- 如果域名包含四级域、五级域等的含义都以此类推。
DNS实际上是一个树状结构。第一层是根服务器,第二层是顶级域服务器,第三层是二级域服务器... ...以此类推。通过这种分层结构,DNS 可以根据域名的不同部分,沿着树状路径逐级查找对应的服务器,从而高效地获取域名所映射的 IP 地址。
下面是DNS的过程:

-
客户端 PC 向本机配置的首选 DNS 服务器发起域名解析请求,询问其
www.baidu.com对应的 IP 地址。在 Windows 系统中,可通过ipconfig命令查看本机已连接的首选 DNS 服务器地址。若首选 DNS 服务器此前解析过该域名,且域名缓存尚未过期(默认缓存时长为三天),服务器可直接调取本地缓存记录,将对应的 IP 地址返还给客户端。 -
若首选 DNS 服务器本地无该域名缓存记录,无法直接应答客户端请求,便会向上发起查询,主动访问全球共 13 台的DNS 根服务器,所有正规 DNS 服务器均默认知晓根服务器地址。根服务器不会记录具体网站域名的 IP 信息,仅统一管理全球所有一级域名服务器地址。
-
DNS 根服务器检索后,将 **.com** 一级域名服务器的地址反馈给首选 DNS 服务器。
-
首选 DNS 服务器拿到地址后,继续向 **.com** 顶级域名服务器发起解析请求,查询
www.baidu.com的 IP 地址。顶级域名服务器同样不存储具体子域名 IP,仅管辖旗下二级域名服务器信息。 -
.com 顶级域名服务器检索匹配后,把baidu.com二级域名服务器地址回传给首选 DNS 服务器。
-
首选 DNS 服务器接着向baidu.com权威域名服务器发送解析请求,该服务器作为域名所属的权威解析节点,精准存储着
www.baidu.com对应的真实 IP 地址。 -
baidu.com权威 DNS 服务器核对信息后,将目标网站 IP 地址发送至首选 DNS 服务器。
-
首选 DNS 服务器收到最终 IP 地址,一方面将数据转发给发起请求的客户端,另一方面把该域名与 IP 的对应关系存入自身缓存,方便后续快速解析。
-
客户端获取到
www.baidu.com的 IP 地址后,直接通过该 IP 地址与百度网页服务器建立网络连接,发起网页访问请求。 -
网页服务器接收客户端访问请求,处理完成后,将网页页面数据、资源文件等内容回传给客户端,最终完成整个访问流程。
更多推荐



所有评论(0)