计算机网络: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。
高速缓存不会被长久存储。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java 第13章 异常 本章作业

1 编程 两数相除的异常处理 各自属于哪些异常: 数据格式不正确 NumberformatException 缺少命令行参数 ArrayIndexOutOfBoundsException 除0异常处理 ArithmeticException ArrayIndexOutOfBoundsException 为数组下标越界时会抛出的异常,可以在检测到命…

swing快速入门(十三)

注释很详细,直接上代码 上一篇 新增内容 1.Dialog(模式对话框和非模式对话框) 模式对话框:在对话框没有消失之前无法操作父窗口 非模式对话框:对话框的出现不会影响对父窗口的操作 2.setButton(对话框设置…

Chromadb词向量数据库总结

简介 Chroma 词向量数据库是一个用于自然语言处理(NLP)和机器学习的工具,它主要用于词嵌入(word embeddings)。词向量是将单词转换为向量表示的技术,可以捕获单词之间的语义和语法关系,使得计算…

arthas 线上排查问题基本使用

一、下载 [arthas下载地址]: 下载完成 解压即可使用 二、启动 java -Dfile.encodingUTF-8 -jar arthas-boot.jar 如果直接使用java -jar启动 可能会出现乱码 三、使用 启动成功之后 arthas会自动扫描当前服务器上的jvm进程 选择需要挂载的jvm进程 假如需要挂在坐标【1】的…

机器视觉工程师为什么如何找一个高薪的企业上班

竟然那么辛苦,为什么不找一个工资高的地方被压榨呢,在现在的公司学到的技术,给不到你应有的薪资,那你就只能跳槽来获得,各行各业都有牛人和大佬,各行各业都有高薪的人,只不过看你能不能到那个高…

nginx_rtmp_module 之 ngx_rtmp_live_module模块

模块作用 直播模块代码 ngx_rtmp_live_module.c,主要作用是:当客户端推流或者拉流的时候,创建的rtmp session会加入到 live 模块的存储链表中。 模块配置命令 static ngx_command_t ngx_rtmp_live_commands[] {{ ngx_string("live&…

【Linux】键盘高级操作技巧

命令行最为珍视的目标之一就是懒惰:用最少的击键次数来完成最多的工作。另一个目标是你的手指永 远不必离开键盘,永不触摸鼠标。因此,我们有必要了解一些键盘操作,使我们用起来更加的迅速和高效。 移动光标 在前面介绍过上下左右…

JVM-2-对象

对象创建 当Java虚拟机遇到一条字节码new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相应的类加载过程。 为对象分配空间…

visual Studio MFC 平台实现图片的傅里叶变换

图片的傅里叶变换 本文主要讲解傅里叶变换的基本数学概念与物理概念,并本文使用visual Studio MFC 平台实现对傅里叶变换在图片上进行了应用。 一、傅里叶变换的原理 在这里推荐一篇讲得非常形象的文章通俗讲解:图像傅里叶变换 1.1 傅里叶变换原理的说明…

C++ 二叉搜索树(BST)的实现(非递归版本与递归版本)与应用

C 二叉搜索树的实现与应用 一.二叉搜索树的特点二.我们要实现的大致框架三.Insert四.InOrder和Find1.InOrder2.Find 五.Erase六.Find,Insert,Erase的递归版本1.FindR2.InsertR3.EraseR 七.析构,拷贝构造,赋值运算符重载1.析构2.拷贝构造3.赋值运算重载 八.Key模型完整代码九.二…

Prometheus 监控笔记(1):你真的会玩监控吗?

认识Prometheus Prometheus 是一种开源的系统和服务监控工具,最初由 SoundCloud 开发,后来成为继 Kubernetes 之后云原生生态系统中的一部分。在 Kubernetes 容器管理系统中,通常会搭配 Prometheus 进行监控,同时也支持多种 Expo…

股票价格预测 | Python实现基于ARIMA和LSTM的股票预测模型(含XGBoost特征重要性衡量)

文章目录 效果一览文章概述模型描述源码设计效果一览 文章概述 Python实现基于ARIMA和LSTM的股票预测模型(Stock-Prediction) Data ExtractionFormatting data for time seriesFeature engineering(Feature Importance using X

2023NEFU实习项目解析 - 中俄贸易供需服务平台

文章目录 项目概述项目初始化搭建项目初始框架配置Tomcat建立项目数据库编写统一返回类及其工具类编写数据库工具类通过Filter解决Response返回中文乱码问题使用Filter解决权限校验问题 项目主干开发用户登录企业管理(分页查询原生实现)上传VIP申请书模板…

【ArkTS】生命周期

页面生命周期 通常Entry修饰的组件称为页面,其拥有页面生命周期 onPageShow:页面每次显示时触发。onPageHide:页面每次隐藏时触发(通常是路由跳转到其他页面了)。onBackPress:当用户点击返回按钮时时触发…

【LeetCode刷题-哈希表】--187.重复的DNA序列

187.重复的DNA序列 本题就是找到长度为10的字符出现次数大于2的 子串序列 方法&#xff1a;使用哈希表 class Solution {public List<String> findRepeatedDnaSequences(String s) {List<String> ans new ArrayList<String>();HashMap<String,Integer&g…

GitLab下载地址是127.0.0.1如何修改ip

问题&#xff1a; 在下图位置之前我的ip是127.0.0.1&#xff0c;那我是如何修改的呢&#xff1f;请看下文 解决方案&#xff1a; 配置 GitLab站点 Url和端口号 GitLab 默认的配置文件路径是 /etc/gitlab/gitlab.rb # 修改配置文件 $ sudo vi /etc/gitlab/gitlab.rb 默认的站…

【lesson14】MySQL表的基本查询retrieve(读取)1

文章目录 表的基本操作介绍retrieveselect列建表基本测试 where子句建表基本测试 表的基本操作介绍 CRUD : Create(创建), Retrieve(读取)&#xff0c;Update(更新)&#xff0c;Delete&#xff08;删除&#xff09; retrieve select列 建表 基本测试 插入数据 全列查询 …

【人工智能】实验三 A*算法求解八/十五数码问题实验与基础知识

实验三 A*算法求解八数码问题实验 实验目的 熟悉和掌握启发式搜索的定义、估价函数和算法过程&#xff0c;并利用A*算法求解N数码难题&#xff0c;理解求解流程和搜索顺序。 实验内容 以8数码问题和15数码问题为例实现A*算法的求解程序&#xff08;编程语言不限&#xff09…

Redis知识详解(超详细)

1. 背景 Redis是由意大利人Antirez&#xff08;Salvatore Sanfilippo&#xff09;在2009年创造的开源内存数据结构存储系统。Redis的名字来自意大利语“Repubblica di Redis”&#xff0c;意思是“基于字典的共和国”。它是一个基于内存的键值对存储系统&#xff0c;具有快速、…

Leetcode 491 递增子序列

题意理解&#xff1a; 输入&#xff1a;nums [4,6,7,7] 输出&#xff1a;[[4,6],[4,6,7],[4,6,7,7],[4,7],[4,7,7],[6,7],[6,7,7],[7,7]] 这里不止要找一个子序列&#xff0c;还要元素保证其在原来的集合中的前后顺序&#xff0c;且应为增序。 为保证一个增序序列&#xff0c;…