域名系统DNS知识点
域名系统 DNS 是因特网使用的命名系统,用于把便于人们使用的机器名字转换为IP地址。
因特网的域名系统DNS被设计成为一个联机分布式数据库系统,并采用客户-服务器方式。
域名只是个逻辑概念。
域名到IP地址的解析过程要点如下:
当某一个应用进程需要把主机名解析为IP地址时,该应用进程就调用解析程序,并成为DNS的一个客户,把待解析的域名放在DNS请求报文中,以UDP用户数据报方式发送给本地域名服务器(使用UDP是为了减少开销)。本地域名服务器在查找域名后,把对应的IP地址放在回答报文中返回。应用进程获得目的主机的IP地址后即可进行通信。若本地域名服务器不能回答该请求,则此域名服务器就暂时成为DNS中的另一个客户,并向其他域名服务器发出查询请求。直到找到能够回答该请求的域名服务器为止。
因特网的域名结构采用了层次树状结构的命名方法。
DNS规定:
域名中的标号都是由英文字母和数字组成;
每个标号不能超过63个字符(为记忆方便,最好不要超过12个字符);
不区分大小写字母;
标号中除连字符(-)外不能使用其他标点符号;
有由多个标号组成的完整域名总共不超过255个字符;
级别最低的域名写在最左边,而级别最高的域名写在最右边,
DNS域名服务器
DNS服务器的管辖范围是以“区”为单位。区可能等于或小于域,但一定不可能大于域。
DNS域名服务器树状机构图可更准确地反映出DNS的分布式结构。
域名服务器划分类型:
- 根域名服务器(最重要)
- 顶级域名服务器
- 权限域名服务器
- 本地域名服务器
域名解析过程
图6-5用例子说明了这两种查询的区别
- 主机向本地域名服务器的查询一般都采用递归查询。
- 本地域名服务器向根域名服务器的查询通常采用迭代查询。
假定域名为m.xyz.com的主机想知道另一个主机域名y.abc.com的IP地址。
(a)的几个查询步骤:
- 主机m.xyz.com先向其本地域名服务器dns.xyz.com进行递归查询
- 本地域名服务器采用迭代查询。它先向一个根域名服务器查询
- 根域名服务器告诉本地域名服务器,下一次应查询的顶级域名服务器dns.com的IP地址。
- 本地域名服务器向顶级域名服务器dns.com进行查询
- 顶级域名服务器dns.com告诉本地域名服务器,下一次应查询的权限域名服务器dns.abc.com的IP地址
- 本地域名服务器向权限域名服务器dns.abc.com进行查询
- 权限域名服务器dns.abc.com告诉本地域名服务器,所查询的主机的IP地址
- 本地域名服务器最后把查询结果告诉主机m.xyz.com
注意到:8个步骤总共要使用8个UDP用户数据报的报文。
(b)是本地域名服务器采用递归查询的情况。此时,本地域名服务器只需向根域名服务器查询一次,后面的几次查询都是在其他几个域名服务器之间进行的(③-⑥),在步骤⑦,本地域名服务器从根域名服务器得到了所需的IP地址。最后在步骤⑧,本地域名服务器把查询结果告诉主机m.xyz.com。整个查询也是使用了8个UDP报文。
为提高DNS查询效率,并减轻根域名服务器的负荷和减少因特网上的DNS查询报文数量,在域名服务器中广泛地使用了高速缓存。