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

计算机网络:DNS域名解析系统

在这里插入图片描述

  • 我最近开了几个专栏,诚信互三!
    ====> |||《算法专栏》::刷题教程来自网站《代码随想录》。|||
    ====> |||《C++专栏》::记录我学习C++的经历,看完你一定会有收获。|||
    ====> |||《Linux专栏》::记录我学习Linux的经历,看完你一定会有收获。|||
    ====> |||《C#专栏》::记录我复习C#的经历,深度理解查漏补缺,不定期更新。|||
    ====> |||《计算机网络专栏》::记录我学习计算机网络,看完你一定会有收获。|||

计算机网络:DNS域名解析系统

  • 什么是DNS
  • 为什么要有DNS
  • DNS工作过程及周边
    • 域名
    • 域名服务器
    • 域名服务器工作过程

什么是DNS

DNS(域名解析系统),如名字一样,它可以将域名解析为IP地址同时还可以将非正式名字解析为正式名字,以及可以进行负载均衡

为什么要有DNS

DNS最主要的功能是将域名解析为IP地址,但是为什么要解析呢?直接使用IP地址也可以啊,其实最主要的是IP地址是一串数字,数字对计算机来说很友好,但是对人来说就不太友好了,所以就诞生了域名,但是计算机使用不了域名,所以就需要DNS进行一个中间转换。

DNS工作过程及周边

要了解DNS的工作过程,首先需要了解域名。

域名

域名是由点(.) 符号分割的一些有规律的字符串,每个域名都可以代表一个IP地址比如 www.cplusplus.com,就是一个域名。
从左—>右,域名级别逐渐上升。如上述域名中com就是一个顶级域名,cplusplus就是一个二级域名,www就是一个三级域名。
同时域名是一个树形结构,除了顶级域名以外,还有根域名。
在这里插入图片描述
有一些顶级域名
1)国家级域名,如.cn中国,.us美国,.uk英国等。
2)还有一些通用的顶级域名,如.com商业公司,.net代表网络,.gov代表政府。

域名服务器

域名到IP地址的解析是运行在域名服务器上进行的,域名服务器可以管辖一个区的域名,该服务器中存在该区的所有域名到IP的转换,所以该服务器被称为权威域名服务器,同时,区和区之间也是相连的,以便于当主机需要解析的域名不在该区内时,可以区其他区查询域名。

在这里插入图片描述

域名服务器有以下分类。

(1)根域名服务器
每一层都存在域名服务器,根的域名服务器为根域名服务器, 根域名服务器有13个,根域名服务器中存在所有顶级域名服务器的IP地址,这样即使某一个根域名服务器存在问题,也可以去其他根域名服务器寻找,同时,顶级域名服务器一般不提供解析IP地址的作用,只提供查询的地址。
(2)顶级域名服务器
顶级域名服务器用来管理二级该顶级域名下的所有二级域名,在有DNS访问的时候,可以直接返回IP地址,也可以返回一个地址,让其继续查找。
(3)权威域名服务器
权威域名服务器维护了某个区的所有域名到IP地址的转换映射关系,所有这就要求权威域名服务器要收集所有它管辖区域内的主机/服务器的IP地址。
(4)本地域名服务器
本地域名服务器十分重要,主机进行域名到IP地址的转换时,首先要经过的就时本地域名服务器,在使用电脑的时候我们需要填写DNS地址,我们填写的也是本地域名服务器的IP地址,同时,有时候本地域名服务器和权威域名服务器是同一个,这取决于管辖范围内的主机数量。

域名服务器工作过程

首先,主机要访问某个域名,则需要向本地域名服务器中申请该域名的IP地址随后在去访问。
在这里插入图片描述
当本地服务器没有IP时,则需要进行IP查询,主要有两个查询方法。
(1)递归式查询
在这里插入图片描述
该查询方法耗时很大,所以不常用。
(2)递归与迭代式查询
在这里插入图片描述
主机先向本地域名服务器发起查询,如果本地服务器没有,则向根发起查询,如果根没有,则根会告诉我们下一步该往哪里查询,不断进行该操作,最后在查询到IP后,返回IP。
(3)域名查询的步骤如下
以域名y.abc.com为例
1.客户机向本地域名服务器发起DNS请求报文。
2.首先查询本地缓存,若没有记录,则本地服务器向根服务器发起请求。
3.发现该域名是在.com的顶级域名下。于是本地域名服务器向.com顶级域名服务器中发起请求,并返回.abc.com域名。
4.本地服务器在向.abc.com的权威域名服务器访问,查询到y.abc.com的IP后,返回到本地域名服务器,并返回到请求主机中。
5.于是本地域名服务器将y.abc.com的IP保存在本地服务器的高速缓存中。

DNS系统将DNS查询的结果,本地服务器将DNS的结果存储到本地服务器的高速缓存中,这样在访问该域名时,就能直接从本地服务器中得到该域名的IP。
高速缓存不会被长久存储。

相关文章:

计算机网络:DNS域名解析系统

我最近开了几个专栏,诚信互三! > |||《算法专栏》::刷题教程来自网站《代码随想录》。||| > |||《C专栏》::记录我学习C的经历,看完你一定会有收获。||| > |||《Linux专栏》&#xff1…...

java面试:==和equals有什么区别?

在 Java 中,"" 和 "equals" 有着不同的作用: "" 运算符: 在基本数据类型(如 int、char 等)中,"" 用于比较它们的值是否相等。 在引用类型中,"&q…...

数字人SaaS系统无限生成AI数字人!

市面上数字人软件层出不穷,选择一款适合的数字人软件是成功的第一步,只需要一款软件就解决数字人直播和数字人短视频的制作,青否数字人SaaS系统(数字人源码:zhibo175)你值得拥有! 青否数字人Saa…...

【MySQL】——数据类型及字符集

🎃个人专栏: 🐬 算法设计与分析:算法设计与分析_IT闫的博客-CSDN博客 🐳Java基础:Java基础_IT闫的博客-CSDN博客 🐋c语言:c语言_IT闫的博客-CSDN博客 🐟MySQL&#xff1a…...

Redis cluster集群设置密码

Redis cluster集群设置密码 1 备份数据 # 链接redis集群,执行rdb快照 bgsave # 备份dump.rdb文件 cp /data/redis/cluster/dump.rdb /data/redis/cluster/backup/dump.rdb.202312202 设置密码 必须保证每个节点的密码保持一致,不然 Redirected 的时候会失败 2.1…...

Docker 核心技术

Docker 定义:于 Linux 内核的 Cgroup,Namespace,以及 Union FS 等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术,由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器Docke…...

15 使用v-model绑定单选框

概述 使用v-model绑定单选框也比较常见,比如性别,要么是男,要么是女。比如单选题,给出多个选择,但是只能选择其中的一个。 在本节课中,我们演示一下这两种常见的用法。 基本用法 我们创建src/component…...

go语言指针变量定义及说明

go语言指针主要需要记住两个特殊符号, 一个是 & 用来获取变量对应的内存地址 另一个是 * 用来获取指针对应的变量值 下面是个最简单的go语言指针说明 package mainimport "fmt"//指针为内存地址func main() {var a string "指针对应的变量&…...

基于“Galera+MariaDB”搭建多主数据库集群的实例

1、什么是多主数据库集群 多主数据库集群是一种数据库集群架构,每个节点都可以接收写入操作和读取操作,并且通过心跳机制同步数据,保证数据一致性和高可用性。因多主数据库集群每个节点都可以承担读写操作,因此它可以充分利用各个…...

arcgis javascript api4.x加载天地图cgs2000坐标系

需求&#xff1a;arcgis javascript api4.x加载天地图cgs2000坐标系 效果&#xff1a; 示例代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"wid…...

算法学习——回溯算法

回溯算法 理论基础回溯法的效率回溯法解决的问题回溯法模板 组合思路回溯法三部曲 代码 组合&#xff08;优化&#xff09;组合总和III思路代码 电话号码的字母组合思路回溯法来解决n个for循环的问题回溯三部曲代码 组合总和思路代码 组合总和II思路代码 理论基础 什么是回溯法…...

C语言—小小圣诞树

这个代码会询问用户输入圣诞树的高度&#xff0c;然后根据输入的高度在控制台上显示相应高度的圣诞树。 #include <stdio.h>int main() {int height, spaces, stars;printf("请输入圣诞树的高度: ");scanf("%d", &height);spaces height - 1;st…...

Android消息公告上下滚动切换轮播实现

自定义控件 通过继承TextSwitcher实现 直接上代码 public class NoticesSwitcher extends TextSwitcher implements ViewSwitcher.ViewFactory {private Context mContext;private List<Notice> mData;private final long DEFAULT_TIME_SWITCH_INTERVAL 1000;//1spri…...

tensorflow入门 自定义模型

前面说了自定义的层&#xff0c;接下来自定义模型&#xff0c;我们以下图为例子 这个模型没啥意义&#xff0c;单纯是为了写代码实现这个模型 首先呢&#xff0c;我们看有几个部分&#xff0c;dense不需要我们实现了&#xff0c;我们就实现Res&#xff0c;为了实现那个*3,我们…...

虚拟机启动 I/O error in “xfs_read_agi+0x95“

1.在选择系统界面按e 进入维护模式 2.找到ro把ro改成 rw init/sysroot/bin/sh 然后按Ctrlx 3.找到坏掉的分区&#xff0c;以nvme0n1p3为例进行修复 xfs_repair -d /dev/nvme0n1p3 4.init 6 重新启动 以下情况 先umount 再修复 则修复成功...

【MYSQL】-库的操作

&#x1f496;作者&#xff1a;小树苗渴望变成参天大树&#x1f388; &#x1f389;作者宣言&#xff1a;认真写好每一篇博客&#x1f4a4; &#x1f38a;作者gitee:gitee✨ &#x1f49e;作者专栏&#xff1a;C语言,数据结构初阶,Linux,C 动态规划算法&#x1f384; 如 果 你 …...

网络协议小记

一、TCP/IP协议 作为一个小萌新&#xff0c;当然我无法将tcp/ip协议的大部分江山和盘托出&#xff0c;但是其中很多面试可能问到的知识&#xff0c;我觉得有必要总结一下&#xff01; 首先&#xff0c;在学习tcp/ip协议之前&#xff0c;我们必须搞明白什么是tcp/ip协议。 1、…...

STM32-I2C通讯-AHT20温湿度检测

非常感谢&#xff0c;提供的视频学习 https://www.bilibili.com/video/BV1QN411D7ak/?spm_id_from333.788&vd_source8ca4826038edd44bb618801808a5e076 该文章注意&#xff1a;串口显示中文会乱码&#xff0c;必须选用支持ASCII的串口助手&#xff0c;才能正常显示中文。…...

【机器学习】043_准确率、精确率、召回率

一、定义 在处理偏斜数据集时&#xff0c;通常使用不同的误差度量&#xff0c;而不仅仅是使用分类误差来衡量算法性能。 1. 混淆矩阵的概念 二分类问题的混淆矩阵为2X2矩阵&#xff0c;由四部分组成&#xff1a; 假阴性&#xff08;FN&#xff09;&#xff1a;模型预测为负…...

【Qt开发流程】之文件目录、文件、输入和输出

概述 应用程序操作过程中&#xff0c;经常要对设备或文件进行读或者写操作。也会经常对文件及目录进行操作。 在Qt中&#xff0c;QIODevice类是Qt中所有进行I/O操作的设备的基类&#xff0c;比如QFile、 QIODevice为支持数据块读写的设备&#xff08;如QFile、QBuffer和QTcpSo…...

3.3.1_1 检错编码(奇偶校验码)

从这节课开始&#xff0c;我们会探讨数据链路层的差错控制功能&#xff0c;差错控制功能的主要目标是要发现并且解决一个帧内部的位错误&#xff0c;我们需要使用特殊的编码技术去发现帧内部的位错误&#xff0c;当我们发现位错误之后&#xff0c;通常来说有两种解决方案。第一…...

vscode(仍待补充)

写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh&#xff1f; debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...

【JVM】- 内存结构

引言 JVM&#xff1a;Java Virtual Machine 定义&#xff1a;Java虚拟机&#xff0c;Java二进制字节码的运行环境好处&#xff1a; 一次编写&#xff0c;到处运行自动内存管理&#xff0c;垃圾回收的功能数组下标越界检查&#xff08;会抛异常&#xff0c;不会覆盖到其他代码…...

大数据零基础学习day1之环境准备和大数据初步理解

学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 &#xff08;1&#xff09;设置网关 打开VMware虚拟机&#xff0c;点击编辑…...

Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务

通过akshare库&#xff0c;获取股票数据&#xff0c;并生成TabPFN这个模型 可以识别、处理的格式&#xff0c;写一个完整的预处理示例&#xff0c;并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务&#xff0c;进行预测并输…...

第25节 Node.js 断言测试

Node.js的assert模块主要用于编写程序的单元测试时使用&#xff0c;通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试&#xff0c;通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...

如何将联系人从 iPhone 转移到 Android

从 iPhone 换到 Android 手机时&#xff0c;你可能需要保留重要的数据&#xff0c;例如通讯录。好在&#xff0c;将通讯录从 iPhone 转移到 Android 手机非常简单&#xff0c;你可以从本文中学习 6 种可靠的方法&#xff0c;确保随时保持连接&#xff0c;不错过任何信息。 第 1…...

零基础设计模式——行为型模式 - 责任链模式

第四部分&#xff1a;行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习&#xff01;行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想&#xff1a;使多个对象都有机会处…...

汇编常见指令

汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX&#xff08;不访问内存&#xff09;XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...

(转)什么是DockerCompose?它有什么作用?

一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用&#xff0c;而无需手动一个个创建和运行容器。 Compose文件是一个文本文件&#xff0c;通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...