第1章大型互联网公司的基础架构——1.2 客户端连接机房的技术1:DNS

客户端启动时要做的第一件事情就是通过互联网与机房建立连接,然后用户才可以在客户端与后台服务器进行网络通信。目前在计算机网络中应用较为广泛的网络通信协议是TCP/IP,它的通信基础是IP地址,因为IP地址有如下两个主要功能。

  1. 标识设备:接入网络的设备必须有一个独一无二的IP地址,这样才能唯一标识一个网络目标。
  2. 网络寻址:将数据包从一个网络设备发送到另一个网络设备,需要携带目标网络设备的IP地址,通过TCP/IP中的IP路由寻址功能,数据包最终可以到达目标网络设备。

客户端要与机房建立连接,就需要知道机房公网IP地址(暴露在互联网中可访问的IP地址),但是IP地址通常由一串冰冷的数字组成,没有可读性,不方便记忆,于是人们又制定出另一套字符型的地址方案:域名地址。“域名”是大家都很熟悉的名词,在浏览器中输入简单易记的域名(如www.baidu.com),就可以访问到对应的网站,它的底层其实是由DNS来实现的。

1.2.1 DNS的意义

DNS( Domain Name System,域名系统)是互联网中的核心服务,它维护域名与对应 IP地址的映射关系,并提供将域名翻译为IP地址的域名解析功能。DNS在互联网中有非常广泛的应用,它为用户和互联网公司带来了很多便利。例如:

  1. 互联网公司可以创建简单、便于用户记忆的域名并注册到DNS服务器,用户仅需输入域名就能访问到对应的网站。
  2. 通过维护域名与多个IP地址的映射关系,DNS可以将针对同一个域名的不同用户请求解析到不同的IP地址,从而缓解单一后台服务器的资源压力。
  3. 互联网公司因架构升级、网络改造等需要变更机房公网IP地址时,仅需在DNS服务器中重新配置最新的IP地址,而不会对用户造成任何干扰。
  4. 基于DNS可以实现灵活的负载均衡策略,比如DNS服务器可以对IP地址进行监测——如果发现机房某公网IP地址对应的服务器宕机,那么DNS服务器可以将这个IP地址及时摘除,防止用户无法访问后台。

接下来详细介绍DNS的技术原理。

1.2.2 域名结构

如图1-2所示,域名采用了层次化的树形结构来命名。树的顶端节点为根,根的下一层称为顶级域名,指的是域名的后缀部分,如最常见的.com.net等通用域或者.cn.us等国家域;顶级域名的下一层是二级域名,指的是域名的倒数第二部分,一般表示域名注册人或主体所使用的网络名称,如google.comapple.com;二级域名的下一层是三级域名, 指的是域名的倒数第三部分,表示二级域名的子域名。实际上,域名可能还包括四级域名、五级域名等,它们的含义根据上文类推,每一级域名都控制下一级域名的分配。

image-20250216110358579

对于域名mail.google.com来说,顶级域名是.com,二级域名是google.com,三级域名 是mail.google.com

1.2.3 域名服务器

按照域名的层级结构,可以把域名服务器分为4种不同的类型。

(1)根域名服务器(根DNS服务器)

根域名服务器是全球互联网的中枢神经,它负责互联网顶级域名的解析,即它掌握着全部顶级域名的名称与IP地址的映射关系。目前全球仅有13台IPv4根域名服务器,其中主根域名服务器部署在美国,其余12台辅根域名服务器有9台部署在美国、2台部署在欧洲、1台部署在日本。根域名服务器由美国政府授权的互联网名称与数字地址分配机构(ICANN)统一管理。

(2)顶级域名服务器(顶级DNS服务器)

顾名思义,顶级域名服务器负责管理在每个顶级域名下注册的二级域名解析工作,即它可以根据二级域名寻找到二级域名服务器的IP地址。顶级域名服务器就相当于一个朝代的封疆大吏。

(3)权威域名服务器(权威DNS服务器)

权威域名服务器负责对特定的域名进行解析,它管理顶级域名下的二级域名、三级域名、四级域名等的服务器。从名字中的“权威”可以看出,权威域名服务器最终决定了一个域名到底应该被解析成哪个IP地址,它是DNS中最核心的部分。

每个域名对应的权威域名服务器都可能不同,每个权威域名服务器仅可解析它负责的域名,比如负责google.com域名的权威域名服务器无法解析域名apple.com。大型互联网公司一般会自建权威域名服务器,而中小型企业一般会将域名托管给知名的权威域名服务商。

(4)本地域名服务器(本地DNS服务器)

本地域名服务器不属于域名层次结构中的任何一层,但是它对DNS非常重要,相当于域名解析的缓存。任何一台主机在进行网络地址配置时,都会配置一台域名服务器作为本地域名服务器,它是主机在进行域名查询时首先要查询的域名服务器。本地域名服务器一般由网络运营商提供,它作为主机访问网络时域名解析的总代理,会将域名解析结果缓存到本地,以便加速主机后面的域名解析过程。

1.2.4 域名解析过程

域名解析一般采用递归查询方式执行,一个完整的域名解析过程如图1-3所示。

  1. 当客户端访问某个域名时,会先在设备的本地缓存中查找是否有此域名对应的IP地址。本地缓存包括浏览器缓存计算机系统Hosts文件DNS缓存
  2. 如果本地缓存中没有对应的IP地址,则客户端向本地域名服务器发起域名解析请求。如果本地域名服务器保存了域名对应的IP地址,则可以直接返回;否则,本地域名服务器作为客户端的全权代理,递归地完成域名解析。
  3. 本地域名服务器先向根域名服务器发起域名解析请求。根域名服务器收到请求后,会根据所要查询的域名的后缀将所对应的顶级域名服务器(如.com)地址返回给本地域名服务器。
  4. 本地域名服务器根据返回结果向所对应的顶级域名服务器发起查询请求。顶级域名服务器会先查看自己的缓存中是否有此域名的解析记录,如果有,则将IP地址解析结果返回给本地域名服务器,本地域名服务器再将其返回给客户端,域名解析完成。而如果顶级域名服务器的缓存中没有解析记录,则将域名对应的权威域名服务器地址返回给本地域名服务器。
  5. 本地域名服务器继续向权威域名服务器发起域名解析请求。权威域名服务器最终将与域名关联的IP地址返回给本地域名服务器,本地域名服务器再将其返回给客户端,域名解析完成。

image-20250216111311130

可以看到,除客户端查询本地缓存和本地域名服务器发起请求之外,域名解析的其余各环节均以本地域名服务器为中心进行递归查询,本地域名服务器在域名解析的整个环节中承担了代理的角色。

需要额外说明的是,一旦本地域名服务器获得域名解析记录,它就会在本地进行记录缓存,以便下次客户端再向它查询同一个域名时可以直接获得结果,而不用再进行递归查询了。被缓存的域名解析记录格式大致如图1-4所示。

image-20250216111433001

当查询域名(如www.baidu.com)时,域名解析记录会包含如下数据。

  • 生存周期(TTL):表示这条记录在本地域名服务器中被缓存的时长。
  • 协议类型(Class): 一般标识为IN,表示因特网。
  • 记录类型(Type ): A表示IPv4地址,AAAA表示IPv6地址。
  • 记录数据(Rdata ):与域名关联的地址信息。

总结

什么是DNS?

  • DNS( Domain Name System,域名系统)是互联网中的核心服务,它维护域名与对应 IP地址的映射关系,并提供将域名翻译为IP地址的域名解析功能。

域名服务器的类型?

  1. 根域名服务器
  2. 顶级域名服务器
  3. 权威域名服务器
  4. 本地域名服务器

DNS解析流程?

  1. 当客户端访问某个域名时,会先在设备的本地缓存中查找是否有此域名对应的IP地址。本地缓存包括浏览器缓存计算机系统Hosts文件DNS缓存
  2. 如果本地缓存中没有对应的IP地址,则客户端向本地域名服务器发起域名解析请求。如果本地域名服务器保存了域名对应的IP地址,则可以直接返回;否则,本地域名服务器作为客户端的全权代理,递归地完成域名解析。
  3. 本地域名服务器先向根域名服务器发起域名解析请求。根域名服务器收到请求后,会根据所要查询的域名的后缀将所对应的顶级域名服务器(如.com)地址返回给本地域名服务器。
  4. 本地域名服务器根据返回结果向所对应的顶级域名服务器发起查询请求。顶级域名服务器会先查看自己的缓存中是否有此域名的解析记录,如果有,则将IP地址解析结果返回给本地域名服务器,本地域名服务器再将其返回给客户端,域名解析完成。而如果顶级域名服务器的缓存中没有解析记录,则将域名对应的权威域名服务器地址返回给本地域名服务器。
  5. 本地域名服务器继续向权威域名服务器发起域名解析请求。权威域名服务器最终将与域名关联的IP地址返回给本地域名服务器,本地域名服务器再将其返回给客户端,域名解析完成。

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

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

相关文章

第四届图像、信号处理与模式识别国际学术会议(ISPP 2025)

重要信息 大会官网:www.icispp.com 大会时间:2025年3月28日-30日 大会地点:南京 简介 由河海大学和江苏大学联合主办的第四届图像、信号处理与模式识别(ISPP 2025) 将于2025年3月28日-30日在中国南京举行。主要围绕图像信号处…

STM32F1学习——BKP备份寄存器和RTC实时时钟

一、RTC实时时钟 在使用RTC实时时钟时,我们需要理解一下Unix时间戳相关的内容。Unix定义为从UTC/GMT的1970年1月1日的0时0分0秒开始所经过的秒数,不考虑润秒。 时间戳存储在一个秒计数器中,秒计数器为32位/64位的整型变量,世界上所…

【Python爬虫(26)】Python爬虫进阶:数据清洗与预处理的魔法秘籍

【Python爬虫】专栏简介:本专栏是 Python 爬虫领域的集大成之作,共 100 章节。从 Python 基础语法、爬虫入门知识讲起,深入探讨反爬虫、多线程、分布式等进阶技术。以大量实例为支撑,覆盖网页、图片、音频等各类数据爬取&#xff…

Java集合框架之List接口详解

目录 一、List接口概述 二、List接口常见实现类 三、List接口特有方法: 1.元素操作 2. 查找元素位置 3. 子列表与不可变列表 四、List特有迭代器:ListIterator 1.特有的迭代方式 2.ListIterator接口中的常用方法: ⑴.void add(E e):在光标位置插入元素。(会移动…

嵌入式八股文(四)计算机网络篇

第一章 基础概念 1. 服务 指网络中各层为紧邻的上层提供的功能调用,是垂直的。包括面向连接服务、无连接服务、可靠服务、不可靠服务。 2. 协议 是计算机⽹络相互通信的对等层实体之间交换信息时必须遵守的规则或约定的集合。⽹络协议的三个基本要素:语法、…

SpringBoot+Vue+Mysql苍穹外卖

一.项目介绍 1.项目内容 苍穹外卖是一款为大学学子设计的校园外卖服务软件,旨在提供便捷的食堂外卖送至宿舍的服务。该软件包含系统管理后台和用户端(微信小程序)两部分,支持在线浏览菜品、添加购物车、下单等功能,并…

【设计模式精讲】创建型模式之工厂方法模式(简单工厂、工厂方法)

文章目录 第四章 创建型模式4.2 工厂方法模式4.2.1 需求: 模拟发放奖品业务4.2.2 原始开发方式4.2.3 简单工厂模式4.2.3.1 简单工厂模式介绍4.2.3.2 简单工厂原理4.2.3.3 简单工厂模式重构代码4.2.3.4 简单工厂模式总结 4.2.4 工厂方法模式4.2.4.1 工厂方法模式介绍4.2.4.2 工厂…

【C语言】指针(5)

前言:上篇文章的末尾我们使用了转移表来解决代码冗余的问题,那我们还有没有什么办法解决代码冗余呢?有的这就是接下来要说的回调函数。 往期文章: 指针1 指针2 指针3 指针4 文章目录 一,回调函数二,qsort实现快速排序1…

SpringBoot:SSL证书部署+SpringBoot实现HTTPS安全访问

一、前言 SSL协议介于TCP/IP协议栈的第四层(传输层)和第七层(应用层)之间,为基于TCP的应用层协议(如HTTP)提供安全连接。它通过在客户端和服务器之间建立一个加密的通道,确保数据在传…

嵌入式 lwip http server makefsdata

背景: 基于君正X2000 MCU Freertoslwip架构 实现HTTP server服务,MCU作为HTTP服务器通过网口进行数据包的传输,提供网页服务。其中设计到LWIP提供的工具makefsdata,常用于将文件或目录结构转换为适合嵌入到固件中的二进制格式。 …

论文笔记-WSDM2025-ColdLLM

论文笔记-WSDM2025-Large Language Model Simulator for Cold-Start Recommendation ColdLLM:用于冷启动推荐的大语言模型模拟器摘要1.引言2.前言3.方法3.1整体框架3.1.1行为模拟3.1.2嵌入优化 3.2耦合漏斗ColdLLM3.2.1过滤模拟3.2.2精炼模拟 3.3模拟器训练3.3.1LLM…

《DeepSeek-V3:人工智能大语言模型》

《DeepSeek-V3:人工智能大语言模型》 1. 引言 我们介绍了 DeepSeek-V3,这是一个强大的专家混合 (MoE) 语言模型,总共有 671B 个参数,每个令牌激活了 37B。 为了实现高效的推理和具有成本效益的训练,DeepSeek-V3 采用了多头潜在注意力 (MLA) 和 DeepSeekMoE 架构,这些…

手机控制电脑远程关机

远程看看软件兼容iOS和Android设备,该软件除了能通过电脑远程关闭另一台电脑外,您还可以通过它在手机上远程关闭公司的电脑。您可以按照以下步骤进行操作以实现电脑远程关机: 步骤1.在手机应用商店搜索“远程看看”进行软件安装,…

Aseprite绘画流程案例(1)——画相机图标

原图: 步骤一:打开需要参照的图标 步骤二:将参照的图片拖放到右边,作为参考 步骤三:新建24x24的画布,背景为白色的画布 步骤四:点击菜单栏——视图——显示——像素网格(如果画布已经…

The Heliosphere 日球层

转自 The Heliosphere - NASA This is an artists concept of our Heliosphere as it travels through our galaxy with the major features labeled. Termination Shock: Blowing outward billions of kilometers from the Sun is the solar wind, a thin stream of electrica…

使用API有效率地管理Dynadot域名,为域名部署DNS安全拓展(DNSSEC)

关于Dynadot Dynadot是通过ICANN认证的域名注册商,自2002年成立以来,服务于全球108个国家和地区的客户,为数以万计的客户提供简洁,优惠,安全的域名注册以及管理服务。 Dynadot平台操作教程索引(包括域名邮…

vsan数据恢复—vsan缓存盘故障导致虚拟磁盘文件丢失的数据恢复案例

vsan数据恢复环境&故障: VMware vsan架构采用21模式。每台设备只有一个磁盘组(71),缓存盘的大小为240GB,容量盘的大小为1.2TB。 由于其中一台主机(0号组设备)的缓存盘出现故障,导…

匹配算法:向下就近原则,向下没有就向上

匹配算法&#xff1a;向下就近原则&#xff0c;向下没有就向上 实现方式一实现方式二总结 实现方式一 private static List<Integer> findMatches(List<Integer> sourceList, List<Integer> searchValues) {List<Integer> sortedList sourceList.stre…

AI客服-接入deepseek大模型到微信(本地部署deepseek集成微信自动收发消息)

1.本地部署 1.1 ollama Ollama软件通过其高度优化的推理引擎和先进的内存管理机制&#xff0c;显著提升了大型语言模型在本地设备上的运行效率。其核心采用了量化技术&#xff08;Quantization&#xff09;以降低模型的计算复杂度和存储需求&#xff0c;同时结合张量并行计算&…

Python VsCode DeepSeek接入

Python VsCode DeepSeek接入 创建API key 首先进入DeepSeek官网&#xff0c;https://www.deepseek.com/ 点击左侧“API Keys”&#xff0c;创建API key&#xff0c;输出名称为“AI” 点击“创建"&#xff0c;将API key保存&#xff0c;复制在其它地方。 在VsCode中下载…