万字长文!搞定逃不脱的 DNS 面试题

来源 | 我是程序员小贱

头图 | CSDN下载自视觉中国

提到网络,基本上都能把DNS给扯上去。为啥呢,今天我们来一探究竟。

提纲


Chrome浏览器原理

还记得面试过程中被问了千百遍的"输入URL后发生了什么"这个经典问题吗?因为这个问题覆盖了太多的知识点,其中包括计算机网络,操作系统,数据结构等一些列问题,对于面试官和面试者来说都更方便后续面试的进展。想必很多小伙伴都做过web开发,或多或少都会和各种浏览器联系在一起,最终做测试的时候也会使用多种浏览器测试以保证能很好地兼容。那么现在我们先从Chrome浏览器说起。

我们先想想一个问题,我们打开一个微信或者一个XX音乐,一个网页,到底会开几个进程。

我们实验看看,打开一个网页到底开了几个进程,又分别有什么作用。

打开浏览器使用的进程数

从上图我们发现,打开一个网页,使用了四个进程,分别为GPU进程,Network Service进程,当前网页进程和浏览器。到此,我们先复习进程与线程。

假设现在有这样几行伪代码,我们看看应该怎么去执行,可能分为四步。

示例伪代码

  • 计算X=5+2

  • 计算y=8/4

  • 计算z=2*5

  • 显示出最后的结果

这也是采用串行的方式运行,也可说为单线程方式执行了四个任务,其好处是不用考虑诸如多线程的同步等问题。但是如果采用多线程。

  • 启动三个线程分别处理前面三个任务

  • 最后一个线程显示结果

从上面这个小实验,我们可以知道使用多线程只需要两步就完成,但是单线程却使用了四步,可知使用多线程大大的提升了性能,记住:并不是多线程就一定会比单线程好,还需要从CPU使用率,IO磁盘等多个因素考虑。

进程

进程是一个程序的运行实体,在上面我们比较直观的感受到了多线程并行处理提高性能的优点。一个进程可以包含多个线程,但是一个线程只能归属于一个进程,那么一个进程到底是什么样子呢(ps 下面是在Linux中执行的代码,道理差不多)

创建进程

在Linux中使用fork创建进程,返回进程id。通过id的不同让父子进程各干其事,然后使用execvp执行具体任务

创建进程

创建主函数来使用上面的函数,看看会出现什么情况。

主函数

好了,现在主函数和执行函数都写完了,但是这还只是文本文件,对于计算机而言只喜欢"01"组合,cpu执行的命令需要是二进制,所以需要进行「编译」,但是二进制的组合也得有一定的格式,不然定会乱套,在Linux中这种格式是"ELF"Executeableand Linkable Format),后续会详细介绍。程序编译到进程的过程如下图所示

文本文件到二进制

现在带参数编译两个程序

编译

在编译的过程中,第一步预处理,将头文件直接嵌入到文件正文中,将定义的相关宏展开,最终编译为.o文件(可重定文件),那么ELF是什么样子呢?

ELF头部

上图给大家准备了几个高频面试题目(哪些在代码段,数据段。。)

那么在Linux中如何查看呢(readelf)?

可重定位什么意思呢?

字面意思是可以随时放在其他位置。对的,目前我们只是编译了文件,将来会被加载到内存里面,也就是加在某一个位置。可惜现在还是.o文件(代码片段),不具备可执行的权限,它以后想变为函数库,哪里需要就在哪里去完成任务,搬到了哪里就重新定位了位置。要让它可重用,就得成为库文件,这个文件分为静态链接库(.a)和动态链接库,它能将一系列的.o文件归档为文件。怎么创建呢?

ar

这个时候其他开发人员准备使用这个功能,加上参数连接过去就好了。

上面命令中"-L"代表默认在当前目录寻找.a文件,然后取出.o文件和creteprocess.o做连接形成二进制执行文件 staticcreateprocess。

一旦静态链接库连接出去,它的代码和变量的p合并,一次程序运行不再依赖这个库。这就可能出问题了,如果同样的代码段被多个程序使用,就会导致在内存中出现多份的情况,而且代码一旦更新,二进制文件也需要重新编译才能及时的更新。所以出现了动态链接库,使用这种方式的时候,程序并不在一开始就完成动态链接,而是需要到真正调用动态代码时,载入程序才会计算动态代码的逻辑地址。这种方式让程序初始化时间短,但是运行期间性能比不上静态连接的程序。

说的有点远了,回来回来。刚才我们说了多线程并行计算的优势,画个图对比加深印象下:

单线程与多线程

ok,总结下进程线程有哪些特点(面试跑不脱)?

  • 进程中的任意一个线程出错,将导致整个进程崩溃

假设将之前的伪代码修改为
X=5+2
Y=8/0
Z=5*2

此时Y很明显就是错的,当线程执行到Y的时候就会报错,进程崩溃大致其他两个线程也没有结果。

  • 当一个进程关闭后,操作系统会回收进程占用的资源

比如我们会使用很多不错的Chrome插件,当启动浏览器并打开这些插件的时候,都会占用内存,当关闭进程Chrome浏览器,这些内存就会被收回。

  • 进程之间内容相互隔离

这个机制是防止多个进程读写混乱,所以进程之间通信需要IPC(消息队列,共享内存等)。

  • 线程之间共享进程数据

线程共享数据

从上图我们可以知道线程1,2和线程3分别将数据写入ABC,线程2在负责处理ABC三种读取数据并显示。

现在我们基本上了解了线程和进程。我们想象一下,某宝级别的系统架构一开始就能抵抗这么大的流量吗,当然不是,最开始小黄页的单体架构,随着需求的复杂和多样化主键演变而来。那么浏览器依然如此。我们看看最开始的Chrome单进程样子。

最初的浏览器单进程,意味着无论是网络,页面渲染引擎还是js环境都在一个进程中,如下图所示。

浏览器单进程

那个时候单体结构都有什么问题?

  • 不稳定/不流畅

以前页面中的视频等元素需要使用插件才能观看,插件在页面进程中,插件出问题很容易导致浏览器崩溃。页面中如此多模块都运行在该线程中,一旦其中一个模块独占线程,其他的就只能当观众(ps 能不能完成了就走,别蹲着不X),所以也就出现卡顿现象

  • 安全性很难保障

当时很多插件能够比较轻松的拿到操作系统的shell,如果是页面脚本,可以通过浏览器爆出的漏铜来到shell,拿了shell就无法想象能干啥了

如何解决上述问题?

  • 不稳定和不流畅

原因是页面模块都在一个进程,采用进程分离,这样即使某个插件崩溃也只是影响某一部分,不会导致整个浏览器挂。

  • 安全性问题

使用一个箱子(安全沙箱),箱子里面程序可以运行且把箱子上锁,但是无法读取外部任何程序。这样的话,我把容易出错且关键的两个进程插件进程与渲染进程装进去,这样的话,即使两者之一被执行恶意程序也只是在这个箱子里瞎摆弄,无法翻越出去拿到更高的权限干坏事。

当前架构

我们最初的时候,发现使用chrome浏览器打开一个网页的有四个进程,下面我来看看这些都有什么功能

一共是四个进程,分别为网络进程,GPU进程,渲染进程和浏览器主进程。

网络进程

作为一个单独进程,负责页面网络资源的加载。

插件进程

由于插件容易崩溃,单独进程对其进行管理

GPU进程

Chrome中UI界面绘制和3DCSS等需要GPU计算密集性的帮助,从而引入GPU进程

浏览器进程

浏览器进程负责用户交互,各个子进程等功能

乍一看全是优点,通常事物都会有两面性,进程多了,开销当然也大也就是更高的资源占用和更加复杂的体系结构。


DNS简介

上面之所以介绍浏览器,因为DNS很多时候是我们在浏览器敲下回车时开始兴奋,这也是为什么从浏览器说起的原因。现在我们看看DNS到底是个啥玩意

mac地址诞生,可是太不容易记忆了,出现了简化了IP形式,它被直接暴露给外网不说,还让人类还是觉得比较麻烦,干脆用几个字母算了,也就是域名了。域名不仅仅能够代替IP,还有很多其他的用途比如在web应用中用来标识虚拟主机。

DNS报文结构

说了这么多,协议头部,到底有哪些字段,其含义是什么都还不知道,那怎么去分析报文,下面我们一起再看看报文什么样子

DNS报文结构

基础结构部分

DNS报文基础部分为DNS首部。其中包含了事务ID,标志,问题计数,回答资源计数,回答计数,权威名称服务器计数和附加资源记录数。

  • 事务ID:报文标识,用来区分DNS应答报文是对哪个请求进行响应

  • 标志:DNS报文中标志字段

  • 问题计数:DNS查询请求了多少次

  • 回答资源记录数:DNS响应了多少次

  • 权威名称服务器计数: 权威名称服务器数目

  • 附加资源记录数: 权威名称服务器对应IP地址的数目

基础结构中的标志字段细分如下:

标志字段

  • QR(Response):查询请求,值为0;响应为1

  • Opcode:操作码。0表示标准查询;1表示反向查询;2服务器状态请求

  • AA(Authoritative):授权应答,该字段在响应报文中有效。通过0,1区分是否为权威服务器。如果值为 1 时,表示名称服务器是权威服务器;值为 0 时,表示不是权威服务器。

  • TC(Truncated):表示是否被截断。当值为1的时候时,说明响应超过了 512字节并已被截断,此时只返回前512个字节。

  • RD(Recursion Desired):期望递归。该字段能在一个查询中设置,并在响应中返回。该标志告诉名称服务器必须处理这个查询,这种方式被称为一个递归查询。如果该位为 0,且被请求的名称服务器没有一个授权回答,它将返回一个能解答该查询的其他名称服务器列表。这种方式被称为迭代查询。

  • RA(Recursion Available):可用递归。该字段只出现在响应报文中。当值为 1 时,表示服务器支持递归查询。

  • Z:保留字段,在所有的请求和应答报文中,它的值必须为 0。

  • rcode(Reply code):通过返回值判断相应的状态。

当值为0时,表示没有错误;

当值为1时,表示报文格式错误(Format error),服务器不能理解请求的报文;

当值为2时,表示域名服务器失败(Server failure),因为服务器的原因导致没办法处理这个请求;

当值为3时,表示名字错误(Name Error),只有对授权域名解析服务器有意义,指出解析的域名不存在;

当值为4时,表示查询类型不支持(Not Implemented),即域名服务器不支持查询类型;

当值为5时,表示拒绝(Refused),一般是服务器由于设置的策略拒绝给出应答,如服务器不希望对某些请求者给出应答。

问题部分

该部分是用来显示DNS查询请求的问题,其中包含正在进行的查询信息,包含查询名(被查询主机名字)、查询类型、查询类。

  • 查询名:一般为查询的域名,也可能是通过IP地址进行反向查询

  • 查询类型:查询请求的资源类型。常见的如果为A类型,表示通过域名获取IP。具体如下图所示

  • 查询类:地址类型,通常为互联网地址为1

资源记录部分

资源记录部分包含回答问题区域,权威名称服务器区域字段、附加信息区域字段,格式如下

资源记录部分

  • 域名:所请求的域名

  • 类型:与问题部分查询类型值一直

  • 类:地址类型,和问题部分查询类值一样

  • 生存时间:以秒为单位,表示资源记录的生命周期

  • 资源数据长度:资源数据的长度

  • 资源数据:按照查询要求返回的相关资源数据


DNS解析详解

知道了DNS大概是什么,它的域名结构和报文结构,是时候看看到底怎么解析的以及如何保证域名的解析比较稳定和可靠

DNS核心系统

  • 根域名服务器(Root DNS Server),大哥,管理顶级域名服务并放回顶级域名服务器IP,比如"com","cn"

  • 顶级域名服务器(Top-level DNS Server),每个顶级域名服务器管理各自下属,比如com可以返回baidu.com域名服务器的IP

  • 权威域名服务器(Authoritative DNS Server),管理当前域名下的IP地址,比如Tencent.com可以返回www.tencent.com的IP地址

核心系统

举个例子,假设我们访问"www.google.com"

  • 访问根域名服务器,这样我们就会知道"com"顶级域名的地址

  • 访问"com"顶级域名服务器,可知道"google.com"域名服务器的地址

  • 最后方位"google.com"域名服务器,就可知道"www.google.com"的IP地址

嘿嘿,目前全世界13组根域名服务器还有上百太镜像,但是为了让它能力更强,处理任务效率更高,尽量减少域名解析的压力,通常会加一层"缓存",意思是如果访问过了,就缓存,下一次再访问就直接取出,也就是咱么经常配置的"8.8.8.8"等。

操作系统中同样也对DND解析做缓存,比如说曾访问过"www.google.com",

其次,还有我们熟知的hosts文件,当在操作系统中没有命中则会在hosts中寻找。

这样依赖,相当于有了DNS服务器,操作系统的缓存和hosts文件,能就近(缓存)完成解析就好,不用每次都跑到很远的地方去解析,这样大大减轻的DNS服务器的压力。画了一个图,加深印象:

DNS解析过程

嗯?想必应该知道这个过程了,我们再举个例子,假设我们访问www.qq.com

  • 客户端发送一个DNS请求,请问qq你的IP的什么啊,同时会在本地域名服务器(一般是网络服务是临近机房)打声招呼

  • 本地收到请求以后,服务器会有个域名与IP的映射表。如果存在,则会告诉你,如果想访问qq,那么你就访问XX地址。不存在则会去问上级(根域服务器):"老铁,你能告诉我www.qq.com"的IP么

  • 根DNS收到本地DNS请求后,发现是.com,"www.qq.com哟,这个由.com大哥管理,我马上给你它的顶级域名地址,你去问问它就好了"

  • 这个时候,本地DNS跑去问顶级域名服务器,"老哥,能告诉下www.qq.com"的ip地址码",这些顶级域名负责二级域名比如qq.com

  • 顶级域名回复:"小本本记好,我给你www.qq.com区域的权威DNS服务器地址",它会告诉你

  • 本地DNS问权威DNS服务器:"兄弟,能不能告诉我www.qq.com对应IP是啥"

  • 权威DNS服务器查询后将响应的IP地址告诉了本地DNS,本地服务器将IP地址返回给客户端,从而建立连接。


DNS进阶之新玩法

这里主要分享DNS(GSLB)的全局负载均衡。不是所有的互联网服务都适用于GSLB。

全局负载均衡采用的主要技术是智能DNS,它综合多种不同的策略(比如根据地理位置或者根据繁忙程度的权重)将客户访问的域名解析到不同的线路上。开启介绍之前,再一次复习下DNS中A记录和NS记录。

  • A记录

A记录是名称解析的重要记录,它用于将特定的主机名映射到对应主机的IP地址上。你可以在DNS服务器中手动创建或通过DNS客户端动态更新来创建

  • NS记录

NS记录此记录指定负责此DNS区域的权威名称服务器。

  • 两者区别

A记录直接给出目的IP,NS记录将DNS解析任务交给特定的服务器,NS记录中记录的IP即为该特定服务器的IP地址

在全局负载均衡解决方案中,NS记录指向具有智能DNS解析功能的GSLB设备,通过GSLB设备进行A记录解析。为了保证高可用,如果为多地部署GSLB,则均配置记录。另外,GSLB设备还会对所在的后端服务器公网IP进行健康检查,其结果通过自有协议在不同的的GLSB设备间同步。解析的步骤如下图所示:

智能DNS解析

  • 用户给本地DNS服务器发送查询请求,如果本地有缓存直接返回给用户,否则通过递归查询获得名服务商商处的授权DNS服务器

  • 授权服务器返回NS记录给本地DNS服务器。其中NS记录指向一个GSLB设备接口地址

  • GSLB设备决策最优解析结果并返回A记录给本地DNS服务器。

  • 本地服务器将查询结果通过一条A记录返回给用户,并缓存这条记录。


DNS实战(wireshark)

使用工具为wireshark,访问www.baidu.com

分析DNS请求帧,如下图所示

DNS请求帧

从上图我们可知道请求计数为1,请求的域名为dss0.bdstatic.com

分析DNS响应帧

DNS响应

从响应头可以知道,问题计数为1,正好对应请求帧1个问题。回应了2个问题。分别为

answers

权威域名服务器

从上图可以得出当前共有13个权威域名服务器,当然每一个的服务器地址不同,其中类型为NS代表权威域名服务器服务器。

使用IP地址访问浏览器的原理

  • 打开chrome浏览器,输入IP

  • 三次握手建立连接

  • 建立连接以后HTTP开始工作,通过TCP发送一个"GET / HTTP/1.1",服务端给予回应

  • 解析请求,根据HTTP协议规定解析,看看那浏览器想干啥

  • 哦,原来你想获取我的视频呀,那我读出来拼接为HTTP格式给你,回复"HTTP/1.1 200 OK"

  • 作为浏览器回复一个TCP的ACK表示确认

  • 浏览器收到响应数据后,需要使用相应的引擎进行渲染,将更好的页面展现给用户


使用域名访问浏览器的原理

这一次从浏览器角度回答,相信大家已经了解一部分浏览器知识了,我们先看看URL到网页展示的完整流程是什么样子

  • 用户输入

在地址栏输入相应的内容,如果为关键字,如果直接输入搜索内容,浏览器默认引擎会合成为URL,如果符合URL规则,加上协议合成完整URL,回车就会出现加载页面,也就是等待提交文档的阶段

  • URL请求过程

此时浏览器进程将URL通过进程间通信的方式发送给网络进程,开启真正的请求流程。注意了,网络进程这里也有缓存,它会现在本地缓存查看是否缓存了资源,如果有则直接返回。如果没有,那就需要DNS解析获取服务器IP地址(HTTPS还少不了TLS连接)

此时使用IP和服务器建立三次握手。连接成功开始构造请求头等信息。

服务器收到请求信,根据请求信息生成响应信息给网络进程。然后开始解析响应头内容。如果返回值为302/301,说明需要跳转到其他URL,如果为200则继续处理该请求。

URL的请求数据类型多种,对于浏览器而言是怎么区分的呢

这个时候就必须强调下Content-type了,因为他明确服务器返回响应体数据属于什么类型,此时的浏览器也会根据Content-type对决定响应体是什么内容。

  • 进入渲染阶段

通常情况下,当前多进程架构的浏览器对于每一个页面都有一个渲染进程,前提是如果从X页面打开Y页面,x和y属于同一个"站点"(使用相同的协议和根域名),此时y页面会复用x页面,否则y页面会单独对应一个渲染进程。

  • 提交阶段

渲染进程收到浏览器进程的"提交文档"后,通过和网络进程使用"管道"的方式通信。一旦这些文档数据传输完成,渲染进程就会告诉浏览器进程"确认提交",此时浏览器进程收到"确认提交"就会更新地址栏的URL,历史状态等,这就是为什么当我们在地址栏输入地址信息后需要加载一小会儿到另一个页面。over

  • 渲染阶段

文档提交以后,此时就需要使用js,css等美化页面,并通过构建DOM树等让用户有更好的使用体验。


DNS劫持

到这里我们至少知道了DNS可以将域名映射为IP,并且知道了使用了多种缓存方案来减少DNS访问的压力。那么DNS一旦出错,很可能将域名解析到其他IP地址,这样我们也就无法正确访问网页(PS是不是有的时候发现开启不了网页但是qq等可以使用,很可能就是DNS搞鬼了哟)。

DNS劫持

  • 利用DNS服务器进行DDOS攻击

什么是DDOS,我们应该知道SYN Flood,是一种DoS(拒绝服务攻击)与DDOS(分布式拒绝服务攻击的方式),利用大量的伪造TCP请求让被攻击方资源榨干。

DDOS

我们假设攻击者已经知道了攻击者IP(如果需要了解这一部分内容,可以去搜索主动被动信息搜集/sodan等关键字),此时攻击者使用此地址作为解析命令的源地址,当DNS请求的时候返回恰巧也是被攻击者。此时如果足够多的请求(群肉鸡)就很容易使网络崩溃。

  • 缓存感染

我们已经知道了在DNS查询过程中,会经过操作系统的缓存,hosts文件等,如果将数据放入有漏洞的服务器缓存中,当进行DNS请求的时候,就会将缓存信息返回给用户,这样用户就会莫名访问入侵者所设置的陷阱页面中。

  • DNS信息劫持

看到这里的小伙伴,先思考一个问题,在TCP/IP协议栈中,三次握手中的序列号到底什么意思?

其功能之一就是避免伪装数据的插入。我们知道,如果我们知道DNS报文中的ID,我们就可以知道这个ID请球员位置。作为攻击者,会通过旁路监听客户端和服务端的会话,拿到DNS中的ID,此时相当于在DNS服务器之前拿到ID,伪装DNS服务器回复客户端,引导客户端访问恶意的网站。

电脑小故障

比如qq可用但是浏览器就是不好使

  • 输入:http://192.168.1.1(可能是http://192.168.0.1),输入路由器用户名密码

  • DHCP服务器-----DHCP服务-,修改DNS为更加可靠的DNS服务器IP.保存即可

方法2:修改路由器password

  • 地址栏输入"http://192.168.1.1",登录并进入路由器页面

  • 系统工具--修改登录口令页面

保护域名/尽量避免攻击

  • 备份策略。一般至少会使用两个域名,一旦其中一个被攻击,用户可以通过另一个访问

  • 随时留意域名注册中的电子邮件

  • 保存好所有权信息(比如账单记录,注册信息等)

  • 随时关注安全补丁


本文涉及高频面试题(自行测试)

  • 讲讲DNS原理

  • 进程与线程

  • 递归查询和递归查询区别

  • DNS解析流程

  • chrome架构演变

  • ELF是什么,数据段,代码段,全局变量等分别存放在哪儿

  • DNS劫持

  • 描述下DDOS与DOS攻击

  • 使用IP地址访问web服务器

  • 使用域名访问web服务器过程

  • 可重定位什么意思?

  • 静态库与动态库的区别

  • 进程与线程间共享数据


巨人的肩膀

https://baike.baidu.com/item/%E5%9F%9F%E5%90%8D%E8%A7%A3%E6%9E%90/574285?fr=aladdin
https://baijiahao.baidu.com/sid=1623434144833493787&wfr=spider&for=pc
https://www.sohu.com/a/229518877_609556
https://time.geekbang.org/column/intro/100024701?utm_source=pinpaizhuanqu&utm_medium=geektime&utm_campaign=guanwang&utm_term=guanwang&utm_content=0511

【END】

6月3日20:00,CSDN 创始人&董事长、极客帮创投创始合伙人蒋涛携手全球顶级开源基金会主席、董事,聚焦中国开源现状,直面开发者在开源技术、商业上的难题,你绝不可错过的开源巅峰对谈!立即免费围观

更多精彩推荐
 ☞AI 看脸算命,3 万张自拍揭露:颜值即命?
☞无代码来了,还要程序员吗?
☞芯片供应被掐断,华为能否安全渡劫?
☞来了来了!趋势预测算法大PK!
☞Python开发之:Django基于Docker实现Mysql数据库读写分离、集群、主从同步详解 | 原力计划
☞15 岁黑进系统,发挑衅邮件意外获 Offer,不惑之年捐出全部财产,Twitter CEO 太牛了!
你点的每个“在看”,我都认真当成了喜欢
CSDN资讯
关注 关注
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
面试题DNS域名解析过程(超详细)
居老师的博客
04-02 2017
通过浏览器解析 URL 并生成 HTTP 消息后,需要委托操作系统将消息发送给Web服务器。 但在发送之前,还有一项工作需要完成,那就是查询服务器域名对应的 IP 地址,因为委托操作系统发送消息时,必须提供通信对象的 IP 地址。 比如我们打电话的时候,必须要知道对方的电话号码,但由于电话号码难以记忆,所以通常我们会将对方电话号 + 姓名保存在通讯录里。 所以,有一种服务器就专门保存了Web服务器域名与IP的对应关系,它就是DNS服务器。 域名的层级关系 DNS 中的域名都...
字长:产品经理面试真题大全.docx
05-19
字长:产品经理面试真题大全.docx
DNS记录类型介绍(A记录、MX记录、NS记录等)
s13596191285的博客
12-22 5200
DNS A记录 NS记录 MX记录 CNAME记录 TXT记录 TTL值 PTR值 建站名词解释:DNS A记录 NS记录 MX记录 CNAME记录 TXT记录 TTL值 PTR值 泛域名 泛解析 域名绑定 域名转向 1.DNS:Domain Name System 域名管理系统 域名是由圆点分开一串单词或缩写组成的,每一个域名都对应一个惟一的IP地址,这一命名的方法或这样管理域名的系统叫做域名管理系统。 DNS:Domain Name Server 域名服务器 域名虽然便于人们记忆,但网络中的计
计算机网络之DNS面试题
weixin_44390164的博客
07-19 1399
DNS面试题
DNS解析中的A记录、AAAA记录、CNAME记录、MX记录、NS记录、TXT记录、SRV记录、URL转发等
RayPick的博客
08-24 6692
在任何 DNS 记录件(Domain Name System (DNS) Zone file)中, 都是以SOA(Start of Authority)记录开始。SOA 资源记录表明此 DNS 名称服务器是为该 DNS 域中的数据的信息的最佳来源。SOA 记录与 NS 记录的区别:简单讲,NS记录表示域名服务器记录,用来指定该域名由哪个DNS服务器来进行解析;
网络协议相关面试问题-DNS相关面试问题
weixin_30656145的博客
05-03 802
对于网络上的大部通讯都是基于TCP/IP协议的, 其中最重要的是IP协议,它是基于IP地址的,而计算机通讯只能识别IP地址,如192.168.0.1,而不能识别像咱们在浏览器敲得见名之义的"www.baidu.com"这样的域名,但是呢有一个DNS服务器的计算机会自动把咱们输入的域名翻译成了网络通讯所需要的ip地址,这就是DNS协议,下面来了解一下它。 什么是DNS? 它所提供的服务是用来将主...
DNS服务和BIND面试题
bayin4937的博客
09-11 270
面试题DNS解析与查询系统
zdluffy的博客
08-12 1396
参考:CSDN、牛客 1)DNS作用 DNS:Domain Name System,域名系统,是互联网使用的命名系统,用来便于把人们使用的机器名字转换为IP地址。属于应用层协议。 ARP协议是用来将IP地址转换为MAC地址,DNS协议则是用来将域名转换为IP地址(也可以将IP地址转换为相应的域名地址)。 域名服务主要是基于UDP实现的,服务器端口号为53。 2)为什么要DNS解析? 因为http是...
轻松了解DNS劫持
weixin_34194702的博客
05-10 131
2019独角兽企业重金招聘Python工程师标准>>> ...
2024年Python爬虫面试题常考题字长.zip
03-15
同时,章还提供了100个爬虫面试题及答案,以及面试题实战演练和模拟面试练习,旨在帮助求职者更好地准备爬虫相关的职位面试。 适用人群: 本篇章主要面向爬虫技术初学者,特别是那些即将参加春招的应届毕业生和...
数据治理怎么做?这篇字长终于讲清楚了!.docx
06-17
这篇字长终于讲清楚了!.docx数据治理怎么做?这篇字长终于讲清楚了!.docx数据治理怎么做?这篇字长终于讲清楚了!.docx数据治理怎么做?这篇字长终于讲清楚了!.docx数据治理怎么做?这篇字长终于...
字长解密苹果A12芯片
01-19
在过去的几年里,苹果的芯片设计团队一直处于架构设计和制造工艺的前沿。苹果A12是该公司又跨越代际的飞跃,因为它号称是首款商用7nm芯片。  在谈论工艺节点时,一般而言,数字越小,晶体管就越小。...
数据治理怎么做?这篇字长终于讲清楚了!.pdf
06-17
这篇字长终于讲清楚了!.pdf数据治理怎么做?这篇字长终于讲清楚了!.pdf数据治理怎么做?这篇字长终于讲清楚了!.pdf数据治理怎么做?这篇字长终于讲清楚了!.pdf数据治理怎么做?这篇字长终于讲...
计算机网络面试——DNS
weixin_47450807的博客
03-14 2279
一、概况 DNS协议提供的是一种主机名和IP地址转化的服务,就是我们常说的域名系统。它是由分层的DNS服务器组成的分布式数据库,是定义了主机如何查询这个分布式数据库的方法的应用层协议。DNS协议运行在UDP协议上,使用53号端口。 二、域名的层次结构 域名的层次结构可以如下所示: 主机名.次级域名.顶级域名.根域名 host.sld.tld.root 根据域名的层次结构,管理不同层级的域名的服务器,可以分为根域名服务器,顶级域名服务器和权威域名服务器。 三、查询过程 DNS的查询过程一般为,我们首先将DN
面试》-- DNS域名解析过程
Fitz的博客
08-24 3694
DNS数据库结构是树状结构,形象来讲是一颗倒挂的树 ==> 树的根是根服务器,全球有13台根服务器 ==> 顶级域名:org、com、net、me、cn、cc、 ==> 一级域名:google、aliyun、huawei、sina、 DNS解析流程: 1、DNS客户端(DNS_Client)检查HOSTS件及本地DNS缓存,没有找到对应的记录; 2、DNS_...
计算机网络面试题 DNS
weixin_48927774的博客
10-31 348
DNS协议 DNS协议则是用来将域名转换为IP地址(也可以将IP地址转换为相应的域名地址)。 DNS查询过程 主机先向本地域名服务器进行递归查询 本地域名服务器采用迭代查询,向一个根域名服务器进行查询 根域名服务器告诉本地域名服务器,下一次应该查询的顶级域名服务器的IP地址 本地域名服务器向顶级域名服务器进行查询 顶级域名服务器告诉本地域名服务器,下一步查询权限服务器的IP地址 本地域名服务器向权限服务器进行查询 权限服务器告诉本地域名服务器所查询的主机的IP地址 本地域名服务器最后把查询结果告诉主机
面试题DNS 的解析过程?
jakelihua
06-12 360
本地 DNS 查询:如果该 URL 不在本地 DNS 缓存中,则向运营商的 DNS 发送查询请求。权威 DNS 返回结果:权威 DNS 返回所查询的IP地址等映射信息(也有可能返回错误消息或者没有返回结果),同时本地 DNS 具有缓存功能,可以将获取到的域名信息保存在本地缓存中,以供后续使用。权威 DNS 查询:当本地 DNS 找到负责这个域名的权威 DNS 后,会向权威 DNS 服务器发送一个查询请求,查询域名对应的 IP 地址等映射信息。
面试官:DNS是什么?---我慌了!带你搞定逃不脱DNS 面试题
Arouroua的博客
05-29 1120
目录 Chrome浏览器原理 DNS简介 DNS结构 DNS解析详解 DNS进阶之新玩法 DNS实战(wireshark) 使用IP地址访问浏览器的原理 使用域名访问浏览器的原理 DNS劫持 本涉及高频面试题(自行测试) 巨人的肩膀 提到网络,基本上都能把DNS给扯上去。为啥呢,今天我们来一探究竟。 Chrome浏览器原理 还记得面试过程中被问了千百遍的"输入URL后发生了什么"这个经典问题吗?因为这个问题覆盖了太多的知识点,其中包括计算机网络,操作系统,数据结构等一些列问题,对于面试官和面试者来
头歌python本月天数.doc
最新发布
05-29
头歌python本月天数 头歌Python本月天数计算教程 一、引言 在Python编程中,经常需要处理与时间相关的任务,包括日期的计算。其中,一个常见的需求是计算某个月份的天数。由于不同月份的天数可能不同(例如,2月有28天或29天,取决于是否为闰年),因此编写一个能够准确计算本月天数的Python程序是非常有用的。本教程将详细介绍如何使用Python来实现这一目标。 二、Python中的日期和时间处理 在Python中,日期和时间通常使用内置的datetime模块来处理。datetime模块提供了许多类和方法,用于表示和操作日期和时间。其中,datetime.date类用于表示日期,包括年、月和日三个部分。 三、计算本月天数 要计算本月天数,我们可以使用datetime.date类的一些方法和属性。具体步骤如下: 获取当前日期 首先,我们需要获取当前的日期。这可以通过datetime.date.today()方法来实现。该方法返回一个表示当前日期的datetime.date对象。 python from datetime import date tod
编写程序实现两个超长正整数(每个最长80位数字)的加法运算。_字长!位运算面试看这篇就够了!...
06-01
好的,这是一个比较复杂的问题,需要用到字符串的操作和进位等知识。以下是一个简单的实现示例: ```python def add_long_integers(num1, num2): # 将两个数字用字符串的形式存储,并且将其逆序,方便从个位开始...

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • 再见 Java 7! 679410
  • Wi-Fi 爆重大安全漏洞,Android、iOS、Windows 等所有无线设备都不安全了 485718
  • Python读写Excel表格,就是这么简单粗暴又好用 404889
  • 看这里!!1024个程序员关于AI PC 的联想 313464
  • 我该用 Java 12 还是坚持 Java 11? 281435

分类专栏

  • 安全 3篇
  • AI 56篇
  • 资讯 1194篇
  • 云计算 22篇
  • 基础设施 2篇
  • 大模型 3篇
  • 全球机器学习技术大会 10篇
  • 大数据 18篇
  • 智能网联汽车 2篇
  • 数据库 26篇
  • 开源 103篇
  • 业界资讯 247篇
  • 云原生 1篇
  • 亚马逊云科技 re:Invent 3篇
  • 长沙·1024程序员节 89篇
  • 近匠 18篇
  • 年终盘点 12篇
  • 开谈 2篇
  • 程序员 49篇
  • 企业数字化转型 4篇
  • CTO专访 2篇
  • 编程 1篇
  • 开源中国开源世界高峰论坛 14篇
  • OPPO适配支持 4篇
  • 人工智能 45篇
  • 开发者 11篇
  • 产业智能化 7篇
  • 2022开发者报告 6篇
  • 创造力 2篇
  • 开源系列谈 6篇
  • 华为开发者大会2022 1篇
  • 腾讯云 2篇
  • 数据安全 13篇
  • 源代码 3篇
  • 智源 2篇
  • 笔记 8篇
  • 开发者大调查 6篇
  • 人物志 35篇
  • 历史上的今天 1篇
  • 迎战新型肺炎,互联网全面出击 31篇
  • CSDN黑板报 10篇
  • 程序媛 1篇
  • 全国大学生操作系统设计赛 2篇
  • AR 1篇
  • 5G 2篇
  • 智能化生活 8篇
  • 云智慧 1篇
  • 英特尔FPGA技术大会 1篇
  • CTO
  • 生物计算 1篇
  • 2020 OPPO开发者大会 1篇
  • OPPO
  • 腾讯全球数字生态大会 8篇
  • 百度翻译 1篇
  • 云栖大会 5篇
  • 百度大脑6.0 1篇
  • 华为HMS生态 2篇
  • 华为开发者大会 2篇
  • 浪潮智能工厂 1篇
  • OpenCV 1篇
  • 智能全感知系统 1篇
  • 百度智能云 1篇
  • OpenInfra Days China 2020 2篇
  • 世界人工智能大会 4篇
  • AI ProCon 2020 1篇
  • 李跃森 1篇
  • 嵌入式智能国际大会 16篇
  • CSDN 在线峰会 2篇
  • 问底中国 IT 技术演进 7篇
  • 开源操作系统年度技术会议 5篇
  • 产品见闻 97篇
  • 技术之路 240篇
  • 程序人生 74篇
  • 行业热点 320篇
  • CSDN 46篇

最新评论

  • 免积分即可下载资源!CSDN 粉丝可下载功能正式上线

    Wowwww152: 听说发15个字的评论能获得一积分,不知道是不是真的,所以在这里试一下,看看能不能行,听说发15个字的评论能获得一积分,不知道是不是真的,所以在这里试一下,看看能不能行,这积分真的是太难弄

  • 免积分即可下载资源!CSDN 粉丝可下载功能正式上线

    Wowwww152: 听说发15个字的评论能获得一积分,不知道是不是真的,所以在这里试一下,看看能不能行,听说发15个字的评论能获得一积分,不知道是不是真的,所以在这里试一下,看看能不能行,这积分真的是太难弄

  • VBScript 将从 Windows 上消失,微软放出弃用计划!

    2402_85400999: 谢谢

  • OpenAI前董事怒批奥特曼:撒谎、歪曲事实,董事会是从Twitter上才知晓ChatGPT发布...

    2402_85400999: 没皮套?

  • OpenAI前董事怒批奥特曼:撒谎、歪曲事实,董事会是从Twitter上才知晓ChatGPT发布...

    1127670770: 我是来看奥特曼的 连个皮套都没有???表情包

大家在看

  • 【2024.5月最新版本】ChatGPT商业运营网站程序源码,支持部署、支持Midjourney绘画,GPT语音对话+DALL-E3文生图+文档对话总结+suno-ai音乐生成+TTS语音对话+支
  • 算法基础——动态规划(3)背包 多重背包(每个物品可重复选,有次数限制) 350
  • 正则表达式介绍及一些实例(js语法) 1051
  • 代码随想录算法训练营第八天(字符串part01) | 344.反转字符串,541. 反转字符串II,卡码网:54.替换数字,151.翻转字符串里的单词,卡码网:55.右旋转字符串 706
  • 什么是接口回调

最新文章

  • AI编程很香但别忘了安全,JFrog发布报告显示2成企业禁止使用AI研发
  • OpenAI奥特曼宣布将捐出大部分财产;​俄罗斯考虑对使用外国软件的企业收费 | 极客头条...
  • 微软也“扶不起”的Win11!明年退役的Win10市占率再涨,网友:不如专心搞Win12吧...
2024
05月 127篇
04月 142篇
03月 98篇
02月 87篇
01月 151篇
2023年2105篇
2022年1579篇
2021年1493篇
2020年3511篇
2019年3308篇
2018年1742篇
2017年226篇

目录

目录

分类专栏

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

4617作文网姓柯男孩起名大全口腔高档诊所起名起名字大全教育公司好的建筑公司起名以煜起名字啊梦见流血 周公解梦周易八字名字起名字名字算命可信吗周易免费取名测试打分结果起名五行带金的字以上店铺如何起名字猪宝宝起名大全用字大全解梦大全梦见别人怀孕曾姓男孩起名来源于周易的名字重庆算命一条街八字缺火字取名起名大全大运命理测算五行四个土怎么起名字怎么免费帮宝宝起名字梦见洗衣服周公解梦周易姓名匹配测试姻缘天子国际解梦诗黎姓起名四个字八字缘分算命算命准吗周公解梦警察抓我鼠年姜姓男孩起名求签周公解梦用单起名淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻让美丽中国“从细节出发”清明节放假3天调休1天男子给前妻转账 现任妻子起诉要回网友建议重庆地铁不准乘客携带菜筐月嫂回应掌掴婴儿是在赶虫子重庆警方辟谣“男子杀人焚尸”国产伟哥去年销售近13亿新的一天从800个哈欠开始男孩疑遭霸凌 家长讨说法被踢出群高中生被打伤下体休学 邯郸通报男子持台球杆殴打2名女店员被抓19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警两大学生合买彩票中奖一人不认账德国打算提及普京时仅用姓名山西省委原副书记商黎光被逮捕武汉大学樱花即将进入盛花期今日春分张家界的山上“长”满了韩国人?特朗普谈“凯特王妃P图照”王树国3次鞠躬告别西交大师生白宫:哈马斯三号人物被杀代拍被何赛飞拿着魔杖追着打315晚会后胖东来又人满为患了房客欠租失踪 房东直发愁倪萍分享减重40斤方法“重生之我在北大当嫡校长”槽头肉企业被曝光前生意红火手机成瘾是影响睡眠质量重要因素考生莫言也上北大硕士复试名单了妈妈回应孩子在校撞护栏坠楼网友洛杉矶偶遇贾玲呼北高速交通事故已致14人死亡西双版纳热带植物园回应蜉蝣大爆发男孩8年未见母亲被告知被遗忘张立群任西安交通大学校长恒大被罚41.75亿到底怎么缴沈阳一轿车冲入人行道致3死2伤奥运男篮美国塞尔维亚同组周杰伦一审败诉网易国标起草人:淀粉肠是低配版火腿肠外国人感慨凌晨的中国很安全男子被流浪猫绊倒 投喂者赔24万杨倩无缘巴黎奥运男子被猫抓伤后确诊“猫抓病”春分“立蛋”成功率更高?记者:伊万改变了国足氛围奥巴马现身唐宁街 黑色着装引猜测

4617作文网 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化