DNS 域名解析

DNS 作用 :作 域名 与 IP 的映射关系,用户只需要记住域名,而不需要记住不便于记忆的 IP 地址;DNS 服务器就是记录这个映射关系。

DNS 协议运行在 UDP 协议之上,使用的是 53 端口;DNS 是应用层协议。

DNS 资源记录(RR) 记录一条 域名信息映射关系。

image.png
  1. TTL,就是生存周期,是递归服务器会在缓存中保存该资源记录的时长。

  2. 网络/协议类型,它的代表的标识是IN,IN就是internet,目前DNS系统主要支持的协议是IN。

  3. type,就是资源记录类型,一般的网站都是A记录(IPv4的主机地址)。

  4. rdata是资源记录数据,就是域名关联的信息数据。

DNS 解析过程

解析的顺序,逐级向上查找:

  1. 如果浏览器有缓存,则使用浏览器的缓存( chrome 为 1 分钟缓存,最大存储 1000 条)

  2. 如果操作系统有缓存,则使用操作系统的缓存(会参考 TTL 值,但不完全是 TTL 值)

  3. 如果本机的 hosts 文件有该域名的设置,则使用 HOST 文件(是否为本机 127.0.0.1 也是在 HOST 文件中,每次修改 hosts 文件会清空操作系统缓存)

    chrome 中的缓存不清,等自行清除;如果在 chrome dns 缓存期间继续访问该域名,则缓存时间会重记,即延长当前缓存

  4. 如果路由器有缓存,则使用路由器的缓存

  5. 向本地 DNS 域名服务器发起 DNS 查询请求(一般由互联网服务提供商即 ISP 提供,在电脑接入网络时就分配)

  6. 向根服务器发起请求,进行递归查询

实际上每层 DNS 域名服务器都有缓存。

DNS 服务器递归请求

如访问 www.baidu.com 域名,会进行如下查询:

  1. 首先本地 DNS 域名服务器向 根域名服务器 发起请求,获取 顶级域名服务器 ( .com )NS 记录和 A 记录( IP 地址 )

  2. 本地域名服务器拿到这个 顶级域名服务器(.com) 的地址后,就向其发起请求,获取 权威域名服务器(.baidu.com,在这里也叫二级域名服务器)NS 记录和 A 记录( IP 地址 )

  3. 本地域名服务器根据 权威域名服务器(.baidu.com) 的地址向其发起请求,最终得到该域名对应的 IP 地址

实际上可能还有 三级、四级 DNS域名服务器,具体看域名服务商的划分。

定义上的分级与口头上的分级:

1)定义:com 为顶级域名,baidu 为二级域名(www.baidu.com 解析等同于 baidu.com,因此没有继续找三级域名服务器)

2)口头:baidu.com 为一级域名,www.baidu.com 为二级域名,平时习惯按照这个来叫

image.png

参考资料

  1. https://www.zhihu.com/question/23042131

  2. https://zhuanlan.zhihu.com/p/107492241

  3. https://zhuanlan.zhihu.com/p/88260838

  4. https://segmentfault.com/a/1190000039039275?utm_source=tag-newest

你可能感兴趣的:(DNS 域名解析)