计算机网络——DNS

一、什么是DNS?

DNS(Domain Name System,域名系统) 是互联网的核心服务,负责将人类可读的域名(如 www.baidu.com)转换为机器可识别的 IP地址(如 14.119.104.254)。它像一本全球分布式“电话簿”,让用户无需记忆复杂数字即可访问网站。

关键特性:

  • 分层设计:域名结构分层次管理(如 .com → baidu → www)。

  • 分布式存储:全球数万台DNS服务器协同工作,无单点故障。

  • 高效缓存:减少重复查询,提升解析速度。


二、为什么要有DNS?

没有DNS的世界会怎样?

  1. 访问网站需输入IP地址
    用户需记忆 14.119.104.254 而非 www.baidu.com

  2. IP变更导致服务中断
    若服务器IP更换,所有用户必须手动更新。

  3. 无法支持复杂服务
    单IP无法托管多个网站(如虚拟主机)。

DNS的四大价值

痛点DNS解决方案
记忆难度高通过域名提供易记的别名
IP动态变化域名与IP动态绑定,自动更新
服务扩展性差支持负载均衡、CDN调度等高级功能
网络流量集中分布式架构缓解单点压力

三、域名的构成

1. 域名结构(从右到左)

以 www.baidu.com 为例:

  • 根域(Root Domain):隐式的 .(通常省略,如 com.)。

  • 顶级域(TLD).com(商业机构)、.org(非盈利组织)、.cn(国家代码)。

  • 二级域(SLD)baidu(注册的网站名称)。

  • 子域(Subdomain)www(常见的子域,表示Web服务)。

2. 域名树状图

根域(.)
└── 顶级域(com)└── 二级域(baidu)├── 子域(www)└── 子域(mail)

四、DNS服务器的分类

类型作用示例
根DNS服务器提供顶级域服务器的IP地址全球13组根服务器(a.root-servers.net)
顶级域DNS服务器管理特定顶级域(如 .com)的权威服务器gtld-servers.net
权威DNS服务器存储具体域名的IP映射记录ns1.baidu.com(百度官方DNS)
递归DNS服务器代表用户完成完整查询过程的缓存服务器8.8.8.8(Google Public DNS)

五、DNS客户端

1. 客户端的作用

  • 发起查询:向递归DNS服务器发送域名解析请求。

  • 缓存管理:临时存储解析结果(通过TTL控制缓存时间)。

2. 客户端配置

Windows
# 查看当前DNS服务器
ipconfig /all
Linux
# 修改DNS配置(/etc/resolv.conf)
nameserver 114.114.114.114

六、DNS中继(Forwarder)

1. 什么是DNS中继?

企业或ISP部署的本地DNS服务器,将外部查询请求转发至上游服务器,实现:

  • 缓存加速:减少外网查询延迟。

  • 内容过滤:屏蔽恶意域名。

  • 流量管控:限制员工访问特定网站。

2. 中继 vs. 递归服务器

对比项DNS中继递归DNS服务器
查询方式转发请求至上游服务器自行完成全链路查询
典型场景企业内网、学校机房公共DNS服务(如Cloudflare)
缓存策略依赖上游响应自主缓存所有层级结果

七、域名解析过程

1. 递归查询(客户端视角)

mermaid

sequenceDiagramparticipant 用户participant 递归DNSparticipant 根DNSparticipant 顶级域DNSparticipant 权威DNS用户->>递归DNS: 查询 www.baidu.com递归DNS->>根DNS: 询问 .com 的顶级域服务器根DNS-->>递归DNS: 返回 .com 服务器IP递归DNS->>顶级域DNS: 询问 baidu.com 的权威服务器顶级域DNS-->>递归DNS: 返回 baidu.com 的权威服务器IP递归DNS->>权威DNS: 查询 www.baidu.com 的IP权威DNS-->>递归DNS: 返回 14.119.104.254递归DNS-->>用户: 返回最终IP

2. 迭代查询(服务器视角)

  1. 本地DNS询问根服务器 → 获取 .com 服务器地址。

  2. 询问 .com 服务器 → 获取 baidu.com 权威服务器地址。

  3. 询问 baidu.com 服务器 → 获取 www 子域的IP。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/34343.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【软考-架构】5.2、传输介质-通信方式-IP地址-子网划分

✨资料&文章更新✨ GitHub地址:https://github.com/tyronczt/system_architect 文章目录 传输介质网线光纤无线信道 通信方式和交换方式会考:交换方式 💯考试真题第一题第二题 IP地址表示子网划分💯考试真题第一题第二题 传输…

基于SpringBoot+Vue的毕业论文管理系统+LW示例参考

1.项目介绍 系统角色:管理员、指导教师、评阅教师、学生功能模块:用户管理、毕业论文管理、课题信息管理、选题申请管理、课题任务管理、基础数据管理、公告信息管理、评阅教师管理、指导教师管理等技术选型:SpringBoot,Vue等测试…

文件系统 linux ─── 第19课

前面博客讲解的是内存级文件管理,接下来介绍磁盘级文件管理 文件系统分为两部分 内存级文件系统 : OS加载进程 ,进程打开文件, OS为文件创建struct file 和文件描述符表 ,将进程与打开的文件相连, struct file 内还函数有指针表, 屏蔽了底层操作的差异,struct file中还有内核级…

第十次CCF-CSP认证(含C++源码)

第十次CCF-CSP认证 分蛋糕满分题解 学生排队满分题解 Markdown语法题目解读满分代码 结语 分蛋糕 题目链接 满分题解 基本思路:我们需要保证除了最后一个小朋友之外的所有人,分得的蛋糕都大于等于给定的K值,为什么是大于等于,是…

MyBatis框架操作数据库一>xml和动态Sql

目录 配置连接字符串和MyBatis:数据库的连接配置:XML的配置: XML编写Sql:model层:mapper层: 动态Sql:if 标签和trim标签:where标签:Set标签:Foreach标签: Mybatis的开发有两种方式:: 注解和XML&…

编写Dockerfile制作tomcat镜像,生成镜像名为tomcat:v1,并推送到私有仓库。

1.具体要求如下: 基于rockylinux:8基础镜像; 指定作者为openlab; 安装tomcat服务,暴露8080端口; 设置服务自启动。 总结步骤:基于rockylinux:8,安装Java环境,安装Tomcat&a…

医院手术麻醉信息系统是如何为医院提质增效的?

近年来,随着HIS系统、LIS系统、PACS系统、EMR系统等信息系统的出现,医疗信息化已成为医疗领域推广的重点,显著提高了医院业务的运营效率。手术麻醉系统作为医院信息系统的一部分,由两个子部分组成:监测设备数据采集系统…

ios打包需要的证书及步骤

官网:https://developer.apple.com/account 避免他人登录apple账号的方法:就是让他们发测试设备的udid,手动注册到账号下,然后再给他们导p12证书和描述文件 iOS App Development iOS 开发版本签名(仅限 iOS App&#x…

C#特性和反射

1。特性概念理解? 特性(Attribute)是用于在【运行时】传递程序中各种元素(比如类、属性、方法、结构、枚举、组件等)行为信息的声明性标签。您可以通过使用特性向程序添加声明性信息。一个声明性标签是通过放置在它所…

【毕业论文格式】word分页符后的标题段前间距消失

文章目录 【问题描述】 分页符之后的段落开头,明明设置了标题有段前段后间距,但是没有显示间距: 【解决办法】 选中标题,选择边框 3. 选择段前间距,1~31磅的一个数 结果

操作系统-八股

进程基础: 进程定义:运行中的程序,有独立的内存空间和地址,是系统进行资源调度和分配的基本单位。 并发,并行 并发就是单核上面轮询,并行就是同时执行(多核); 进程上下…

骑士74CMS_v3.34.0SE版uniapp全开源小程序怎么编译admin和member流程一篇文章说清楚

有粉丝一直问我骑士系统怎么编译后台和小程序目前骑士人才系统74CMS分标准版,创业板,专业版,其除功能不同外其配置方法完全一致有喜欢系统的也可以私信我或者找我获取 一.安装打包环境[Nodejs]这个就不用我说了吧,用不小于V20的版…

c语言zixue

该文主要是记录我学习中遇到的一些重点、易出问题的内容 教材p16.17 先从一个简单的例子开始吧 #include <stdio.h> //编译预处理命令 int main() //程序的主函数 {printf("To C"); //输出语句return 0; //返回语句 } #include <stdio.h>是编译预…

ollama API 本地调用

ollama API 本地调用 前提条件&#xff0c;ollama 已经启动了模型&#xff0c;查看 ollama 中的 model 名称 ollama list使用 openai 调用 from openai import OpenAI import openaiopenai.api_key ollama openai.base_url http://localhost:11434/v1/def get_completion(pro…

es6 尚硅谷 学习

1、let 1.变量不能重复声明 2.块级作用域 &#xff0c;只在块内有效 3.不存在变量提升&#xff0c;变量未声明之前不可使用 4.不影响作用域链 2、const const SCHOOL “温医”&#xff1b; 1.一定要有初始值 2.一般常量使用大写 3.常量不能赋值 4.块级作用域 5.对数组和对象…

在微信小程序或前端开发中,picker 和 select 都是用户交互中用于选择的组件,但它们在功能、设计和使用场景上有一定的区别

在微信小程序或前端开发中&#xff0c;picker 和 select 都是用户交互中用于选择的组件&#xff0c;但它们在功能、设计和使用场景上有一定的区别。 1. picker 的特点 描述&#xff1a; picker 是微信小程序中的原生组件&#xff0c;通常用于选择单项或多项值&#xff0c;如时…

C#通过API接口返回流式响应内容---分块编码方式

1、背景 上一篇文章《C#通过API接口返回流式响应内容—SSE方式》阐述了通过SSE&#xff08;Server Send Event&#xff09;方式&#xff0c;由服务器端推送数据到浏览器。本篇是通过分块编码的方式实现 2、效果 3、具体代码 3.1 API端实现 [HttpGet] public async Task Chu…

【SpringMVC】入门版

1.基本概念 1.1三层架构 三层架构也就是我们常说的b/s架构中的表现层&#xff0c;业务层和持久层,每层都各司其职&#xff0c;下面来分别讲解这三层的作用。 表现层&#xff1a; 也就是我们常说的web层。它负责接收客户端的请求&#xff0c;向客户端响应结果&#xff0c;通…

各省水资源平台 水资源遥测终端机都用什么协议

各个省水资源平台 水资源遥测终端机 的建设大部分从2012年开始启动&#xff0c;经过多年建设&#xff0c;基本都已经形成了稳定的通讯要求&#xff1b;河北瑾航科技 遥测终端机&#xff0c;兼容了大部分省市的通讯协议&#xff0c;如果需要&#xff0c;可以咨询和互相学习&…

【Android】RuntimeShader 应用

1 简介 RuntimeShader 是 Android 13&#xff08;T&#xff09;中新增的特性&#xff0c;用于逐像素渲染界面&#xff0c;它使用 AGSL&#xff08;Android Graphics Shading Language&#xff09;编写着色器代码&#xff0c;底层基于 Skia 图形渲染引擎。官方介绍详见 → Runti…