DNS域名系统
DNS 的本质是发明了一种层次的、基于域的命名方案,并且用一个分布式数据库系统 加以实现。 DNS 的主要用途是将主机名映射成 IP 地址,但它也可以用于其他用途。
为了将一个名字映射成IP地址,应用程序调 用一个名为解析器( resolver)的库程序,并将名字作为参数传递给此程序。解析器向本地 DNS 服务器发送一个包含该 名字的请求报文:本地 DNS 服务器查询该名字,并且返回一个包含该名字对应 胆 地址的 响应报文给解析器,然后解析器再将 E 地址返回给调用方。查询报文和响应报文都作为 UDP 数据包发送。有了四地址以后,应用程序就可以与目标主机建立一个 TCP 连接,或 者给它发送 UDP 数据包。
因特网的域名结构
因特网的域名空间:
- 根域名服务器:根域名服务器是最高层次的域名服务器,也是最重要的域名服务器。所有的根域名服务器都知道所有的顶级域名服务器的域名和IP地址。
- 顶级域名服务器: 这些域名服务器负责管理在该顶级域名服务器注册的所有二级域名。当收到DNS查询请求时,就给出相应的回答(可能是最后的结果,也可能是下一步应当找的域名服务器的IP地址)。
- 权限域名服务器:这是负责一个区的域名服务器。当一个权限域名服务器还不能给出最后的查询回答时,就会告诉发出查询请求的DNS客户,下一步应当找哪一个权限域名服务器。
- 本地域名服务器:本地域名服务器并不属于域名服务器层次结构,但它对域名系统非常重要。当一个主机发出DNS查询请求时,这个查询请求报文就发送给本地域名服务器。
域名服务器
域名服务器的查询过程:
- 递归查询:如果主机所询问的本地域名服务器不知道被查询域名的IP地址,那么本地域名服务器就以DNS客户的身份,向其他根域名服务器继续发出查询请求报文,而不是让该主机自己进行下一步的查询。
- 迭代查询:当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的IP地址,要么告诉本地域名服务器:“你下一步应当向哪一个域名服务器进行查询”。然后让本地域名服务器进行后续的查询,而不是替本地域名服务器进行后续的查询。