计算机网络 应用层DNS域名解析

172 阅读4分钟

一、域名系统的主要功能

为了方便记忆,人们为IP地址起了个别名。但是主机间通信是依靠IP地址进行寻址的,所以引入域名。

域名系统提供的功能就是将网络上的域名解析为IP地址。

二、域名系统的组成

  • 根域名服务器

最高层次的域名服务器,多有的根域名服务器都知道所有的顶级域名服务器的域名和IP地址,采用“任播”技术。

一个网址中从左到右域名等级递增,例如www.baidu.com.;其中根域名就是com 后面的 .

  • 顶级域名服务器

    负责管理在该域名服务器下注册的所有二级域名。比如以com结尾的域名分为一类等等

    .com .cn .edu 等结尾的就是顶级域名服务器的管理类别

  • 权限域名服务器

    负责一个区的域名服务器,比如www.a.baidu.comwww.baidu.com 管理的是 a.baidu与baidu这两个结尾的二级域名的一个分区

  • 本地域名服务器

    不属于域名服务器的结构层次,是离用户比较近的域名服务器,一般有ISP提供。用户应用程序发出的域名解析请求首先就是发到本地域名服务器中,经由其向域名服务器系统发送解析请求。

三、域名解析的过程

域名解析的过程分为两类:递归查询(靠别人)与迭代查询(靠自己)

image-20220318114327665.png

  • 递归查询

    以输入www.baidu.com为例,主机应用进程调用解析层序,并成为一个DNS客户,把待解析的域名放在DNS请求报文中,以UDP数据报的方式发送给本地域名服务器。如果本地域名服务器(高速缓存)中存储有该域名对应的IP地址,则将对应的IP地址放在回答报文中返回给主机;但如果本地域名服务器没有这个域名对应的IP地址,那么本地域名服务器就会充当DNS客户,向根域名服务器发送请求。根域名服务器根据数据报中的域名信息,去顶级域名服务器中查找以.com为一个类别的顶级域名服务器中查找,.com顶级域名服务器向含有baidu的权限域名服务器中查找,当找到之后再逐级向上返回包含对应IP地址的回答报文,本地域名服务器拿到之后再向主机发送应用程序需要用到的通信IP地址,解析完成。

  • 迭代查询(常用)

    以输入www.baidu.com为例,主机应用进程调用解析层序,并成为一个DNS客户,把待解析的域名放在DNS请求报文中,以UDP数据报的方式发送给本地域名服务器。如果本地域名服务器(高速缓存)中存储有该域名对应的IP地址,则将对应的IP地址放在回答报文中返回给主机;但如果本地域名服务器没有这个域名对应的IP地址,那么本地域名服务器就会充当DNS客户,向根域名服务器发送请求。这个时候的迭代查询就是当请求报文发送到根域名服务器的时候,根域名服务器告诉本地域名服务器 你应该向.com的顶级域名服务器里面查。到了.com顶级域名服务器, .com域名服务器告诉本地域名服务器 你应该向含有baidu的权限域名服务器里面查。到了含有www.xxx.baidu.com的权限域名服务器里面后,找到了www.baidu.com对应的IP地址后,权限域名服务器直接向本地域名服务器返回对应的IP地址,解析完成。

  • 可以看出,迭代查询中域名系统结构层次中的域名服务器并不会帮本地域名服务器查找,而是告诉本地域名服务器,让它自己去找(靠自己)。递归查询的话就是域名系统结构层次中的域名服务器帮本地域名服务器找,然后逐级返回(靠别人)。

\