当前位置: 首页 > news >正文

计算机网络 | 应用层(4)--DNS:因特网的目录服务

💓个人主页:mooridy-CSDN博客

💓文章专栏:《计算机网络:自定向下方法》 大纲式阅读笔记_mooridy的博客-CSDN博客

🌹关注我,和我一起学习更多计算机网络的知识

    🔝🔝

目录

4. DNS:因特网的目录服务

4.1 是什么?

4.2 DNS 提供的服务

4.3 DNS 工作机理概述

集中式设计的问题

分布式、层次数据库

DNS 查询

DNS 缓存(DNS caching)

DNS 记录和报文(DNS Records and Messages)

DNS 记录

DNS 报文


4. DNS:因特网的目录服务

4.1 是什么?

域名系统(Domain Name System, DNS)的核心功能是将主机名映射到对应的 IP 地址。它由两个关键部分构成:

  • 分层的 DNS 服务器实现的分布式数据库:通过分层架构存储域名与 IP 地址等相关信息。
  • 应用层的 DNS 协议:运行在 UDP 之上,发送和接收的报文均通过 53 号端口进行传输。

4.2 DNS 提供的服务

DNS 提供的服务被其他应用层协议广泛使用,主要包括:

  • 主机名(域名)解析为 IP 地址:实现域名到 IP 地址的转换,是 DNS 最基础的功能。

  • 主机别名(host aliasing):为同一主机提供多个不同的名称,方便用户记忆和使用。
  • 邮件服务器别名(mail server aliasing):用于标识邮件服务器的别名,方便邮件系统的使用。
  • 负载分配(load distribution):对于像taobao.com这样的繁忙站点,通常拥有多台服务器且各自有不同的 IP 地址。在 DNS 服务器中,一个 IP 地址集合与同一个规范主机名关联,每次响应时循环返回这些 IP 地址,从而实现流量的负载均衡,避免单台服务器负载过高 。

4.3 DNS 工作机理概述

集中式设计的问题

若采用集中式设计,DNS 会面临以下问题:

  • 单点故障(a single point of failure):一旦中心服务器出现故障,整个域名解析服务将瘫痪。
  • 通信容量(traffic volume):大量的域名解析请求集中到一台服务器,容易造成网络拥塞和服务器负载过高。
  • 远距离的集中式数据库(distant centralized database):数据存储在单一位置,对于距离较远的用户,访问效率低。
  • 维护(maintenance):数据更新、服务器维护等操作复杂,成本高。

分布式、层次数据库

DNS 采用分布式、层次化的架构,主要包含以下几类 DNS 服务器(不包括本地 DNS 服务器):

  • 根 DNS 服务器(Root DNS Servers):负责提供顶级域(TLD)服务器的 IP 地址,是域名解析的起点。
  • 顶级域 DNS 服务器(top-level domain, TLD):对应各个顶级域(如.com.org.net.edu等)以及国家级顶级域(如.uk.fr.jp等),存储该顶级域下的域名解析信息。
  • 权威 DNS 服务器(authoritative DNS servers):保存特定主域名及其子域名的主机 IP 地址信息。例如,qq.com的权威服务器掌握着mail.qq.comlol.qq.commusic.qq.com等主机的 IP 地址。组织机构既可以自行搭建权威服务器来管理记录,也可以将记录托管在服务提供商的权威服务器上。

此外,还有本地 DNS 服务器(local DNS server) ,每个 ISP(互联网服务提供商)通常配备一台或多台。当主机发起 DNS 请求时,首先会将请求发送到本地 DNS 服务器,它作为代理,将请求进一步转发到 DNS 服务器层次结构中进行处理。

DNS 查询

  • 迭代查询(iterative queries):以主机cse.nyu.edu查询gaia.cs.umass.edu的 IP 地址为例(具体过程可结合相关图示理解) 。

  • 递归查询(recursive query) :
    • 通常主机向本地域名服务器的查询采用递归查询方式。
    • 本地域名服务器向其他域名服务器查询时,一般采用迭代查询(也可采用递归查询)。

  • 域名解析过程

  • 主机向本地域名服务器的查询都采用递归查询
  • 本地域名服务器向其他域名服务器采用迭代(通常)或递归查询

DNS 缓存(DNS caching)

本地 DNS 服务器会缓存之前查询过的 DNS 记录。当再次收到相同的查询请求时,若缓存中存在有效的记录,可直接返回结果,减少查询时间和网络负载。

DNS 记录和报文(DNS Records and Messages)

DNS 记录

DNS 服务器存储的 ** 资源记录(Resource Record, RR)** 用于实现主机名到 IP 地址的映射,每个 DNS 回答报文包含一条或多条资源记录,记录格式为(Name, Value, Type, TTL)

  • TLL:记录的生存时间,决定该资源记录在缓存中保留的时长,超时后将被删除。
  • Type:记录类型,决定NameValue的含义:
    • Type = AName为主机名,Value是对应的 IP 地址,例如(relay.example.com, 145.37.93.126, A, xxx)
    • Type = NSName是主域名(如qq.com),Value是该域的权威 DNS 服务器的主机名,例如(foo.com, dns.foo.com, NS, xxx)
    • Type = CNAMEName是别名,Value是对应的规范主机名,例如(foo.com, relay1.bar.foo.com, CNAME, xxx)
    • Type = MXName是指向邮件服务器的别名,Value是对应的规范主机名,例如(foo.com, mail.bar.foo.com, MX, xxx)
DNS 报文

  • 首部区域(前 12 个字节)
    • 标识符:用于标识查询请求,会复制到对应的回答报文中,便于匹配请求和响应(由于 UDP 无连接特性,该标识尤为重要)。
    • 标志:包含多个标志位:
      • “查询 / 回答” 标志位(1bit):0 表示查询报文,1 表示回答报文。
      • “权威” 标志位(1bit):当 DNS 服务器是所请求域名的权威服务器时置 1。
      • “希望递归” 标志位(1bit):若客户希望在 DNS 服务器无记录时执行递归查询,则置 1。
      • “递归可用” 标志位(1bit):若 DNS 服务器支持递归查询,在回答报文中该位置 1。
    • 问题数、回答 RR 数、权威 RR 数、附加 RR 数:分别表示首部后对应 4 类数据区域中的变量数量。
  • 问题区域:包含正在进行的查询信息,如被查询的主机名(名字字段)和查询问题类型(类型字段,如AMX)。
  • 回答区域:包含针对最初请求域名的资源记录,可有多条 RR。
  • 权威区域:包含其他权威服务器的相关记录。
  • 附加区域:包含额外的辅助信息。例如,在一个 MX 请求的回答报文中,回答区域包含提供邮件服务器规范主机名的资源记录,附加区域则包含该规范主机名对应的 IP 地址的 A 类型 RR。

相关文章:

  • (done) 吴恩达版提示词工程 5. 推理 (情绪分类,控制输出格式,输出 JSON,集成多个任务,文本主题推断和索引,主题内容提醒)
  • 来自 Bisheng 关于微调的内容总结
  • [mysql]约束(上)
  • 19.【.NET 8 实战--孢子记账--从单体到微服务--转向微服务】--单体转微服务--当前项目拆分规划
  • 前端开发中列表无限加载功能的实现与优化
  • 神经网络与深度学习第四章-前馈神经网络
  • C++ 同步原语
  • 【股票系统】使用docker本地构建ai-hedge-fund项目,模拟大师炒股进行分析。人工智能的对冲基金的开源项目
  • 下垂控制属于构网型控制技术
  • 药监平台上传数据报资源码不存在
  • 焕新升级001,50M/S告别限速!
  • leetcode66.加一
  • 反事实——AI与思维模型【82】
  • 从 Lambda 到 DSL:Kotlin 接口实现的演进之路
  • IT社团分析预测项目(pandas、numpy、sklearn)
  • 哪些物联网框架支持多协议接入?选型指南与核心能力解析
  • Raptor码的解码成功率matlab实现
  • Oracle官宣 MySQL+APEX+AI三认证限时免费
  • Dify 1.3.0 为 LLM 节点引入了结构化输出支持
  • 基于 IPMI + Kickstart + Jenkins 的 OS 自动化安装
  • 湖州通告13批次不合格食品,盒马1批次多宝鱼甲硝唑超标
  • “70后”通化市委书记孙简已任吉林省政府领导
  • 杨荫凯已任浙江省委常委、组织部部长
  • 网络达人“拿”别人的视频为自己带货赚佣金,法院判决赔偿1.4万元
  • “住手!”特朗普罕见公开谴责普京,俄称愿恢复对话但要看美方行动
  • 特朗普称已为俄乌问题设最后期限,届时美国态度或生变