域名系统概述
域名系统(Domain Name System,DNS) 是一种核心服务,它使得网络应用能够在应用层使用计算机的名字进行交互,而不需要直接使用IP地址。这样不仅方便用户记忆,还提高了系统的效率和稳定性。
在互联网中,两个不同主机上的进程要互相通信必须使用IP地址,但用户很难记住长达32位的二进制IP地址,因此域名系统应运而生。DNS使得用户可以通过输入简单易记的主机名来访问网站,而计算机则通过DNS将这些主机名转换为IP地址。
DNS 的发展和结构
早期的互联网使用一个名为hosts的文件,列出所有主机名和相应的IP地址。然而,随着互联网规模的扩大,这种方式已经无法满足需求。1983年,互联网开始采用层次结构的命名树作为主机的名字,并使用分布式的域名系统(DNS) 。
DNS是一个联机分布式数据库系统,采用客户/服务器体系结构。DNS使大多数名字都在本地解析,仅少量解析需要在互联网上通信,因此系统效率很高。即使单个计算机出现故障,系统的正常运行也不会受到影响。
DNS 的服务和功能
域名到IP地址的转换过程叫作域名解析。当某个应用进程需要将主机名解析为IP地址时,该应用进程成为DNS的一个客户,并把待解析的域名放在DNS请求报文中,以UDP数据报方式发给本地域名服务器。本地的域名服务器在查找域名后,把对应的IP地址放在回答报文中送回。
除了进行主机名到IP地址的转换外,DNS还提供了一些重要的服务:
- 主机别名:为主机起多个简单易记的别名。
- 负载分配:用同一个主机名对应多个IP地址,随机或循环返回地址集合中的一个地址。
- 反向域名解析:将IP地址转换为域名。
互联网的域名结构
互联网采用了层次树状结构的命名方法,任何一个连接在互联网上的主机或路由器,都可以有唯一的层次结构的名字,即域名(Domain Name)。域名的结构由若干个分量组成,各分量之间用点隔开:三级域名,二级域名,顶级域名。例如,www.example.com。
顶级域名(Top Level Domain,TLD)分为三大类:
- 国家或地区顶级域名(nTLD) :例如,cn表示中国,us表示美国。
- 通用顶级域名(gTLD) :例如,com(公司企业)、org(非营利性组织)。
- 反向域(arpa) :用于反向域名解析。
域名服务器的类型和功能
互联网的名字空间信息分布在许多域名服务器上。DNS将整个名字空间划分为许多不相交的区(Zone),每个区的域名信息由一个权威域名服务器(Authoritative Name Server)负责管理。
域名服务器可划分为以下四种类型:
- 根域名服务器:最高层次的域名服务器,知道所有顶级域名服务器的域名及其IP地址。
- 顶级域名服务器(TLD服务器) :负责管理在该顶级域名服务器注册的所有二级域名。
- 权威域名服务器:负责管理某个区的域名服务器,知道其管辖的域名与IP地址的映射关系。
- 本地域名服务器:不属于域名服务器的等级结构,当一台主机发出DNS查询报文时,首先被送往本地域名服务器。
域名解析的过程
DNS可进行域名到IP地址的解析,也可以将IP地址反向解析为域名。主机向本地域名服务器的查询一般都采用递归查询,而本地域名服务器向根域名服务器查询时,优先采用迭代查询。
递归查询:如果本地域名服务器不知道被查询域名的IP地址,它会以DNS客户的身份向某个根域名服务器继续发出查询请求报文。
迭代查询:当根域名服务器收到查询请求报文但并不知道被查询域名的IP地址时,它会把自己知道的顶级域名服务器的IP地址告诉本地域名服务器,让本地域名服务器再向顶级域名服务器查询。
DNS资源记录
DNS服务器以资源记录(Resource Record,RR)的形式存储主机名到IP地址的映射。每个DNS回答报文可能包含一条或多条资源记录。资源记录在逻辑上就是一个四元组(Name、Value、Type、TTL)。
DNS资源记录主要有以下几种类型:
- 主机记录(Type=A) :Name是主机名,Value是该主机名的IP地址。
- 域名服务器记录(Type=NS) :Name是某个域的名称,Value是该域的权威域名服务器的主机名。
- 主机别名记录(Type=CNAME) :Name是主机别名,Value是该别名的规范主机名。
- 邮件交换记录(Type=MX) :Name是邮件服务器别名,Value是该邮件服务器的规范主机名。
小结
DNS是现代互联网不可或缺的一部分,它通过将用户易记的域名转换为计算机能够识别的IP地址,使网络应用变得更加便捷和高效。通过了解DNS的基本概念、结构和功能,可以帮助基础小白更好地理解和使用互联网。如果你对某些具体功能感兴趣,可以进一步深入学习相关的技术细节。未来,随着互联网的不断发展,DNS将继续发挥重要作用。
图文来源:《计算机网络教程》第六版微课版