一、域名系统DNS的作用
    1、用户主机在搜索某个域名时,首先会在自己的DNS高速缓存中查找该域名对应的IP地址,若没有找到则向网络中的某台DNS服务器查询该域名对应的IP地址。
    2、1983年,因特网开始采用层次结构的命名树作为主机的名字(即域名),并使用分布式的域名系统DNS。DNS使大多数域名都在本地解析,仅少量解析需要在因特网上通信,因此系统效率很高。由于DNS是分布式系统,即使单个计算机出现故障,也不妨碍整个系统的正常运行。
    image.png

    二、层次树状结构的域名结构
    1、因特网采用层次树状结构的域名结构
    2、域名的结构由若干个分量组成,各分量之间用“点”隔开,分别代表不同级别的域名
    (1)每一级的域名都由英文字母和数字组成,不超过63个字符,不区分大小写字母
    (2)级别最低的域名写在最左边,而级别最高的域名写在最右边
    (3)完整的域名不超过255个字符
    3、域名系统即不规定一个域名需要包含多少个下级域名,也不规定每一级的域名代表什么意思
    4、各级域名由其上一级的域名管理机构管理,而最高级别的顶级域名则由因特网名称与数字分配机构ICANN进行管理
    5、顶级域名TLD分为以下三类:
    (1)国家顶级域名nTLD。采用ISO 3166的规定。如cn表示中国。
    (2)通用顶级域名gTLD最常用的通用顶级域名有七个,即:com(公司企业)、net(网络服务机构)、org(非营利性组织)、int(国际组织)、edu(美国教育机构)、gov(美国政府部门)、mil(美国军事部门)
    (3)反向域arpa。用于反向域名解析,即IP地址解析为域名。
    6、在国家顶级域名下注册的二级域名均由该国自行确定
    7、我国将二级域名划分为以下两类:
    (1)类别域名。共7个:ac(科研机构)、com(工、商、金融等企业)、edu(教育机构)、gov(政府部门)、net(提供网络服务的机构)、mil(军事机构)、org(非营利性组织)。
    (2)行政区域名。共34个,适用于我国各省自治区、直辖市。
    8、按登记管理的命名方法便于名字的唯一性,也容易设计出高效的域名查询机制。域名只是逻辑概念,不代表计算机所在的物理地点。

    三、域名服务器
    1、域名和IP地址的映射关系必须保存在域名服务器中,供所有其他应用查询。DNS使用分布在各地的域名服务器来实现域名到IP地址的转换。
    2、域名服务可以划分为以下四种不同类型:
    (1)跟域名服务器。因特网共有13个不同IP地址的根域名服务器,这些根服务器实际上是由许多分布在世界各地的计算机构成的服务器群集。根域名服务器通常并不直接对域名进行解析,而是返回该域名所属顶级域名服务器的IP地址。
    (2)顶级域名服务器。负责管理在该顶级域名服务器下注册的所有二级域名。
    (3)权限域名服务器。负责管理某个区域的域名。每一个主机的域名都必须在某个权限域名服务器处进行注册登记。
    (4)本地域名服务器。本地域名服务器起着代理的作用,会将该报文转发到上述域名服务器的等级结构中。有时也称为默认域名服务器。

    四、域名解析的过程
    1、递归查询
    image.png
    2、迭代查询。由于递归查询对于被查询的域名服务器负担太大,通常采用以下模式:从请求主机到本地域名服务器的查询是递归查询,而其余的查询是迭代查询。
    image.png
    3、为了提高DNS查询的效率,并减轻根域名服务器的负荷和减少因特网上的DNS查询报文数量,在域名服务器中广泛使用高速缓存。高速缓存用来存放最近查询过的域名以及从何处获得域名映射信息的记录。如果不久前已经有用户查询过某个域名的IP地址,则本地域名服务器的高速缓存表中应存有该域名对应的IP地址。域名服务器直接把高速缓存中存放的上次查询结果告诉用户。
    4、由于域名到IP地址的映射并非永久不变,为保持高速缓存中的内容的正确,域名服务器应为每项内容设置计时器并删除超过合理时间的项。
    5、不但在本地域名服务器中需要高速缓存,在用户主机中也很需要。许多用户主机在启动时从本地域名服务器下载域名和IP地址的全部数据库,维护存放自己最近使用过的域名高速缓存,并且只在从缓存中找不到域名时才向域名服务器查询。同时,主机也需要保持高速缓存中内容的正确性。
    6、DNS报文使用运输层的UDP协议进行封装,运输层端口号为53。