域名解析系统 DNS

news2024/12/27 7:22:42

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.coloradmin.cn/o/2252572.html

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

相关文章

学习ASP.NET Core的身份认证(基于Session的身份认证3)

开源博客项目Blog中提供了另一种访问控制方式,其基于自定义类及函数的特性类控制访问权限。本文学习并测试开源博客项目Blog的访问控制方式,测试程序中直接复用开源博客项目Blog中的相关类及接口定义,并在其上调整判断逻辑。   首先是接口A…

十六(AJAX3)、XMLHttpRequest、Promise、简易axios封装、案例天气预报、lodash-debounce防抖

1. XMLHttpRequest 1.1 XMLHttpRequest-基本使用 /* 定义:XMLHttpRequest(XHR)对象用于与服务器交互。通过 XMLHttpRequest 可以在不刷新页面的情况下请求特定 URL,获取数据。这允许网页在不影响用户操作的情况下,更…

【QT】音乐播放器demo

1、使用设计师模式绘制ui界面 添加QPushButton并设置大小,ctrl鼠标拖动复制相同的组件。 添加icon //ps:icon下载网站 设置按钮无边框并设置鼠标悬停颜色: 修改QWidget样式表,添加: *{ border:none; } QPushBu…

「Mac畅玩鸿蒙与硬件34」UI互动应用篇11 - 颜色选择器

本篇将带你实现一个颜色选择器应用。用户可以从预设颜色中选择,或者通过输入颜色代码自定义颜色来动态更改界面背景。该应用展示了如何结合用户输入、状态管理和界面动态更新的功能。 关键词 UI互动应用颜色选择器状态管理用户输入界面动态更新 一、功能说明 颜色…

T620存储安全方案SoC芯片技术手册

系统资源 集成32位国产CPU CK803S;最高工作频率260Mhz CK803S内置16KB I/D Cache,内置32KB DTCM 32KB ROM;256KB SRAM;8KB SRAM(系统专用) 512KB/1MB 片内Flash 安全算法 支持SM4数据加密,加密性…

计算机光电成像理论基础

一、透过散射介质成像 1.1 光在散射介质中传输 光子携带物体信息并进行成像的过程是一个涉及光与物质相互作用的物理现象。这个过程可以分为几个步骤来理解: 1. **光的发射或反射**: - 自然界中的物体可以发射光(如太阳)&am…

C语言——自我介绍_Gitee的基本使用

自我介绍 一名信息安全技术应用专业的大学生,来到CSDN博客论坛已有两年。写博客的目的:第一点是为了学习到更多的知识,以便以后所需;第二点是为了读者,俺是一个初学者,希望可以和读者朋友共同进步&#xf…

Redis高阶集群搭建+集群读写

问题 容量不够,redis 如何进行扩容?并发写操作, redis 如何分摊?另外,主从模式,薪火相传模式,主机宕机,导致 ip 地址发生变化,应用程序中配置需要修改对应的主机地址、端…

windows下kafka初体验简易demo

这里提供了windows下的java1.8和kafka3.9.0版本汇总,可直接免费下载 【免费】java1.8kafka2.13版本汇总资源-CSDN文库 解压后可以得到一个文件夹 资料汇总内有一个kafka文件资料包.tgz,解压后可得到下述文件夹kafka_2.13-3.9.0,资料汇总内还…

深入理解 TCP 标志位(TCP Flags)

深入理解 TCP 标志位(TCP Flags) 1. 简介 在网络安全和网络分析领域,TCP标志位(TCP Flags)是理解网络行为和流量模式的关键概念。特别是在使用工具如Nmap进行端口扫描时,理解这些标志位的意义和用法至关重…

【智商检测——DP】

题目 代码 #include <bits/stdc.h> using namespace std; const int N 1e510, M 110; int f[N][M]; int main() {int n, k;cin >> n >> k;for(int i 1; i < n; i){int x;cin >> x;f[i][0] __gcd(f[i-1][0], x);for(int j 1; j < min(i, k)…

游戏引擎学习第31天

仓库:https://gitee.com/mrxiao_com/2d_game 回顾 回顾了他们的游戏开发进度&#xff0c;并强调了编写整个游戏的价值。他们提到&#xff0c;这个过程的目的是让每个参与者从零开始编程一个完整的游戏&#xff0c;了解整个游戏的工作原理。这样做的一个关键好处是&#xff0c…

南昌大学(NCU)羽毛球场地预约脚本

在冬天进行羽毛球运动是一个很好的选择&#xff0c;它能帮助你保持身体活力&#xff0c;增强心肺功能&#xff0c;并促进血液循环。但是室友和师弟师妹反应&#xff0c;学校的羽毛球场地有限&#xff0c;手速慢的根本预约不到场地。 中午12&#xff1a;00准时开放预约&#xff…

debian 11 虚拟机环境搭建过坑记录

目录 安装过程系统配置修改 sudoers 文件网络配置换源安装桌面mount nfs 挂载安装复制功能tab 无法补全其他安装 软件配置eclipse 配置git 配置老虚拟机硬盘挂载 参考 原来去 debian 官网下载了一个最新的 debian 12&#xff0c;安装后出现包依赖问题&#xff0c;搞了半天&…

leecode96.不同的二叉搜索树

在画的过程中发现规律&#xff0c;每次选择不同的节点作为根节点&#xff0c;左右两边的节点再排列组合一下就能求出总数 class Solution { public:int numTrees(int n) {vector<int> dp(n1,0);dp[0]1;for(int i1;i<n;i)for(int j0;j<i;j)dp[i]dp[i-j-1]*dp[j];ret…

Vue前端开发-路由的基本配置

在传统的 Web 页面开发过程中&#xff0c;可以借助超级链接标签实现站内多个页面间的相互跳转&#xff0c;而在现代的工程化、模块化下开发的Web页面只有一个&#xff0c;在一个页面中需要实现站内各功能页面渲染&#xff0c;相互跳转&#xff0c;这时些功能的实现&#xff0c;…

Creating Server TCP listening socket *:6379: bind: No error

启动redis报错&#xff1a;Creating Server TCP listening socket *:6379: bind: No error 解决方案&#xff1a; 1、直接在命令行中输入 redis-cli.exe 2、输入shutdown&#xff0c;关闭 3、输exit&#xff0c;退出 4、重新输入 redis-server.exe redis.windows.conf&…

详解登录MySQL时出现SSL connection error: unknown error number错误

目录 登录MySQL时出错SSL connection error: unknown error number 出错原因 使用MySQL自带的工具登录MySQL 登陆之后&#xff0c;使用如下命令进行查看 解决方法 找到MySQL8安装目录下的my.ini配置文件 记事本打开my.ini文件&#xff0c;然后按下图所示添加配置 此时再…

AI在SEO中的应用与关键词优化探讨

内容概要 在当今数字化时代&#xff0c;人工智能&#xff08;AI&#xff09;技术为搜索引擎优化&#xff08;SEO&#xff09;带来了革命性的改变。传统的SEO主要依赖于人为的经验和判断&#xff0c;而AI则通过算法分析海量数据&#xff0c;提供更加精准和高效的方式优化关键词…

NLP任务四大范式的进阶历程:从传统TF-IDF到Prompt-Tuning(提示词微调)

引言&#xff1a;从TF-IDF到Prompt-Tuning&#xff08;提示词微调&#xff09;&#xff0c;NLP的四次变革 自然语言处理&#xff08;NLP&#xff09;技术从最早的手工特征设计到如今的Prompt-Tuning&#xff0c;经历了四个重要阶段。随着技术的不断发展&#xff0c;我们的目标…