【HarmonyOs学习日志(14)】计算机网络之域名系统DNS

news2024/12/24 4:13:45

域名系统DNS

域名系统DNS——从域名解析出IP地址

文章目录

    • 域名系统DNS
      • 概述
        • 域名到IP地址的解析
      • 互联网的域名结构
        • 命名标准
      • 域名服务器
        • 域名的解析过程

概述

域名系统DNS(Domain Name System)是互联网使用的命名系统,用来把便于人们使用的机器名字转换为IP地址。

互联网的域名系统DNS被设计为一个联机分布式数据库系统,并采用客户服务器方式。DNS使大多数名字都在本地进行解析,仅少量解析需要在互联网上通信,因此DNS系统的效率很高。由于DNS是分布式系统,即使单个计算机出了故障了,也不会妨碍整个DNS系统的正常运行。

域名到IP地址的解析

域名到IP地址的解析是由分布在互连网上的许多域名服务器程序(可简称为域名服务器)共同完成的。域名服务器程序在专设的节点上运行,而人们也常把运行域名服务器程序的机器称为域名服务器

解析要点如下:

  • 当某一个应用进程需要把主机名解析为IP地址时,该应用进程就调用解析程序,并成为DNS的一个客户。
  • 该进程把待解析的域名放在DNS请求报文中,以UDP用户数据报方式发给本地域名服务器(使用UDP是为了减少开销)。
  • 本地域名服务器在查找域名后,把对应的IP地址放在回答报文中返回。应用进程获得目的主机的IP地址后即可进行通信

。若本地域名服务器不能回答该请求,则此域名服务器就暂时成为DNS中的另一个客户,并向其他域名服务器发出查询请求。这种过程直至找到能够回答该请求的域名服务器为止。

互联网的域名结构

互联网采用层次树状结构的命名方法,采用这种命名方法,任何一个连接在互联网上的主机或路由器都有一个唯一的层次结构的名字,即域名(domain name)。这里,是名字空间中一个可被管理的划分。

域还可以划分为子域,而子域还可继续划分为子域的子域,这样就形成了顶级域、二级域、三级域,等等。

从语法上讲,每一个域名都由标号(label)序列组成,而各标号之间用点隔开(请注意,这里所说的“点”是英语中的句号“.“)

在这里插入图片描述

其中com是顶级域名,cctv是二级域名,标号mail是三级域名。

命名标准
  • 域名中的标号都由英文字母和数字组成,每一个标号不超过63个字符(为了记忆方便,最好不要超过12个字符)
  • 不区分大小写字母
  • 标号中除连字符(-)外不能使用其他的标点符号。
  • 级别最低的域名写在最左边,而级别最高的顶级域名则写在最右边。
  • 有多个标号组成的完整域名总共不超过255个字符。

DNS既不规定一个域名需要包含多少个下级域名,也不规定每一级的域名代表什么意思。各级域名由其上一级的域名管理机构管理,而最高的顶级域名则由ICANN进行管理。用这种方法可使每一个域名在整个互联网范围是唯一的,并且也容易设计出一种查找域名的机制。

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

在顶级域名中则分为:国家顶级域名,通用顶级域名,反向域名

国家顶级域名中国:cn, 美国:us,英国uk…
通用顶级域名com公司企业,edu教育机构,gov政府部门,int国际组织,mil军事部门 ,net网络,org非盈利组织…
反向域名arpa,用于PTR查询(IP地址转换为域名)

用域名树来表示互连网的域名系统是最清楚的,如图

在这里插入图片描述

在最上面的是,但没有对应的名字。根下面一级的节点就是最高一级的顶级域名。顶级域名往下可划分子域(依次向下划分)。域名树的树叶就是单台计算机的名字,它不能再继续往下划分子域了。

域名服务器

具体实现域名系统则是使用分布在各地的域名服务器。

一个服务器所负责管辖的(或有权限的)范围叫做区(zone)。各单位根据具体情况来划分自己管辖范围的区。但在一个区中的所有节点必须是能够连通的。每一个区设置相应的权限域名服务器,用来保存该区中的所有主机的域名到IP地址的映射。

区是DNS服务器实际管辖的范围。区可能等于或小于域,但一定不能大于域。(区是域的子集)

在这里插入图片描述

在这里插入图片描述

如图中每一个域名服务器都能够进行部分域名到IP地址的解析。当某个DNS服务器不能进行域名到IP地址的转换时,他就设法找互联网上别的域名服务器进行解析。同时不难看出,互联网上的DNS域名服务器也是按照层次安排的。每一个域名服务器都只对域名体系中的一部分进行管辖。根据域名服务器所起的作用,可以把域名服务器划分为以下四种不同的类型:

  • 根域名服务器:根域名服务器是最高层次的域名服务器,也是最重要的域名服务器。
  • 顶级域名服务器:这些域名服务器负责管理在该顶级域名服务器注册的所有二级域名。
  • 权限域名服务器:负责一个区的域名服务器。
  • 本地域名服务器:本地域名服务器并不属于如上图所示的域名服务器层次结构,但它对域名系统非常重要。

注:一个域名服务器所负责的范围,或者说有管理权限的范围,就称为 区域 (Zone)
关于分层, 需要注意的是:

  • 每个层的域名上都有自己的域名服务器,最顶层的是根域名服务器
  • 每一级域名服务器都知道下级域名服务器的IP地址
  • 为了容灾, 每一级至少设置两个或以上的域名服务器
域名的解析过程
  1. 客户端发起请求:当用户在浏览器中输入域名时,客户端(如电脑、手机等)会向本地 DNS 服务器发送查询请求,请求解析该域名对应的 IP 地址。
  2. 本地 DNS 缓存查询:本地 DNS 服务器首先会检查自身的缓存,看是否已经有该域名的缓存记录。如果有,直接返回对应的 IP 地址,解析过程结束。
  3. 本地 DNS 服务器查询:如果本地 DNS 服务器缓存中没有该域名的记录,它会向根 DNS 服务器发送查询请求。
  4. 根 DNS 服务器响应:根 DNS 服务器收到请求后,会告知本地 DNS 服务器负责该域名顶级域名(如.com、.org 等)的权威 DNS 服务器的地址。
  5. 查询顶级域名服务器:本地 DNS 服务器根据根 DNS 服务器提供的地址,向对应的顶级域名服务器发送查询请求。
  6. 顶级域名服务器响应:顶级域名服务器会告知本地 DNS 服务器负责该域名二级域名(如 example.com 中的 example)的权威 DNS 服务器的地址。
  7. 查询权威 DNS 服务器:本地 DNS 服务器继续向二级域名的权威 DNS 服务器发送查询请求。
  8. 权威 DNS 服务器响应:权威 DNS 服务器查询到该域名对应的 IP 地址后,将其返回给本地 DNS 服务器。
  9. 本地 DNS 服务器缓存并响应:本地 DNS 服务器将查询到的 IP 地址缓存起来,并返回给客户端。
  10. 客户端与目标服务器通信:客户端获得 IP 地址后,就可以使用该 IP 地址与目标服务器进行通信。

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

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

相关文章

LabVIEW与PLC点位控制及OPC通讯

在工业自动化中,PLC通过标准协议(如Modbus、Ethernet/IP等)与OPC Server进行数据交换,LabVIEW作为上位机通过OPC客户端读取PLC的数据并进行监控、控制与处理。通过这种方式,LabVIEW能够实现与PLC的实时通信&#xff0c…

Restaurants WebAPI(四)——Identity

文章目录 项目地址一、Authentication(身份认证)1.1 配置环境(解决类库包无法引用)1.2 使用Authentication控制Controller的访问1.3 获取User的Context1.3.1 在Application下创建User文件夹1. 创建User.cs record类封装角色信息2. 创建UserContext.cs提供…

Java-32 深入浅出 Spring - IoC 基础 启动IoC 纯注解方式 SpringConfig web.xml

点一下关注吧!!!非常感谢!!持续更新!!! 大数据篇正在更新!https://blog.csdn.net/w776341482/category_12713819.html 目前已经更新到了: MyBatis&#xff…

Android Studio创建新项目并引入第三方so外部aar库驱动NFC读写器读写IC卡

本示例使用设备:https://item.taobao.com/item.htm?spma21dvs.23580594.0.0.52de2c1bbW3AUC&ftt&id615391857885 一、打开Android Studio,点击 File> New>New project 菜单,选择 要创建的项目模版,点击 Next 二、输入项目名称…

Trimble天宝三维激光扫描仪在建筑工程竣工测量中的应用【沪敖3D】

竣工测量是建筑项目竣工阶段的一个至关重要的环节,它为建筑工程的质量验收和成果核查提供了核心的参考依据。传统的竣工测量方法,如全站仪测量,主要依赖于现场人工操作,存在一些明显的局限性,例如作业时间长、工作量大…

java开发入门学习五-流程控制

流程控制语句 if, if...else, if..else if..else 与前端相同 略 switch case 与前端不同的是case不能使用表达式,使用表达式会报错 class TestSwitch {public static void main(String[] args) {// switch 表达式只能是特定的数据类型…

tslib(触摸屏输入设备的轻量级库)的学习、编译及测试记录

目录 tslib的简介tslib的源码和make及make install后得到的文件下载tslib的主要功能tslib的工作原理tslib的核心组成部分tslib的框架和核心函数分析tslib的框架tslib的核心函数ts_setup()的分析(对如何获取设备名和数据处理流程的分析)函数ts_setup()自身的主要代码ts_setup()对…

深度学习实战车辆目标跟踪【bytetrack/deepsort】

本文采用YOLOv8作为核心算法框架,结合PyQt5构建用户界面,使用Python3进行开发。YOLOv8以其高效的实时检测能力,在多个目标检测任务中展现出卓越性能。本研究针对车辆目标数据集进行训练和优化,该数据集包含丰富的车辆目标图像样本…

unipp中使用阿里图标,以及闭坑指南

-----------------------------------------------------点赞收藏才是更新的动力------------------------------------------------- unipp中使用阿里图标 官网下载图标在项目中引入使用注意事项 官网下载图标 进入阿里图标网站 将需要下载的图标添加到购物车中 2. 直接下载…

《Vue3实战教程》5:响应式基础

如果您有疑问,请观看视频教程《Vue3实战教程》 响应式基础​ API 参考 本页和后面很多页面中都分别包含了选项式 API 和组合式 API 的示例代码。现在你选择的是 组合式 API。你可以使用左侧侧边栏顶部的“API 风格偏好”开关在 API 风格之间切换。 声明响应式状态…

【ue5学习笔记2】在场景放入一个物体的蓝图输入事件无效?

在场景放入一个物体的蓝图输入事件无效,那是因为你不知道gameMode这个东西这是一个用于设定游戏股则的东西, 就好比你的控制对象,你输入无效是没有指定你当前关卡中指定的控制对象是它。操作方法如下: 1.创建一个gameMode蓝图类并…

OnlineMusic项目测试报告

OnlineMusic项目测试报告 一、项目背景1.1 测试目标及测试任务的概括1.2 被测的系统,代码以及文档等信息 二、测试安排2.1 测试用例设计2.2 测试方案设计 三、测试分类3.1 测试方案3.1.1 功能测试3.1.2 自动化测试3.1.3 性能测试 3.2测试结果性能测试报告 一、项目背…

Webpack学习笔记(1)

1.为什么使用webpack? webpack不仅可以打包js代码,并且那个且支持es模块化和commonjs,支持其他静态资源打包,如图片、字体。。。 2.如何解决作用域问题? 作用域问题:例如loadsh等库,会绑定window对象,会…

信息安全管理与评估赛题第9套

全国职业院校技能大赛 高等职业教育组 信息安全管理与评估 赛题九 模块一 网络平台搭建与设备安全防护 1 赛项时间 共计180分钟。 2 赛项信息 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 第一阶段 网络平台搭建与设备安全防护 任务1 网络平台搭建 XX:XX- XX:XX 50 任务2…

thinkphp5验证码captcha无法显示

排查思路 是否开启gd2以及gd2排查bom排查代码清除缓存 开启gd/gd2 找到php.ini 开启dg2库 去掉前面的;注释,有的可能会带.dll后缀影响不大 然后通过生成图片验证是否成功 查看是否存在bom 修改为utf-8即可,如果你的代码携带bom也需要排查一下 代码问…

90度Floating B to B 高速连接器信号完整性仿真

在180度 B to B Connector 信号完整性仿真时,不会碰到端口设置不方便问题,但在做90度B to B Connector信号完整性仿真时就会碰到端口设置问题。如下面的90度B to B Connector。 公座 母座 公母对插后如下: 客户要求改Connector需符合PCI-E3.…

ffmpeg翻页转场动效的安装及使用

文章目录 前言一、背景二、选型分析2.1 ffmpeg自带的xfade滤镜2.2 ffmpeg使用GL Transition库2.3 xfade-easing项目三、安装3.1、安装依赖([参考](https://trac.ffmpeg.org/wiki/CompilationGuide/macOS#InstallingdependencieswithHomebrew))3.2、获取ffmpeg源码3.3、融合xf…

用人话讲计算机:Python篇!(十五)迭代器、生成器、装饰器

一、迭代器 (1)定义 标准解释:迭代器是 Python 中实现了迭代协议的对象,即提供__iter__()和 __next__()方法,任何实现了这两个方法的对象都可以被称为迭代器。 所谓__iter__(),即返回迭代器自身 所谓__…

【计算机视觉基础CV-图像分类】02-入门详解图像分类、经典数据集、比赛与冠军图像模型演进史

前言 图像分类(Image Classification)是计算机视觉(Computer Vision)中一项基础且核心的任务。简单来说,就是让计算机从给定的类别集合中,为一张输入图片分配一个正确的类别标签。这个过程听起来直观&…

Docker_常用命令详解

这篇文章分享一下笔者常用的Docker命令供各位读者参考。 为什么要用Docker? 简单来说:Docker通过提供轻量级、隔离且可移植的容器化环境,使得应用在不同平台上保持一致性、易于部署和管理,具体如下 环境一致性: Docker容器使得…