什么是DNS
我们平常在访问某个网站时不使用IP地址,而是用一串由罗马字和点号组成的字符串。而一般用户在使用TCP/IP进行通信时也不使用IP地址。能够这样做是因为有了DNS功能的支持。DNS可以将那串字符串自动转化为具体的IP地址。
这种DNS不仅适用于IPv4,还适用于IPv6.
一、IP地址不便记忆
TCP/IP网络中要求每一个互连的计算机都有其唯一的IP地址,并基于这个IP地址进行通信。然而,直接使用IP地址有很多不便之处。例如,在进行应用操作时,用户必须指定对端的接收地址,此时如果使用IP地址的话应用就会有很多不便之处。因为IP地址是由一串数据序列组成,并不好记。
为此,TCP/IP世界中从一开始就已经有了一个叫做主机识别码的东西。这种识别方式是指为每台计算机附以唯一的主机名,在进行网络通信时可以直接使用主机名称而无需输入一大长串的IP地址。并且此时,系统必须自动将主机名转换为具体的IP地址。为了实现这样的功能,主机往往会利用一个叫做hosts的数据库文件。
在互联网的起源ARPANET中,起初由互联网信息中心整体管理一份hosts文件。如果新增一台计算机接入到ARPANET网或者已有的某台计算机要进行IP地址变更,中心的这个hosts文件就得更新,而其他计算机则不得不定期下载最新的hosts文件才能正常使用网络。
然而,随着网络规模的不断扩大、接入计算机的个数不断增加,使得这种集中管理主机名和IP地址的登录、变更处理的可行性逐渐降低。
二、DNS的产生
在上述背景下,产生了一个可以有效管理主机名和IP地址之间对应关系的系统,那就是DNS系统。在这个系统中主机的管理机构可以对数据进行变更和设定。也就是说,它可以维护一个用来表示组织内部主机名和IP地址之间对应关系的数据库。
在应用中,当用户输入主机名时,DNS会自动检索那个注册了主机名和IP地址的数据库,并迅速定位对应的IP地址。而且,如果主机名和IP地址需要进行变更时,也只需要在组织机构内部进行处理即可,而没必要在向其他机构进行申请或报告。
有了DNS,不论网络规模变得多么庞大,都能在一个较小的范围内通过DNS进行管理。可以说充分地解决了ARPANET初期遇到的问题。就算到现在,当人们访问任何一个Web站点时,都能够直接输入主机名进行访问,这也要归功于DNS。
三、域名的构成
在理解DNS规范时,首先要了解什么是域名。域名是指为了识别主机名称和组织机构名称地一种具有分层地名称。例如,仓敷艺术科学大学的域名如下:kusa.ac.jp
域名由几个英文字母用点号连接构成。在上述域名中最左边的kusa表示仓敷艺术科学大学固有的域名。而ac表示大学或高等专科以及技术专门学校等高等教育相关机构。最后边jp则代表日本
在使用域名时,可以在每个主机名后面追加上组织机构的域名。例如,有pepper、piyo、kinoko等主机时,它们完整的带域名的主机名将呈现如下形式:
pepper.kusa.ac.jp
piyo.kusa.ac.jp
kinoko.kusa.ac.jp
在启用域名功能之前,单凭主机名还无法完全管理IP地址,因为在不同的组织机构中不允许有同名的主机。然而,当出现了带有层次机结构的域名之后,每一个组织机构就可以自由地为主机命名了。
DNS的分层如图A所示。由于看起来像一颗倒挂的树,人们也把这种分层结构叫做树形结构。如果说顶点是树的跟,那么底下是这棵树的各层枝点。顶点的下一层叫做第1层域名,它包括“jp(日本)”、“uk(英国)”等代表国家的域名,还包括“edu(美国教育机构)”或“com(美国企业)”等特定领域的域名。这种表示方法也非常类似于一个企业内部的组织结构图B。 在jp的域名下,还可以有众多种类的域名,称为二级域名,而二级域名下还可以有三级域名![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA5NjM1Mw_size_16_color_FFFFFF_t_70_pic_center 1]
四、DNS查询
那么DNS查询的机制是什么呢?在此,如图为例。图中kusa.co.jp域中的计算机想要 访问网站www.ietf.org,此时的DNS查询流程如图所示。
解析器为了调查IP地址,向域名服务器进行查询处理。接受这个查询请求的域名服务器首先会在自己的数据库进行查询。如果有该域名所对应的IP地址就返回。如果没有,则域名服务器再向上一层根域名服务器进行查询处理。因此,如图所示,从根开始对这棵树按照顺序进行遍历,直到找到指定的域名服务器,并由这个域名服务器返回想要的数据。
解析器和域名服务器将最新了解到的信息暂时保存在缓存里。这样就可以减少每次查询时的性能消耗。
五、DNS如同互联网中的分布式数据库
前面提到DNS是一种通过主机名检索IP地址的系统。然而,它所管理的信息不仅仅是这些主机名跟IP地址之间的映射关系。它还要管理众多其他信息。
例如,主机名与IP地址的对应信息叫做A记录。反之,从IP地址检索主机名称的信息叫做PTR。此外,上层或下层域名服务器IP地址的映射叫做NS记录。
还没有评论,来说两句吧...