interview
backend-classic
简述TCP三次握手、四次挥手的流程?为什么需要三次握手?为什么需要四次挥手?

后端经典面试题合集, 简述 TCP 三次握手,四次挥手的流程?为什么需要三次握手?为什么需要四次挥手?

后端经典面试题合集, 简述 TCP 三次握手,四次挥手的流程?为什么需要三次握手?为什么需要四次挥手?

QA

Step 1

Q:: 简述 TCP 三次握手的流程?

A:: TCP 三次握手的流程如下: 1. 第一次握手:客户端向服务器发送 SYN(同步序列号)包,表示希望建立连接,并且告知初始序列号。 2. 第二次握手:服务器收到 SYN 包后,向客户端发送 SYN-ACK 包,表示同意建立连接,同时回复服务器的初始序列号。 3. 第三次握手:客户端收到 SYN-ACK 包后,再次向服务器发送 ACK 包,确认连接已经建立,双方可以开始传输数据。

Step 2

Q:: 简述 TCP 四次挥手的流程?

A:: TCP 四次挥手的流程如下: 1. 第一次挥手:客户端向服务器发送 FIN(结束)包,表示不再发送数据,主动关闭连接。 2. 第二次挥手:服务器收到 FIN 包后,向客户端发送 ACK 包,确认已收到关闭请求,但仍可能有数据需要传输。 3. 第三次挥手:服务器完成数据传输后,向客户端发送 FIN 包,表示同样要关闭连接。 4. 第四次挥手:客户端收到 FIN 包后,向服务器发送 ACK 包,确认关闭连接,连接正式断开。

Step 3

Q:: 为什么 TCP 需要三次握手?

A:: TCP 需要三次握手的原因是为了确保双方都具备收发数据的能力。第一次握手确认客户端能发送,服务器能接收;第二次握手确认服务器能发送,客户端能接收;第三次握手确保双方能正常通信。如果只有两次握手,可能会导致旧的连接请求被误处理为新的连接,造成混乱。

Step 4

Q:: 为什么 TCP 需要四次挥手?

A:: TCP 需要四次挥手是因为 TCP 是全双工通信,需要双方分别关闭发送和接收通道。首先,客户端主动关闭发送通道,但仍可接收数据。服务器确认后,继续发送未传输完的数据,最后服务器再关闭其发送通道,客户端确认,最终断开连接。

用途

这个内容之所以要被面试,是因为它是网络协议的基础知识,了解 TCP 的工作原理对于后端开发人员来说至关重要。在实际生产环境中,TCP 的三次握手和四次挥手机制广泛用于确保数据传输的可靠性,避免丢包、数据错乱等问题。尤其是在处理高并发场景、网络编程、Socket 通信和网络安全时,理解并掌握 TCP 的握手和挥手过程能够帮助开发者更好地设计和优化系统。\n

相关问题

🦆
TCP 和 UDP 有什么区别?

TCP 是面向连接的协议,提供可靠的数据传输,确保数据包按序到达并无丢失。而 UDP 是无连接的协议,不保证数据的可靠传输,传输速度快,适用于实时性要求较高的场景。

🦆
什么是 SYN 洪泛攻击?如何防范?

SYN 洪泛攻击是一种拒绝服务攻击,通过大量伪造的 SYN 包耗尽服务器资源,使其无法处理正常的连接请求。防范措施包括使用 SYN cookies 技术、缩短 SYN 超时、限制同一 IP 的连接数等。

🦆
描述 TCP 滑动窗口机制及其作用?

TCP 滑动窗口机制是用来控制数据流的机制,通过动态调整窗口大小,确保发送方不会压垮接收方的处理能力,避免网络拥塞,提高传输效率。

🦆
什么是 TCP 的拥塞控制?

TCP 拥塞控制是通过慢启动、拥塞避免、快速重传和快速恢复等机制来防止网络拥塞,保证网络资源的有效利用,避免网络性能的下降。

🦆
简述 TCP 的可靠传输机制?

TCP 的可靠传输机制包括序列号、确认应答、超时重传、滑动窗口、流量控制和拥塞控制,这些机制共同确保数据能够完整、按序、无错地传输到目的地。