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

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

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

相关文章

将本地项目上传到Github

首先安装git、创建github账号 1、创建一个新的仓库 2、创建SSH KEY。先看一下你C盘用户目录下有没有.ssh目录,有的话看下里面有没有id_rsa和id_rsa.pub这两个文件,有就跳到下一步,没有就通过下面命令创建。 ssh-keygen -t rsa -C "you…

面试算法-174-二叉树的层序遍历

题目 给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:[[3],[9,20],[15,7]] 解 class Solut…

代码随想录Day41:动态规划Part3

Leetcode 343. 整数拆分 讲解前: 毫无头绪 讲解后: 这道题的动态思路一开始很不容易想出来,虽然dp数组的定义如果知道是动态规划的话估摸着可以想出来那就是很straight forward dp定义:一维数组dp[i], i 代表整数的值&#xf…

pyqt QToolBar 选中高亮

目录 效果图 示例代码 效果图 示例代码 from PyQt5.QtWidgets import QApplication, QMainWindow, QAction, QToolBar, QToolButtonclass HighlightingToolButton(QToolButton):def __init__(self, parentNone):super().__init__(parent)self.setCheckable(True)def nextChe…

ins视频批量下载,instagram批量爬取视频信息

简介 Instagram 是目前最热门的社交媒体平台之一,拥有大量优质的视频内容。但是要逐一下载这些视频往往非常耗时。在这篇文章中,我们将介绍如何使用 Python 编写一个脚本,来实现 Instagram 视频的批量下载和信息爬取。 我们使用selenium获取目标用户的 HTML 源代码,并将其保存…

尚鼎环境科技诚邀您参观2024第13届生物发酵展

参展企业介绍 尚鼎环境科技(江苏)有限公司设立于2010年,公司坐落于江南平原南端素有『苏北门户』之称的古城扬州,办公室位在江苏省扬州市邗江区高新技术创业服务中心。 尚鼎环境科技长年致力于食品精炼/环境工程领域全程技术服务,工程实绩遍…

OpenHarmony南向开发案例:【智能体重秤】

一、简介 本demo基于OpenHarmony3.1Beta版本开发,该样例能够接入数字管家应用,通过数字管家应用监测体重秤上报数据,获得当前测量到的体重,身高,并在应用端形成一段时间内记录的体重值,以折线图的形式表现…

html公众号页面实现点击按钮跳转到导航

实现效果&#xff1a; 点击导航自动跳转到&#xff1a; html页面代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>跳转导航</title><meta name"keywords" conten…

华为框式交换机S12700E系列配置CSS集群

搭建集群环境 a.为两台交换机上电&#xff0c;按照数据规划分别对两台框式交换机进行配置 <HUAWEI> system-view [HUAWEI] sysname Switch1 [Switch1] set css id 1 [Switch1] set css priority 150 //框1的集群优先级配置为150 [Switch1] interface css-port 1 [Sw…

java的深入探究JVM之内存结构

前言 Java作为一种平台无关性的语言&#xff0c;其主要依靠于Java虚拟机——JVM&#xff0c;我们写好的代码会被编译成class文件&#xff0c;再由JVM进行加载、解析、执行&#xff0c;而JVM有统一的规范&#xff0c;所以我们不需要像C那样需要程序员自己关注平台&#xff0c;大…

最新AI创作系统ChatGPT网站源码AI绘画,GPTs,AI换脸支持,GPT联网提问、DALL-E3文生图

一、前言 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;那么如何搭建部署AI创作ChatGPT&#xff1f;小编这里写一个详细图文教程吧。已支持GPT…

【RabbitMQ】RabbitMQ基础认识

文章目录 前言初识MQSpringAMQP如何首发消息&#xff1f;消费者交换机Fanout&#xff1a;广播Direct交换机Topic交换机声明队列和交换机 总结 前言 微服务一旦拆分&#xff0c;必然涉及到服务之间的相互调用&#xff0c;目前我们服务之间调用采用的都是基于OpenFeign的调用。这…

JavaSE图书管理系统

JavaSE图书管理系统 思路一.Main方法二.User包1.User类2.NormaUser类3.AdminUser类三.book包1.BookList类2.Book类四.operation包1.IOPeration接口2.AddOperation类新增图书3.BorrowOperation类借阅图书4.DelOperation类删除图书5.FindOperation类查找图书6.ReturnOperation类归…

总结|性能优化思路及常用工具及手段

性能优化是降低成本的手段之一&#xff0c;每年大促前业务平台都会组织核心链路上的应用做性能优化&#xff0c;一方面提升系统性能&#xff0c;另外一方面对腐化的代码进行清理。现结合业务平台性能优化的经验&#xff0c;探讨一下性能优化的思路及常用工具及手段。性能优化本…

jenkins(docker)安装及应用

jenkins Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具&#xff0c;起源于Hudson&#xff08;Hudson是商用的&#xff09;&#xff0c;主要用于持续、自动的构建/测试软件项目、监控外部任务的运行&#xff08;这个比较抽象&#xff0c;暂且写上&#xff0c;不做解…

稀碎从零算法笔记Day50-LeetCode:寻找峰值

LC50天成就了 题型&#xff1a;数组、滑动窗口、二分 链接&#xff1a;162. 寻找峰值 - 力扣&#xff08;LeetCode&#xff09; 来源&#xff1a;LeetCode 题目描述 峰值元素是指其值严格大于左右相邻值的元素。 给你一个整数数组 nums&#xff0c;找到峰值元素并返回其索…

STM32移植嵌入式开源按键框架

目录 STM32移植嵌入式开源按键框架 MultiButton简介 multi_button.c文件 multi_button.h文件 按键事件 案例使用方法 学习剖析 STM32移植嵌入式开源按键框架 今天移植了一款嵌入式按键框架工程MultiButton&#xff0c;MultiButton是一个小巧简单易用的事件驱动型按键驱动…

Qt 3 QVariant类的使用和实例

QVariant, 类本质为 C联合(Union)数据类型&#xff0c;它可以保存很多Qt 类型的值&#xff0c;包括 QBrush、QColor、QString 等等。也能够存放Qt的容器类型的值。QVariant::StringList 是 Qt定义的一个 QVariant::type 枚举类型的变量&#xff0c;其他常用的枚举类型变量如下表…

【Qt】:对话框(二)

对话框 一.消息对话框&#xff08;QMessageBox&#xff09;1.自己构建2.使用静态函数构建 二.颜色对话框&#xff08;QDialog&#xff09;三.文件对话框&#xff08;QFileDialog&#xff09;四.字体对话框&#xff08;QFontDialog&#xff09;五.输入对话框&#xff08;QInputD…

沐风老师3DMAX物品摆放插件ObjectPlacer安装和使用方法详解

3DMAX物品摆放插件ObjectPlacer安装和使用教程 3DMAX物品摆放插件ObjectPlacer&#xff0c;一键在曲面上摆放对象&#xff0c;如摆放家具物品、种植花草树木、布设电线杆交通标志等。它的功能是将对象与几何体对象&#xff08;网格、多边形、面片或NURBS&#xff09;的面法线对…