ScholarGate
助手

域名系统

域名系统是互联网的分布式目录,通过委托授权服务器的层级结构和普遍的缓存,将人类可读的域名转换为网络所需的IP地址。

用 PaperMind 寻找选题即将推出Find papers & topics
Tools & resources
下载幻灯片
Learn & explore
视频即将推出

Definition

域名系统是一种分层、分布式的命名服务,通过委托授权名称服务器和缓存解析器的网络实现,将域名映射到IP地址及其他记录。

Scope

本主题涵盖DNS:其分层命名空间和区域;根、顶级域和授权名称服务器的作用;递归和迭代解析;资源记录(如A、AAAA、NS、MX和CNAME);使系统可扩展的缓存和生存时间值;以及DNS对UDP的依赖性(用于大多数查询)。它还指出DNS在简单查找之外的作用,例如在负载分配和CDN重定向中的作用。它不包括依赖于DNS的应用协议和内容交付系统。

Core questions

  • 为什么互联网需要一个独立于IP地址的命名系统?
  • DNS命名空间是如何分层组织成区域和委托的?
  • 递归和迭代查询如何将名称解析为地址?
  • 缓存和生存时间值如何使DNS具有可扩展性和速度?
  • DNS使用哪些资源记录类型,每种代表什么?

Key concepts

  • 域名层级
  • 区域和委托
  • 根、TLD和授权服务器
  • 递归和迭代解析
  • 资源记录(A、AAAA、NS、MX、CNAME)
  • 缓存和生存时间(TTL)
  • 基于UDP的DNS
  • 基于DNS的负载分配

Key theories

分层、委托命名
DNS将命名空间划分为域树,并将子树的权限委托给不同组织的名称服务器,因此没有单个实体需要知道所有名称,并且管理是分布式的。
解析和缓存
解析器通过遵循从根到授权服务器的层级结构来回答查询,然后将其结果缓存至其生存时间;积极的缓存意味着大多数查找永远不会到达授权服务器,这对于DNS的可扩展性至关重要。

Clinical relevance

DNS是几乎所有在线交互的关键依赖项:网页浏览、电子邮件和应用程序连接都始于名称查找,因此DNS的性能和可用性影响用户体验,DNS中断会波及各项服务。DNS还用于引导用户访问附近服务器以进行内容交付和负载均衡,其安全性(通过DNSSEC和加密DNS)是一个活跃的关注点。

History

在DNS出现之前,主机名通过一个无法扩展的单一共享文件映射到地址。Paul Mockapetris在20世纪80年代中期设计了域名系统(RFC 1034和1035,1987年),作为一种分布式、分层的替代方案。此后,DNS得到了巨大发展,增加了记录类型、国际化名称、安全扩展(DNSSEC)和加密传输,同时在架构上忠实于其原始设计。

Debates

加密DNS与操作可见性
加密DNS查询(DNS over HTTPS/TLS)可以保护用户隐私免受路径上的观察者影响,但它也降低了网络运营商用于过滤和故障排除的可见性,并可能将解析集中到少数大型提供商;隐私和控制之间的权衡存在争议。

Key figures

  • Paul Mockapetris
  • James F. Kurose
  • Keith W. Ross

Related topics

Seminal works

  • rfc1034
  • rfc1035
  • kurose2021

Frequently asked questions

DNS有什么作用?
DNS将诸如example.com之类的用户友好名称转换为网络路由数据包到正确服务器所需的IP地址。它是互联网的电话簿,通过分布式服务器层级结构和大量缓存进行此查找,从而使其能够扩展到整个互联网。
为什么DNS是分布式的而不是一个大型服务器?
单个服务器无法处理查询量,将成为单点故障,并且无法由全球所有组织管理。DNS转而将部分命名空间的权限委托给许多服务器并广泛缓存结果,从而分散负载和控制,使系统具有弹性。

Methods for this concept

Related concepts