当前位置: 首页 > news >正文

【计算机网络】应用层协议 -- DNS协议

文章目录

  • 1. DNS背景
  • 2. 域名简介
  • 3. 域名解析过程
  • 4. 使用dig查看DNS过程

1. DNS背景

DNS(Domain Name System,域名系统)协议,是一个用来将域名转化为IP地址的应用层协议。

TCP/IP当中通过IP地址和端口号的方式,来确定网络中一个主机上的一个程序,但IP地址是一长串数字,并不便于人们记忆,于是人们发明了一种叫做主机名的东西,并用hosts文件夹来描述主机名和IP地址之间的对应关系。

最初,这个hosts文件是由互联网信息中心(SRI-NIC)来管理的。

  • 如果一个新计算机要接入网络,或者某个计算机IP变更,都需要到信息中心申请变更hosts文件。
  • 其他计算机也需要定期下载更新版本的hosts文件才能正确上网。
  • 当用户通过域名访问互联网服务时,会先通过域名在本地的hosts文件中找到其对应的IP地址,然后再用这个IP地址去访问对应的服务。

但这样太麻烦了,于是产生了DNS系统。

  • 由一个系统管理机构,维护系统内每个主机的IP和主机名的对应关系。
  • 如果新计算机要接入网络,或者某个计算机IP变更,就需要将对应信息注册到数据库中。
  • 当用户通过域名访问互联网服务时,会自动查询DNS服务器,由DNS服务器检索数据库,得到对应的IP地址。

至今,我们的计算机上仍然保留了hosts文件,这个hosts文件当中一般存储的是主机名和IP地址之间的映射,用户也可以在hosts文件中自主添加域名和IP的映射关系,在域名解析的过程中会优先查找hosts文件的内容。

通过cat /etc/hosts可以查看hosts文件当中的内容。
在这里插入图片描述

2. 域名简介

域名是用来识别主机名称和主机所属的组织机构的一种分层结构的名称,例如www.baidu.com

  • com:一级域名,表示这是一个工商企业域名。同级的还有 .net (网络供应商)和 .org(开源组织或非盈利组织)等。
  • baidu:二级域名,一般对应的就是公司名。
  • www:只是一种习惯用法。

3. 域名解析过程

在浏览器中输入url后,如果url中包含域名,则需要对域名进行解析。

  • 首先会在浏览器中的DNS缓存中去查询是否有对应的记录,如果查询到对应的记录就可以直接得到对应的IP地址,完成解析。
  • 如果在浏览器中的DNS花缓存中没有找到,就会去查询操作系统中的DNS缓存,如果查询到对应的IP地址,完成解析。
  • 如果在操作系统的DNS缓存中也没有找到,就会去找本地的hosts文件,如果查询到对应的IP地址,完成解析。
  • 如果在本地的hosts文件中也没有找到,就会去本地DNS服务器中查找。本地DNS服务器IP地址一般会由网络服务商提供,如电信,移动等公司,一般会通过DHCP自动分配。目前使用的比较多的是谷歌提供的公用NDS 8.8.8.8和国内公用NDS 114.114.114.114。如果在本地DNS服务器中有对应域名的缓冲,则直接返回对应的IP地址,完成解析。
  • 如果本地DNS服务器中仍然没有找到,那么本地DNS服务器就会拿着域名去根DNS服务器中询问,根DNS服务器会告诉本地DNS顶级域名服务器的IP地址。
  • 本地DNS拿到顶级域名服务器的IP地址后,就会拿着域名去找顶级DNS服务器,顶级域名服务器会告诉本地DNS权威域名服务器的IP地址。
  • 本地DNS服务器拿到顶级域名服务器的IP地址之后,就会拿着域名去找顶级DNS服务器,顶级域名服务器会告诉本地DNS权威域名服务器的IP地址。
  • 本地DNS服务器拿着域名去权威域名服务器中,查询域名对应的IP地址,最终将该域名对应的IP地址返回给浏览器,此时整个域名解析过程就完成了。

4. 使用dig查看DNS过程

我们可以使用dig工具来查看域名解析的过程,例如查看百度域名www.baidu.com的解析过程。

在这里插入图片描述

  • 开头位置是dig的版本号。
  • 第二部分是服务器返回的详情,其中status参数为NOERROR表示查询成功。
  • QUESTION SECTION表示待查询的域名。
  • ANSWER SECTION表示查询的结果,首先www.baidu.com被查询成了www.a.shi.com,而最终其被查询成了两个具体的IP地址。
  • 最下面是一些结果统计,包含查询时间和DNS服务器的地址等。

相关文章:

【计算机网络】应用层协议 -- DNS协议

文章目录 1. DNS背景2. 域名简介3. 域名解析过程4. 使用dig查看DNS过程 1. DNS背景 DNS(Domain Name System,域名系统)协议,是一个用来将域名转化为IP地址的应用层协议。 TCP/IP当中通过IP地址和端口号的方式,来确定…...

ES6 - 数组新增的一些常用方法

文章目录 1,Array.from()2,Array.of()3,find(),findIndex(),findLast()和findLastIndex()4,Array.fill()5,keys(),values() 和 entries()6,Array.includes()7&#xff0c…...

【BEV感知】3-BEV开源数据集

3-BEV开源数据集 1 KITTI1.1 KITTI数据怎么采集?1.2 KITTI数据规模有多大?1.3 KITTI标注了哪些目标?1.4 转换矩阵1.5 标签文件 2 nuScenes2.1 nuScenes Vs KITTI2.2 标注文件 1 KITTI KITTI 1.1 KITTI数据怎么采集? 通过车载相机、激光雷达等传感器采集。 只提供了相机正…...

Kafka-Broker工作流程

kafka集群在启动时,会将每个broker节点注册到zookeeper中,每个broker节点都有一个controller,哪个controller先在zookeeper中注册,哪个controller就负责监听brokers节点变化,当有分区的leader挂掉时,contro…...

第八篇-Tesla P40+ChatGLM2+LoRA

部署环境 系统:CentOS-7CPU: 14C28T显卡:Tesla P40 24G驱动: 515CUDA: 11.7cuDNN: 8.9.2.26目的 验证P40部署可行性,只做验证学习lora方式微调创建环境 conda create --name glm-tuning python3.10 conda activate glm-tuning克隆项目 git clone http…...

调用feign返回错误的数据

bug描述&#xff1a; 在一个请求方法中会调用到feign去获取其他的数据。 List<Demo> list aaaFeignApi.getData(personSelectGetParam);在调用的时候&#xff0c;打断点到feign的地方&#xff0c;数据是存在的&#xff0c;并且有15条。但是返回到上面代码的时候数据就…...

【Spring】(二)从零开始的 Spring 项目搭建与使用

文章目录 前言一、Spring 项目的创建1.1 创建 Maven 项目1.2 添加 Spring 框架支持1.3 添加启动类 二、储存 Bean 对象2.1 创建 Bean2.1 将 Bean 注册到 Spring 容器 三、获取并使用 Bean 对象3.1 获取Spring 上下文3.2 ApplicationContext 和 BeanFactory 的区别3.3 获取指定的…...

redis五种数据类型介绍

、string&#xff08;字符串&#xff09; 它师最基本的类型&#xff0c;可以理解为Memcached一模一样的类型&#xff0c;一个key对应一个value。 注意&#xff1a;一个键最大能存储 512MB。 特性&#xff1a;可以包含任何数据,比如jpg图片或者序列化的对象,一个键最大能存储512…...

【JavaEE】Spring Boot - 项目的创建和使用

【JavaEE】Spring Boot 开发要点总结&#xff08;1&#xff09; 文章目录 【JavaEE】Spring Boot 开发要点总结&#xff08;1&#xff09;1. Spring Boot 的优点2. Spring Boot 项目创建2.1 下载安装插件2.2 创建项目过程2.3 加载项目2.4 启动项目2.5 删除一些没用的文件 3. Sp…...

Git reset、revert用法

reset reset是删除之前的提交记录&#xff0c;所有的提交点都会被清除&#xff0c;我们看下执行前后的git log区别 D:\workspace\android>git log commit 87c1277a57544c53c603b04110e3dde100da8f57 (HEAD -> develop_main) Author: test <test.com> Date: Wed…...

Redis-1

Redis 理论部分 redis 速度快的原因 1、纯内存操作 2、单线程操作&#xff0c;避免了频繁的上下文切换和资源争用问题&#xff0c;多线程需要占用更多的 CPU 资源 3、采用了非阻塞 I/O 多路复用机制 4、提供了非常高效的数据结构&#xff0c;例如双向链表、压缩页表和跳跃…...

【Linux】Linux服务器连接百度网盘:实现上传下载

【Linux】Linux服务器连接百度网盘&#xff1a;实现上传下载 文章目录 【Linux】Linux服务器连接百度网盘&#xff1a;实现上传下载1. 前言2. 具体过程2.1 pip 安装所需包2.2 认证&#xff08;第一次连接需要认证&#xff09;2.3 下载所需文件或者目录2.4 其他指令使用2.5 注意…...

ADC模拟看门狗

如果被ADC转换的模拟电压低于低阀值或高于高阀值&#xff0c;AWD模拟看门狗状态位被设置。阀值位 于ADC_HTR和ADC_LTR寄存器的最低12个有效位中。通过设置ADC_CR1寄存器的AWDIE位 以允许产生相应中断。通过以下函数可以进行配置 void ADC_AnalogWatchdogCmd(ADC_TypeDef* ADCx…...

google谷歌gmail邮箱账号注册手机号无法进行验证怎么办?此电话号码无法用于进行验证 或 此电话号码验证次数太多

谷歌gmail邮箱账号注册手机号无法进行验证怎么办? 使用手机号码注册谷歌gmail邮箱账号时会遇到&#xff1a;此电话号码无法用于进行验证 或 此电话号码验证次数太多。造成注册google谷歌gmail邮箱账号受阻&#xff0c;无法正常完成注册。 谷歌Gmail邮箱账号正确的注册方法与教…...

Spring:IOC技术、Bean、DI

前言 Spring是一个开源的项目&#xff0c;并不是单单的一个技术&#xff0c;发展至今已形成一种开发生态圈。也就是说我们可以完全使用Spring技术完成整个项目的构建、设计与开发。Spring是一个基于IOC和AOP的架构多层j2ee系统的架构。 SpringFramework&#xff1a;Spring框架…...

目标检测与跟踪 (2)- YOLO V8配置与测试

系列文章目录 第一章 目标检测与跟踪 &#xff08;1&#xff09;- 机器人视觉与YOLO V8 目标检测与跟踪 &#xff08;1&#xff09;- 机器人视觉与YOLO V8_Techblog of HaoWANG的博客-CSDN博客3D物体实时检测、三维目标识别、6D位姿估计一直是机器人视觉领域的核心研究课题&a…...

【Leetcode】56.合并区间

一、题目 1、题目描述 以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [ s t a r t i start_i start...

设置系统编码 Beta

在yolov5环境搭建过程中会遇到如下的编码错误警告&#xff1a; 这时&#xff0c;按住“ctrlc”中止进程&#xff0c;然后设置系统编码&#xff1a; 电脑右键属性打开&#xff1a; 重启之后等安装好了&#xff0c;记得回去把bae键取消。...

phpunit

composer地址&#xff1a;phpunit/phpunit - Packagist 官方文档:PHPUnit文档 – PHP测试框架 PHPUnit是一个框架&#xff0c;最为hyperf学习的补充学习&#xff0c;就不写这么细了。 估计写下安装和使用&#xff0c;具体学习内容看文档。 一、安装 需安装扩展&#xff1a;…...

html学习9(脚本)

1、<script>标签用于定义客户端脚本&#xff0c;比如JavaScript&#xff0c;既可包含脚本语句&#xff0c;也可通过src属性指向外部文件。 2、JavaScript最常用于图片操作、表单验证及内容动图更新。 3、<noscript>标签用于在浏览器禁用脚本或浏览器不支持脚本&a…...

QWEN-AUDIO功能全解析:声波可视化、情感指令、四种人声,到底怎么用?

QWEN-AUDIO功能全解析&#xff1a;声波可视化、情感指令、四种人声&#xff0c;到底怎么用&#xff1f; 1. 认识QWEN-AUDIO语音合成系统 QWEN-AUDIO是一款基于Qwen3-Audio架构构建的智能语音合成系统&#xff0c;它能够将文字转换成带有情感和温度的自然语音。这个系统最特别…...

文档格式高效破解:NCMDump实现加密文件自由掌控全指南

文档格式高效破解&#xff1a;NCMDump实现加密文件自由掌控全指南 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 在数字化办公时代&#xff0c;你是否曾因收到的加密文档无法跨平台打开而错失重要信息&#xff1f;是否经历过花费数…...

Qwen3.5-2B多场景落地:跨境电商独立站商品图→多语言标题+卖点文案+SEO关键词

Qwen3.5-2B多场景落地&#xff1a;跨境电商独立站商品图→多语言标题卖点文案SEO关键词 1. 跨境电商内容创作的痛点与机遇 跨境电商独立站运营者每天面临三大内容挑战&#xff1a; 商品图片处理&#xff1a;需要专业摄影和后期&#xff0c;成本高周期长多语言文案创作&#…...

开箱即用:基于Qwen3-Embedding-4B的智能文档检索系统搭建实录

开箱即用&#xff1a;基于Qwen3-Embedding-4B的智能文档检索系统搭建实录 1. 引言&#xff1a;为什么选择Qwen3-Embedding-4B 想象一下&#xff0c;你手头有成千上万份技术文档、合同或学术论文&#xff0c;每次查找相关内容都要靠关键词匹配&#xff0c;结果要么漏掉重要信息…...

MTK新工程创建与调试全攻略,人形机器人的发展历程、技术演进与未来图景。

MTK调试&#xff1a;创建新工程指南 准备工作 确保已安装MTK官方开发环境&#xff0c;包括SDK、驱动程序和必要的工具链。下载最新版本的MTK开发包&#xff0c;解压到指定目录。检查系统环境变量是否配置正确&#xff0c;确保编译工具路径已加入PATH。 工程结构初始化 使用MTK提…...

基于单片机的智能路灯控制系统设计 | 附源码

源码&#xff1a;点击获取源码 一、项目背景 本项目是单片机课程设计作品&#xff0c;旨在模拟城市路灯的智能化管理场景。传统的路灯控制方式通常依赖人工开关或简单的定时控制&#xff0c;存在能源浪费、维护困难等问题。随着智慧城市概念的提出&#xff0c;智能路灯系统成…...

OpenClaw调试技巧:解决SecGPT-14B模型返回结果异常问题

OpenClaw调试技巧&#xff1a;解决SecGPT-14B模型返回结果异常问题 1. 问题背景与现象描述 上周在尝试用OpenClaw对接SecGPT-14B模型时&#xff0c;遇到了一个棘手的问题&#xff1a;模型返回的结果经常出现截断或格式混乱。具体表现为&#xff1a; 当请求生成网络安全报告时…...

OpenClaw学术研究助手:Qwen3-14b_int4_awq自动生成文献综述

OpenClaw学术研究助手&#xff1a;Qwen3-14b_int4_awq自动生成文献综述 1. 为什么需要AI辅助文献调研 作为一名计算机视觉方向的研究生&#xff0c;我每周需要阅读数十篇论文来跟踪领域进展。传统文献调研方式存在几个痛点&#xff1a;首先&#xff0c;手动下载和整理PDF文件…...

gte-base-zh WebUI安全加固:禁用CORS、关闭Swagger UI、限制Referer白名单

gte-base-zh WebUI安全加固&#xff1a;禁用CORS、关闭Swagger UI、限制Referer白名单 重要提示&#xff1a;本文介绍的安全加固方案适用于生产环境部署&#xff0c;可有效防止未授权访问和数据泄露风险。 1. 为什么需要WebUI安全加固 当你使用xinference部署gte-base-zh embe…...

Qt网络聊天室实战:如何优雅地实现聊天列表动态加载与滚动优化?

Qt网络聊天室实战&#xff1a;高性能聊天列表的架构设计与优化实践 1. 现代聊天界面的性能挑战与设计哲学 在即时通讯应用开发中&#xff0c;聊天列表的性能表现直接影响用户体验。当列表项超过100条时&#xff0c;传统实现方式往往会出现明显的滚动卡顿、内存占用飙升等问题。…...