热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

域名系统的工作原理_域名系统如何工作

域名系统的工作原理域名系统。从最基本的角度来看,域名系统(DNS)是人类可读域名(例如google.com或amazon.c

域名系统的工作原理

域名系统。

从最基本的角度来看,域名系统( DNS )是人类可读域名(例如google.com或amazon.com)和IP地址之间的翻译目录。

什么是IP地址?

Internet协议地址( IP地址)是分配给连接到计算机网络的每个设备的数字标签,该设备使用Internet协议进行通信。 它具有两个主要功能:网络接口标识和位置寻址。

有两种和常用的IP地址版本:IPv4和IPv6。 由于可用IPv4地址的Swift耗尽,IPv6在2000年代中期开始变得更加广泛。 您可以通过地址的长度轻松区分IPv4(8.8.8.8)和IPv6地址(0:0:0:0:0:ffff:808:808)之间的区别。

网络上的每个设备都需要有一个IP地址。 IP地址可以是公用的,也可以将专用和保留的IP地址用于专用IP地址。

  • Class A — 10.0.0.0/8 10.0.0.0–10.255.255.255
  • B级— 172.16.0.0/12 172.16.0.0–172.31.255.255
  • C类-192.168.0.0/16 192.168.0.0–192.168.255.255

IP地址整体上是一个巨大的话题,以后我将继续撰写一篇有关IP地址的文章

DNS解析

DNS解析是将主机名转换为IP地址的过程。

加载网页需要执行4个操作。

递归器

递归是一个服务器,旨在接收来自客户端的查询。 它将充当客户端和DNS名称服务器之间的中间人。 如果存在,它将从其缓存中返回数据,或者直接查找根名称服务器。

根名称服务器

根名称服务器包含组成根区域的信息,该区域是顶级域的全局列表。 根区域包含;

-通用顶级域名,例如.com,.net和.org

-国家代码顶级域名,例如英国的.uk

-国际化的顶级域名,本质上是用国家/地区本地字符集编写的顶级域名

顶级域名服务器

TLD(顶级域)是Internet的DNS根区域中的最高域名。 互联网名称与数字地址分配机构(ICANN)负责大多数顶级域名。

权威名称服务器

权威名称服务器是名称服务器查询中的最后一个操作。 如果权威名称服务器可以访问请求的记录,它将把请求的主机名的IP地址返回给DNS递归。 该服务器保存特定域的实际DNS记录(A,CNAME等)

权威DNS服务器与递归DNS解析器?

主要区别在于递归解析器位于DNS查询的开头,而权威名称服务器位于查询的结尾。

假设您的操作系统和Web浏览器尚未缓存该客户端,则客户端将向递归DNS服务器发出请求以查找与该网站关联的IP地址。

递归服务器将检查自身是否已缓存IP,以及是否在有效生存时间(TTL)之内。 如果不是,它将启动递归过程(重复一个过程并返回自身),以遍历权威DNS服务器层次结构。

权威的DNS服务器负责目标网站的IP“映射”。 权威服务器将响应递归服务器。

权威服务器通常由Web托管公司管理,而递归服务器主要用于减轻权威服务器的负载,并提供一定程度的缓存。

DNS查找(不缓存任何内容时的指南)

用户在浏览器(例如本示例hackernoon)中输入网站。 com该请求最初由DNS递归解析器接收。

DNS递归解析器查询DNS根域名服务器(。),然后根服务器以顶级域的地址响应,并指向.com顶级域,并对其发出请求。域名服务器以域域名服务器hackernoon的IP地址作为响应。 com。

递归解析器将查询发送到域的名称服务器,以及hackernoon的IP地址。 com然后从名称服务器返回到解析器。 然后将IP发送回Web浏览器,然后浏览器向IP地址发出HTTP请求,并呈现从服务器返回的内容

DNS查询类型

在典型的DNS查找中,使用三种类型的查询。

在理想情况下,缓存的记录数据将可用,从而允许DNS名称服务器返回非递归查询。

递归DNS查询

对于递归查询,DNS客户端要求DNS服务器在解析器找不到记录的情况下以资源记录或错误消息响应客户端。

迭代DNS查询

对于迭代DNS查询,DNS客户端将允许DNS服务器返回其可能的最佳答案。

如果查询的DNS服务器与查询名称不匹配,它将返回对DNS服务器权威的引用。 然后,DNS客户端会查询引荐地址。 此过程将继续使用查询链中的其他DNS服务器,直到发生错误或超时。

非递归DNS查询

对于非递归查询,DNS解析器已经知道答案。

它要么立即返回一个DNS记录,因为它已经将其存储在本地缓存中,要么查询一个对该记录具有权威性的DNS名称服务器。 在这两种情况下,都不需要额外的查询,因此响应会立即返回给客户端

DNS缓存,DNS缓存在哪里发生?

缓存将数据临时存储在一个位置中,从而改善了数据请求的性能和可靠性。

DNS缓存将数据存储在更靠近发出请求的客户端的位置,以便可以更早解决DNS查询并避免其他查询。 这样可以缩短加载时间。

DNS数据可以缓存在多个位置,每个位置都将存储DNS记录一段由生存时间(TTL)确定的时间。

浏览器DNS缓存

Web浏览器旨在将DNS记录缓存一定的时间。

DNS缓存与Web浏览器的距离越近,必须采取的处理步骤就越少,以便检查缓存并向IP地址发出正确的请求。

浏览器缓存是检查请求记录的第一个位置。

操作系统DNS缓存

您的操作系统是DNS查询离开您的计算机之前可以使用缓存的最后一个位置。

当您的浏览器中未缓存记录时,操作系统解析器将检查其自己的缓存以查看是否具有该记录。

如果不正确,则它将本地网络外部的DNS查询发送到Internet服务提供商(ISP)内部的DNS递归解析器(通常是默认设置)或路由器中设置的解析器。

当递归解析器接收到DNS查询时,它还将检查所请求的主机转换是否已存储在其缓存中。

递归解析器还具有其他功能,具体取决于其缓存中具有的记录类型。

递归解析器如何有效解析?

如果解析器没有A记录,但是具有权威名称服务器的NS记录,它将绕过DNS查询中的几个步骤,直接查询那些名称服务器。 此快捷方式可防止从根服务器和.com域名服务器(在我们对example.com的搜索中)查找,并有助于更快地解决DNS查询。

如果解析器没有NS记录,它将向TLD服务器(在本例中为.com)发送查询,而跳过根服务器。

万一解析器没有指向TLD服务器的记录,则解析器将查询根服务器。 清除DNS缓存后,通常会发生此事件

翻译自: https://hackernoon.com/how-domain-name-system-work-318j3w0d

域名系统的工作原理



推荐阅读
  • 本文详细介绍了在PHP中如何获取和处理HTTP头部信息,包括通过cURL获取请求头信息、使用header函数发送响应头以及获取客户端HTTP头部的方法。同时,还探讨了PHP中$_SERVER变量的使用,以获取客户端和服务器的相关信息。 ... [详细]
  • 本文将详细介绍如何配置并整合MVP架构、Retrofit网络请求库、Dagger2依赖注入框架以及RxAndroid响应式编程库,构建高效、模块化的Android应用。 ... [详细]
  • Hadoop集群搭建:实现SSH无密码登录
    本文介绍了如何在CentOS 7 64位操作系统环境下配置Hadoop集群中的SSH无密码登录,包括环境准备、用户创建、密钥生成及配置等步骤。 ... [详细]
  • This feature automatically validates new regions using the AWS SDK, ensuring compatibility and accuracy. ... [详细]
  • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
  • Python应用实例大揭秘:七大令人惊叹的高阶技巧展示
    2020年,Python无疑成为了最炙手可热的编程语言,其影响力已远远超出程序员的范畴。从初学者到资深从业者,甚至小学生,都在纷纷加入Python的学习热潮中。凭借其低门槛、易上手和强大的功能,Python正逐渐成为各行业不可或缺的工具。本文将揭示七个令人惊叹的Python高级应用技巧,帮助读者进一步提升编程水平。 ... [详细]
  • 投融资周报 | Circle 达成 4 亿美元融资协议,唯一艺术平台 A 轮融资超千万美元 ... [详细]
  • 在第七天的深度学习课程中,我们将重点探讨DGL框架的高级应用,特别是在官方文档指导下进行数据集的下载与预处理。通过详细的步骤说明和实用技巧,帮助读者高效地构建和优化图神经网络的数据管道。此外,我们还将介绍如何利用DGL提供的模块化工具,实现数据的快速加载和预处理,以提升模型训练的效率和准确性。 ... [详细]
  • 亚马逊老板杰夫·贝佐斯
    本文主要介绍关于的知识点,对【亚马逊创始人或成地球首位万亿富豪,起底贝佐斯创业之路】和【亚马逊老板杰夫·贝佐斯】有兴趣的朋友可以看下由【CSDN资讯】投稿的技术文章,希望该技术和经验能帮到你解决你所遇 ... [详细]
  • Kubernetes Services详解
    本文深入探讨了Kubernetes中的服务(Services)概念,解释了如何通过Services实现Pods之间的稳定通信,以及如何管理没有选择器的服务。 ... [详细]
  • 在本文中,我们将探讨如何在Docker环境中高效地管理和利用数据库。首先,需要安装Docker Desktop以确保本地环境准备就绪。接下来,可以从Docker Hub中选择合适的数据库镜像,并通过简单的命令将其拉取到本地。此外,我们还将介绍如何配置和优化这些数据库容器,以实现最佳性能和安全性。 ... [详细]
  • 在拉斯维加斯举行的Interop 2011大会上,Bitcurrent的Alistair Croll发表了一场主题为“如何以云计算的视角进行思考”的演讲。该演讲深入探讨了传统IT思维与云计算思维之间的差异,并提出了在云计算环境下应具备的新思维方式。Croll强调了灵活性、可扩展性和成本效益等关键要素,以及如何通过这些要素来优化企业IT架构和运营。 ... [详细]
  • 全新发布的自我修复与自我更新的Linux版本,专为云计算环境设计! ... [详细]
  • 特斯拉的盈利之谜:净利润未必源自汽车销售
    近日,特斯拉因客户投诉再度成为舆论焦点。一位车主反映其购买仅6天的Model 3在使用官方超级充电桩时突然断电,引发了对特斯拉产品质量和售后服务的质疑。然而,特斯拉的盈利模式并不仅限于汽车销售,其净利润可能更多地来自其他业务板块,如能源服务、自动驾驶技术和软件订阅等。这些多元化收入来源为特斯拉的财务表现提供了更多支撑。 ... [详细]
  • 如何使用 `com.amazonaws.services.sqs.model.DeleteMessageRequest` 的 `getQueueUrl()` 方法及其代码示例解析 ... [详细]
author-avatar
zc163com
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有