计算机网络-DNS

背景

通常通过 baidu.com 访问百度的服务,这个 baidu.com 就是百度持有的域名(Domain Name),然而在网络中能够识别的只有 IP ,那就需要把域名转化为对应的 IP 地址。

介绍

DNS 全名叫做 Domain Name System, 中文叫做 域名服务系统,主要作用是把域名转化为网络中对应的 IP 地址。

工作原理(以浏览器为例)

浏览器解析域名流程

  1. 浏览器解析出地址栏中的域名
  2. 在浏览器缓存中查找是否有缓存此域名的地址
  3. 在系统中是否有缓存此域名的地址
  4. 通过 UDP 的方式向系统中配置的 DNS 服务器查找域名对应的 IP 地址
  5. DNS 服务器通过 UDP 向根域名服务器查找域名地址,根域名服务器返回下一个查找的顶级域名服务器的 IP 地址
  6. DNS 服务器通过 UDP 向顶级域名服务器查找域名地址,顶级域名服务器返回下一个查找域名服务器的 IP 地址,不断查找,直到找到域名对应的 IP 地址为止
  7. DNS 服务器返回域名服务器的地址

总结

  • 域名分别在浏览器、操作系统、域名服务器三个层级做了缓存以提高访问速度
  • 获取域名时浏览器调用了操作系统的能力委托操作系统到操作系统配置的域名服务器上进行域名查找
  • 浏览器通过递归的方式分别去浏览器、操作系统和域名服务器上查找,而域名服务器是通过迭代的方式去各级域名服务器上进行查找的

各层级域名节点

  • 域名服务器具有层级关系
  • 每个层级的域名服务器都存储了根域名服务器的地址信息,这样方便快速查找域名服务的信息
  • 每个层级的域名服务器都需要注册到其对应的上一级域名服务器中

域名服务器节点关系图

域名服务数据更新

当域名服务系统数据有变化时就需要去更新对应的数据

  • 当根域名服务器地址有变化时,各级域名服务需要通过 TCP 的方式更新对应的数据
  • 当有新的子域名服务器注册或者域名信息注销时需要子域名通过 TCP 的方式把更新信息同步到当前域名服务

域名服务器更新数据图