【HarmonyOs学习日志(14)】计算机网络之域名系统DNS
域名系统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地址
- 为了容灾, 每一级至少设置两个或以上的域名服务器
域名的解析过程
- 客户端发起请求:当用户在浏览器中输入域名时,客户端(如电脑、手机等)会向本地 DNS 服务器发送查询请求,请求解析该域名对应的 IP 地址。
- 本地 DNS 缓存查询:本地 DNS 服务器首先会检查自身的缓存,看是否已经有该域名的缓存记录。如果有,直接返回对应的 IP 地址,解析过程结束。
- 本地 DNS 服务器查询:如果本地 DNS 服务器缓存中没有该域名的记录,它会向根 DNS 服务器发送查询请求。
- 根 DNS 服务器响应:根 DNS 服务器收到请求后,会告知本地 DNS 服务器负责该域名顶级域名(如.com、.org 等)的权威 DNS 服务器的地址。
- 查询顶级域名服务器:本地 DNS 服务器根据根 DNS 服务器提供的地址,向对应的顶级域名服务器发送查询请求。
- 顶级域名服务器响应:顶级域名服务器会告知本地 DNS 服务器负责该域名二级域名(如 example.com 中的 example)的权威 DNS 服务器的地址。
- 查询权威 DNS 服务器:本地 DNS 服务器继续向二级域名的权威 DNS 服务器发送查询请求。
- 权威 DNS 服务器响应:权威 DNS 服务器查询到该域名对应的 IP 地址后,将其返回给本地 DNS 服务器。
- 本地 DNS 服务器缓存并响应:本地 DNS 服务器将查询到的 IP 地址缓存起来,并返回给客户端。
- 客户端与目标服务器通信:客户端获得 IP 地址后,就可以使用该 IP 地址与目标服务器进行通信。
相关文章:
【HarmonyOs学习日志(14)】计算机网络之域名系统DNS
域名系统DNS 域名系统DNS——从域名解析出IP地址 文章目录 域名系统DNS概述域名到IP地址的解析 互联网的域名结构命名标准 域名服务器域名的解析过程 概述 域名系统DNS(Domain Name System)是互联网使用的命名系统,用来把便于人们使用的机器…...
电脑丢失bcrypt.dll文件是什么原因?找不到bcrypt.dll文件修复办法来啦!
电脑运行时常见问题及解决方案:文件丢失、文件损坏与系统报错 作为一名软件开发从业者,深知电脑在日常使用中难免会遇到各种问题,如文件丢失、文件损坏和系统报错等。这些问题不仅影响工作效率,还可能带来数据丢失的风险。今天&a…...
shell编程3
声明 学习视频来自B站UP主 泷羽sec 向脚本程序传递参数 可以向脚本程序传递一个或多参数 echo 执行的文件名是:S0 echo 第一个参数是: 1 e c h o 传递的参数作为一个字符串显示 : 1 echo 传递的参数作为一个字符串显示: 1echo传递的参数作为一个字符串显示:* echo 传递的参数…...
LAUNCHXL_F28379D_Workspace_CCS124
/// 安装 controlSUITE C:\ti\controlSUITE\device_support\F2837xD\v210 /// /// /// /// /// 删除 /// /// /// >> Compilation failure source_common/subdir_rules.mk:9: recipe for target source_common/F2837xD_Adc.obj failed "C:/ti/controlSUITE/devic…...
智慧商城:编辑切换状态,删除功能
编辑切换状态 为 编辑 注册点击事件进行状态取反,为该状态赋一个初始值 false 如果是非编辑状态是要进行结算的,否则删除 点击“编辑”状态是 要进行 “删除”,非编辑状态是要进行 “结算” 当 结算 时,希望是能 全选 进而能多卖…...
支付测试 流程
支付测试 流程 支付测试是确保支付系统安全、稳定、可靠运行的关键环节,以下是其一般流程: 测试计划阶段 明确测试目标:确定本次支付测试的重点和预期达到的目标,如测试支付功能的完整性、安全性、性能等。制定测试计划&#x…...
Ai编程从零开始全栈开发一个后台管理系统之用户登录、权限控制、用户管理-前端部分(十二)
云风网 云风笔记 云风知识库 一、创建前端部分 1、vite初始化项目 npm create vitelatest admin-frontend – --template vue-ts 2、安装必要的依赖 npm install vue-router pinia axios element-plus element-plus/icons-vue安装完成后package.json如下: {&qu…...
LeetCode 197. 上升的温度
LeetCode 197. 上升的温度 表: Weather ---------------------- | Column Name | Type | ---------------------- | id | int | | recordDate | date | | temperature | int | ---------------------- id 是该表具有唯一值的列。 没有具有相同 recordDate 的不同行。…...
ECharts散点图-气泡图,附视频讲解与代码下载
引言: ECharts散点图是一种常见的数据可视化图表类型,它通过在二维坐标系或其它坐标系中绘制散乱的点来展示数据之间的关系。本文将详细介绍如何使用ECharts库实现一个散点图,包括图表效果预览、视频讲解及代码下载,让你轻松掌握…...
【pycharm】对需要传参数以及配置文件的情况进行debug教程
【pycharm】对需要传参数以及配置文件的情况进行debug教程 例如下面这个项目,我们要运行需要在终端输入 python main.py -mtrain -trsr0.03 -vsr0.01其中 -m‘train’ -trsr0.03 -vsr0.01是我们需要传的参数 在终端运行如下: 如果我们要进行debug的话…...
three.js混合白色模型的智慧城市扫光效果
three.js混合白色模型的智慧城市扫光效果 https://threehub.cn/#/codeMirror?navigationThreeJS&classifyshader&idcityBlendLight import * as THREE from three import { OrbitControls } from three/examples/jsm/controls/OrbitControls.js import { FBXLoader …...
【QT常用技术讲解】发送POST包(两种方式:阻塞方式及非阻塞方式)
前言 http/https(应用层)协议是广泛使用的网络通信协议。在很多与第三方API对接的场景中,通常是通过http/https协议完成,比如API对接时,通常要通过POST包获取access_token进行鉴权,然后再进行数据交互(本篇也包含有对接…...
基于Python大数据的电影可视化分析系统
标题:基于 Python 大数据的电影可视化分析系统 内容:1.摘要 本文介绍了一个基于 Python 大数据的电影可视化分析系统。该系统通过收集和分析大量电影数据,提供了对电影市场的深入洞察。文章首先介绍了系统的背景和目的,然后详细描述了系统的架构和功能。…...
Vue3:uv-upload图片上传
效果图: 参考文档: Upload 上传 | 我的资料管理-uv-ui 是全面兼容vue32、nvue、app、h5、小程序等多端的uni-app生态框架 (uvui.cn) 代码: <view class"greenBtn_zw2" click"handleAddGroup">添加班级群</vie…...
VBA技术资料MF243:利用第三方软件复制PDF数据到EXCEL
我给VBA的定义:VBA是个人小型自动化处理的有效工具。利用好了,可以大大提高自己的工作效率,而且可以提高数据的准确度。“VBA语言専攻”提供的教程一共九套,分为初级、中级、高级三大部分,教程是对VBA的系统讲解&#…...
redis使用注意哪些事项
1. 数据类型选择: • Redis支持多种数据类型,如字符串(String)、哈希(Hash)、列表(List)、集合(Set)、有序集合(Sorted Set)等。在选择…...
Go使用sqlx操作MySQL完整指南
# Go使用sqlx操作MySQL完整指南## 1. 安装依赖bash go get github.com/go-sql-driver/mysql go get github.com/jmoiron/sqlx2. 数据库基础操作 package mainimport ("fmt"_ "github.com/go-sql-driver/mysql""github.com/jmoiron/sqlx" )// 定…...
计算机基础复习12.23
ThreadLocal 线程隔离:ThreadLocal为每个线程提供了独立的变量副本,意味着线程之间不会相互影响,可以安全的在多线程环境中使用这些变量而不必担心数据竞争或同步问题 ThreadLocal的实现依赖于Thread类中的一个ThreadLocalMap字段ÿ…...
Jenkins介绍
Jenkins 是一款流行的开源自动化服务器,在软件开发和持续集成 / 持续交付(CI/CD)流程中发挥着关键作用。 一、主要功能 1.持续集成(CI) (1).自动构建:Jenkins 可以配置为监听代码仓…...
RK3588 , mpp硬编码yuv, 保存MP4视频文件.
RK3588 , mpp硬编码yuv, 保存MP4视频文件. ⚡️ 传送 ➡️ Ubuntu x64 架构, 交叉编译aarch64 FFmpeg mppRK3588, FFmpeg 拉流 RTSP, mpp 硬解码转RGBRk3588 FFmpeg 拉流 RTSP, 硬解码转RGBRK3588 , mpp硬编码yuv, 保存MP4视频文件....
Delphi WebBrowser 基本操作与常见问题的解决方案
前言 WebBrowser 作为Delphi 常见的网络浏览控件,我这里整理了一些它的基本操作,遇到了一些问题,我梳理了一下并给出解决方案 基本操作 WebBrowser1.GoHome; //到浏览器默认主页 WebBrowser1.Refresh; //刷新 WebBrowser1.GoBack; //后退 Web…...
【更新】LLM Interview
课程链接:BV1o217YeELo 文章目录 LLM基础相关1. LLMs概述2. 大语言模型尺寸3. LLMs的优势与劣势4. 常见的大模型分类5. 目前主流的LLMs开源模型体系有哪些(Prefix Decoder,Causal Decoder,Encoder-Decoder的区别是什么)…...
从零开始C++棋牌游戏开发之第一篇:C++ 游戏开发环境搭建与工具简介
前言:作者的感想 每一次选择开始一项新技能的学习,总会让人感到既兴奋又有些许忐忑。C 游戏开发,尤其是针对棋牌类游戏规则实现的开发,更是一个有趣而充满挑战的领域。作为一名开发者,我深知面对 C 时的那种 "既…...
Hydrogen-Web 项目常见问题解决方案
Hydrogen-Web 项目常见问题解决方案 hydrogen-web Lightweight matrix client with legacy and mobile browser support [这里是图片001] 项目地址: https://gitcode.com/gh_mirrors/hy/hydrogen-web 项目基础介绍 Hydrogen-Web 是一个轻量级的 Matrix 客户端,专…...
LabVIEW中的“Synchronize with Other Application Instances“
在LabVIEW中,“Synchronize with Other Application Instances”是一个常见的提示或错误,通常出现在尝试并行运行多个LabVIEW实例时,特别是当你打开多个VI或项目时。这个问题可能影响程序的执行流程,导致不同实例之间的数据同步或…...
Hslcommunication通讯调用
Vs2022选择配置属性选择高级语言运行时(/clr);符合模式选择否;引用选择Hslcommunication.dll和HslCppExtension.dll; Demo #include <iostream> using namespace HslCommunication; using namespace HslCommunication::Core::Net; using namespace HslCommunication::Mo…...
渐进式 Web 应用程序:新的 FE 系统
在企业环境中,我们通常认为稳定的互联网连接是理所当然的。然而,现实世界的条件经常挑战这一假设,可能会中断关键业务运营。本文详细介绍了我们如何将传统的纯在线 ERP 系统转变为具有弹性、支持离线的解决方案的更可靠的系统。通过利用基于浏…...
安科瑞能源物联网平台在老旧小区用电安全改造中的应用与优势
安科瑞 吕梦怡 一、现状 老旧住宅小区普遍存在建成时间久远的情况,其电力系统刚开始的设计标准已难以匹配当下居民不断攀升的用电需求。电力基础设施老化现象较为突出,例如电线的绝缘层出现破损、电表箱被锈蚀以及配电设备超期服役等问题比比皆是。小…...
[Effective C++]条款36-37 两个绝不
本文初发于 “天目中云的小站”,同步转载于此。 条款36 : 绝不重新定义继承而来的non-virtual函数 本条款很容易理解, 援引以前的条款就可以说明为什么 : 条款34中就提到过 : non-virtual函数意味着接口 强制性实现继承, 它不应当被改变. 重新定义继承而来的non-…...
MySQL数据库——复制表数据与结构
命令格式 create table 表名 select 字段1,字段2 from 被复制表 首先新建一个表,然后从被复制的表中选择字段复制到新表 举例...
一文掌握如何编写可重复执行的SQL
一文掌握如何编写可重复执行的SQL 文章已同步个人博客:一文掌握如何编写可重复执行的SQL 背景 先提出问题,这里的可重复执行是指什么?我们为什么要编写可重复执行的sql? 可重复执行是指一条sql重复多次执行都不会报错…...
编译笔记:vs 中 正在从以下位置***加载符号 C# 中捕获C/C++抛出的异常
加载符号 解决方法: 进入VS—工具—选项----调试----符号,看右边有个“Microsoft符号服务器”,将前面的勾去掉,(可能还有删除下面的那个缓存)。 参考 C# 中捕获C/C抛出的异常 在需要捕捉破坏性异常的函数…...
[搜广推]王树森推荐系统——Deep Retrieval 召回
Deep Retrieval 简介 Deep Retrieval 是一种推荐系统框架,它将物品表示为路径(path),并在线上查找与用户最匹配的路径。 这种方法与传统的双塔模型不同,后者通常将用户和物品表示为向量,并在线上进行最近邻…...
【深入解析蓝牙dumpsys bluetooth_manager 命令输出】
了解蓝牙的工作状态以及如何在测试中利用这些信息。 1. Bluetooth Status(蓝牙状态) enabled: true state: ON address: 00:00:00:00:43:36 name: 小米手机 time since enabled: 00:15:18.492enabled: true — 蓝牙功能已启用。state: ON — 蓝牙目前是开启状态。address: …...
【三】Fast-DDS hello world!
编译hello world # 进入到源码目录 mkdir -p examples/cpp/hello_world/build cd examples/cpp/hello_world/build cmake .. && make -j4运行publisher ./hello_world publisher 运行subscriber ./hello_world subscriber 结果...
将HTML转换为PDF:使用Spire.Doc的详细指南(一) 试用版
目录 引言 1. 为什么选择 Spire.Doc? 1.1 主要特点 1.2 适用场景 2. 准备工作 2.1 引入 Spire.Doc 依赖 2.2 禁用 SSL 证书验证 3. 实现功能 3.1 主类结构 3.2 代码解析 4. 处理图像 5. 性能优化 5.1 异步下载图像 示例代码 5.2 批量处理优化 示例代…...
【物联网技术与应用】实验10:蜂鸣器实验
实验10 蜂鸣器实验 【实验介绍】 蜂鸣器是音频信号装置。蜂鸣器可分为有源蜂鸣器和无源蜂鸣器。 【实验组件】 ● Arduino Uno主板* 1 ● USB数据线* 1 ● 有源蜂鸣器* 1 ● 无源蜂鸣器* 1 ● 面包板* 1 ● 9V方型电池* 1 ● 跳线若干 【实验原理】 如图所示&#x…...
【python高级】342-TCP服务器开发流程
CS模式:客户端-服务端模式 TCP客户端开发流程介绍(五步)(C端) 1.创建客户端套接字对象 2.和服务端套接字建立连接 3.发送数据 4.接收数据 5.关闭客户端套接字 TCP服务端开发流程(七步)…...
C++开源项目 VLC 源代码的交叉编译以及库的裁剪方法详解
目录 1、VLC简介 2、VLC编译环境配置 2.1、编译环境 2.2、编译环境配置 2.2.1、下载安装MSYS2 2.2.2、下载mingw-w64 3、编译VLC 4、VLC库的裁剪 5、总结 C软件异常排查从入门到精通系列教程(核心精品专栏,订阅量已达600多个,欢迎订…...
draw.io 导出svg图片插入word后模糊(不清晰 )的解决办法
通常我们将图片从draw.io导出为svg格式后插入word, 会发现字体不清晰,特别是使用宋体时,折腾了半天,得到如下办法: 方法1: 在draw.io中导出pdf文件,使用 PDF转SVG转换器 - SVGConverter 将其转换为svg, 完美呈现。 …...
详解js柯里化原理及用法,探究柯里化在Redux Selector 的场景模拟、构建复杂的数据流管道、优化深度嵌套函数中的精妙应用
目录 详解js柯里化原理及用法,探究柯里化在Redux Selector 的场景模拟、构建复杂的数据流管道、优化深度嵌套函数中的精妙应用 一、什么是柯里化? 1、原理解析 2、一个直观的例子 二、如何实现柯里化? 1、底层实现 2、工作原理解析 3…...
Cesium材质——Material
简介: Cesium.Material对象的目的,就是生成一段名称为czm_getMaterial的函数(示例代码如下), 这个czm_getMaterial函数,是shader代码,会被放到片元着色器中使用。 czm_material czm_getMater…...
《点点之歌》“意外”诞生记
世界是“点点”的,“点点”是世界的。 (笔记模板由python脚本于2024年12月23日 19:28:25创建,本篇笔记适合喜欢诗文的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网:https://www.python.org/ Free:大咖免费“圣经”教程《 …...
统计某个文件中某个字符串出现的次数
要统计某个文件中某个字符串出现的次数,有多种方法可以实现。以下是几种常用且高效的 Linux 命令方法: 方法一:使用 grep 和 wc 命令示例: grep -o "字符串" 文件名 | wc -l说明: grep -o "字符串&…...
C++简明教程(文章要求学过一点C语言)(3)
一、编程工具大揭秘——IDE 当我们准备踏入 C 编程的奇妙世界时,首先要认识一个重要的“魔法盒子”——集成开发环境(IDE)。IDE 就像是一个全能的编程工作室,它把我们写代码所需要的各种工具都整合到了一起,让编程这件…...
Springboot高并发乐观锁
Spring Boot分布式锁的主要缺点包括但不限于以下几点: 性能开销:使用分布式锁通常涉及到网络通信,这会引入额外的延迟和性能开销。例如,当使用Redis或Zookeeper实现分布式锁时,每次获取或释放锁都需要与这些服务进行交…...
编译原理复习---正则表达式+有穷自动机
适用于电子科技大学编译原理期末考试复习。 1. 正则表达式 正则表达式(Regular Expression,简称regex或regexp)是一种用于描述、匹配和操作文本模式的强大工具。它由一系列字符和特殊符号组成,这些字符和符号定义了一种搜索模式…...
如何使用ChatGPT辅助文献综述,以及如何进行优化?一篇说清楚
目录 1.写在开头 2.ChatGPT 3.提示词研究 4.第一轮研究 5.第二轮研究 6.生成文献综述 嘿宝子们!今天我们要聊的,可是个让学术圈都为之振奋的话题——ChatGPT辅助文献综述。这个教育界的新宠儿,已经不满足于仅仅在学习和教学中露两手了&…...
ZZNUOJ 1601:字母序号(C/C++/Java)
题目描述 我们把字母 A-Z 分别编号为 1-26, 现在给你一个大写字母, 输出这个大写字母的序号。 输入 输入一个大写字母 输出 输出这个大写字母的序号 样例输入 C 样例输出 3 常见的ASCII值 ASCII表中可以记下部分特殊的值(十进制)(字母从A到Z,从a到z,ASCII值依次递增)...
[CISCN 2021初赛]rsa
[CISCN 2021初赛]rsa 源代码: from flag import text,flag import md5 from Crypto.Util.number import long_to_bytes,bytes_to_long,getPrimeassert md5.new(text).hexdigest() flag[6:-1]msg1 text[:xx] msg2 text[xx:yy] msg3 text[yy:]msg1 bytes_to_lo…...