DNS协议简介
DNS 协议概述
在网络上看到的 url 格式可能是这样的:
google 十分适合我们人类记忆,因为其是一个简单易记的单词形式
因特网上的主机可以用多种方式进行标识,常见的有两种:
- 利用主机名进行标识,例如
- 利用 IP 地址进行标识,例如 36.158.123.192
可以很自然的发现,人类相较于用 IP 地址进行标识,更喜欢用便于记忆的主机名进行标识;但是路由器喜欢定长的、有层次结构的 IP 地址;为了折中这两种方式,就需要一种协议完成这两种不同的标识之间的转换,即主机名到 IP 地址转换的目录系统,这就是域名系统(DNS)的主要功能
DNS:
- 一个由分层的 DNS 服务器实现的分布式数据库
- 一个使得主机能够查询分布式数据库的应用层协议
DNS 的域名解析过程
以 www.google.com 示例:
- 同一台用户主机上运行着 DNS 应用的客户端
- 从 URL 中抽出主机名 www.google.com,并传给 DNS 应用的客户端
- DNS 客户向 DNS 服务器发送一个包含主机名的请求
- DNS 客户端收到 DNS 服务器解析的 IP 地址
- 向该 IP 地址的 80 端口的 HTTP 服务器发起一个 TCP 进程
DNS 工作原理
DNS 是一个分布式、层次数据库,DNS 使用了大量的 DNS 服务器,以层次方式组织。没有一台 DNS 服务器拥有因特网上所有主机的映射
DNS 服务器大致可以分为以下三种:
- 根(Root Server) DNS 服务器(全世界只有 13 个)
- 顶级域(TLD)DNS 服务器(com,cn 等)
- 权威(SLD) DNS 服务器
例如解析一个为 www.google.com 的 url 的域名,遵循以下步骤:
- 客户与根服务器联系,解析,返回顶级域名 com 的 TLD 服务器的 IP 地址
- 客户与该 TLD 服务器联系,其返回 google.com 权威服务器的 IP 地址
- 客户与该权威服务器联系,返回 www.google.com 主机名的 IP 地址
其中还有一种重要的 DNS 服务器,称为本地 DNS 服务器,起着代理的作用,相当于管理一篇区域内的主机