计算机网络——DNS协议

目录

前言

前篇

引言

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台在美国。欧洲有两台,分别位于英国和瑞典,亚洲有一台位于日本。

  • 33
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值