本文主要是介绍面试计算机网络框架八股文十问十答第六期,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
面试计算机网络框架八股文十问十答第六期
作者:程序员小白条,个人博客
相信看了本文后,对你的面试是有一定帮助的!关注专栏后就能收到持续更新!
⭐点赞⭐收藏⭐不迷路!⭐
1)DNS 协议是什么
DNS(Domain Name System)是一种用于将域名转换为 IP 地址的分布式命名系统。简单来说,它充当了互联网上的“电话簿”,将人类可读的域名(如example.com)转换为计算机可识别的 IP 地址(如192.0.2.1)。这种系统使得用户能够通过简单易记的域名来访问网站,而无需记住复杂的 IP 地址。
2)DNS同时使用TCP和UDP协议?
是的,DNS可以同时使用TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)协议。通常情况下,DNS查询使用UDP协议,因为UDP是一种无连接的、速度较快的协议,适合用于简单的查询。但是,当DNS响应超过512字节时,会使用TCP协议进行通信,因为UDP协议有一个限制,无法传输超过512字节的数据。
3)DNS完整的查询过程
DNS查询过程可以分为以下几个步骤:
- 本地解析器查询缓存:首先,客户端会查询本地DNS解析器的缓存,看是否已经解析过该域名。如果有,就直接返回结果。
- 本地解析器向根域名服务器查询:如果本地解析器缓存中没有相应的记录,它会向根域名服务器发送查询请求,询问该域名的顶级域名服务器的地址。
- 根域名服务器返回顶级域名服务器地址:根域名服务器收到请求后,会返回顶级域名服务器的地址,比如.com、.net等顶级域名服务器。
- 本地解析器向顶级域名服务器查询:本地解析器收到顶级域名服务器的地址后,会向该服务器发送查询请求,询问该域名的权威域名服务器的地址。
- 顶级域名服务器返回权威域名服务器地址:顶级域名服务器收到请求后,会返回权威域名服务器的地址,该服务器通常由注册商或域名所有者管理。
- 本地解析器向权威域名服务器查询:本地解析器收到权威域名服务器的地址后,会向该服务器发送查询请求,请求解析该域名对应的IP地址。
- 权威域名服务器返回IP地址:权威域名服务器收到请求后,会返回该域名对应的IP地址给本地解析器。
- 本地解析器将IP地址返回给客户端:最后,本地解析器会将获取到的IP地址返回给客户端,并将该记录存储在缓存中,以备后续查询使用。
这是一个简化的DNS查询过程,实际情况可能会更加复杂,特别是在涉及到DNS缓存、负载均衡和安全策略等方面。
4)迭代查询与递归查询
- 迭代查询:在迭代查询中,客户端会向DNS服务器发送查询请求,如果该服务器能够解析该域名,就会返回结果;如果不能解析,它会返回一个指向另一个DNS服务器的引用。然后客户端将向该引用的服务器发送查询请求,直到最终找到解析结果或者遇到错误。
- 递归查询:在递归查询中,客户端向DNS服务器发送查询请求,并要求服务器帮助解析该域名。如果服务器能够解析,它会返回结果;如果不能解析,它会代表客户端继续向其他DNS服务器发送查询请求,直到最终找到解析结果或者遇到错误,并将最终结果返回给客户端。
5)DNS 记录和报文
- DNS记录:DNS记录是存储在DNS服务器中的数据,用于将域名映射到相应的IP地址或其他信息。常见的DNS记录类型包括:
- A记录:将域名映射到IPv4地址。
- AAAA记录:将域名映射到IPv6地址。
- CNAME记录:将域名指向另一个域名,实现域名的别名。
- MX记录:指定邮件交换服务器,用于电子邮件路由。
- NS记录:指定该域名的域名服务器。
- SOA记录:指定该域名的起始授权机构。
- DNS报文:DNS报文是在DNS查询和响应过程中传输的数据包。它包含了查询或响应的各种字段和标志位,以及相关的查询参数或响应结果。DNS报文一般分为查询报文和响应报文,它们的格式由DNS协议规定。
6)OSI七层模型
OSI(Open Systems Interconnection)七层模型是一个用于理解和描述计算机网络协议的抽象模型,由国际标准化组织(ISO)制定。这个模型将计算机网络通信的过程分为七个层次,每个层次都负责不同的功能和任务。这些层次从底部到顶部分别是:
- 物理层(Physical Layer):负责传输原始比特流,并控制物理设备间的连接。
- 数据链路层(Data Link Layer):提供了节点间可靠的数据传输,并处理物理层的错误。
- 网络层(Network Layer):负责在不同网络间传输数据包,并处理路由和转发。
- 传输层(Transport Layer):提供端到端的可靠数据传输,包括数据分段、流量控制和错误恢复。
- 会话层(Session Layer):管理两个节点间的通信会话,包括会话的建立、维护和终止。
- 表示层(Presentation Layer):负责数据格式的转换、加密和压缩,以确保不同系统间的数据交换能够顺利进行。
- 应用层(Application Layer):提供用户与网络服务之间的接口,包括各种网络应用协议,如HTTP、FTP、SMTP等。
这个模型有助于理解不同网络协议在网络通信中的作用和位置。
7)TCP/IP五层协议
TCP/IP五层协议,也被称为TCP/IP协议栈,是互联网通信中使用的基本网络协议,包括以下五个层次:
- 物理层:负责传输比特流,定义了电缆、光纤等物理媒介的规范。
- 数据链路层:处理数据帧的传输,确保在相邻节点间的可靠通信,包括对物理层错误的检测和纠正。
- 网络层:处理数据包在网络中的寻址和路由,负责将数据从源主机传输到目标主机,涉及IP地址和路由表的使用。
- 传输层:提供端到端的通信,包括TCP(Transmission Control Protocol)和UDP(User Datagram Protocol),负责数据的可靠性、流量控制和错误恢复。
- 应用层:为用户提供网络服务,包括常见的应用协议如HTTP、FTP、SMTP等。
8)TCP 和 UDP的概念及特点
- TCP(Transmission Control Protocol):TCP是一种面向连接的、可靠的传输协议。它通过三次握手建立连接,提供数据的顺序传输、重传机制和流量控制,确保数据的可靠性。TCP适用于需要可靠传输、顺序传输的应用,如文件传输、网页访问等。
- UDP(User Datagram Protocol):UDP是一种无连接的、不可靠的传输协议。它不进行握手和连接建立,只是简单地传输数据包,不提供数据的可靠性和流量控制。UDP适用于对实时性要求较高、容忍少量丢失的应用,如音频、视频流传输等。
9)TCP和UDP的区别
- 连接性:TCP是面向连接的,需要进行三次握手建立连接;UDP是无连接的,不需要建立连接。
- 可靠性:TCP提供可靠的数据传输,包含重传机制和错误恢复;UDP不提供可靠性保证,数据包可能会丢失或乱序。
- 流量控制:TCP具有流量控制机制,通过窗口控制确保发送和接收之间的平衡;UDP不提供流量控制,发送者以固定速率发送数据。
- 传输速度:由于TCP提供可靠性,其传输速度可能较慢;UDP由于不保证可靠性,传输速度较快。
10)TCP和UDP的使用场景
- TCP 使用场景:
- 文件传输:FTP等协议使用TCP来确保文件的完整传输。
- 网页访问:HTTP协议使用TCP进行可靠的数据传输。
- 邮件传输:SMTP等协议使用TCP来确保邮件的可靠传递。
- 远程登录:SSH等协议使用TCP来提供安全的远程登录服务。
- UDP 使用场景:
- 实时音视频传输:VoIP、视频会议等应用通常使用UDP,因为对实时性要求高,可以容忍少量数据丢失。
- 游戏应用:在线游戏常使用UDP,因为对延迟敏感,而且可以容忍一定程度的丢包。
- DNS查询:DNS使用UDP进行域名解析查询,因为查询通常是短时且轻量级的,不需要TCP的可靠性。
开源项目地址:https://gitee.com/falle22222n-leaves/vue_-book-manage-system
已 300 + Star!
⭐点赞⭐收藏⭐不迷路!⭐
这篇关于面试计算机网络框架八股文十问十答第六期的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!