【计网】03.DNS、URL
【嵌入式八股】一、语言篇https://www.nowcoder.com/creation/manager/columnDetail/mwQPeM
【嵌入式八股】二、计算机基础篇(本专栏)https://www.nowcoder.com/creation/manager/columnDetail/Mg5Lym
【嵌入式八股】三、硬件篇https://www.nowcoder.com/creation/manager/columnDetail/MRVDlM
【嵌入式八股】四、嵌入式Linux篇https://www.nowcoder.com/creation/manager/columnDetail/MQ2bb0
DNS
56.DNS是什么?
DNS代表“Domain Name System”,域名系统,用于将易于记忆的域名转换为计算机能够理解的IP地址。因为互联网上的所有计算机都是通过其IP地址进行通信的,而这些IP地址通常是一串数字,对于人类来说不太容易记忆和使用。DNS系统将域名(例如www.example.com)与相应的IP地址(例如192.0.2.1)相匹配,并帮助计算机找到所需的网站或服务。
当用户在其计算机或设备上输入一个域名时,操作系统会向一个或多个DNS服务器发送请求,以获取与该域名相对应的IP地址。如果DNS服务器能够找到该域名的IP地址,则返回给用户,操作系统将使用此IP地址与相应的服务器建立连接并加载网站或服务。如果DNS服务器无法找到域名的IP地址,则会返回一个错误,无法连接到相应的服务器。
DNS系统是互联网基础架构中的关键组成部分,它使得用户可以轻松地访问和使用互联网上的各种服务和网站。
57.DNS的工作原理
谈谈DNS解析过程,具体一点
将主机域名转换为ip地址,属于应用层协议,使用UDP传输。
过程总结: 浏览器缓存,系统缓存,路由器缓存,ISP服务器缓存,根域名服务器缓存,顶级域名服务器缓存,主域名服务器缓存。
DNS解析过程指的是将用户输入的URL域名解析为IP地址的过程。DNS解析过程包括以下步骤:
- 浏览器缓存:浏览器会首先检查自己的缓存中是否有该域名对应的IP地址。如果有,浏览器将直接使用这个IP地址,而不需要进行后续的DNS查询过程。
- 操作系统缓存:如果浏览器缓存中没有该域名对应的IP地址,操作系统会检查自己的DNS缓存中是否有该域名对应的IP地址。如果有,操作系统会直接返回这个IP地址给浏览器,而不需要进行后续的DNS查询过程。
- 路由器缓存:如果操作系统缓存中也没有该域名对应的IP地址,那么请求将被发送到本地网络中的路由器。路由器通常也会有自己的DNS缓存,它会检查是否有该域名对应的IP地址。如果有,路由器会返回这个IP地址给操作系统,否则它会将请求转发给ISP的DNS服务器。
- ISP DNS服务器(ISP互联网服务提供商):如果在缓存中没有找到该域名对应的IP地址,那么ISP的DNS服务器就会被用来解析域名。ISP的DNS服务器可能会有多个,一般按照距离和性能来选择最优的服务器。ISP DNS服务器会按照从右到左的顺序,依次查找该域名的顶级域名服务器、权威域名服务器等,并将最终的IP地址返回给用户的计算机。
- 根DNS服务器:如果ISP的DNS服务器也没有找到该域名对应的IP地址,那么它会向根DNS服务器发出请求。根DNS服务器负责维护整个DNS树形结构,它会返回一个指向顶级域名服务器的IP地址给ISP的DNS服务器。
- 顶级域名服务器:ISP的DNS服务器收到根DNS服务器返回的顶级域名服务器的IP地址后,就会向顶级域名服务器发出请求。顶级域名服务器会返回一个指向负责该域名的权威域名服务器的IP地址给ISP的DNS服务器。
- 权威域名服务器:最后,ISP的DNS服务器会向权威域名服务器发出请求,并获取该域名对应的IP地址。权威域名服务器返回IP地址给ISP的DNS服务器,ISP的DNS服务器再将这个IP地址返回给用户的计算机,完成整个DNS解析过程。
浏操路,I根顶权
58.为什么域名解析用UDP协议?
域名解析使用UDP协议是因为UDP具有较低的延迟和较小的数据包开销。
DNS查询通常是一个简短的请求-响应交互,只需要发送一个短小的查询消息,然后等待一个短小的响应消息。由于UDP协议不需要建立连接和维护状态,因此UDP通常比TCP更快。此外,UDP消息头的大小比TCP消息头要小,这意味着在传输数据时UDP会有更少的开销。
另外,DNS使用的是分布式系统,具有高可用性。如果使用TCP协议,每个DNS服务器都需要维护一个连接状态表,这将在大型系统中造成大量的开销和负载。相比之下,UDP协议允许DNS服务器快速响应查询请求,减少了开销和负载,并提高了系统的可伸缩性。
因此,DNS使用UDP协议来进行域名解析,以提高解析速度和系统的可伸缩性。
59.DNS负载均衡是什么策略?
当一个网站有足够多的用户的时候,假如每次请求的资源都位于同一台机器上面,那么这台机器随时可能会崩掉。处理办法就是用DNS负载均衡技术
DNS负载均衡是一种在分布式计算环境中实现负载均衡的策略。它通过将DNS域名解析请求分布到不同的服务器上来实现负载均衡。DNS负载均衡的基本原理是将同一个域名解析请求映射到不同的IP地址上,这些IP地址代表了不同的服务器。当客户端发起请求时,DNS服务器会根据预设的负载均衡算法,将请求转发到其中一个服务器上。这样可以实现对服务器的负载均衡,提高系统的可靠性和性能。
常见的DNS负载均衡算法包括:轮询、随机、加权轮询、加权随机等。其中轮询算法是最基本的算法,它将请求依次分配到每个服务器上,实现了基本的负载均衡。加权轮询算法在轮询的基础上增加了权重的概念,可以根据服务器的性能、带宽等指标来分配不同的权重值,从而实现更加精细化的负载均衡。随机算法将请求随机地分配到不同的服务器上,能够有效地平衡服务器的负载。加权随机算法在随机算法的基础上增加了权重的概念,实现了更加灵活的负载均衡。
60.DNS查询方式有哪些?
DNS查询方式可以分为以下几种:
- 递归查询(Recursive Query):客户端向本地DNS服务器发送一个递归查询请求。如果本地DNS服务器不知道所请求的域名的IP地址,它会继续向上级DNS服务器发出查询请求,直到找到包含所请求域名的IP地址的DNS服务器,然后返回结果给客户端。
- 迭代查询(Iterative Query):客户端向本地DNS服务器发送一个迭代查询请求。本地DNS服务器不会为客户端查找答案,而是向根域名服务器发送一个迭代
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
查阅整理上千份嵌入式面经,将相关资料汇集于此,主要包括: 0.简历面试 1.语言篇 2.计算机基础【本专栏】 3.硬件篇 4.嵌入式Linux (建议PC端查看)