域名解析步骤

article/2025/1/15 11:43:41

当一个用户在浏览器中输入www.abc.com时,DNS解析将会有将近10个步骤:

  第1步,浏览器会检查缓存中有没有这个域名对应的解析过的IP地址,如果缓存中有,这个解析过程就将结束。浏览器缓存域名也是有限制的,不仅浏览器缓存大小有限制,而且缓存的时间也有限制,通常情况下为几分钟到几小时不等,域名被缓存的时间限制可以通过TTL属性来设置。这个缓存时间太长和太短都不好,如果缓存时间太长,一旦域名被解析到的IP有变化,会导致被客户端缓存的域名无法解析到变化后的IP地址,以致该域名不能正常解析,这段时间内有可能会有一部分用户无法访问网站。如果时间设置太短,会导致用户每次访问网站都要重新解析一次域名。

  第2步,如果用户的浏览器缓存中没有,浏览器会查找操作系统缓存中是否有这个域名对应的DNS解析结果。其实操作系统也会有一个域名解析的过程,在Windows中可以通过C:\Windows\System32\drivers\etc\hosts文件来设置,你可以将任何域名解析到任何能够访问的IP地址。如果你在这里指定了一个域名对应的IP地址,那么浏览器会首先使用这个IP地址。例如,我们在测试时可以将一个域名解析到一台测试服务器上,这样不用修改任何代码就能测试到单独服务器上的代码的业务逻辑是否正确。正是因为有这种本地DNS解析的规程,所以黑客就有可能通过修改你的域名解析来把特定的域名解析到它指定的IP地址上,导致这些域名被劫持。

  这导致早期的Windows版本中出现过很严重的问题,而且对于一般没有太多电脑知识的用户来说,出现问题后很难发现,即使发现也很难自己解决,所以Windows 7中将hosts文件设置成了只读的,防止这个文件被轻易修改。

  在Linux中这个配置文件是/etc/named.conf,修改这个文件可以达到同样的目的,当解析到这个配置文件中的某个域名时,操作系统会在缓存中缓存这个解析结果,缓存的时间同样是受这个域名的失效时间和缓存的空间大小控制的。

  前面这两个步骤都是在本机完成的,所以在图1-10中没有表示出来。到这里还没有涉及真正的域名解析服务器,如果在本机中仍然无法完成域名的解析,就会真正请求域名服务器来解析这个域名了。

  第3步,如何、怎么知道域名服务器呢?在我们的网络配置中都会有"DNS服务器地址"这一项,这个地址就用于解决前面所说的如果两个过程无法解析时要怎么办,操作系统会把这个域名发送给这里设置的LDNS,也就是本地区的域名服务器。这个DNS通常都提供给你本地互联网接入的一个DNS解析服务,例如你是在学校接入互联网,那么你的DNS服务器肯定在你的学校,如果你是在一个小区接入互联网的,那这个DNS就是提供给你接入互联网的应用提供商,即电信或者联通,也就是通常所说的SPA,那么这个DNS通常也会在你所在城市的某个角落,通常不会很远。在Windows下可以通过ipconfig查询这个地址

  在Windows中查询DNS Server

  在Linux下可以通过如下方式查询配置的DNS Server

  在Linux中下查询DNS Server

  这个专门的域名解析服务器性能都会很好,它们一般都会缓存域名解析结果,当然缓存时间是受域名的失效时间控制的,一般缓存空间不是影响域名失效的主要因素。大约80%的域名解析都到这里就已经完成了,所以LDNS主要承担了域名的解析工作。

  第4步,如果LDNS仍然没有命中,就直接到Root Server域名服务器请求解析。

  第5步,根域名服务器返回给本地域名服务器一个所查询域的主域名服务器(gTLD Server)地址。gTLD是国际顶级域名服务器,如.com、.cn、.org等,全球只有13台左右。

  第6步,本地域名服务器(Local DNS Server)再向上一步返回的gTLD服务器发送请求。

  第7步,接受请求的gTLD服务器查找并返回此域名对应的Name Server域名服务器的地址,这个Name Server通常就是你注册的域名服务器,例如你在某个域名服务提供商申请的域名,那么这个域名解析任务就由这个域名提供商的服务器来完成。

  第8步,Name Server域名服务器会查询存储的域名和IP的映射关系表,正常情况下都根据域名得到目标IP记录,连同一个TTL值返回给DNS Server域名服务器。

  第9步,返回该域名对应的IP和TTL值,Local DNS Server会缓存这个域名和IP的对应关系,缓存的时间由TTL值控制。

  第10步,把解析的结果返回给用户,用户根据TTL值缓存在本地系统缓存中,域名解析过程结束。

  在实际的DNS解析过程中,可能还不止这10个步骤,如Name Server也可能有多级,或者有一个GTM来负载均衡控制,这都有可能会影响域名解析的过程。


http://chatgpt.dhexx.cn/article/IsL9O6Ol.shtml

相关文章

阿里云服务器实现域名解析步骤(入门级教程)

对于刚开始接触网站搭建的新手来说,好多东西都需要去了解学习,搭建网站首先需要购买服务器,然后购买域名,然后是域名解析,最后是域名备案等这些大的流程步骤。本节就来将将域名解析的步骤,服务器是以阿里云…

QNX操作系统及网络设备驱动模块

QNX是业界公认的X86平台上最好的嵌入式实时操作系统之一。它具有独一无二的微内核实时平台,建立在微内核和完全地址空间保护基础之上,实时、稳定、可靠,已经完成到PowerPC、MIPS、ARM等内核的移植,成为在国内广泛应用的嵌入式实时…

Linux or QNX ?

Linux大家可能都比较熟悉了,我们先来看一下QNX的简介。 QNX简介 关于QNX名字的由来有一则趣事:Gordon Bell和Dan Dodge在1980年成立了Quantum Software Systems公司,他们根据大学时代的一些设想写出了一个能在IBM PC上运行的名叫QUNIX&…

[转]车载电子操作系统:QNX与Linux未来有望两家独大

email:174176320qq.com 如果你认为本系列文章对你有所帮助,请大家有钱的捧个钱场,点击此处赞助,赞助额0.1元起步,多少随意 声明:本文只用于个人学习交流,若不慎造成侵权,请及时联系我&#xf…

QNX操作系统及网络设备驱动模块-qnx设备驱动模块

锋影 e-mail:174176320qq.com QNX是业界公认的X86平台上最好的嵌入式实时操作系统之一。它具有独一无二的微内核实时平台,建立在微内核和完全地址空间保护基础之上,实时、稳定、可靠,已经完成到PowerPC、MIPS、ARM等内核的移植&am…

QNX操作系统优先级以及调度策略

一、优先级分别以及任务抢占 Neutrino 提供了一个基于优先级驱动的抢占式的设计理念。优先级驱动意味着,我们可以为每个线程分配一个优先级,它将可以根据优先级调度策略获取CPU资源。如果一个低优先级线程和一个高优先级线程同时像获取CPU使用权,那么高优先级线程将会运行。…

【历史上的今天】9 月 12 日:世界上第一块集成电路诞生;QNX 操作系统开源;苹果推出 iPhone X

整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来。 今天是 2022 年 9 月 12 日,科技历史的今天有着许多“第一次”:第一架无线电无人机、第一块集成电路、第一个人造登月物体、QNX 第一次开源自己的操作系…

​Linux和QNX两大操作系统在智驾系统上的提升策略

智能驾驶底层软件的核心是其运行的操作系统,该系统主要运行在智能驾驶域控制器上,支持自动驾驶所需的高性能计算和高带宽通信异构芯片。考虑到智驾系统本身对安全性,实时性和可靠性的要求较高,因此,这类需求也会同步加…

QNX实时操作系统简介

目录 什么是QNX?QNX的特点 什么是QNX? QNX是一种实时操作系统; QNX是微内核架构;其核心仅提供4种服务(大部分功能都剥离了出去),分别为:进程调度、进程间通信、底层网络通信和中断处…

qnx 镜像文件_一种基于Hypervisor的QNX操作系统启动方法及装置与流程

本发明涉及计算机领域,尤其涉及一种基于Hypervisor的QNX操作系统启动方法及装置。 背景技术: 基于Hypervisor的QNX是一种商用的遵从POSIX规范,常用用在汽车及路由器上,QNX是一种嵌入式实时操作系统,一般对系统启动速度…

QNX操作系统和QNX Hypervisor简介

概述 QNX操作系统和QNX Hypervisor是由QNX Software Systems开发的两个重要的嵌入式技术。它们在嵌入式系统领域具有广泛的应用和卓越的表现。 QNX OS是一个实时操作系统,主要用于嵌入式系统和实时应用程序。它具有可靠性、安全性和高性能的特点。QNX OS支持多处理…

如何查找中文-英文文献 ?

查找外文文献 1、DPLP 计算机类的文献可以在德国的DPLP网站上根据需要直接获得所需文章的相关信息。 http://dblp.org/ 进入DPLP的主页后,在搜索框键入所要搜索的内容。 例如查找文章"A self-Organizing approach to background subtraction for visual surveillan…

如何寻找计算机领域的英文文献?

大家一定或多或少都有文献检索的经验吧,中文文献还好,我们总归是对自己的的母语比较熟悉,通过关键词或其他检索条件,总能得心应手地找到自己需要的文献。相较于中文文献,对外文文献的检索就显得难度增加了不少&#xf…

在哪里可以搜索英文文献?

15天读了100篇英文文献,秘诀在此! 如何段时间内阅读大量英文文献,相信很多人阅读英文文献最头疼的就是翻译问题了,没有好用的翻译工具,连检索英文文献都要费好大的劲,现在不用发愁啦,科研人经过…

检索下载中/英文论文的方法

目录 一、中文文献下载 1.本校的图书馆 2、百度学术百度学术https://xueshu.baidu.com/ 3.掌桥科研 二、英文文献下载方法 1.首推SCI-HUB 2、百度学术 3、semanticscholarsemanticscholarhttps://www.semanticscholar.org/ 4.必应搜索 5、其他搜索引擎 三、后记 一、中…

英文文献检索与下载

存档仅自用 谷歌学术镜像网站:谷歌学术镜像_Google镜像站主要提供谷歌学术搜索Google Scholar镜像和谷歌网页搜索镜像的导航站,实时更新最新镜像网站http://scholar.scqylaw.com/ 复制文献DOI号到此sci-hub文献检索sci-hub文献检索:提供sci-hub链接生成及论文搜索…

怎么查找和自己专业有关的英文文献?

参考文献是论文重要的组成部分,如何找到一篇适合自己论文参考文献更是重中之重,中文参考文献还好说,一眼过去可以了解大致内容,从而判断是否合适。而英文就不同了,相较于中文文献来说,英文文献找起来就比较…

移植tslib库 [五一勋章]

​​​​​​ 移植tslib库 tslib 为触摸屏驱动和应用层之间的适配层,它把应用程序中读取触摸屏 struct input_event 类型数据(这是输入设备上报给应用层的原始数据)并进行解析的操作过程进行了封装,向使用者提供了封装好的 API …

buildroot配置QT5和tslib

buildroot 移植参考文章 buildroot配置安装qt5 在buildroot下面,打开配置界面 make menuconfig 选择target packages项 找到QT5 勾选 进入QT5选项,勾选gui module 和 widgets module。 buildroot编译安装tslib 执行make menuconfig Target pack…

tslib的安装

tslib是嵌入式开发中使用qt开发之前需要搭建的一个必须的环境,通过tslib,你编写的qt程序才能通过触摸屏进行操作,而tslib进行进行你的qt程序和硬件之间的接口,因此, 学会如何搭建tslib是进行嵌入式开发的一个重要的环…