局域网协议:DNS(Domain Name System,域名系统)详解

news2024/11/18 5:45:47

文章目录

    • 什么是DNS?
    • DNS的重要性
    • DNS的域名解析过程
      • 递归查询
      • 迭代查询
    • DNS解析失败怎么办?
    • 为什么DNS需要递归服务器?
    • DNS为什么用UDP?
    • 推荐阅读

什么是DNS?

DNS(Domain Name System,域名系统)是互联网中用于将域名转换为相应IP地址的分布式命名系统。它充当了互联网的“电话簿”,将人类易于记忆的域名(比如www.example.com)转换为计算机更容易识别和处理的IP地址(比如192.168.1.1)。

虽然不是严格意义上的局域网协议,但它在中大型局域网起着至关重要的作用。它负责将域名映射为IP地址,使得用户可以使用易记的名称访问网络资源。

DNS的重要性

  • DNS是互联网基础设施的核心之一。它使得用户可以通过易于记忆的域名来访问互联网资源,而无需记住复杂的IP地址。
  • DNS对域名的解析速度和是否可靠运行至关重要,它直接影响到用户体验和网络服务的可用性。比如您打开一个网页,需要等待很长时间才能正常打开,那么您可能会中途关闭该网页,并去寻找其他类似的网页服务。

DNS的域名解析过程

域名解析包含两种查询方式,分别是递归查询和迭代查询。

递归查询

如果主机询问的本地域名服务器不知道被查询域名的 IP 地址,本地DNS服务器会代表客主机进行整个查询过程,逐级向下级DNS服务器查询直至找到目标域名的IP地址,然后直接将结果返回给主机
在这里插入图片描述

迭代查询

当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的IP 地址,要么告诉本地服务器下一步应该找哪个域名服务器进行查询,然后让本地服务器进行后续的查询。

在这里插入图片描述

DNS解析失败怎么办?

  1. 检查您的互联网连接。很多时候域名解析失败的主要原因是你没有连接到互联网。
  2. 验证问题是否与 DNS 相关。在深入研究特定于 DNS 的解决方案之前,请确认该问题与一般连接无关。尝试使用 IP 地址而不是域名来访问该站点。如果有效,则问题可能出在 DNS 解析上。
  3. 自动 \ 手动获取DNS服务器地址。转到网络适配器并打开属性。然后搜索 Internet 协议版本 4 (TCP/IPv4) 并打开其属性进行配置,可以根据实际情况选择自动获取DNS服务器地址或者手动配置一个。如果手动配置,需要确忍主机可以正常访问该DNS服务器,国内推荐的public DNS:223.5.5.5 ,114.114.114.114 ,有些时候也可以尝试用Google DNS:8.8.8.8 。
  4. 解决可能的IP地址冲突问题。 由于 DHCP 服务器的原因,可能会出现 IP 地址冲突。您可以使用命令提示符中的命令来执行此操作:
ipconfig /release
ipconfig /renew
  1. 刷新 DNS 缓存。您可以通过访问命令提示符(以管理员身份)并执行以下命令来完成此操作:
  • 在 Windows 上,打开命令提示符并键入:
ipconfig /flushdns
  • 在 macOS 上,打开终端并输入:
sudo Killall -HUP mDNSResponder
  • 在 Linux 上,该命令因发行版而异,但常见的命令是:
sudo systemctl restart nscd

如果您以前的某个域的 IP 地址不再可用,那么您现在已将其删除。设备再次执行 DNS 解析,应该会获取新的 IP 地址。
6. 禁用任何 VPN 或代理。VPN 和代理可以通过不同的服务器重定向您的网络流量,这可能会导致 DNS 解析问题。尝试禁用它们,看看是否可以解决问题。
7. 检查您的主机文件。您计算机上的主机文件可以覆盖 DNS 并手动将域名映射到 IP 地址。确保没有可能导致冲突的错误条目。

  • 在 Windows 上,此文件位于:C:\Windows\System32\drivers\etc\hosts
  • 在 macOS 和 Linux 上,它位于:/etc/hosts
  1. 等待DNS同步。如果您访问的域名最近更改了 DNS 记录,那么只需耐心等待即可。一般同步只需要几分钟就可以完成,特殊情况下,DNS 同步最多可能需要 48 小时。

为什么DNS需要递归服务器?

为了提高DNS的查询效率,并减轻根域名服务器的负荷和减少因特网上的DNS查询报文数量,在域名服务器中广泛地使用了高速缓存。高速缓存用来存放最近查询过的域名以及从何处获得域名映射信息的记录。
由于域名到IP地址的映射关系并不是永久不变,为了减少负载并提高速度,由递归服务器(DNS 解析器)在定义的时间段内保留 DNS 记录以及访问特定网站所需的信息。这个时间称为TTL(生存时间),这个过程称为DNS缓存。
不但在本地域名服务器中需要高速缓存,在用户主机中也很需要。许多用户主机在启动时从本地域名服务器下载域名和IP地址的全部数据库,维护存放自己最近使用的域名的高速缓存,并且只在从缓存中找不到域名时才向域名服务器查询。

DNS为什么用UDP?

当客户端向 DNS 服务器查询域名 ( 域名解析) 的时候,一般返回的内容不会超过 UDP 报文的最大长度,即 512 字节。用 UDP 传输时,不需要经过 TCP 三次握手的过程,从而大大提高了响应速度,但这要求域名解析器和域名服务器都必须自己处理超时和重传从而保证可靠性。

但有一些情况,DNS也会选择采用TCP:

  1. 如果DNS响应超过了512字节,服务器可能会选择使用TCP来发送较大的响应,因为TCP允许更大的数据包传输。
  2. 当进行DNS区域传输时,需要传输较大量的数据(例如完整的区域数据)。这种情况下,通常使用TCP来保证数据的可靠性和完整性。
  3. 有些网络设备或防火墙可能会阻止UDP流量,强制使用TCP协议来进行DNS查询和响应。

推荐阅读

  • DNS如何在Windows NIC配置多个DNS服务器时完成DNS解析查询
  • 活用DNS技术实现相同IP的不同端口映射不同域名
  • PublicDNS服务提供商增加字节,将支持 DoH/DoT/DoQ 等协议
  • 在Windows11的虚拟机安装WindowsServer2016并测试DNS功能
  • 局域网协议:动态主机配置协议(Dynamic Host Configuration Protocol,DHCP)
  • 保护 IT 基础设施的多层安全技术-扩展检测与响应 (XDR)

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

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

相关文章

【Unity3D】MAX聚合广告SDK——Pangle广告接入

Pangle, App Monetization Simplified 注册 登录 创建应用 创建广告单元 将其应用ID和广告ID关联到MAX广告。 下载Pangle Unity Plugin包,新建一个空工程(很重要) Unity版本2019.4.0f1 gradle plugin 4.2.0 gradle版本6.7.1 build_tools 34.…

问题汇总20231124

文章目录 1.练习题错题笔记:2. 串口配置中的无硬件控制流是什么3. 硬件控制流是如何管理数据流的?4. 串口不显示的原因有哪些?5. 中断服务函数中为什么一定要清除中断标志位?6. 中断标志位是什么时候设置的?7. BSRR8. …

探索优雅的处理 JavaScript 类数组对象的技巧

一. 引言 在 JavaScript 编程中,我们经常遇到类数组对象,它们拥有类似数组的结构和行为,但却不具备真正的数组方法和属性。常见的类数组对象包括 DOM 集合、函数的 arguments 对象和字符串等。如果我们想对这些类数组对象进行操作和处理&…

使用 STM32F7 和 TensorFlow Lite 开发低功耗人脸识别设备

本文旨在介绍如何使用 STM32F7 和 TensorFlow Lite框架开发低功耗的人脸识别设备。首先,我们将简要介绍 STM32F7 的特点和能力。接下来,我们将讨论如何使用 TensorFlow Lite 在 STM32F7 上实现人脸识别算法。然后,我们将重点关注如何优化系统…

基于SpringBoot+Redis的前后端分离外卖项目-苍穹外卖(八)

套餐模块功能开发 1. 新增套餐1.1 需求分析和设计1.1.1产品原型:1.1.2接口设计:1.1.3数据库设计: 1.2 代码开发1.2.1 DishController层1.2.2 DishService接口类1.2.3 DishServiceImpl接口实现类1.2.4 DishMapper层1.2.5 DishMapper.xml1.2.6 …

元宇宙现已开放!

在 2023 年 11 月 3 日 The Sandbox 首个全球创作者日上,The Sandbox 联合创始人 Arthur Madrid 和 Sebastien Borget 宣布元宇宙已开放,已创作完整体验的 LAND 持有者可以自行将体验发布至 The Sandbox 地图上。 精选速览 LAND 持有者:如果…

实验室信息管理系统源码,LIS系统源码,lis源码

医学检验(LIS)管理系统源码,云LIS系统全套商业源码 随着全自动生化分析仪、全自动免疫分析仪和全自动血球计数器等仪器的使用,检验科的大多数项目实现了全自动化分析。全自动化分析引入后,组合化验增多,更好的满足了临床需要&…

Android Frameworks 开发总结之七

1.修改android 系统/system/下面文件时权限不够问题 下面提到的方式目前在Bobcat的userdebug image上测试可行,还没有在user上测试过. 修改前: leifleif:~$ adb root restarting adbd as root leifleif:~$ adb disable-verity verity is already disabled using …

集「才华」与「美貌」于一身的原型设计利器—摹客RP

文章目录 画原型做设计,用摹客RP就够了 初遇摹客再遇摹客RP摹客RP简介与注册摹客RP的突出亮点1️⃣拥有海量矢量图标,满足各种设计场景2️⃣打造高扩展性组件,打破传统组件编辑模式3️⃣海量摹客RP模板例子随意挑选4️⃣实现多人实时协同&…

【数据结构】什么是栈?

🦄个人主页:修修修也 🎏所属专栏:数据结构 ⚙️操作环境:Visual Studio 2022 目录 📌栈的定义 📌元素进栈出栈的顺序 📌栈的抽象数据类型 📌栈的顺序存储结构 📌栈的链式存储结构 链栈的进…

micro_ros需要用到的hardware

我没有那么长的线啊,所以就用一个4块5的usb转串口看看 没有那么高档的开发板,就用主流的STM32F103C8T6试试看 这应该就是个仿真器了,一个字不认得都能够看的出来吧

《尚品甄选》:后台系统——权限管理之角色管理(debug一遍)

文章目录 一、权限管理介绍二、表结构的设计三、查询角色四、添加角色五、修改角色六、删除角色 一、权限管理介绍 在后台管理系统中,权限管理是指为了保证系统操作的安全性和可控性,对用户的操作权限进行限制和管理。简单的来说就是某一个用户可以使用…

【开源】基于JAVA的计算机机房作业管理系统

项目编号: S 017 ,文末获取源码。 \color{red}{项目编号:S017,文末获取源码。} 项目编号:S017,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 登录注册模块2.2 课程管理模块2.3 课…

【开源】基于Vue和SpringBoot的食品生产管理系统

项目编号: S 044 ,文末获取源码。 \color{red}{项目编号:S044,文末获取源码。} 项目编号:S044,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 加工厂管理模块2.2 客户管理模块2.3…

王道p150 14.假设二叉树采用二叉链表存储结构,设计一个算法,求非空二叉树 b的宽度(即具有结点数最多的那一层的结点个数) (c语言代码实现)

采用层次遍历的方法求出所有结点的层次,并将所有结点和对应的层次放在一个队列中。然后通过扫描队列求出各层的结点总数,最大的层结点总数即为二叉树的宽度。 /* A B C D E F …

使用Pytorch从零开始构建Conditional PixelCNN

条件 PixelCNN PixelCNN 是 PixelRNN 的卷积版本,它将图像中的像素视为一个序列,并在看到前面的像素后预测每个像素(定义如上和左,尽管这是任意的)。PixelRNN 是图像联合先验分布的自回归模型: p ( x ) …

Leetcode 剑指 Offer II 054. 把二叉搜索树转换为累加树

题目难度: 中等 原题链接 今天继续更新 Leetcode 的剑指 Offer(专项突击版)系列, 大家在公众号 算法精选 里回复 剑指offer2 就能看到该系列当前连载的所有文章了, 记得关注哦~ 题目描述 给定一个二叉搜索树,请将它的每个节点的值替换成树中…

visual studio 下的git

我这个是看视频笔记 YouTube : https://www.youtube.com/watch?vgkDASVE_Hdg 主要内容是:建立git 库, 保存commit, 建立分支 create branch, 合并分支merge branch,比较 diff,Revert ,history,delete branch, rename branch, t…

详解STUN与TR111

STUN协议定义了三类测试过程来检测NAT类型: Test1:STUN Client通过端口{IP-C1:Port-C1}向STUN Server{IP-S1:Port-S1}发送一个Binding Request(没有设置任何属性)。STUN Server收到该请求后,通过端口{IP-S1:Port-S1}把…

网站定制开发主要分类有哪些|企业 app 软件小程序定制

网站定制开发主要分类有哪些|企业 app 软件小程序定制 网站定制开发是指根据客户需求,为其量身定制设计和开发的网站服务。目前,网站定制开发主要分为以下几个分类: 1.静态网站定制开发:静态网站是由 HTML、CSS 和 JavaScript 等静…