面试计算机网络框架八股文十问十答第六期
相信看了本文后,对你的面试是有一定帮助的!关注专栏后就能收到持续更新!
⭐点赞⭐收藏⭐不迷路!⭐
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!
⭐点赞⭐收藏⭐不迷路!⭐