域名解析系统 DNS

1.域名系统概述

用户与互联网上某台主机通信时,必须要知道对方的IP地址。然而用户很难记住长达32 位的二进制主机地址。即使是点分十进制地址也并不太容易记忆。但在应用层为了便于用户记忆各种网络应用,连接在互联网上的主机不仅有P地址,而且还有便于用户记忆的主机名字。

域名系统(DomainNameSystem,DNS)是因特网使用的命名系统,用于将人们熟悉且具有意义的主机名(例如 www.baidu.com)转换为计算机更易处理的IP地址。相比于IP地址,人们更倾向于使用能够传达含义的字符串来标识网络上的设备。DNS系统采用客户/服务器(C/S)模型,其协议运行在UDP之上,使用53号端口。

简而言之:域名系统 DNS能够把互联网上的主机名字转换为IP地址。

在概念上,DNS可以分为三部分:

  1. 层次域名空间: DNS使用层次结构的域名空间来组织和管理域名。域名按照逻辑关系组成树状结构,以点分隔不同级别的域名。顶级域名(如.com、.org、.net)位于树的顶部,而主机名(如www)则位于树的底部,形成了完整的域名。

  2. 域名服务器: DNS系统由多个不同类型的域名服务器组成,这些服务器负责存储和管理域名与IP地址的映射关系。根域名服务器、顶级域名服务器、权威域名服务器和本地域名服务器等扮演不同的角色,协同工作完成域名解析的任务。

  3. 解析器: 解析器是DNS系统中的客户端程序,负责向域名服务器发送查询请求,并解析返回的响应数据。解析器通常运行在用户设备或网络设备上,如计算机、路由器等,帮助实现域名到IP地址的转换过程。

通过以上三部分的协同工作,DNS系统能够有效地实现域名解析功能,使得用户能够通过便于记忆的域名访问因特网上的各种服务和资源。

2. 层次域名空间

(1)层次树状域名

早期的互联网使用了非等级的名字空间,其优点是名字简短。但当互联网上的用户数急剧增加时,用非等级的名字空间来管理一个很大的而且是经常变化的名字集合是非常困难的。因此,互联网后来就采用了层次树状结构的命名方法

采用这种命名方法,任何一个连接在互联网上的主机或路由器,都有一个唯一的层次结构的名字,即域名(Domain Name)。这里,域(domain) 是名字空间中一个可被管理的划分。域还可以划分为子域,而子域还可继续划分为子域的子域,这样就形成了顶级域、二级域、三级域,等等。
从语法上讲,每一个域名都由**标号(label)**序列组成,而各标号之间用 “ . ” 隔开。

在这里插入图片描述
例如此域名就是中央电视台用于收发电子邮件的计算机(即邮件服务器)的域名,它由三个标号组成,其中标号com顶级域名,标号cctv二级域名,标号mail三级域名

(2)DNS对域名的规定

DNS对域名有着如下规定

  • 域名中的标号仅包含英文字母和数字,每个标号最多不超过63个字符(建议不超过12个字符以便记忆);
  • 不区分大小写(例如,CCTV和cctv等效);
  • 标号中除连字符(-)外不允许使用其他标点符号;
  • 域名从左到右级别递减,顶级域名在最右边;
  • 完整域名由多个标号组成,总长度不超过255个字符。

DNS不规定域名需要包含多少个子域名,也不规定每个级别的域名意义。各级域名由其上一级管理机构管理,最高级顶级域名由ICANN管理。这种方法确保每个域名在互联网上是唯一的,同时设计了一种有效的域名查找机制。

(3)顶级域名的分类

根据2012年5月的统计[W-IANA-root],目前顶级域名TLD(Top-Level Domain)总数已达326个。
最初的顶级域名可分为三类:

  1. 国家顶级域名 nTLD:按照ISO 3166标准命名,通常被称为ccTLD(cc代表国家代码country-code如: cn 表示中国,us 表示美国,uk 表示英国等等)。截至2012年5月,国家顶级域名总数已达296个。
  2. 通用顶级域名 gTLD:截至2006年12月,通用顶级域名总数已达20个。最初确定的通用顶级域名包括7个:com(公司企业),net(网络服务机构),org(非营利性组织),int(国际组织),edu(美国专用的教育机构),gov(美国的政府部门),mil表示(美国的军事部门)。
    后来又陆续增加了13个:aero(航空运输企业)、asia(亚太地区)、biz(公司和企业)、cat(使用加泰隆人的语言和文化团体)、coop(合作团体)、info(各种情况)、jobs(人力资源管理者)、mobi(移动产品与服务的用户和提供者)、museum(博物馆)、name(个人)、pro(有证书的专业人员)、tel(Telnic股份有限公司)、travel(旅游业)。
  3. 基础结构域名(infrastructure domain):这种顶级域名仅有一个,即arpa,用于反向域名解析,因此也被称为反向域名。

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

我国把二级域名划分为类别域名行政区域名两大类。

  1. 类别域名共7个,分别为:ac(科研机构),com(工、商、金融等企业),edu(中国的教育机构),gov(中国的政府机构),mil(中国的国防机构),net(提供互联网络服务的机构),org(非营利性的组织)。
  2. 行政区域名共 34个,适用于我国的各省、自治区、直辖市。例如:hlj(黑龙江省)、jl(吉林省)、ln(辽宁省),等等。
    在这里插入图片描述

3. 域名服务器

因特网的域名系统被设计成一个联机分布式的数据库系统,并采用客户/服务器模型。域名到IP地址的解析是由运行在域名服务器上的程序完成的。一个服务器所负责管辖的(有权限的)范围叫做区(zone)。各单位根据具体情况来划分自己管辖范围的区。但在一个区中的所有节点必须是能够连通的。每一个区设置相应的权限域名服务器(authoritative name server),用来保存该区中的所有主机的域名到 IP 地址的映射。

互联网上的DNS 域名服务器也是按照层次安排的。每一个域名服务器都只对域名体系中的一部分进行管辖。根据域名服务器所起的作用,可以把域名服务器划分为4种不同的类型:

  1. 根域名服务器(Root Name Server):根域名服务器位于域名系统的最顶层,是所有域名服务器中最高级别的服务器。所有根域名服务器都具有所有顶级域名服务器的IP地址信息。根域名服务器在整个DNS系统中起着至关重要的作用,当本地域名服务器无法解析某个域名时,会向根域名服务器请求帮助。全球共有13台根域名服务器,每台看似独立,但实际上是由冗余服务器组成的集群,以确保安全性和可靠性。需要强调的是,根域名服务器主要负责管理顶级域名(如.com),通常不直接将域名解析为IP地址,而是指示本地域名服务器下一步应向哪个顶级域名服务器查询。

  2. 顶级域名服务器(Top-Level Domain Name Server):顶级域名服务器负责管理注册在该顶级域名服务器下的所有二级域名。当接收到DNS查询请求时,顶级域名服务器会提供相应的回答,可能是最终结果,也可能是下一个需要查询的域名服务器的IP地址。

  3. 权威域名服务器(Authoritative Name Server):每台主机都必须向授权域名服务器注册。为了提高可靠性,建议每台主机至少注册两个授权域名服务器。事实上,许多域名服务器同时担任本地域名服务器和授权域名服务器的角色。授权域名服务器能够将其管理的主机名转换为相应主机的IP地址。

  4. 本地域名服务器(Local Name Server):本地域名服务器在域名系统中扮演着重要角色。每个互联网服务提供商(ISP)、大学甚至大学内的各系都可能拥有一个本地域名服务器。当主机发送DNS查询请求时,该请求将发送至主机的本地域名服务器。例如,在Windows系统中配置网络连接时,需要填写DNS地址,这就是本地域名服务器的地址。

为了提高域名服务器的可靠性,DNS域名服务器都把数据复制到几个域名服务器来保存,其中的一个是主域名服务器(Master Name Server),其他的是辅助域名服务器(Secondary Name Server)。当主域名服务器出故障时,辅助域名服务器可以保证 DNS的查询工作不会中断。主域名服务器定期把数据复制到辅助域名服务器中,而更改数据只能在主域名服务器中进行。这样就保证了数据的一致性。

4. 域名解析过程

域名解析是将人类可读的域名转换为计算机可识别的IP地址的过程。以下是域名解析的工作流程:
在这里插入图片描述

  1. 本地域名服务器查询:本地计算机上的操作系统会首先向本地域名服务器发送DNS查询请求。本地域名服务器通常由ISP提供,可以直接回答或者向其他域名服务器发出请求。

  2. 本地域名服务器查询缓存:本地域名服务器首先检查自己的缓存中是否保存有所查询域名的IP地址。如果缓存中存在,则直接返回IP地址给客户端。

  3. 向根域名服务器查询:如果本地域名服务器没有缓存查询的域名信息,它会向根域名服务器发送请求,询问该域名对应的顶级域名服务器的IP地址。

  4. 向顶级域名服务器查询:根域名服务器返回顶级域名服务器的IP地址给本地域名服务器。然后本地域名服务器向顶级域名服务器发送请求,获取下一级域名服务器的IP地址,比如.com顶级域名服务器。

  5. 向权威域名服务器查询:本地域名服务器将继续向下一级域名服务器(权威域名服务器)发送请求,获取查询域名对应的具体主机IP地址。

  6. 返回IP地址:最终,本地域名服务器通过多次查询获得了要查询域名的IP地址,并将这个IP地址返回给客户端的操作系统。

  7. 客户端访问网站:客户端收到IP地址后,就可以向该IP地址对应的主机发起连接,访问目标网站。这样,域名解析过程完成,用户可以正常访问网站内容。

整个域名解析的工作流程通过多层级的域名服务器协同工作,实现了将人类可读的域名映射到计算机可识别的IP地址,从而实现了因特网上各种服务的正常访问。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【软考网工笔记】网络基础理论——网络层

文章目录 中断处理过程数据包组装RIPRSVPipv4RIPv1 & RIPv2HFC 混合光纤同轴电缆(Hybrid Fiber Coax,简称HFC)BGP (边界网关协议)BGP-4 协议的四种报文ICMP 协议数字语音电子邮件协议MPLS 多协议标记交换ipv6DHCPDNS名称解析过程查询顺序…

go语言 Pool实现资源池管理数据库连接资源或其他常用需要共享的资源

go Pool Pool用于展示如何使用有缓冲的通道实现资源池,来管理可以在任意数量的goroutine之间共享及独立使用的资源。这种模式在需要共享一组静态资源的情况(如共享数据库连接或者内存缓冲区)下非 常有用。如果goroutine需要从池里得到这些资…

【Delphi】modbus-TCP 协议库

在日常开发中,也会遇到使用modbus的部件,比如温度控制器、读卡器等等,那么使用Delphi开发,也就必须遵守modbus-TCP协议,如果自己使用TCP控件写也没有问题,不过如果有开源的三方库,别人已经调试过…

【Git 操作】-- 将 fork master 分支的最新commit更新到自己的仓库

目录 1.举例 2. 配置上游仓库(Upstream) 3. 获取上游仓库的更新 4. 切换到你自己的 master 分支 5. 合并上游仓库的 master 分支 6. 解决冲突(如果有的话) 7. 推送更新到你自己的 GitHub 仓库 1.举例 当我们从 github 的 h…

Facebook的开源项目解析:推动开发者社区的技术进步

Facebook,作为全球领先的社交平台之一,其在技术领域的创新不仅体现在产品功能的实现上,也积极推动开源社区的发展。开源项目已经成为Facebook技术战略的重要组成部分,通过开源,Facebook不仅加速了技术进步,…

荣耀300系列革新发布:科技与美学的里程碑之作

2024年12月2日,全新一代荣耀300系列正式发布,新潮的环球旅拍发布会不仅展现了荣耀追求极致的创新理念,也标志着数字系列迎来科技体验以及美学设计的巨大升级。凭借荣耀领先行业的AI能力以及对底层科技创新的强大驱动,全新荣耀300系…

centos 7 离线安装postgis插件

前一段时间记录了下如何在centos7中离线安装postgresql,因为工作需要,我不仅要安装postgresql,还需要安装postgis插件,这篇文章记录下postgis插件的安装过程。 1. 安装前的参考 如下的链接都是官网上的链接,对你安装p…

ChatGPT/AI辅助网络安全运营之-数据解压缩

在网络安全的世界中,经常会遇到各种压缩的数据,比如zip压缩,比如bzip2压缩,gzip压缩,xz压缩,7z压缩等。网络安全运营中需要对这些不同的压缩数据进行解压缩,解读其本意,本文将探索一…

kube-proxy的iptables工作模式分析

系列文章目录 iptables基础知识 文章目录 系列文章目录前言一、kube-proxy介绍1、kube-proxy三种工作模式2、iptables中k8s相关的链 二、kube-proxy的iptables模式剖析1.集群内部通过clusterIP访问到pod的流程1.1.流程分析 2.从外部访问内部service clusterIP后端pod的流程2.1…

【Linux】文件操作的艺术——从基础到精通

🎬 个人主页:谁在夜里看海. 📖 个人专栏:《C系列》《Linux系列》《算法系列》 ⛰️ 道阻且长,行则将至 目录 📚前言:一切皆文件 📚一、C语言的文件接口 📖1.文件打…

AI 声音:数字音频、语音识别、TTS 简介与使用示例

在现代 AI 技术的推动下,声音处理领域取得了巨大进展。从语音识别(ASR)到文本转语音(TTS),再到个性化声音克隆,这些技术已经深入到我们的日常生活中:语音助手、自动字幕生成、语音导…

IDEA连接Apifox客户端

IDEA连接Apifox客户端 一、下载Apifox安装包二、IDEA配置三、配置Apifox和IDEA项目同步 一、下载Apifox安装包 Apifox官网,根据自己的操作系统下载对应的Apifox安装包,我是windows系统所以下载的是windows版。 下载 默认仅为我安装,点击下一…

Vue3 脚手架扩展

当 yarn dev 运行成功后,我们继续添加扩展 首先我们要安装一些依赖 其中的vue-router和vuex安装最新版的就行,因为项目是vue3 element-plus和less,less-loader最好按照我这个版本来下载 element-plus是一个vue常用的ui组件库 element-plus/…

STM32 ADC模数转换器原理及单通道多通道测量电压模板代码

ADC简介: (主要用来测电压) 1us转换时间(最大支持1MHZ的信号转换) 12位(0~4095)就是分辨率 通过ADC0809外挂芯片来理解STM32中的ADC: 地址锁存和译码是用来选择通路的,…

Android矩阵Matrix实现Glide图像fitCenter转换为centerCrop,Kotlin

Android矩阵Matrix实现Glide图像fitCenter转换为centerCrop&#xff0c;Kotlin <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:tools"http://schemas.a…

电子电气架构 -- 新的架构带来的软件革命

我是穿拖鞋的汉子&#xff0c;魔都中坚持长期主义的汽车电子工程师。 老规矩&#xff0c;分享一段喜欢的文字&#xff0c;避免自己成为高知识低文化的工程师&#xff1a; 所谓鸡汤&#xff0c;要么蛊惑你认命&#xff0c;要么怂恿你拼命&#xff0c;但都是回避问题的根源&…

后端 Java发送邮件 JavaMail 模版 20241128测试可用

配置授权码 依赖 <dependency><groupId>javax.mail</groupId><artifactId>javax.mail-api</artifactId><version>1.5.5</version> </dependency> <dependency><groupId>com.sun.mail</groupId><artifa…

【零基础学习UDS诊断测试】——0x10测试用例设计

从0开始学习CANoe使用 从0开始学习车载测试 相信时间的力量 星光不负赶路者,时光不负有心人。 目录 1.概述 2.三个会话介绍 3.会话切换逻辑 4.会话响应格式 5.解析测试点 5.1. 0x10 5.1.1 具体用例设计 5.1.1.1 NRC否定响应码 6.详细用例展示 1.概述 主要基于诊断调查表介…

【Robocasa】Code Review

文章目录 OverviewalgoInitializationImportant Class MethodsTrain LoopTest Time ConfigsdemoConfig FactoryConfig StructureConfig Locking默认锁定状态配置修改的上下文管理器 dataset示例数据集对象参数说明 model基础模块EncoderCoreVisualCoreScanCore随机化器 (Random…

阅读笔记--知识蒸馏

1.一些基本概念 教师模型&#xff08;Teacher Model&#xff09;&#xff1a;预训练复杂神经网络&#xff0c;高精度&#xff0c;计算存储开销大。学生模型&#xff08;Student Model&#xff09;&#xff1a;简单参数少推理快的模型&#xff0c;目标从教师模型获取知识&#…