域名系统(DNS)
域名系统是因特网使用的命名系统,用来把便于人们记忆的具有特定含义的主机名转换为便于及其处理的 IP 地址。相对于 IP 地址,人们更喜欢使用具有特定含义的字符串来标识因特网上的计算机。值得注意的是,DNS 系统采用 C/S 架构,其协议运行在 UDP 之上,使用 53 号端口。
从概念上可将 DNS 分为三部分:层次域名空间、域名服务器和解析器
层次域名空间
域名服务器
DNS服务器有很多台,根据层次结构分为三层,根域名服务器,顶级域名服务器,权限域名服务器
本地域名服务器不算层次结构,特点是离主机比较近,当主机和另一台比较近的主机通信时,就不用走哪些更高级的服务器了
根域名服务器并不是一个域名只有一台,而是一个域名对应多台域名服务器,全世界一共有 13个 这样的域名,分别是 a.rootservers.net,b.rootservers.net,c.rootservers.net,... , m.rootservers.net
在权限域名服务器中,虽然看似 abc.com 比 y.abc.com 少了一位,但是他们的地位仍是对等的,对应的两台权限域名服务器
域名解析过程
递归查询
主机先是向本地域名服务器发送请求,如果查不到的话,
本地域名服务器向根域名服务器发送请求(找别人),如果还是查不到的话
根域名域名服务器向顶级域名服务器发送请求(找别人),如果还是查不到的话
顶级域名服务器向权限域名服务器发送请求(找别人)
可以看到每一次向下一个查询的服务器都变了,不是主机一个个去问,而是服务器自己一个个问下去
迭代查询
主机先是想本地域名服务器发送请求,如果查不到的话,
本地域名服务器就让主机去向根域名服务器发送请求(主机去找,本地域名给目标根域名服务器的 IP 地址),如果还是查不到的话,
根域名域名服务器让主机去向对应的顶级域名服务器发送请求(主机去找,根域名给目标顶级域名服务器的 IP 地址),如果还是查不到的话,
顶级域名服务器让主机去向权限域名服务器发送请求(主机去找,顶级域名给目标权限域名服务器的 IP 地址)
可以看到这里是主机一个个挨个问的地址