DNS域名解析
灵感胜于汗水 Lv5

DNS

DNS(Domain Names System),域名系统,是互联网一项服务,是进行域名和与之相对应的 IP 地址进行转换的服务器。

简单来讲,DNS相当于一个翻译官,负责将域名翻译成ip地址。

  • IP 地址:一长串能够唯一地标记网络上的计算机的数字
  • 域名:是由一串用点分隔的名字组成的 Internet 上某一台计算机或计算机组的名称,用于在数据传输时对计算机的定位标识

域名

域名是一个具有层次的结构,从上到下一次为根域名、顶级域名、二级域名、三级域名…

例如www.xxx.comwww为三级域名、xxx为二级域名、com为顶级域名,系统为用户做了兼容,域名末尾的根域名.一般不需要输入。

在域名的每一层都会有一个域名服务器:

  • 根域名服务器
  • 顶级域名服务器:com域名服务器、cn域名服务器、edu域名服务器…
  • 权限域名服务器:abc.com域名服务器、y.abc.com域名服务器…
  • 本地域名服务器:任何一台主机在网络地址配置时,都会配置一个域名服务器作为默认域名服务器

查询方式

递归查询

  • 本地域名服务器向根域名服务器发起请求
  • 根域名服务器向顶级域名服务器发起请求
  • 顶级域名服务器向权限域名服务器发起请求
  • 权限域名服务器将 IP 地址逐级返回给本地域名服务器

迭代查询

  • 首先本地域名服务器向根域名服务器发起请求,根域名服务器返回顶级域名服务器的地址给本地服务器
  • 本地域名服务器拿到这个顶级域名服务器的地址后,就向其发起请求,获取权限域名服务器的地址
  • 本地域名服务器根据权限域名服务器的地址向其发起请求,最终得到该域名对应的 IP 地址

域名缓存

在域名服务器解析的时候,使用缓存保存域名和IP地址的映射。

计算机中DNS的记录也分成了两种缓存方式:

  • 浏览器缓存:浏览器在获取网站域名的实际 IP 地址后会对其进行缓存,减少网络请求的损耗
  • 操作系统缓存:操作系统的缓存其实是用户自己配置的 hosts 文件

查询过程

解析域名的过程如下:

  • 首先搜索浏览器的 DNS 缓存,缓存中维护一张域名与 IP 地址的对应表
  • 若没有命中,则继续搜索操作系统的 DNS 缓存
  • 若仍然没有命中,则操作系统将域名发送至本地域名服务器,本地域名服务器采用递归查询自己的 DNS 缓存,查找成功则返回结果
  • 若本地域名服务器的 DNS 缓存没有命中,则本地域名服务器向上级域名服务器进行迭代查询
  • 本地域名服务器将得到的 IP 地址返回给操作系统,同时自己将 IP 地址缓存起来
  • 操作系统将 IP 地址返回给浏览器,同时自己也将 IP 地址缓存起
  • 至此,浏览器就得到了域名对应的 IP 地址,并将 IP 地址缓存起
  • 本文标题:DNS域名解析
  • 本文作者:灵感胜于汗水
  • 创建时间:2022-10-21 16:26:06
  • 本文链接:https://cjhsyc.github.io/2022/10/21/DNS域名解析/
  • 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!