DNS(域名系统),是一种进行网络资源名到IP地址转换的网络应用,它是由应用程序而不是用户直接使用的应用程序(例如,通常由HTTP、SMTP和FTP等协议调用),因此位于应用层


一.DNS的工作原理

1.例如,当某用户主机上的一个浏览器使用HTTP请求www.plaust.edu.cn页面时,解析过程如图所示:

DNS学习笔记_DNS

    ① 用户主机浏览器请求www.plaust.edu.cn

    ② 用户主机用UDP的53端口将该web服务器名字发送给DNS域名解服务器进行解析。

    ③ 域名服务器将www.plaust.edu.cn对应IP地址58.193.152.3通过UDP的53端口返回给用户主机。

    ④ 用户主机将HTTP请求报文发送到IP地址为58.193.152.3的web服务器的80端口。

    ⑤ web服务器将对应页面发送给用户主机。

    

2. ★ DNS采用分布式的的设计方案。分布式方案不仅改善了DNS的可靠性,而且使IP地址能够缓存在      一个附近的DNS服务器中,有助于减少DNS的网络流量和DNS的平均时延。

   ★ DNS运行划分为多个层,每层均客户/服务器方式工作,从而形成一个联机分布式数据库系统。

   ★ DNS在本地域名服务器中进行大多数名字解析,仅少量解析需要通过更高级域名服务器完成。

   ★ DNS服务器通常是运行BIND软件的类UNIX服务器

   ★ DNS协议运行在UDP上,使用53号周知端口。


3. 域名系统的工作过程:

    ① 若某应用进程请求将主机名解析为IP地址,则该应用进程将带解析的域名放入DNS请求报文,以UDP报文段方式发给本地域名服务器。

    ② 本地域名服务器在查找域名映射对后,把对应的ip地址放在应答报文中运回;应用进程获得目的主机的IP地址后即可进行通信。

    ③ 若本地域名服务器找不到相关信息,则此域名服务器就会成为DNS中的一台客户机,并向其上级域名服务器提出查询请求(具体见下三)。


二.域名的层次结构

1.域名层次结构:

  DNS学习笔记_DNS_02

   ① 顶级域名:国家代码标识某个国家(如cn、uk等);国际性组织在int下;其他七个(com、net、org、edu、gov、mil、arpa)。

   ② 二级域名:由各个国家自行确定。我国将二级域名划分为类别域名(ac、com、edu、gov、net、org工6个)和行政区域名(34个,如bj、js等)。

   ③ 三级域名:二级域名下注册的公司、单位等。

   ④ 四级域名:三级域名划分的子域名。


2.域名服务器:

   ① 根域名服务器:因特网上共13个,标号为A到M。尽管这13个根服务器中的每个都视为独立的服务器,但每台“服务器”实际上都是冗余服务器的集群。

   ② 顶级域名服务器:负责管理在该顶级域名服务器注册的所有二级域名。

   ③ 权威域名服务器: 为本组织的服务器(如Web和电子邮件)提供映射,通常有基本、辅助(备份)服务器。

   ④本地域名服务器: 又叫默认域名服务器。


3.域名管辖区:

   因特网允许将各域名划分为若干个区,各个区对应于负责层次结构中某一部分的某个可管理的权威实体。区是域的子集,每个区都可以有一个权威域名服务器,而用户主机直接指向的域名服务器称为本地域名服务器。例如:哥伦比亚大学有CS和EE两个系,其下分别有三个部门。关系如下图:

DNS学习笔记_DNS_03

三.域名服务器的解析过程:

  假如李军主机lijun.plaust.edu.cn想知道用户张红的主机zhanghong.columbia.edu的ip地址,plaust的本地DNS服务器为dns.plaust.edu.cn,哥伦比亚大学的权威DNS为dns.columbia.edu。解析过程如下:

DNS学习笔记_DNS_04

  ① 主机lijun.plaust.edu.cn向本地服务器dns.plaust.edu.cn发送DNS查询报文。

  ② 本地DNS服务器无法解析而将该报文转发到根DNS服务器。

  ③ 根DNS服务器向本地DNS服务器返回负责edu的顶级域名的IP列表。

  ④ 本地DNS服务器向这些顶级域名服务器发送查询报文。

  ⑤ 顶级域名服务器注意到columbia.edu前缀,用相应的权威DNS服务器的IP地址进行相应,该权威DNS服务器负责dns.columbia.edu。

  ⑥ 本地DNS服务器直接向dns.columbia.edu重发查询报文。

  ⑦ dns.columbia.edu找到zhanghong的ip地址并进行响应。


 ★ 主机----→本地DNS服务器 (递归)

    本地DNS服务器-----→其他DNS服务器(迭代)