计算机网络——DNS协议

server/2024/11/13 9:29:54/

目录

前言

前篇

引言

IP地址与域名

DNS协议的工作流程

DNS服务器节点之间是如何维护上下级关系的

前言

本博客是博主用于复习计算机网络的博客,如果疏忽出现错误,还望各位指正。

这篇博客是在B站掌芝士zzs这个UP主的视频的总结,讲的非常好。

可以先去看一篇视频,再来参考这篇笔记(或者说直接偷走)。

一条视频讲清楚什么是DNS协议-域名是怎么转换为IP地址的_哔哩哔哩_bilibili

前篇

  1. 计算机网络——MAC地址和IP地址-CSDN博客
  2. 计算机网络——交换机和路由器-CSDN博客
  3. 计算机网络——网络地址转换(NAT)技术-CSDN博客
  4. 计算机网络——TCP和UDP协议-CSDN博客
  5. 计算机网络——DHCP协议-CSDN博客
  6. 计算机网络——ARP协议-CSDN博客

引言

大家每天都在使用浏览器浏览网页,访问一个网站最重要的一部分就是输入这个网站的域名,或者发送邮件时跟在@和后面的域名。域名到底是什么?它与IP地址到底是什么关系?今天我们就一起来了解一下DNS协议以及其工作原理。

IP地址与域名

我们都知道在TCP/IP协议中,IP地址才是每台计算机或者服务器的唯一标识。

那为什么我们访问网站不直接使用IP地址来访问,而是使用域名来访问呢?

其实直接使用IP地址也是可以的。比如我们知道百度的IP地址是180.101.50.242,把这个IP输入到浏览器的地址栏,照样可以成功访问百度。

这样看起来貌似域名IP地址都是可以工作的那域名和IP地址到底是什么关系呢?

举一个例子,我们平时用手机进行通信,每台手机都拥有一个11位的号码,作为手机的唯一标识,移动公司也是通过手机号码进行关联通信的。

同时我们的手机中保存了很多联系人的电话号码,但当我们拨打电话时,不会每次都输入11位号码再拨打电话,而是会为其起一个名称被关联起来。

对于用户来说,记住名称比较容易,而记住电话号码就比较困难了。

但是对于移动公司来说,数字更容易识别与处理。

在网络世界中也是这样的,IP地址就好比电话号码,域名就好比电话号码对应的名称。

用户不需要记住网站的IP地址,而只需要记住其域名就可以正常访问。方便记忆访问。

在网络世界中仍然是以IP地址作为主机的唯一标识。

用户输入域名需要先查询到其对应的IP地址,这个查询的协议就是DNS协议

DNS协议的工作流程

当你在浏览器中输入一串网址并按下回车键。

首先浏览器会去解析这段网址,从中取出域名,然后组建一包DNS查询报文,并发送到主机的上一级DNS服务器。

在开启DHCP的情况下,DNS服务器是会通过DHCP协议自动获取的,用户也可以手动配置。

这里大家只需要知道这一帧DNS查询报文会发送到其上一级的DNS服务器。

DNS服务器收到这一帧查询报文后会在自己缓存的DNS池中查找这个域名的记录,试图找到其对应的IP地址。

如果找不到会再向其更上一级的DS服务器进行查找。

上级有可能会再向更上一级查找。

总之最终DNS服务器会返回一个结果,要不就是查询成功,返回的是其对应的IP地址。要不就是查询失败。

浏览器拿到查询到的IP地址后会使用此IP地址构建HTTP协议。

数据包通过HTTP协议最终获取到需要显示的网页。

为了提高效率,浏览器并不是每次都需要查询域名对应的IP地址的。

浏览器会缓存查询到的域名IP并在一定时间内直接使用,其结果只有超过一定的时间后才会再次进行查询。

DNS服务器节点之间是如何维护上下级关系的

在全球的互联网中拥有数以亿计的域名,并且他们维护在大量的域名服务器中,并且每天都在新增大量的域名。

比如原在美国上线了一个网站,在中国的一台计算机能在很短的时间内就成功解析到其域名,并成功访问到其内容。

可想而知这些域名如何有序的维护也是一个难题。

我们下面来看一下这个问题。

首先是域名本身的结构,比如www.mail.zhangzhishi.com这个域名,我们可以按照点的位置来给它划分一定的等级。

比如com是最顶级的域,表示的是公司。

zhangzhishi是com的子域,表示的是公司名。

mail是涨知识的子域,表示的是邮箱。

www是没有的子域是大家常用的前缀,表示的是万维网。

按照这个规则,我们可以扩展出来几个zhangzhishi的子域。比如work game。

同理com底下也有很多子域,比如baidu、QQ等。

有了这个层次结构,我们就可以来关联其所在的服务器了。

比如com域是一台DNS服务器,zhangzhishi也可以是一台DNS服务器。

为了便于表达,我们先认为每个子域都是一台DNS服务器。

实际上有可能多个域都位于同一台DNS服务器中。

那么顶层的域就只需要知道自己子域的IP地址就可以了。

比如说到一个mail.zhangzhishi.com域名的查询请求,首先导航到它的最顶层的com域服务器。

com域服务器中没有这个域名,它只需要把请求转到下一级子域服务器,也就是zhangzhishi服务器。

zhangzhishi域服务器把查询请求转到mail子域服务器,就可以顺利的查询到这个域名的IP地址了。

同理,所有com子域为baidu查询请求,只需要导航到baidu子域服务器就可以了。

当然com域也不是最顶层域,它属于根域的一个子域。

直属根域的子域还有edu、org、net、cn等等很多。

而我们的计算机想要查询到所有的域名,只需要通过上一级DS服务器直接连接到根域就OK了。

目前全球有13个根域服务器,一个为主根服务器在美国,其余12个为辅根服务器,其中9台在美国。欧洲有两台,分别位于英国和瑞典,亚洲有一台位于日本。


http://www.ppmy.cn/server/13167.html

相关文章

dial tcp 192.168.0.190:443: connect: connection refused

1、场景 用nerdctl登录镜像仓库192.168.0.190(Harbor),报错 ERRO[0006] failed to call tryLoginWithRegHost error"failed to call rh.Client.Do: Get \"https://192.168.0.190/v2/\": dial tcp 192.168.0.190:…

qmt教程2----订阅单股行情,提供源代码

链接 qmt教程2----订阅单股行情,提供源代码 (qq.com) qmt教程1---qmt安装,提供下载链接 今天我重新封装了全部qmt的内容,包括数据,交易 qmt交易 我本来打算全部上次git的,但是考虑到毕竟是实盘的内容,就放…

速卖通自养号测评:如何规避安全风险?

对于初涉电商领域的新卖家而言,进行销量测评显得尤为关键。由于速卖通新店铺往往难以获得平台活动的支持,流量也相对匮乏,因此,开店的首要任务便是进行测评,通过积累一定的评论和销售数据。 测评的益处颇多&#xff0…

VUE-配置-流程

VUE-配置-流程 ---1---.安装 NVM: ---2---.用NVM:安装node.js : 修改源: nvm root 命令,可以查看nvm的安装根路径在那个文件夹 root地址,找到setting.txt文件并打开 复制粘贴以下代码, 保存完成nvm源修改&#xff…

算法课程笔记——集合set

3复杂度不稳定 删一个和删除全部 注意iter是类 遍历是无序的

golang面试题

基础题 Go 的优势是什么? 天然支持并发,通过Goroutine和通道实现的支持静态链接,也就是把依赖也打到可执行文件编译语言,效率更高,相对于php、、python、js Go 程序中的包是什么? 相当于php中的命名空间 类库 make和new有…

SpringBoot内容协商机制(就是接受数据的类型如json,xml)

目录 一、基于请求头的内容协商机制 二、基于请求参数的内容协商机制 一、基于请求头的内容协商机制 如果我们的Java服务为浏览器和安卓手机同时提供服务,浏览器期望接受的请求是JSON格式,安卓客户端期望接收的请求是XML格式,这个时候是否需…

Python 正则表达式

Python 正则表达式 目录 正则 flags:标志位 match函数 search函数 findall函数 finditer函数 元字符 匹配单个字符和数字 锚字符(边界字符) ^ 行首匹配 $ 行尾匹配 \A匹配字符串开始 \Z 匹配字符串结束 \b 匹配一个单词的边界 \B 匹配非单…