你可能了解 DNS 协议是什么?那你了解 DNS 完整查询过程是什么吗?它底层是基于 TCP 还是 UDP 喃?TCP 与 UDP 又各自负责 DNS 的哪些部分喃?
引言
本文从以下几个方面循序渐进走进 DNS 协议、它的完整查询过程以及底层是基于 UDP 还是 TCP 实现?
- DNS 协议是什么?
- 域名结构
- 域名解析缓存优化
- DNS 查询方式有哪些
- DNS 完整查询过程
- 为什么选择基于 UDP 协议发起 DNS 查询,而不是 TCP?
DNS 协议是什么?
DNS(Domain Name System:域名系统),与 HTTP、FTP 和 SMTP 一样,DNS 协议也是应用层的协议,用于将用户提供的主机名(域名)解析为 IP 地址。
简单来说,DNS 就像是一个自动的电话号码簿,我们可以直接拨打 47.105.127.0 呼叫对方,但这不方便记录、记忆,DNS 提供一种手段能够让我们直接拨打对方的域名 www.pzijun.cn 找到对方
👆就是将域名 www.baidu.com 解析成 ip地址:1.1.1.1 ,思考一下🤔
- DNS 如何根据域名解析成 IP 地址?
域名结构
DNS 的核心系统是一个三层的树状、分布式服务,基本对应域名的结构:
- 根域名服务器(Root DNS Server):管理顶级域名服务器,返回“com”“net”“cn”等顶级域名服务器的 IP 地址
- 顶级域名服务器(Top-level DNS Server):管理各自域名下的权威域名服务器,比如 com 顶级域名服务器可以返回 apple.com 域名服务器的 IP 地址
- 权威域名服务器(Authoritative DNS Server):管理自己域名下主机的 IP 地址,比如 apple.com 权威域名服务器可以返回 www.pzijun.cn 的 IP 地址
有了👆这个系统后,任何域名都可以在上面这个结构中进行从上到下查询,例如,你要访问“