浅析计算机网络(2) -- DNS工作原理

安装Tailscale 如果返回 /usr/bin/tailscale 或类似路径,说明已安装但 sudo 可能找不到它。如果 which tailscale 没有输出,说明安装失败,重新执行安装步骤。Tailscale 的后台服务 tailscaled 必须运行。检查 tailscaled 服务是否运行。检查 tailscale 命令是否存在。 阅读详情

DNS的工作原理

来做个小实验吧

  • 打开你的终端或者DOS命令运行窗口,输入ping www.baidu.com看看发生了什么
  • 如果你的网络正常连接的话,应该可以看到这样的结果
    ping结果

  • 把其中的111.13.100.92(你的显示的可能不一样,不用担心,放心复制)复制到浏览器,然后访问后你是不是看到了百度首页了呐。

域名与IP地址

  • 我们将www.baidu.com这样的能定位到某个网站的字符串叫做域名
  • 将111.13.100.92这样同样的定位到某个网站(更准确的说是定位到某台主机)的字符串叫做IP地址

通过上面的例子可以看出相对于IP地址,域名对于用户而言更容易记忆,更加友好。而对于路由器等网络设备却不是这样的。路由器可以根据IP地址更快的定位主机位置。而域名这种长度不定的字符串对于路由器来说简直是无法理解的。

DNS的使命

  • DNS(Domain Name System),中文叫做域名系统。

DNS的就是为了同时保留域名和IP地址的优势的产物。人们可以通过域名简单的记住要访问的web站点,而路由器等网络设备却可以使用IP地址快速定位到相关主机。DNS要做的就是当用户输入域名后,先到DNS服务器查询IP地址,然后再通过IP地址来访问web站点。

DNS服务器的层次结构

  • 实现DNS服务器最简单的一种方案就是在一台远程主机上配置好DNS的映射表,所有的域名转换都会通过这台主机。可是这样的方案简单却不可靠。主要的缺点有:
    1. 当这台主机出现故障时,整个互联网将会瘫痪。只有那些不依赖DNS服务的软件才可以正常工作
    2. 单个DNS服务器不得不处理整个互联网的所有DNS解析,这样的对带宽的要求是很高的
    3. 这种单点非分布式的方案,会造成巨大的延迟。加入这台服务器放在美利坚,当你在我大天朝访问大天朝的百度的时候,你的域名解析的报文不得不先到达地球另一面的服务器所在地,然后返回。一次请求,报文往返路程就绕地球一圈了。而互联网的使用者的直观感受就是:慢
    4. 映射表的维护成本更加昂贵,当你需要添加或者更新DNS记录的时候,对于这样大量的数据维护成本极高,效率极低

所以,DNS服务器应该是分布式的。

  • DNS服务器的层次结构:
    • 根DNS服务器 :用来返回TLD服务器的IP地址
    • 顶级域(TLD)域名服务器:返回权威服务器的IP地址
    • 权威DNS服务器 :返回相应主机的IP地址
  • 还有一种本地DNS服务器,他并不属于以上的层次机构,却很重要,通常我们电脑和路由器自动获得到的DNS服务器地址就是本地服务器。每个ISP都有本地DNS服务器,当主机发出DNS请求时,请求被发往本地服务器,它起着代理作用,将该请求转发到DNS服务器层次中。

图解访问百度DNS解析过程

DNS服务器交互

  1. 你在浏览器输入了网址,然后浏览器通过UDP协议向本地服务器的53号端口发送了DNS解析请求(1号过程)。
  2. 如果本地DNS服务器缓存了百度的DNS记录(关于DNS缓存在下一节会详细讲),如果没有该记录就回向根服务器请求(2号路径),然后根服务器收到请求后,会返回给本地服务器相应的顶级域名DNS服务器地址。以www.baidu.com为例,就回返回解析com顶级域名的服务器(3号路径)。
  3. 然后本地服务器知道TLD DNS服务器的地址后就会向该服务器发送解析请求(4号请求),然后TLD服务器返回给本地DNS服务器百度的权威服务器的IP地址(5号路径)。
  4. 同上,本地DNS服务器向百度的权威DNS服务器发起查询请求(6号路径)。就回得到百度权威DNS服务器返回给本地服务器的百度服务器的IP地址(7号路径)。
  5. 最后,本地DNS服务器会把百度服务器的IP地址返回给你的电脑(8号路径),同时将这条记录缓存在本地DNS服务器。

    • 注意:以上这种方式称为“先递归,再轮询”的查询方式,计算机网络中还存在其他的查询方式如仅仅的”递归“,可是上面这种查询方式时最常用的。

DNS缓存

  • 如果每次DNS解析都要走完上一节整个的流程,那样对于网络带宽的消耗和延时对于用户和DNS解析系统都是不友好的。所以当本地DNS服务器在一次查询后缓存到本地。从而加快DNS的解析速度。实际上,你的访问的解析大多数都是在本地服务器上完成的。

DNS的额外服务

  • 之所以称这节为DNS的额外服务是指出了主机名到IP地址转换的其他的一些服务

    1. 主机别名(host aliasing):有着复杂主机名的主机能同时拥有一个或者多个别名。例如:relay1.hangzhou.enterprise.com可能有一个别名叫做enterpries.com 我们称前者为规范主机名。主机别名更容易记忆。DNS可以根据主机别名来返回主机名的规范主机名,和主机的IP地址
    2. 邮件服务器别名(mail server aliasing):与第一项类似,只不过是针对邮件服务器提供别名服务
    3. 负载分配(load distribution):并不是每个域名对应一个IP地址,可能对应多台。这是DNS以轮流的方式来返回主机IP地址。

DNS资源记录(DNS存了什么?)

RR

DNS资源记录(resource record,RR)就是上图描述的四种类型的纪录(其实还有其他类型,这里我们不再说明)。其中生存时间TTL决定了该条记录在缓存中删除的时间。(单位为秒)
下面分别举个例子帮助理解

  1. (relay1.bar.foo.com, 145.37.93.126, A)
  2. (foo.com, dns.foo.com, NS)
  3. (foo.com, relay.bar.foo.com, CNAME)
  4. (foo.com, mail.bar.foo.com, MX)
ZYNQ出现问题及解决办法汇总(一直更新) 问题目录使用软件及开发板版本一,vitis在build project时卡住。二,Could not find FPGA device on the board for connection 'Local'三,FPGA configuration failed:DONE PIN is not high四,Could not find ARM device on the board for connection 'Local' 使用软件及开发板版本 开发板:MZ7XA-7020 软件:vitis2020.2( 阅读详情

相关推荐

完美解决 mysql 报错ERROR 1524 (HY000): Plugin ‘mysql_native_password‘ is not loaded

mysql 报错ERROR 1524 (HY000): Plugin 'mysql_native_password' is not loaded

xiaohua616的博客 4万+

dns基本原理及正反解析

DNS原理及配置一、DNS原理二、正向解析 一、DNS原理 1、dns的定义是将域名和ip地址相互映射的一个分布式数据库,能够使客户端更方便的进行访问。 tcp链接 udp解析 53号端口 2、dns类似为树状结构,最顶层为根域,"."来表示,相应服务器为跟服务器,整个域名空间解析权都归 跟服务器所有。 但跟服务器无法承担庞大的负载,采用“委派”机制,在根域下设置了一些顶级域,然后将不通顶级域 的解析权分别委派给相应的顶级域服务器,同样的道理,为减轻顶级域的压力,又下了若干个二级域,二级域 下面又设置三级

m0_55614372的博客 3407

别再到处找密钥了!手把手教你搞定Halcon 24.11/25.05的试用授权(附每月更新提醒)

本文详细介绍了Halcon 24.11/25.05试用授权的获取与配置方法,包括解密新版授权机制、快速配置指南、每月更新规律及多版本共存管理技巧。帮助开发者避免常见授权问题,提升工作效率,特别适合机器视觉领域的初学者和专业人士。

weixin_29238147的博客 1144

DNS这位“翻译官”是如何转换域名和IP地址的?

DNS这位“翻译官”是如何转换域名和IP地址的? Linux就该这么学1周前 DNS( Domain Name System)是“域名系统”的英文缩写,是一种组织成域层次结构的计算机和网络服务命名系统,它用于TCP/IP网络,它所提供的服务是用来将主机名和域名转换为IP地址的工作。你可以把它想象成一本巨大的电话簿。 一、什么是DNS? DNS( Domain Name System)是“...

wzlsunice88的博客 2397

CANoe从入门到精通“保姆级”教程(二)- 堪称全网“最全”系列

CANoe各功能区介绍;

车载控制器AutoSAR软件开发工程师 2万+

STM32_DAC

DAC(Digital-to-Analog Converter,数模转换器)是将数字信号转换为模拟信号的外设,广泛应用于音频输出、波形生成、电机控制等场景。STM32F407 系列芯片配备了 2 个 DAC 通道(DAC1 和 DAC2),支持 12 位分辨率,支持多种触发方式,可输出稳定的模拟电压。本文从 DAC 的基本原理出发,详细讲解 STM32F407 DAC 的配置方法、代码实现、波形生成以及实际应用案例,帮助你快速掌握 DAC 的使用技巧。

轩宇的博客 1239

一文搞懂DNS

最近接触一个关于网络加速的项目,项目主要目的是加速用户请求访问网络的响应速度,提高用户体验。在这个项目中总是提及两个名词“DNS”和“CDN”,咋一看,3个字母就有2个字母一样,容易混淆,但此“DN”非彼“DN”,DNS全名:Domain Name System,域名系统,CDN全名:Content Delivery Network,内容分发网络,所以这两不是同一个概念。DNS我们相对熟悉,在电脑配置网络时总遇到,CDN我们日常很少遇到。 为什么要DNS 大部门分网站服务都是基于TCP/IP协议,而TCP/

戴着红领巾走世界 1430

运用AD进行stm32最小系统PCB图的绘制

运用AD进行stm32最小系统PCB图的绘制一、PCB图的绘制(1)布局(2)布线(3)覆铜(4)电气规则检查二、给PCB添加logo三、生成garber文件总结 一、PCB图的绘制 (1)布局 1.画好原理图后,新建一个PCB项目 2.在Design中选择第二项,导入器件 3.先点击右下角第一项,再点第二项导入器件 导入成功 4.导入后效果 选择紫红色方框,按电脑上的delete键把它删掉 5.在Tools选择Outside Board,自动排布器件 排布后效果如图 6.画线,确定板子范围

lucario1的博客 2149

DNS域名解析原理及配置

DNS(Domain Name System,域名系统)是互联网的基础设施之一,它就像是互联网的电话簿。DNS 的主要任务是将用户友好的域名,将域名转化为它可以识别的IP地址,这个过程称为域名解析。域名解析又分为正向解析和反向解析,顾名思义,正向解析是根据域名查找对应的IP地址,反向解析就是根据IP地址查找对应的域名,反向解析一般很少用到。

qq_59677536的博客 2626

Windows下Python安装geopandas全攻略:解决GDAL依赖问题的5个关键步骤

本文详细解析了在Windows系统下安装Python地理空间分析库geopandas时,如何有效解决其核心依赖GDAL的编译难题。文章提供了五个关键步骤,包括理解依赖关系、获取预编译wheel文件、顺序安装及环境验证,旨在帮助用户绕过复杂的C++编译环境,顺利完成geopandas的安装部署。

weixin_28221501的博客 283

基于VSCode+clangd插件打造高效C++开发环境之四:clangd配置

本文介绍如何配置VSCode+clangd插件进行高效C++开发。重点内容包括:1)生成compile_commands.json文件,通过ninja工具提取编译命令并使用gen_compdb脚本转换;2)配置clangd命令行参数,如设置后台索引、并行度等;3)编写.clangd配置文件,调整编译标志和诊断选项;4)添加.clang-format文件定义代码风格;5)在VSCode中添加远程服务器工作目录。配置完成后需重启clangd服务使更改生效。文章还提供了MTK/QCOM等不同平台生成compile

5063

2024版最新148款CTF工具整理大全(附下载安装包)含基础环境、Web 安全、加密解密、密码爆破、文件、隐写、逆向、PWN等全套工具

经常会有大学生粉丝朋友私信大白,想通过打CTF比赛镀金,作为进入一线互联网大厂的门票。但是在CTF做题很多的时候都会用到工具,所以在全网苦寻CTF比赛工具安装包!

Libra1313的博客 1万+

若依框架二次开发——若依 Vue3 版本前端样式优化指南

若依框架二次开发——若依 Vue3 版本前端样式优化指南

bjzhang75的博客 1692

DNS代理是什么?浅析DNS代理的工作原理及应用

DNS代理作为计算机网络中重要的一环,扮演着连接用户和互联网服务的关键角色。来了解DNS代理的定义、功能、工作原理以及在网络中的应用场景和重要性吧。

roostertalking的博客 1631

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

浅析DNS域名解析

DNS DNS是构建在***应用层***上的网络协议,用来将一个域名(Domain)转化为一个IPv4地址。 注意,DNS不是一个构建在网络层上的协议,网络层上的协议有IP,ICMP等。DNS甚至其层级比TCP及UDP(传输层)都要靠上。 DNS层级 DNS主要分为3个层级: 根域名服务器:Root DNS Server 顶级域名服务器:Top Level Domain Server (TLD Server) 普通域名服务器:Authoritative DNS Server 根域名服务器 根域名服务器是最顶

YoseZang的博客 3471

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

浅析计算机网络(4)-建立连接

建立连接上面我们通过DNS访问得到了目的地的IP地址,接下来,是我们如何向其发送数据了,比如我们的要获得到百度的首页,我们是如何访问的到的,本篇文章,将从拿到IP到页面展示在我们面前,从应用层到链路层进行一个分析。首先来一个整体的架构,根据这个架构,我们再去完善我们在访问的过程中走的每一步。我们和百度建立的连接的过程,我们中间经过若干个路由器,然后数据返回到我们本地,我们便可以看到百度首页了。我们在

张博的Blog 787

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

url主机域名可以省略_浅析 URL

什么是URL?URL:Uniform Resource Locator统一资源定位符俗称:网址(网络地址)或链接,浏览器在其地址栏上显示的即是URL,例如:duckduckgo.com它表示某一网络资源存在于所在计算机网络上的位置,同时也是浏览器用于检索web上公布的任何资源的机制。URL 最常出现在 HTTP 网页上,也用于文件传输(FTP )、Mailto 电子邮件(SMTP)和许多其它应用程...

weixin_39850167的博客 705

HTTP/TCP浅析

本文主要转述和讲述了关于http和tcp在互联网中的工作机制和各自特点!!

weixin_38597669的博客 2200

Window域浅析

     想起很久以前看的一起节目《燃烧吧,天才程序员》,里面有一个词“域霸”不是很理解,直到最近接触了多了才明白“域”的内涵,特此记录。 文章目录一、域基本知识1、域(Domain)2、域的组成3、域的原理二、域的创建与部署1、环境准备2、搭建步骤3、创建域用户,验证域功能三、域的攻击与防御 一、域基本知识 1、域(Domain)         Windows域是计算机网络的一种形式,

qq_45915007的博客 2578

浅析TCP/IP协议

网络协议是为计算机网络中的数据交换而建立的一系列协议,只有遵循网络协议,才可以在网络中访问资源。 互联网中有上百种协议,但最重要的协议就是TCP协议和IP协议,因此我们将这上百种协议统称为TCP/IP协议族。 TCP/IP协议在一定程度上参考了OSI的体系结构,OSI模型共有七层 其中应用层,表示层和会话层提供的服务相差不大,因此在TCP/IP协议中被统称为应用层,数据链路层和物理层被统称为网络...

徳 277

计算机网络常见知识

首先 网络主要分成四层,从高到低分别是 【TCP/IP分层模型】 分层的好处:解耦,在每个层次内部能够自由改动。 应用层,传输层,网络层,数据链路层。 应用层:http,ftp协议 传输层:TCP和UDP协议 传输层:IP协议 数据链路层:为传输的数据加入一个以太网协议头,进行CRC编码。 OSI参考模型注重“通信协议必要的功能是什么”,TCP/IP更强调“在计算机上实现协议应...

qq_31617121的博客 459

网络基础—网络体系结构浅析

链路层 将信息封装->发送->解封 ——–1500———- ARP arp -a 缓存 ARP帮忙找路,如果发不出去,回应需要ICMP协议 ping命令 网络层(IP层) IP协议头格式 IP层 主机间通信路径的选择(路由) route -n 查看路由表信息 ifconfig -a eth0 查看自己的IP地址 比较原机器和目标机器的网络号;相同就继...

Demons的博客 246

网络通信

IO多路复用之select、poll、epoll详解 网络编程面试题

weixin_43366080的博客 196

网络编程懒人入门(二):快速理解网络通信协议(下篇)

原作者:阮一峰(ruanyifeng.com),本文由即时通讯网重新整理发布,感谢原作者的无私分享。 1、前言 本文上篇《网络编程懒人入门(一):快速理解网络通信协议(上篇)》分析了互联网的总体构思,从下至上,每一层协议的设计思想。基于知识连贯性的考虑,建议您先看完上篇后再来阅读本文。 本文从设计者的角度看问...

weixin_33920401的博客 118

网络基础之网络协议篇

一、初识网络协议 网络协议是为计算机网络中进行数据交换而建立的规则、标准或者说是约定的集合。因为不同用户的数据终端可能采取的字符集是不同的,两者需要进行通信,必须要在一定的标准上进行。一个很形象地比喻就是我们的语言,我们大天朝地广人多,地方性语言也非常丰富,而且方言之间差距巨大。A地区的方言可能B地区的人根本无法接受,所以我们要为全国人名进行沟通建立一个语言标准,这就是我们的普通话的作...

aobian2884的博客 175

浅谈TCP/IP ,HTTP,Socket及网络编程

什么是协议?有的说英语,有的说中文,有的说德语,说同一种语言的人可以交流,不同的语言之间就不行了为了解决不同种族人之间的语言沟通障碍,现规定国际通用语言是英语,这就是一个规定,这就是协议.计算机网络沟通用什么? TCP/IP协议是什么?广义定义:现在的生活中,不同的计算机只需要能够联网(有线无线都可以)那么就可以相互进行传递数据就像说不同语言的人沟通一样,只要有一种大家都认可都遵守的协议即可,那么...

郭帅的博客 505
上一篇: 《iOS Programming》 读书笔记 Day1
下一篇: 浅析计算机网络(1) -- 主机如何上网
coderbean
博客等级 码龄11年 12粉丝 84原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值