计算机网络面试题, 说说 TCP 的三次握手?
计算机网络面试题, 说说 TCP 的三次握手?
QA
Step 1
Q:: 说说 TCP 的三次握手?
A:: TCP 的三次握手是指建立一个 TCP 连接时客户端与服务器之间的通信过程。首先,客户端发送一个 SYN (Synchronize) 报文给服务器,请求建立连接;服务器收到后返回一个 SYN-ACK 报文,表示同意连接请求并要求客户端确认;最后,客户端收到 SYN-ACK 报文后再发送一个 ACK (Acknowledge)
报文确认,连接建立成功。三次握手的主要目的是为了确认双方的发送和接收能力,防止由于网络延迟而引发的错误连接。
Step 2
Q:: 为什么 TCP 需要三次握手,而不是两次握手或四次握手?
A:: TCP 需要三次握手而不是两次握手,是为了确保双方的通信双方都具备发送和接收数据的能力。第一次握手(SYN)用来确认客户端的发送能力和服务器的接收能力;第二次握手(SYN-ACK)确认了服务器的发送能力和客户端的接收能力;第三次握手(ACK)
确认了客户端的接收能力。三次握手正好可以达到这个目的,而四次握手则显得多余。
Step 3
Q:: TCP 的三次握手如何防止重复连接?
A:: TCP 的三次握手通过序列号和确认机制来防止重复连接。每次握手时,双方都会生成一个新的序列号,如果网络延迟或其他原因导致上一次连接请求的报文再次到达,序列号不匹配便可识别出这是一个旧连接的请求,从而避免重复连接的发生。
Step 4
Q:: TCP 三次握手过程中的超时重传机制是怎样的?
A:: 在 TCP 三次握手过程中,如果客户端或服务器在发送 SYN 或 SYN-
ACK 后没有收到对方的回应(例如因网络问题报文丢失),则会触发超时重传机制。重传机制会在一定时间内多次重发未确认的报文,直到收到确认或超出重传次数,此时连接建立失败,双方需要重新开始三次握手过程。
用途
面试 TCP 的三次握手是为了考察候选人对计算机网络基础知识的掌握程度。TCP 作为一种可靠的传输协议,其三次握手机制是确保数据传输可靠性的核心内容。在实际生产环境中,TCP 三次握手广泛应用于各种网络通信场景,例如 Web 浏览、文件传输、数据库连接等场景都依赖于 TCP 的可靠传输能力。因此,理解三次握手有助于开发者调试网络应用、排查网络问题以及优化网络通信性能。\n相关问题
🦆
说说 TCP 的四次挥手?▷
🦆
TCP 和 UDP 的区别是什么?▷
🦆
如何处理 TCP 中的粘包和拆包问题?▷
🦆
TCP 如何实现拥塞控制?▷