背景
通常通过 baidu.com
访问百度的服务,这个 baidu.com
就是百度持有的域名(Domain Name),然而在网络中能够识别的只有 IP
,那就需要把域名转化为对应的 IP
地址。
介绍
DNS
全名叫做 Domain Name System
, 中文叫做 域名服务系统
,主要作用是把域名转化为网络中对应的 IP
地址。
工作原理(以浏览器为例)
- 浏览器解析出地址栏中的域名
- 在浏览器缓存中查找是否有缓存此域名的地址
- 在系统中是否有缓存此域名的地址
- 通过
UDP
的方式向系统中配置的DNS
服务器查找域名对应的IP
地址 DNS
服务器通过UDP
向根域名服务器查找域名地址,根域名服务器返回下一个查找的顶级域名服务器的IP
地址DNS
服务器通过UDP
向顶级域名服务器查找域名地址,顶级域名服务器返回下一个查找域名服务器的IP
地址,不断查找,直到找到域名对应的IP
地址为止DNS
服务器返回域名服务器的地址
总结
- 域名分别在浏览器、操作系统、域名服务器三个层级做了缓存以提高访问速度
- 获取域名时浏览器调用了操作系统的能力委托操作系统到操作系统配置的域名服务器上进行域名查找
- 浏览器通过递归的方式分别去浏览器、操作系统和域名服务器上查找,而域名服务器是通过迭代的方式去各级域名服务器上进行查找的
各层级域名节点
- 域名服务器具有层级关系
- 每个层级的域名服务器都存储了根域名服务器的地址信息,这样方便快速查找域名服务的信息
- 每个层级的域名服务器都需要注册到其对应的上一级域名服务器中
域名服务数据更新
当域名服务系统数据有变化时就需要去更新对应的数据
- 当根域名服务器地址有变化时,各级域名服务需要通过
TCP
的方式更新对应的数据 - 当有新的子域名服务器注册或者域名信息注销时需要子域名通过
TCP
的方式把更新信息同步到当前域名服务