6.2.1 网络基本服务---域名解析系统DNS
6.2.1 网络基本服务—域名解析系统DNS
因特网是需要提供一些最基本的服务的,今天我们就来讨论一下这些基本的服务。
- 域名系统(DNS)
- 远程登录(Telnet)
- 文件传输协议(FTP)
- 动态主机配置协议(DHCP)
- 电子邮件系统(E-mail)
- 万维网(www)
一、域名系统(DNS)
因特网中IP单播地址标识主机的网络连接,组播地址则是标识一组主机,主机间的通信必定会使用IP地址,但是我们也知道IPv4地址使用点分十进制表示,相对比较难于记忆,因此对于服务器主机,除了分配IP地址还会为其指定域名,这样一来访问服务器时就不用给出他的IP地址了,而只需要给出服务器的域名,但客户机与服务器通信过程中仍然使用IP地址,此时需要解决的问题就是域名和IP地址之间如何关联,又是谁来维护?这里就是我们所说的域名系统。
域名系统是因特网使用的命名系统,完成域名解析,将域名解析到特定的IP地址。
域名系统可以看做是因特网的电话簿,维护名址映射,也就是域名与IP地址之间的映射,并且提供域名解析,将方便记忆的计算机主机域名转化为IP地址。
DNS采用客户/服务器应用模式,其核心是分级的、基于域的命名机制以及实现该命名机制的分布式数据库系统。
域名解析是由若干个域名服务器程序完成的。域名服务器程序在专设的节点上运行,运行该程序的节点称为域名服务器。
(一)因特网的域名结构
-
因特网采用了层次树状结构的命名方法。
-
任何一个连接在因特网上的主机或路由器,都有一个惟一的层次结构的名字,即域名。
-
域名的结构由若干个分量组成,各分量之间用点隔开,从右至左依次是顶级域名、二级域名、三级域名
.... .三级域名.二级域名.顶级域名-
顶级域名(Top Level Domain,TLD),有两个域名管理相关机构,一个是iana,互联网编号分配机构,它监督全球IP地址分配,自治系统分配,域名系统中根区的管理、媒体类型和其他Internet协议相关的符号和号码。另一个是成立较晚1998年10月才成立的承担域名系统管理,IP地址分配,协议参数配置等职能的非营利性机构ICANN,到2015年IANA和ICANN确定的顶级域名有
-
技术设施顶级域名(infrastructure top-level domain):.arpa(Address and Routing Parameter Area),以前是int,2000年5月规定改为arpa,.int表示国际组织
-
通用顶级域名(generic top-level domains,gTLD):有三个或更多的字符,最早的通用顶级域名是:
.com表示公司企业 .net 表示网络服务机构 .org 表示非营利性组织 .edu 表示教育机构(美国专用) .gov 表示政府部门专用(美国专用) .mil 表示军事部门(美国专用) -
国家代码顶级域名(country-code top-level domains,ccTLD):两个字母的域表示国家或地区,.cn表示中国,.us表示美国,.uk表示英国等。
-
ICANN在2000年11月宣布了7个新的通用顶级域名
.aero 用于航空运输企业 .biz 用于公司和企业 .coop 用于合作团体 .Info 适用于各种情况 .museum 用于博物馆 .name 用于个人 .pro 用于会计、律师和医师等自由职业者
-
-
因特网的名字空间
因特网的名字空间是分层的,像一棵倒置的树,树叶是高级别的域名,与树根相连的是顶级域名,比如清华大学的邮件服务器域名是mail.qinghua.edu.cn,而CCTV的邮件服务器域名是mail.cctv.com
-
-
各分量分别代表不同级别的域名
二、域名服务器部署
域名服务器分为根域名服务器和授权域名服务器,作为主机默认域名服务器的本地授权服务器也称为本地域名服务器,因特网域名系统分层命名空间中顶级域名管辖区是DNS根区,DNS根区有13个根服务器组成的群来提供服务,其中十个根服务器在美国,两个在欧洲,一个在亚洲,根服务器负责对因特网顶级域名的查询。因此每次的域名解析要么起始于向根域名服务器的查询,要么使用曾经从根域名服务器获得的信息。DNS根区也称为DNS根域,DNS根域没有名字,在DNS分层体系中它的标签是一个空串,根域包含因特网所有顶级域名,截止2015年7月,根域包含1058个顶级域名,其中包括730个通用顶级域名,301个国家代码顶级域名,根服务器使用根区文件回答对顶级域名的查询,返回顶级域名授权服务器的IP地址,或返回顶级域名不存在的指示。2004年12月1058个顶级域名由773个不同的DNS授权服务器,每个管辖区都有一个或多个授权域名服务器,。
三、域名解析过程
因特网允许各单位根据具体情况将本单位的域名划分为若干个域名服务器管辖区(zone),并在各管辖区中设置相应的授权域名服务器。
当一个主机需要解析域名时使用域名解析器软件,DNS客户执行查找,该解析器将名字分解为从右至左的标签,向根服务器查询第一个标签,以及顶级域名,获得相应负责的授权服务器的IP地址,对从右到左的标签,分别进行查询,依次返回更具体的域名服务器的IP地址,直到一个域名服务器返回原始查询的答案,用户应用程序中的DNS解析器,而专门的DNS应用服务器通常实现递归解析器,也就是说有两种解析器,事实上大多数信息在一段时间内不会经常进行改变,因此相关信息会被中间域名服务器缓存或被用户应用程序内置的名字缓存区缓存,因此到根域名服务器的DNS查找相对较少。如图

图中有顶级域名com的授权域名服务器,二级域名的abc.com授权服务器,三级域名y.abc.com授权服务器,这里没有列出根域名服务器,这里我们通过这个示例了解一下域名解析过程,这里给出的是递归查询。
如图

图中有顶级域名服务器,.com授权域名服务器,二级域名的abc.com授权服务器,三级域名y.abc.com授权服务器,xyz.com管辖区的授权服务器,假设各个本地域名服务器已经保存了从根服务器返回的顶级域名授权服务器的IP地址,现在m.xyz.com主机要解析t.y.abc.com的IP地址是什么
- 首先主机要向本地域名服务器发送询问,该服务器无法解析其他管辖区的域名
- 向.com顶级域名服务器发送询问,.com域名服务器也无法解析域名,但他知道问谁更合适
- .com顶级域名服务器将询问转发给abc.com管辖区的授权服务器
- 由abc.com授权服务器转发给y.abc.com的授权服务器,该服务器会返回答案,最终答案也就是t.y.abc.com的IP地址。
- 把答案逐级转到m.xyz.com主机的本地域名服务器,由其返回给m.xyz.com主机。
除了递归查询还有迭代查询,迭代查询方法中,客户将询问一系列的DNS服务器,每个服务器将引导客户到该系列DNS服务器中的下一个直到有一个服务器能够完全解决请求,如对www.example.com可能得解析过程是先询问根服务器,然后询问.com授权域名服务器,最后询问.example.com授权域名服务器。如图是一个迭代域递归相结合的查询。问题也是m.xyz.com主机要解析t.y.abc.com的IP地址是什么。

- 主机向本地域名服务器发送询问
- xyz.com区的授权服务器中的DNS解析器采用迭代查询方式,查询根域名服务器
- 根域名服务器返回.com服务器的IP地址
- xyz.com区的服务器中的DNS解析器采用递归查询方式,询问.com服务器
- .com服务器询问.abc.com服务器
- abc.com服务器再询问y.abc.com服务器
- 而y.abc.com服务器知道m.xyz.com的IP地址,于是将解析结果返回给abc.com服务器
- abc.com服务器将解析结果返回给.com服务器。
- .com服务器再将解析结果返回给xyz.com服务器
- xyz.com服务器将域名t.y.abc.com的IP地址返回给发起询问的主机。
相关文章:
6.2.1 网络基本服务---域名解析系统DNS
6.2.1 网络基本服务—域名解析系统DNS 因特网是需要提供一些最基本的服务的,今天我们就来讨论一下这些基本的服务。 域名系统(DNS)远程登录(Telnet)文件传输协议(FTP)动态主机配置协议&#x…...
通用文字识别OCR 之实现自动化办公
摘要 随着技术的发展,通用文字识别(OCR)已经成为现代办公环境中不可或缺的工具之一。OCR技术可以将印刷或手写文本转换为可编辑或可搜索的数字文本,极大地提高了办公效率并实现了自动化办公。本文将深入探讨OCR技术在实现自动化办…...
Spring Boot 有哪些特点?
目录 一、自动配置 二、嵌入式 Tomcat Web 服务器 三、入门 POM 四、Actuator执行器 API 五、SpringBoot初始化器 一、自动配置 Spring Boot的自动配置是Spring Boot框架提供的一种功能,它可以根据用程序的依赖和配置信息,自动配置一些常见的功能模…...
10个图像处理的Python库
在这篇文章中,我们将整理计算机视觉项目中常用的Python库,如果你想进入计算机视觉领域,可以先了解下本文介绍的库,这会对你的工作很有帮助。 1、PIL/Pillow Pillow是一个通用且用户友好的Python库,提供了丰富的函数集…...
项目里不引入外网链接的解决方法
在写轮播的时候,引入了这个外网的资源是不对的 解决方法: 去外网上把文件下载下来,放在src文件夹下即可 在下面路径下引入下载的文件即可...
Java的jdk配置成功,但是输入java -version等,命令行没有任何反应
问题:现在有很多学生出现这种情况, Java的jdk配置成功,但是输入java -version等,命令行没有任何反应 Java下载后,手动配置环境变量,并且配置好,但是在命令行中无论输入java的什么都没有反应 问…...
MySQL select查询练习
一、创表并插入数据 创表: CREATE TABLE worker (部门号 int NOT NULL,职工号 int NOT NULL,工作时间 date NOT NULL,工资 float(8,2) NOT NULL,政治面貌 varchar(10) NOT NULL DEFAULT 群众,姓名 varchar(20) NOT NULL,出生日期 date NOT NULL,性别 char(1) DEFAU…...
Github 标星 60K,不愧是阿里巴巴内部出厂的“Java 核心面试神技”
前言 作为一个 Java 程序员,你平时总是陷在业务开发里,每天噼里啪啦忙敲着代码,上到系统开发,下到 Bug 修改,你感觉自己无所不能。然而偶尔的一次聚会,你听说和自己一起出道的同学早已经年薪 50 万&#x…...
git 使用教程
git 使用手册 参考链接: https://blog.csdn.net/wanjun_007/article/details/126770712 git给远程仓库添加分支并上传文件 注意:git init 是建一个自己的本地仓 0 : 先git clone master 分支 1. 先pull master分支 2. git checkout -b &q…...
【Vue2.0源码学习】模板编译篇-模板解析阶段(HTML解析器)
文章目录 1. 前言2. HTML解析器内部运行流程3. 如何解析不同的内容3.1 解析HTML注释3.2 解析条件注释3.3 解析DOCTYPE3.4 解析开始标签3.5 解析结束标签3.6 解析文本 4. 如何保证AST节点层级关系5. 回归源码5.1 HTML解析器源码5.2 parseEndTag函数源码 6. 总结 1. 前言 上篇文…...
ARM裸机开发-串口通信
一、在使用EXYNOS4412的串口发送和接收的时候,首先要对EXYNOS4412的串口进行配置,我们使用轮询方式时的配置有哪些? 1、配置GPIO,使对应管脚作为串口的发送和接收管脚 GPA0CON寄存器[7:4][3:0] 0x22 GPA0PUD寄存器[3:0] 0 禁止上…...
Dubbo分布式服务框架,springboot+dubbo+zookeeper
一Dubbo的简易介绍 1.Dubbo是什么? Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。 简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需…...
网络:UDP out of order;SIP;CPU out-of-order 执行
文章目录 问题SIP如果使用UDP出现乱序网络CPU问题 最近遇到虚拟机收到的UDP包发生乱序。从协议上说,这个乱序是标准,及特性所允许的,期望的。所以上层应用需要适应这种乱序,如果不能适应,可能需要做协议转换,专用TCP,让TCP来处理这种乱序的可能。 产生乱序的原因: 是网…...
我心中的TOP1编程语言—JavaScript
作为一名研发工程师(程序员),平时工作中肯定会接触或了解很多编程语言。每个人都会有自己工作中常用的语言,也会有偏爱的一些编程语言。而我心中的最爱,毫无疑问,就是 JavaScript。 JavaScript 是一门编程…...
CentOS环境下的Maven安装
CentOS 安装 Maven 镜像地址 镜像地址:https://mirrors.tuna.tsinghua.edu.cn/apache/maven/ 下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.8.8/binaries/ 下载maven 将下载好的压缩包拷贝到根目录下 解压 tar -zxvf ap…...
表的增删改查
1、创建表 mysql> create table employee ( -> id int(1) comment 员工编号, -> name varchar(6) comment 员工名字, -> gender varchar(2) comment 员工性别, -> salary int (4) comment 员工薪资); Query OK, 0 rows affected (0.01 sec) 2、…...
Tauri 应用中发送 http 请求
最近基于 Tauri 和 React 开发一个用于 http/https 接口测试的工具 Get Tools,其中使用了 tauri 提供的 fetch API,在开发调试过程中遇到了一些权限和参数问题,在此记录下来。 权限配置 在 tauri 应用中,如果想要使用 http 或 fe…...
基于霍夫变换的航迹起始算法研究(Matlab代码实现)
目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨💻4 Matlab代码 💥1 概述 一、设计内容 利用Hough变换处理量测得到的含杂波的二维坐标,解决多目标航迹起始问题。使用Matlab进行仿真&#x…...
如何使用Excel公式将(d:1,a:4,c:2,b:3)快速分割成8列并按顺序排列
Excel是一款功能强大的电子表格软件,可以帮助我们处理各种数据。在处理数据时,有时候需要将一列数据按照特定的格式进行分割和重新排列。本文将介绍如何使用Excel公式将"(d:1,a:4,c:2,b:3)"快速分割成8列,并按照指定顺序排列为&quo…...
遥控泊车系统技术规范
目 录 1. 版本履历... 3 2. 文档使用范围... 3 3. 术语缩写... 3 4. 系统架构... 4 5. 功能需求... 4 5.1 功能清单... 4 6.2 功能关系描述(如有)... 4 5.3 功能1. 4 5.3.1 功能总体状态动态说…...
大型活动交通拥堵治理的视觉算法应用
大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动(如演唱会、马拉松赛事、高考中考等)期间,城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例,暖城商圈曾因观众集中离场导致周边…...
(二)TensorRT-LLM | 模型导出(v0.20.0rc3)
0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...
视频字幕质量评估的大规模细粒度基准
大家读完觉得有帮助记得关注和点赞!!! 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用,因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型(VLMs)在字幕生成方面…...
uniapp中使用aixos 报错
问题: 在uniapp中使用aixos,运行后报如下错误: AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...
Springboot社区养老保险系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,社区养老保险系统小程序被用户普遍使用,为方…...
LLMs 系列实操科普(1)
写在前面: 本期内容我们继续 Andrej Karpathy 的《How I use LLMs》讲座内容,原视频时长 ~130 分钟,以实操演示主流的一些 LLMs 的使用,由于涉及到实操,实际上并不适合以文字整理,但还是决定尽量整理一份笔…...
在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)
考察一般的三次多项式,以r为参数: p[z_, r_] : z^3 (r - 1) z - r; roots[r_] : z /. Solve[p[z, r] 0, z]; 此多项式的根为: 尽管看起来这个多项式是特殊的,其实一般的三次多项式都是可以通过线性变换化为这个形式…...
STM32HAL库USART源代码解析及应用
STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...
淘宝扭蛋机小程序系统开发:打造互动性强的购物平台
淘宝扭蛋机小程序系统的开发,旨在打造一个互动性强的购物平台,让用户在购物的同时,能够享受到更多的乐趣和惊喜。 淘宝扭蛋机小程序系统拥有丰富的互动功能。用户可以通过虚拟摇杆操作扭蛋机,实现旋转、抽拉等动作,增…...
论文阅读笔记——Muffin: Testing Deep Learning Libraries via Neural Architecture Fuzzing
Muffin 论文 现有方法 CRADLE 和 LEMON,依赖模型推理阶段输出进行差分测试,但在训练阶段是不可行的,因为训练阶段直到最后才有固定输出,中间过程是不断变化的。API 库覆盖低,因为各个 API 都是在各种具体场景下使用。…...
