【网络协议详解】——DNS系统协议(学习笔记)

目录

  • 🕒 1. DNS的作用
  • 🕒 2. 域名结构
  • 🕒 3. 域名分类
  • 🕒 4. 域名空间
  • 🕒 5. 域名服务器类型
    • 🕘 5.1 根域名服务器
    • 🕘 5.2 顶级域名服务器
    • 🕘 5.3 权限域名服务器
    • 🕘 5.4 本地域名服务器
  • 🕒 6. 域名解析的过程
    • 🕘 6.1 递归查询(较少使用)
    • 🕘 6.2 迭代查询
    • 🕘 6.3 高速缓存
  • 🕒 7. DNS的报文格式
    • 🕘 7.1 首部
      • 🕤 7.1.1 标识
      • 🕤 7.1.2 标志
      • 🕤 7.1.3 问题记录数
      • 🕤 7.1.4 回答记录数
      • 🕤 7.1.5 授权记录数
      • 🕤 7.1.6 附加记录数
    • 🕘 7.2 问题部分
    • 🕘 7.3 回答部分
    • 🕘 7.4 授权部分
    • 🕘 7.5 附加信息部分
  • 🕒 8. DNS的记录类型
    • 🕘 8.1 问题记录
    • 🕘 8.2 资源记录
  • 🕒 9. 实验:了解DNS的工作机制

🕒 1. DNS的作用

我们通过输入网址来访问网页,可实际上计算机间的通信是通过IP地址,所以网址的本质上是IP地址,将网址与IP地址映射起来就是DNS(Domain Name System)的作用

Q:因特网是否可以只适用一台DNS服务器?
A:这种做法不可取。因为因特网的规模很大,如果只有一个服务器,那么一旦其出现故障,整个因特网就会瘫痪。

因此现实中采用层次结构的命名树作为主机的名字(即域名),并使用分布式的域名系统DNS。

DNS使大多数域名都在本地解析,仅少量解析需要在因特网上通信,因此系统效率很高。由于DNS是分布式系统,即使单个计算机出了故障,也不会妨碍整个系统的正常运行。

🕒 2. 域名结构

  • 因特网采用层次树状结构的域名结构
  • 域名的结构由若干个分量组成,各分量之间用“点”隔开,分别代表不同级别的域名。
    … .三级域名.二级域名.顶级域名
    • 每一级的域名都由英文字母和数字组成,不超过63个字符,不区分大小写字母
    • 级别最低的域名写在最左边,而级别最高的顶级域名写在最右边。
    • 完整的域名不超过255个字符。
  • 域名系统既不规定一个域名需要包含多少个下级域名,也不规定每一级的域名代表什么意思。
  • 各级域名由其上一级的域名管理机构管理,而最高的顶级域名则由因特网名称与数字地址分配机构ICANN进行管理。

举例:仲恺信科院的域名
在这里插入图片描述

🕒 3. 域名分类

顶级域名TLD (Top Level Domain)分为以下三类:

  • 国家顶级域名nTLD:采用ISO 3166的规定。如cn表示中国,us表示美国,uk表示英国……
  • 通用顶级域名gTLD:最常见的通用顶级域名有七个
    • com(公司企业) 、net(网络服务机构)、org (非营利性组织)、int(国际组织)、edu(美国教育结构)、gov(美国政府部门)、mil(美国军事部门)。
  • 反向域arpa:用于反向域名解析,即IP地址反向解析为域名。

在国家顶级域名下注册的二级域名均由该国家自行确定。例如,顶级域名为jp的日本,将其教育和企业机构的二级域名定为ac和co,而不用edu和com。

我国则将二级域名划分为以下两类:

  • 类别域名 共七个: ac(科研机构)、com (工、商、金融等企业)、edu(教育机构)、gov(政府部门)、net(提供网络服务的机构)、mil(军事机构)和org (非营利性组织)。
  • 行政区域名共34个,适用于我国的各省、自治区、直辖市。例如: bj为北京市、sh为上海市、gd为广东省,等等。

注:名称相同的域名其等级未必相同,如.com.cn.com

🕒 4. 域名空间

在这里插入图片描述

这种按等级管理的命名方法便于维护名字的唯一性,并且也容易设计出一种高效的域名查询机制。需要注意的是,域名只是个逻辑概念,并不代表计算机所在的物理地点。

🕒 5. 域名服务器类型

域名和IP地址的映射关系必须保存在域名服务器中,供所有其他应用查询。显然不能将所有信息都储存在一台域名服务器中。DNS使用分布在各地的域名服务器来实现域名到IP地址的转换。

域名服务器可以划分为以下四种不同的类型:

🕘 5.1 根域名服务器

  • 根域名服务器是最高层次的域名服务器。
  • 每个根域名服务器都知道所有的顶级域名服务器的域名及其IP地址。
  • 因特网上共有13个不同IP地址的根域名服务器。尽管我们将这13个根域名服务器中的每一个都视为单个的服务器,但“每台服务器”实际上是由许多分布在世界各地的计算机构成的服务器群集
    • 当本地域名服务器向根域名服务器发出查询请求时,路由器就把查询请求报文转发到离这个DNS客户最近的一个根域名服务器。
    • 这就加快了DNS的查询过程,同时也更合理地利用了因特网的资源。根域名服务器通常并不直接对域名进行解析,而是返回该域名所属顶级域名的顶级域名服务器的IP地址

🕘 5.2 顶级域名服务器

  • 顶级域名服务器负责管理在该顶级域名服务嚣注册的所有二级域名
  • 当收到DNS查询请求时就给出相应的回答(可能是最后的结果,也可能是下一级权限域名服务器的IP地址)。

🕘 5.3 权限域名服务器

  • 权限域名服务器负责管理某个区的域名
  • 每一个主机的域名都必须在某个权限域名服务器处注册登记。因此权限域名服务器知道其管辖的域名与IP地址的映射关系。
  • 另外,权限域名服务器还知道其下级域名服务器的地址。

🕘 5.4 本地域名服务器

  • 本地域名服务器不属于上述的域名服务器的等级结构。
  • 当一个主机发出DNS请求报文时,这个报文就首先被送往该主机的本地域名服务器。
  • 本地域名服务器起着代理的作用,会将该报文转发到上述的域名服务器的等级结构中
  • 每一个因特网服务提供者ISP,一个大学,甚至一个大学里的学院,都可以拥有一个本地域名服务器,它有时也称为默认域名服务器
  • 本地域名服务器离用户较近,一般不超过几个路由器的距离,也有可能就在同一个局域网中。本地域名服务器的IP地址需要直接配置在需要域名解析的主机中。

🕒 6. 域名解析的过程

🕘 6.1 递归查询(较少使用)

在这里插入图片描述

🕘 6.2 迭代查询

在这里插入图片描述
由于递归查询对于被查询的域名服务器负担太大,通常采用以下模式:

  • 从请求主机到本地域名服务器的查询是递归查询;
  • 而其余的查询是迭代查询

🕘 6.3 高速缓存

  • 为了提高DNS的查询效率,并减轻根域名服务器的负荷和减少因特网上的DNS查询报文数量,在域名服务器中广泛地使用了高速缓存。高速缓存用来存放最近查询过的域名以及从何处获得域名映射信息的记录。
    • 由于域名到IP地址的映射关系并不是永久不变,为保持高速缓存中的内容正确,域名服务器应为每项内容设置计时器并删除超过合理时间的项(例如,每个项目只存放两天)。
  • 不但在本地域名服务器中需要高速缓存,在用户主机中也很需要。许多用户主机在启动时从本地域名服务器下载域名和IP地址的全部数据库,维护存放自己最近使用的域名的高速缓存,并且只在从缓存中找不到域名时才向域名服务器查询。同理,主机也需要保持高速缓存中内容的正确性

🕒 7. DNS的报文格式

  • DNS报文使用运输层的UDP协议进行封装,运输层端口号为53

DNS有两种类型的报文,格式如下:

  • 查询报文  首部   问题部分  \begin{array}{|c|} \hline \text { 首部 } \\ \hline \text { 问题部分 } \\ \hline \end{array}  首部  问题部分 

  • 响应报文  首部   问题部分   回答部分   授权部分   附加部分  \begin{array}{|c|} \hline \text { 首部 } \\ \hline \text { 问题部分 } \\ \hline \text { 回答部分 } \\ \hline \text { 授权部分 } \\ \hline \text { 附加部分 } \\ \hline \end{array}  首部  问题部分  回答部分  授权部分  附加部分 

🕘 7.1 首部

首部长度为12字节。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

🕤 7.1.1 标识

标识字段长度16比特,客户使用该字段进行响应与查询的匹配工作。

🕤 7.1.2 标志

标志字段长度16比特,划分为若干子字段。

在这里插入图片描述

  • QR (查询/响应):1位子字段,定义报文类型
  • OpCode(操作码):4位子字段,定义查询或响应的类型
  • AA(授权回答):1位子字段,指示域名服务器是否为权限服务器
  • TC(截断):1位子字段,表示响应已超过512字节并已截断为512字节
  • RD(期望递归):1位子字段,表示客户是否希望得到递归回答
  • RA(递归可用):1位子字段,在响应中置位时,表示可得到递归响应。
  • 保留:3位子字段,目前置为000。
  • rCode(返回码):4位子字段,表示在响应中的差错状态
rCode的取值意义
0无差错
1格式差错
2域名服务器错误
3域参照错误
4查询类型不支持
5管理上禁止
6/15/23保留

🕤 7.1.3 问题记录数

问题记录数字段长度16比特,包含了报文的问题部分中的查询记录数

🕤 7.1.4 回答记录数

回答记录数字段长度16比特,包含了响应报文的回答部分中的回答记录数。在查询报文中值是0。

🕤 7.1.5 授权记录数

授权记录数字段长度16比特,包含了响应报文的授权部分中的授权记录数。在查询报文中值是0。

🕤 7.1.6 附加记录数

附加记录数字段长度16比特,包含了响应报文的附加部分中的附加记录数。在查询报文中值是0。

🕘 7.2 问题部分

  • 问题部分包括了一个或多个问题记录
  • 在查询报文和响应报文中都会出现
  • 其格式和记录的类型有关

在这里插入图片描述

在这里插入图片描述

🕘 7.3 回答部分

  • 回答部分包括了一个或多个资源记录
  • 只在响应报文中出现,内容是从服务器到客户(解析程序)的回答
  • 其格式和记录的类型有关

🕘 7.4 授权部分

  • 授权部分包括了一个或多个资源记录
  • 只在响应报文中出现,为该查询给出一个或多个权限服务器的相关信息(域名)
  • 其格式和记录的类型有关

🕘 7.5 附加信息部分

  • 附加信息部分包括了一个或多个资源记录
  • 只在响应报文中出现。该部分提供了辅助解析程序的附加信息
  • 其格式和记录的类型有关

🕒 8. DNS的记录类型

DNS使用两种类型的记录:

  • 问题记录:查询报文和响应报文的问题部分
  • 资源记录:响应报文的回答、授权和附加信息部分

🕘 8.1 问题记录

问题记录(question record)用于客户获取服务器上的信息。

在这里插入图片描述

  • 查询名字字段为可变长度字段,其中包含域名信息
  • 查询类型字段长度为16比特,定义查询类型。其取值如表所示:
类型助记符说明
1A地址:IPv4地址,用于将域名转换为地址
2NS名字服务器。标志了区域的权限服务器
5CNAME规范名称:定义主机的正式名字的别名
6SOA授权开始。标记一个区域的开始
11WKS熟知服务。定义主机提供的网络服务
12PTR指针:用于将IP地址转换为域名
13HINFO主机信息。指明主机使用的硬件和操作系统
15MX邮件交换。将邮件转发到一个邮件服务器
28AAAA地址:IPv6地址
252AXFR请求传送完整区域文件
255ANY请求所有记录
  • 查询类别字段长度为16比特,定义了使用DNS的特定协议。其取值如表所示:
类型助记符说明
1IN因特网
2CSNETCSNET网络
3CSCOAS网络
4HS由MIT开发的Hesoid服务器

在这里插入图片描述

🕘 8.2 资源记录

  • 每一个域名都与一条资源记录相关联
  • 服务器数据库由许多资源记录组成
  • 资源记录也是服务器向客户所返回的信息。

在这里插入图片描述

  • 域名字段包含了域名的可变长度字段
    • 内容是问题记录中的域名的副本
  • 域类型字段与问题记录的查询类型字段相同
    • 但是查询类型中的最后两个类型不允许使用。
  • 域类别字段与问题记录的查询类别字段相同
  • 生存时间字段长度为32比特,定义了回答的有效期,以为单位。
  • 资源数据长度字段长度为16比特,定义资源数据的长度。
  • 资源数据字段为可变长度字段
    • 包含了对查询的回答
    • 包含了权限服务器的域名
    • 包含了一些附加信息
    • 该字段的格式和内容取决于类型字段的值。

在这里插入图片描述

在这里插入图片描述

🕒 9. 实验:了解DNS的工作机制

实验步骤:
一、打开wireshark开始抓包

在这里插入图片描述

二、在CMD界面输入ipconfig/flushdns,并ping www.baidu.com

在这里插入图片描述

三、在wireshark 显示过滤器设置过滤条件:dns,通过观察数据包分析dns的工作机制

在这里插入图片描述


❗ 转载请注明出处
作者:HinsCoder
博客链接:🔎 作者博客主页

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

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

相关文章

英睿达内存条正品鉴别教程(镁光颗粒)

我们打算买一款二手镁光颗粒的英睿达内存条,需要从正面内存标签上的条形码、字串,从背面颗粒上的两行字符一一分析、检查、鉴别,最终确认是否正品,以及内存条等级如何。通过本片文章,您能学会如何进行镁光颗粒的英睿达内存条正品鉴别。 一、标签检查 首先,用百度条形码…

[数据集][目标检测]目标检测数据集大白菜数据集VOC格式1557张

数据集格式:Pascal VOC格式(不包含分割路径的txt文件和yolo格式的txt文件,仅仅包含jpg图片和对应的xml) 图片数量(jpg文件个数):1557 标注数量(xml文件个数):1557 标注类别数:1 标注类别名称:["cabbage"] 每…

mysql查询语句执行过程及运行原理命令

Mysql查询语句执行原理 数据库查询语句如何执行? DML语句首先进行语法分析,对使用sql表示的查询进行语法分析,生成查询语法分析树。语义检查:检查sql中所涉及的对象以及是否在数据库中存在,用户是否具有操作权限等视…

Spring Boot 数据库操作Druid和HikariDataSource

目录 Spring Boot 数据库操作 应用实例-需求 创建测试数据库和表 进行数据库开发, 在pom.xml 引入data-jdbc starter 参考官方文档 需要在pom.xml 指定导入数据库驱动 在application.yml 配置操作数据源的信息 创建bean\Furn.java 测试结果 整合Druid 到…

编码,Part 1:ASCII、汉字及 Unicode 标准

个人博客 编码的历史由来就懒得介绍了,只需要知道人类处理文本信息是以字符为基本单位,而计算机在最底层只认识 0/1,所以当计算机要为人类存储/呈现字符时,就需要有一个规则,在字符和 0/1 序列之间建立映射关系&#…

Java经典笔试题—day14

Java经典笔试题—day14 🔎选择题🔎编程题🍭计算日期到天数转换🍭幸运的袋子 🔎结尾 🔎选择题 (1)定义学生、教师和课程的关系模式 S (S#,Sn,Sd,Dc,SA )(其属性分别为学号、姓名、所…

网络通信IO模型上

计算机组成 计算机由软件和硬件组成,软件包括CPU、内存等,硬件包括主板,磁盘,IO设备(网卡、鼠标、键盘等)、电源按钮。 内核程序加载过程 当接通电源的时候1、BIOS就会把它的一段代码放入了内存当中&#…

压缩感知重构算法之正交匹配追踪算法(OMP)

算法的重构是压缩感知中重要的一步,是压缩感知的关键之处。因为重构算法关系着信号能否精确重建,国内外的研究学者致力于压缩感知的信号重建,并且取得了很大的进展,提出了很多的重构算法,每种算法都各有自己的优缺点&a…

C语言---初识指针

1、指针是什么 指针是什么? 指针理解的2个要点: ​ 1、指针是内存中一个最小单元的编号,也就是地址。 ​ 2、平时口语中说的指针,通常指的是指针变量,是用来存放内存地址的变量 总结:指针就是地址&#xff…

Kali-linux Arpspoof工具

Arpspoof是一个非常好的ARP欺骗的源代码程序。它的运行不会影响整个网络的通信,该工具通过替换传输中的数据从而达到对目标的欺骗。本节将介绍Arpspoof工具的 使用。 9.8.1 URL流量操纵攻击 URL流量操作非常类似于中间人攻击,通过目标主机将路由流量注…

Sentinel的另外三种流控模式(附代码详细介绍)

前言:大家好,我是小威,24届毕业生,在一家满意的公司实习。本篇文章将详细介绍Sentinel的其他三种流控模式,后续文章将详细介绍Sentinel的其他知识。 如果文章有什么需要改进的地方还请大佬不吝赐教👏&#…

vue面试题汇总

HTML篇CSS篇JS篇TypeScript篇前端面试题汇总大全(含答案超详细,HTML,JS,CSS汇总篇)-- 持续更新前端面试题汇总大全二(含答案超详细,Vue,TypeScript,React,Webpack 汇总篇&#xff09…

04_Cenos安装Docker

docker安装文档: ubuntu:https://docs.docker.com/engine/install/ubuntu/ centos:https://docs.docker.com/engine/install/centos/ debian:https://docs.docker.com/engine/install/debian/ cenos安装Docker前提: 必…

数据结构(C语言):顺序循环队列的基本操作

一、题目 设队列的元素类型为char,实现顺序循环队列的各种基本操作的程序: ① 初始化队列Q; ② 判断队列Q是否为空; ③ 入队操作。循环调用入队操作,将若干元素(不少于10个)入队&#xff1b…

优化带排序的分页查询

优化带排序的分页查询 浅分页: select user_no,user_name,socre from student order by score desc limit 5,20 深分页: select user_no,user_name,socre from student order by score desc limit 80000,20 因为偏移量深分页更大,所以深分页执…

【软件】无联网情况下安装Win11 / 华为电脑更换Win11系统后触摸屏、声卡失效物理解决方案

一、提前备份好电脑驱动(华为电脑更换Win11系统后触摸屏、声卡失效物理解决方案) 1.电脑驱动备份方法: 1)通过管理员身份打开命令提示符。 2)输入命令:dism /online /export-driver /destination:"D…

聊聊Go语言的控制语句

在高级编程语言中,控制流语句(control-flow statement)是一类用于控制程序执行流程的语句,以下简称为控制语句。它们可以根据条件或循环执行相应的代码块,或者跳转到指定位置执行代码。 常见的控制语句包括: 条件语句:…

10. python字典

文章目录 一、什么是字典二、访问键-值对三、添加、修改键-值对四、删除键-值对4.1 语句del4.2 方法pop() 五、创建空字典六、遍历字典6.1方法items()6.2方法keys()6.3方法values() 七、嵌套7.1 字典列表7.2 在字典中存储列表7.3 在字典中存储字典 一、什么是字典 #创建一个字…

电商服务智能解决方案

互联网时代,智能客服已成为电商企业客户服务、管理和运营的标配。面临大量客户咨询、订单流程等业务,传统人工客服工作时间有限、人员流动性大、人工成本持续上涨等,已经无法满足电商企业“数智化”转型的需求,这也促使AI成为电商…

SpringSecurity入门

简介 官网地址:https://spring.io/projects/spring-security#overview Spring家族当中,一个安全管理框架 Shiro也是一个安全框架,提供了很多安全功能。Shiro比较老,旧的项目当中,可能还在使用。上手还挺简单 在新项…