【计算机网络笔记四】应用层(一)DNS域名解析

news2024/12/24 8:20:54

因特网的域名空间是一棵倒着生长的树,各级域名由其上一级域名管理机构管理

在这里插入图片描述

这种按等级管理的命名方法便于维护名字的唯一性,并且容易设计出一种高效的域名查询机制。

注意:域名只是个逻辑概念,并不代表计算机所在的物理地点

域名分区管理

根域名服务器通常并不直接对域名进行解析,而是返回该域名所属顶级域名的顶级域名服务器的 IP 地址。

在这里插入图片描述

DNS 顶级域名服务器

在这里插入图片描述

一个顶级域名下会有非常多的子域名,一台 DNS 服务器根本存储不下这些域名及其 IP 的映射关系。采用划分区的办法,一台 DNS 服务器负责管辖的范围叫做,管理一个区的 DNS 服务器称为权限域名服务器

DNS 权限域名服务器

在这里插入图片描述

每个区都有一个域名服务器,称为权限域名服务器,也有叫“权威域名服务器”的。

树状结构的 DNS 域名服务器

在这里插入图片描述

在这里插入图片描述

根域名服务器是最高层次的域名服务器,也是最重要的域名服务器,根域名服务器都知道所有的顶级域名服务器的 IP 地址。

在这里插入图片描述

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

在这里插入图片描述

当一个权限域名服务器还不能给出最后的查询回答时,就会告诉发出查询请求的 DNS 客户,下一步应当找哪一个权限域名服务器。

本地域名服务器

本地域名服务器并不属于域名服务器层次结构。

在这里插入图片描述

当一个主机发出 DNS 查询请求时,这个查询请求报文就发送给本地域名服务器。

域名的解析过程

递归查询

递归查询:如果主机所询问的本地域名服务器不知道被查询域名的 IP 地址,那么本地域名服务器就以 DNS 客户的身份,向其他根域名服务器继续发出查询请求报文(即替该主机继续查询)

在这里插入图片描述

  • 主机向本地域名服务器的查询一般都是采用递归查询

  • 本地域名服务器向根域名服务器的查询通常是采用迭代查询

迭代查询

在这里插入图片描述

  • ① 主机先向其本地域名服务器进行递归查询。
  • ② 本地域名服务器采用迭代查询。它先向根域名服务器查询。
  • ③ 根域名服务器告诉本地域名服务器,下一次应查询的 com 顶级域名服务器的 IP 地址。
  • ④ 本地域名服务器向 com 顶级域名服务器进行查询。
  • ⑤ 顶级域名服务器告诉本地域名服务器,下一次应查询的权限域名服务器的 IP 地址。
  • ⑥ 本地域名服务器向权限域名服务器进行查询
  • ⑦ 权限域名服务器告诉本地域名服务器,所查询的主机的 IP 地址。
  • ⑧ 本地域名服务器最后把查询结果告诉主机

在这里插入图片描述

DNS 进程的请求在传输层使用 UDP 协议,默认端口号是 53 (熟知端口号),以上 8 个步骤总共需要使用 8 个 UDP 用户数据报的报文。

DNS 缓存

域名到 IP 的映射关系一般不经常变,所以我们可以使用缓存来优化 DNS 查询性能。

在这里插入图片描述

缓存可以减少根域名服务器的负荷,减少因特网上 DNS 查询报文的数量。

缓存中的每个项目也必须要有生命周期的,因为域名到 IP 的映射关系是会变的,比如可以 10 分钟清除下缓存,去拿取最新的域名映射的 IP。

主机中的 DNS 缓存

不但在本地域名服务器中需要缓存,在主机中也很需要。

许多主机在启动时从本地域名服务器下载名字和地址的全部数据库,维护存放自己最近使用的域名的缓存中,并且只在从缓存中找不到名字时才使用域名服务器。

维护本地域名服务器数据库的主机,应该定期地检查域名服务器以获取新的映射信息,而且主机必须从缓存中删掉无效的项。

由于域名改动并不频繁,大多数网点不需花太多精力就能维护数据库的一致性。

总结

  • 根域名服务器:是最高层次的域名服务器,根域名服务器都知道所有顶级域名服务器的 IP 地址, 根域名服务器通常不直接对域名解析,而是返回该域名所属的顶级域名服务器的 IP 地址

  • 顶级域名服务器:管理所有在该顶级域名服务器注册的二级域名,收到 DNS 请求时,可能返回解析结果也可能返回某个权限域名服务器的 IP 地址

  • 权限域名服务器:管理顶级域名下的不同划分区的域名映射,当一个权限域名服务器还不能给出最终结果时,会告诉客户端下一步应该找哪一个权限域名服务器

  • 本地域名服务器:本地服务器不属于域名服务器的层次结构,但是它对域名系统非常重要。当一个主机发出 DNS 请求时,请求报文就先发送给本地域名服务器。

域名解析过程:

  • 主机向本地域名服务器的查询一般都是采用递归查询。所谓递归查询就是:如果主机所询问的本地域名服务器不知道被查询的域名的 IP 地址,那么本地域名服务器就以 DNS 客户的身份,继续向其它根域名服务器发出查询请求报文(即替主机继续查询)。因此,递归查询返回的查询结果或者是所要查询的 IP 地址,或者是报错,表示无法查询到所需的 IP 地址。

  • 本地域名服务器向根域名服务器的查询通常采用迭代查询。迭代查询的特点:当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的 IP 地址,要么告诉本地服务器:“你下一步应当向哪一个域名服务器进行查询”,然后让本地服务器进行后续的查询。

一次域名查询请求的基本流程:

  1. 主机向本地域名服务器进行递归查询
  2. 本地域名服务器向根域名服务器进行迭代查询
  3. 根域名服务器告诉本地域名服务器,下一步要查询的顶级域名服务器的 IP 地址
  4. 本地域名服务器向顶级域名服务器查询
  5. 顶级域名服务器要么返回查询的 IP 地址,要么返回下一步要查询的权限域名服务器的 IP 地址
  6. 本地域名服务器向权限域名服务器进行查询
  7. 权限域名服务器要么返回查询的 IP 地址,要么返回下一步要查询的权限域名服务器的 IP 地址
  8. 本地域名服务器最后把查询结果返回给主机

DNS请求在传输层使用 UDP 协议,以上 8 步需要使用 8 个UDP报文。

DNS缓存:在主机以及本地域名服务器中都有域名缓存,当缓存命中时,直接读取缓存的结果,否则才真正的向根服务器发出 DNS 请求报文。

Android 可以在 ApplicationonCreate()方法中设置 DNS 缓存的时间,通过设置系统属性值"networkaddress.cache.ttl"来实现。

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

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

相关文章

10.mysql系统配置与启动选项

title: “mysql系统配置与启动选项” createTime: 2022-03-06T15:52:4108:00 updateTime: 2022-03-06T15:52:4108:00 draft: false author: “ggball” tags: [“mysql”] categories: [“db”] description: “” 启动选项与系统变量 启动选项 长格式与短格式 在执行启动脚…

el-tree实现表格方式菜单

<template><div class"table"><!-- default-expand-all 默认展开全部数据 --><!-- expand-on-click-node 只有点击箭头才会收缩节点 --><!-- check-on-click-node 点击文本选中 --><!-- show-checkbox 复选框 --><div class&…

Mybatis-分页插件

Mybatis-分页插件 前言一、分页插件的使用步骤1.添加依赖2.配置分页插件3. 分页插件的使用 前言 可以通过分页插件在实现以下前端样式时更加方便&#xff1a; 首页 上一页 2 3 4 5 6 下一页 末页 limit index,pageSize pageSize&#xff1a;每页显示的条数 pageNum&#xff…

TVP 专家谈腾讯云 Cloud Studio:开启云端开发新篇章

点击链接了解详情 导语 | 近日&#xff0c;由腾讯云 TVP 团队倾力打造的TVP 吐槽大会第六期「腾讯云 Cloud Studio专场圆满落幕&#xff0c;6 位资深的 TVP 专家深度体验腾讯云 Cloud Studio 产品&#xff0c;提出了直击痛点的意见与建议&#xff0c;同时也充分肯定了腾讯云 Cl…

虚拟机桥接模式下没有无线网卡选项

我以为是雷电模拟器占用了网卡的缘故&#xff0c;但想起之前可能修改了无线网卡的某些内容&#xff0c;于是到网络属性里面查看。 如下所示&#xff0c;原来是之前我不小心把这个红箭头指向的项目取消勾选了。

【数据结构】B树、B+树的知识点学习总结

目录 1、B树 1.1 定义 1.2 特性 1.3 查找操作 1.4 插入操作 1.5 删除操作 2、B树 2.1 定义 2.2 特性 3、B树与B树的对比 1、B树 1.1 定义 B树是一种平衡树数据结构&#xff0c;用于存储和访问大量数据。B树的每个节点可以存储多个键值&#xff0c;节点中的键值按照…

虚幻4学习笔记(15)读档 和存档 的实现

虚幻4学习笔记 读档存档 B站UP谌嘉诚课程&#xff1a;https://www.bilibili.com/video/BV164411Y732 读档 添加UI蓝图 SaveGame_UMG 添加Scroll Box 修改Scrollbar Thickness滚动条厚度 15 15 勾选 is variable 添加text 读档界面 添加背景模糊 添加UI蓝图 SaveGame_Slot …

Linux初识+环境部署

文章目录 版权声明Linux初识Linux的诞生Linux内核Linux发行版 环境部署vmcentosWSL-Ubuntu 版权声明 本博客的内容基于我个人学习黑马程序员课程的学习笔记整理而成。我特此声明&#xff0c;所有版权属于黑马程序员或相关权利人所有。本博客的目的仅为个人学习和交流之用&…

100天精通Python(可视化篇)——第102天:Pyecharts绘制多种炫酷关系网图参数说明+代码实战

文章目录 专栏导读一、关系网图介绍1. 关系网图是什么&#xff1f;2. 关系网图的应用场景 二、关系网图类配置选项1. 导包2. add函数3. 关系网络图的节点4. 关系网络图的边5. 节点分类的类目 三、关系网图实战1. 普通关系网图2. 复杂关系网图3. 带边信息的关系网络图4. 微博转发…

2023 年解锁物联网端点安全

物联网 (IoT) 和端点安全的融合已成为小型企业的关键焦点。这些企业正在努力保护其数字环境。物联网的集成彻底改变了运营流程。通过这样做&#xff0c;它们为创新和增长提供了前所未有的机会。然而&#xff0c;它也带来了无数的安全挑战&#xff0c;需要采取强有力的保护措施。…

(一)NIO 基础

&#xff08;一&#xff09;NIO 基础 non-blocking io&#xff1a;非阻塞 IO 1、三大组件 1.1、Channel & Buffer Java NIO系统的核心在于&#xff1a;通道&#xff08;Channel&#xff09;和缓冲&#xff08;Buffer&#xff09;。通道表示打开到 IO 设备&#xff08;例…

开关电源-交流220V降压电路-电阻电容降压原理

阻容降压原理 电容电阻降压的原理其实比较简单。它的工作原理是电容在交流信号的情况下&#xff0c;产生容抗来限制最大的工作电流。说白了就是电容使用它自己的通交流阻直流的性能&#xff0c;在交流信号输入时电容产生容抗。我们通过他的这个特性&#xff0c;可以设计出&…

Java基础(一)——Hello World,8种数据类型,键盘录入

个人简介 &#x1f440;个人主页&#xff1a; 前端杂货铺 &#x1f64b;‍♂️学习方向&#xff1a; 主攻前端方向&#xff0c;正逐渐往全干发展 &#x1f4c3;个人状态&#xff1a; 研发工程师&#xff0c;现效力于中国工业软件事业 &#x1f680;人生格言&#xff1a; 积跬步…

腾讯mini项目-【指标监控服务重构-会议记录】2023-07-21

2023-07-21 组长会议纪要 A组 文档学习差不多&#xff0c;还没掌握如何使用sdk进行上报venus启动服务的3个ToDo 添加什么错误处理 ErrHandler &#xff1a; fiber的错误处理&#xff0c;是运行过程Handler中的错误&#xff0c;在全局的ErrHandler&#xff0c;进行错误处理&am…

APP备案公钥,指纹获取

APP备案公钥&#xff0c;指纹获取 下载已有的apk&#xff0c;文件后缀名改为zip 2&#xff0c;找到META-INF文件夹&#xff0c;然后再找到文件CERT.RSA 后缀改名为CERT.p7b 3&#xff0c;双击后&#xff1a; 4&#xff0c;双击右侧证书点开&#xff1a;显示颁发给。 5&#xf…

Unity引擎更新收费模式:从收入分成转向游戏安装量,将会有哪些影响呢

一、前言 Unity 引擎宣布自 2024 年 1 月 1 日起&#xff0c;将根据游戏安装量对开发者进行收费。官网通知如下 收费模式如图 这张图的大致意思就是&#xff0c; 从2024年1月1日开始&#xff0c;Unity将对所有达标的用户&#xff08;开发者&#xff09;根据游戏安装量征收“安…

游戏扫码登录+多功能工具箱 微信小程序源码

一个集合了多种实用功能的微信小程序&#xff0c;这个微信小程序源码不仅具备美观的界面设计&#xff0c;还拥有许多实用的功能&#xff0c;而且最重要的是&#xff0c;它无需服务器和域名&#xff0c;所有功能都无需API接口&#xff0c;因此不用担心功能失效的问题。这意味着&…

移除元素【快慢指针】

移除元素 给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素&#xff0c;并返回移除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出新…

刷题Day1

目录 一、选择题二、编程题2.1 组队竞赛2.2 删除公共字符 一、选择题 二、编程题 2.1 组队竞赛 参考代码&#xff1a; #include <queue>int main() {priority_queue<int> pq;int n0;cin>>n;int tmp0;for(size_t i0;i<3*n;i){cin>>tmp;pq.push(tmp…

YOLOv5、YOLOv8改进:Swin Transformer-V2

1.介绍 论文地址&#xff1a;https://arxiv.org/abs/2111.09883 综述 该论文作者提出了缩放 Swin Transformer 的技术 多达 30 亿个参数&#xff0c;使其能够使用多达 1,536 个图像进行训练1,536 分辨率。通过扩大容量和分辨率&#xff0c;Swin Transformer 在四个具有代表性…