【计网 DNS】计算机网络 DNS协议详解:中科大郑烇老师笔记 (六)

news2024/11/26 2:56:36

目录

  • 0 引言
  • 1 DNS概述
    • 1.1 定义
    • 1.2 DNS域名结构
    • 1.2 域名解析步骤

请添加图片描述

  • 🙋‍♂️ 作者:海码007
  • 📜 专栏:计算机四大基础专栏
  • 📜 其他章节:网络快速入门系列、计算机网络(一)、计算机网络(二)、计算机网络(三)
  • 💥 标题:【计网 DNS】计算机网络 DNS协议详解:中科大郑烇老师笔记 (六)
  • ❣️ 寄语:人生的意义或许是可以发挥自己全部的潜力,所以加油吧!
  • 🎈 最后:文章作者技术和水平有限,如果文中出现错误,希望大家能指正

0 引言

DNS是为其他应用提供服务的,不是直接给用户提供服务的。

DNS的必要性

  • IP地址标识主机、路由器,但是IP地址不好记忆,不便于人类使用(没有意义)
  • 人类一般倾向于使用一些有意义的“字符串”来标识Internet上的设备,例如:www.ustc.edu.cn所在的web服务器、zhenwenjie@zzu.edu.cn所在的邮件服务器
  • 所以存在IP地址到“字符串”的相互转换很有必要
  • 用户提供要访问机器的“字符串”名称,由DNS负责将“字符串”名称转换成为二进制的网络地址

DNS系统需要解决的问题

  • 问题1:如何命名设备
    用有意义的字符串(方便记忆)、解决一个平面命名的重名问题:层次化命名
  • 问题2:如何完成名字到IP地址的转换
    分布式的数据库维护和响应名字查询
  • 问题3:如何维护:增加或删除一个域,需要在域名系统中做哪些工作
    在这里插入图片描述

DNS历史

  • ARPANET的名字解析解决方案
    主机名:没有层次的一个字符串(一个平面)
    存在着一个(集中)维护站:维护者一张主机名-IP地址的映射文件:Hosts.txt
    每台主机定时从维护站取文件

  • ARPANET方案存在的问题
    当网络中主机数量很大时,没有层次的主机名很难分配。文件的管理、发布、查找都很麻烦。

DNS总体思路和目的

  • DNS的主要思路
    分层的、基于域的命名机制
    若干分布式的数据库完成名字到IP地址的转换
    运行在UDP之上端口号为53的应用服务
    核心的Internet功能,但以应用层协议实现(在网络边缘处理复杂性)
  • DNS主要目的
    实现主机名-IP地址的转换(name/IP translate)
    其他目的:
    主机别名到规范名字的转换:Host aliasing
    邮件服务器别名到邮件服务器的正规名字的转换:Mail server aliasing
    负载均衡:Load Distribution
    在这里插入图片描述

1 DNS概述

1.1 定义

DNSDomain Name System,域名系统)是一种用于将域名转换为与之关联的IP地址的协议。它是互联网中的基础设施,负责将易于记忆的域名转换为计算机可以理解的IP地址,以便进行网络通信。

1.2 DNS域名结构

  • 一个层面命名设备会有很多重名
  • DNS采用层次树状结构的命名方法
  • Internet根被划分为几百个顶级域(top lever domains)
    • 通用的(generic):.com; .edu; .gov; .int; .mil; .net; .org; .firm; .hsop; .web; .arts; .rec;
    • 国家的(countries):.cn; .us; .nl; .jp
  • 每个子域下面可划分为若干子域(subdomains)
  • 树叶是主机
    在这里插入图片描述

DNS有13个根名字服务器
在这里插入图片描述

域名的管理

  • 一个域管理其下的子域
    • .jp 被划分为 ac.jp co.jp
    • .cn 被划分为 edu.cn com.cn
  • 创建一个新的域,必须征得它所属的同意

域与物理网络无关

  • 域遵从组织界限,而不是物理网络
    • 一个域的主机可以不在一个网络
    • 一个网络的主机不一定在一个域
  • 域的划分是逻辑的,而不是物理的

1.2 域名解析步骤

DNS协议的主要功能是将域名映射到IP地址,并解析域名以获取所需的目标网站或服务。以下是DNS协议的一般步骤:

  1. 查询(Query):当用户在浏览器中输入一个域名时,操作系统的DNS客户端会发送一个DNS查询请求到本地网络中的默认DNS服务器。
  2. 递归查询(Recursive Query):如果本地DNS服务器不知道域名与IP地址的映射关系,它将向根域名服务器发送递归查询请求。(拓展:另一种方法,迭代查询
  3. 根域名服务器(Root Name Server):根域名服务器是DNS层次结构的最高级别,它保存着全球顶级域名(如.com、.org、.net等)的信息。根域名服务器将指导本地DNS服务器到适当的顶级域名服务器
  4. 顶级域名服务器(Top-level Domain Server):顶级域名服务器保存了特定顶级域名下的次级域名服务器信息。它将向本地DNS服务器提供次级域名服务器的IP地址
  5. 权威域名服务器(Authoritative Name Server):次级域名服务器是负责特定域名的IP地址的服务器,它存储了与域名相关的所有记录,包括IP地址等信息。一旦本地DNS服务器获得权威域名服务器的IP地址,它将发送查询请求。
  6. DNS解析(DNS Resolution):本地DNS服务器接收到响应后,将解析的结果发送回DNS客户端。DNS客户端接收到IP地址后,将使用它来建立网络连接。
    在这里插入图片描述
  • 需要注意的是,DNS协议还支持缓存机制,以减少DNS查询的次数和网络流量。一旦DNS查询结果被缓存起来,在一段时间内重复查询相同的域名时,将直接从缓存中提取结果,而无需再次进行完整的DNS查询流程。
  • 总结起来,DNS协议是一种将域名转换为IP地址的协议,它通过多级服务器的协作实现域名解析和IP地址查找。通过DNS协议,用户可以使用易于记忆的域名进行互联网通信,而不需要记住复杂的IP地址。

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

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

相关文章

初始Redis 分布式结构的发展演变

目录 Redis的特点和使用场景 分布式系统的引入 单机系统 分布式系统 应用服务器的增多(处理更多的请求) 数据库读写分离(数据服务器的增多) 引入缓存 应对更大的数据量 业务拆分:微服务 Redis的特点和使用场景 我们先来…

使用 Rust 和 cURL 库下载程序

以下是一个使用 Rust 和 cURL 库的下载器程序,用于下载 图像。此程序使用了 https://www.duoip.cn/get_proxy 的代码。 extern crate curl; ​ use std::io::{self, Read}; use std::error::Error; ​ fn main() {let url "https://www.baidu.com";let …

04-HotSpot 垃圾收集器

HotSpot 垃圾收集器 HotSpot 虚拟机提供了多种垃圾收集器,每种收集器都有各自的特点,虽然我们要对各个收集器进行比较,但并非为了挑选出一个最好的收集器。我们选择的只是对具体应用最合适的收集器。 新生代垃圾收集器 Serial 垃圾收集器&…

如何将表格内容拆分至多列内容

如何将表格内容拆分至多列内容 需求示例步骤1.找到“分列”2.选择“分隔符号(D)”3.设置分隔符号4.完成5.分隔后的内容 总结 需求 表格的某一列里有很多内容,想将该列内容拆分到多列里,并能准确的显示拆分后的每一列内容 示例 …

【Java 进阶篇】Java XML约束:确保数据一致性和有效性

XML(可扩展标记语言)是一种常用的数据交换格式,用于存储和交换数据。然而,为了确保数据的一致性和有效性,通常需要定义XML约束。XML约束是一种规则集,定义了XML文档的结构、元素、属性和数据类型。本篇博客…

RobotRules 和UserAgent来下载文件

以下是一个使用WWW::RobotRules和LWP::UserAgent来下载文件的Perl程序: #!/usr/bin/perl ​ use strict; use warnings; use WWW::RobotRules; use LWP::UserAgent; use HTTP::Request; use HTTP::Response; ​ my $url http://www.people.com.cn/; my $agent LW…

结构体学习

struct是结构体关键字 我们用C语言中通常都是用关键字来定义类型变量。例如我们的整型变量,int book;是用整型关键字定义出来的。同样的,struct book同样是一个类型,不过我们叫他结构体。我认为的结构体的作用,无外乎是将一些毫…

APU的Vsense引脚的作用

开关电源PCB布局注意事项 开关电源PCB布线注意事项 一.Sense电压检测(FB) “Sense+”和“Sense-”,就是四线制中的电压检测线,high-sense 和low-sense分别连接远端负载的正负极,监测电源电压,抵消长距离传输线引起的电压损耗。这两个Sense接线端的作用简而言之就是调整Ou…

centos如何根据端口号查询程序路径

centos如何根据端口号查询程序路径 如果是半路接受的应用,上个人只给你说了程序的端口号,别的都没,那怎么找程序的路径哪?一是给上上个人要,二是自己找(我是自己找的) 小白教程,一…

链表的中间结点-力扣

1、题目描述 给你单链表的头结点 head ,请你找出并返回链表的中间结点。 如果有两个中间结点,则返回第二个中间结点。 题目链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台备战技术面试?力扣提供海…

【STM32】标准库与HAL库对照学习系列教程大全

【STM32】标准库与HAL库对照学习系列教程大全 一、前言二、准备工作三、基础篇四、进阶篇五、特别篇六、外设篇 一、前言 前言:开始工作后,学习的时间变少了很多,但是今年的1024节,还是打算送个福利给大家,将之前的STM…

PR BeatEdit 节奏卡点神器 的报错 beat detection error: IBT failed 和解决路径

环境:DELL Latitude 笔记本 16G内衬,Win10,PR 2021,BeatEdit Pr 2.1.003 安装PR BeatEdit 节奏卡点神器没有问题,可以调出。 导入音频时报错:beat detection error: IBT failed 根据 BeatEdit for Premi…

【Unity程序技巧】 资源加载管理器

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:Uni…

ScrapeKit 和 Swift 编写程序

以下是一个使用 ScrapeKit 和 Swift 编写的爬虫程序,用于爬取 图片。同时,我们使用了proxy 这段代码来获取代理。 import ScrapeKit ​ class PeopleImageCrawler: NSObject, ScrapeKit.Crawler {let url: URLlet proxyUrl: URL ​init(url: URL, proxy…

概率论_概率公式中的分号(;)、逗号(,)、竖线(|) 及其优先级

目录 1.概率公式中的分号(;)、逗号(,)、竖线(|) 2.各种概率相关的基本概念 2.1 联合概率 2.2 条件概率(定义) 2.3 全概率(乘法公式的加强版) 2.4 贝叶斯公式 贝叶斯定理的公式推导 1.概率公式中的分号(;)、逗号(,)、竖线(|) ; 分号代表前后是两类…

uview1.0部分机型u-input组件禁用后无法触发click事件

最近,线上的一个 App 收到用户反馈,输入框禁用状态下点击无法拉起模态框。找了一下身边可用机型进行了测试,起初所有机型都没有复现这个问题,突然有一天 Redmi K30S Ultra 出现了异常,点击输入框无法触发点击事件&…

分享几个bug发现手段-final chk、default test、stress test、fault injection

本文发散式分享几个有效的bug发现手段或者验证方法。 一、final chk final chk的思想是在执行完成一个测试用例(或者一个简单的命令)之后,然后查看下当前设计DUT的状态。比如说一个cacheline,在完成一笔read/write之后&#xff0c…

6、centos7安装DNS服务器结合Nginx Proxy Manager实现局域网自定义域名解析

前言 我想在物理主机(windows11)、虚拟机(CentOS7)、虚拟机上部署的k8s集群所在的局域网内实现自定义域名的访问,通过Nginx Proxy Manager反向代理。 最终效果:在Nginx Proxy Manager的页面配置的域名能准确解析到代理的目标主机…

【Rust】4 一文讲解重点 pattern matching | trait | 生命周期 | 闭包 | 迭代器 | 智能指针 | 并发与并行

文章目录 一、pattern matching二、trait2.1 常见 trait2.1.1 Copy 和 Clone2.1.2 PartialEq 和 Eq2.1.3 PartialOrd 和 Ord2.1.4 Hash2.1.5 From, Into, TryFrom, TryInto 2.2 概念2.2.1 关联类型2.2.2 关联常量2.3.3 泛型关联类型2.3.3.1 示例: 用泛型关联类型, 创建集合工厂…

浙大计算机研究生复试上机考试-2005年畅通工程(考察并查集)

文章目录 并查集知识畅通工程实现代码样例运行结果 并查集知识 畅通工程 题目原地址 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不…