1、基本
全称与定义:DNS即Domain Name System,是域名系统的英文缩写,是一种组织成域层次结构的计算机和网络服务命名系统,用于TCP/IP网络,它由分层的DNS服务器(DNS server)实现,是一个分布式数据库,能够将主机名转换为IP地址,同时也提供其他重要服务。
协议与端口:DNS协议运行在UDP协议上,使用53端口,UDP协议传输速度快,能够满足DNS快速查询的需求,但UDP不可靠,可能会出现数据包丢失的情况,因此当进行区域传送(主域名服务器向辅助域名服务器传送变化的那部分数据)时会使用TCP,以保证数据的正确性。
2、域名结构
组成:域名是为了识别主机名或机构的一种分层的名称,域名空间结构像是一棵倒过来的树,根域名就是树根(root),用点号表示,往下是这棵树的各层枝叶,分别叫做顶级域、二级域、三级域等。
层级关系:从右到左依次为顶级域名、二级域名、三级域名等,例如在域名www.tsinghua.edu.cn中,cn是顶级域名,代表中国;edu是二级域名,代表教育机构;tsinghua是三级域名,表示清华大学;www则是三级域名中的主机名。
域名长度限制:每一级的域名都由英文字母和数字组成,域名不区分大小写,长度不能超过63字节,一个完整的域名不能超过255个字节。
3、域名服务器类型
根DNS服务器:根DNS服务器是最高层次的域名服务器,知道所有顶级服务器的域名和IP地址,因特网上共有13个不同IP地址的根域名服务器,它们构成了互联网域名解析体系的基础架构。
顶级域名服务器:负责管理该服务器下的所有二级域名,当收到DNS查询请求时,就会给权威域名服务器相应的回答。
权威域名服务器:负责某一个区域的域名服务器,知道其管辖的域名与IP地址的映射关系,同时也知道其下级域名服务器的地址。
本地域名服务器:当一个主机发出DNS请求报文时,这个报文就首先被送往该主机的本地域名服务器,本地域名服务器起着代理的作用,会将该报文转发到上述的域名服务器的等级结构中。
4、域名解析过程
递归查询:如果主机所询问的本地域名服务器不知道被查询域名的IP地址,那么本地域名服务器就以DNS客户端的身份,向其他根域名服务器继续发出查询请求报文,直到得到答案,然后将结果返回给主机,这种查询方式需要花费较长时间,但对用户来说更简单,因为只需等待最终结果。
迭代查询:当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的IP地址,要么告诉本地服务器下一步应该找哪个域名服务器进行查询,然后让本地服务器进行后续的查询,直到得到答案,这种方式查询速度相对较快,但可能需要用户主机多次参与查询过程。
5、DNS缓存
作用:为了提高DNS的查询效率,并减轻根域名服务器的负荷和减少因特网上的DNS查询报文数量,在域名服务器和用户主机中都会广泛使用高速缓存。
工作原理:域名服务器的缓存中存放着最近查询过的域名以及从何处获得域名映射信息的记录,用户主机也会维护自己的DNS缓存,当再次查询相同的域名时,可直接从缓存中获取IP地址,而无需向DNS服务器重新查询。
6、DNS的重要性
方便记忆:人们可以更容易记住具有意义的主机名,而不必记住复杂的IP地址,提高了网络使用的便利性和可访问性。
负载均衡:通过为冗余的Web服务器之间进行负载分配,DNS可以实现负载均衡,繁忙的站点如cn.com会被冗余分布在多个Web服务器上,每个服务器都有着端系统不同的IP地址,DNS服务器会在这些IP之间循环分配负载。
故障容错:即使某个数据中心出现故障,DNS也能够通过在其他正常的数据中心之间进行负载分配来保证服务的正常提供。
7、相关问题解答
为什么DNS使用UDP协议:DNS既使用UDP又使用TCP,当进行区域传送时会使用TCP,因为数据同步传送的数据量比一个请求和应答的数据量要多,而TCP允许的报文长度更长,能保证数据的正确性,当客户端向DNS服务器查询域名时,一般返回的内容不会超过UDP报文的最大长度,所以通常使用UDP协议。
DNS如何工作:当应用程序需要将主机名解析为IP地址时,会调用解析器(Resolver),解析器首先会在本地缓存中查找是否有对应的IP地址,如果有则直接返回;如果没有,则会向配置的DNS服务器发送请求,如果DNS服务器也无法回答该问题,它会代表客户端向其他DNS服务器进行查询,直到得到答案,然后将结果返回给客户端。
来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/157902.html