
如果DNS系统只依赖单一服务器,便会存在诸多问题。单点故障是最主要的问题,一旦唯一的DNS服务器崩溃,整个互联网将无法正常使用DNS服务,所有用户都无法通过域名访问网站。唯一服务器需要处理所有DNS查询,并产生大量的HTTP请求报文,这会导致通信容量问题。如果唯一服务器位于距离某些用户较远的地方,查询信息在传播过程中可能会遇到网络拥塞,产生严重的时延。出于维护考虑,唯一服务器需要存储和管理所有互联网主机的记录,随着联网的主机数量增多,数据规模将非常庞大,更新和维护的难度也将大大增加。
为了解决上述问题,网络专家们提出了分布式、分层次的数据库解决方案。DNS服务器主要分为根DNS服务器、顶级域(TLD)DNS服务器以及权威DNS服务器。其中,根服务器全世界共有400多个,用户访问域名所属的顶级域服务器IP地址就是通过根服务器获取的。顶级域服务器则管理着一类网站权威服务器的IP地址,例如.com、.gov、.edu、.org等后缀的URL分别由各自的服务器管理。
在因特网上,每个具有公共可访问主机的机构都必须提供公共可访问的DNS记录。这些记录将主机名映射为IP地址,并存储在权威DNS服务器中。一般大学和大公司都会建立和维护自己的权威DNS服务器。
用户主机通过向根DNS服务器发出查询请求来获取顶级域DNS服务器的IP地址,然后再依次向顶级域服务器和权威DNS服务器发出查询请求,最终获取主机名的IP地址。以访问百度网址大全site.为例,用户主机首先向根DNS服务器发送请求,根服务器识别出后缀.com并返回相应的comDNS服务器IP地址。然后用户主机向comDNS服务器发送请求,获取到百度权威DNS服务器的IP地址后,再向该服务器发送请求,最终获取到site.的IP地址。
DNS系统还设有缓存机制。当DNS服务器收到主机名到IP地址的映射记录时,会将其存储在本地缓存中。当再次收到相同域名的请求时,可以直接返回该域名的IP地址,从而减少时延。如果没有缓存机制,每个请求都需要经过多个步骤才能获取到IP地址;而有了缓存机制后,用户主机甚至可以直接从本地DNS服务器获取IP地址。
参考文献中提到的《Computer Networking A Top-Down Approach Seventh Edition》第83页所描述的内容正是关于DNS系统的核心原理和工作机制。通过分布式、分层次的数据库解决方案和缓存机制的设计,使得用户能够便捷地访问互联网上的各种资源和服务。
