TCP的三次握手与四次挥手
客户端收到服务器的FIN包后,发送一个ACK包给服务器,确认服务器的请求。客户端进入TIME_WAIT状态,等待足够长的时间以确保服务器收到了自己的确认。
为什么 TCP 需要三次握手?
TCP 之所以需要 3 次握手,是因为 TCP 通讯双方都是全双工的,所以要经过 3 次交互才能确认双方的发送能力和接收能力,并且 TCP 握手必须是 3 次,如果是 2 次握手,不能证明服务器端的发送能力和客户端的接收能力;也不能是 4 次握手,因为 3 次已经能证明的事情,再交互握手 1 次完全没有必要。
两将军问题和TCP三次握手
本文记录了两将军问题: 对于不可靠信道,无数次确认都不能百分百达成可靠共识。TCP 三次握手是在两个方向确认包的序列号, 增加了超时重试, 是两将军问题的一个工程解。
面试突击:为什么 TCP 需要三次握手?
TCP 之所以需要 3 次握手,是因为 TCP 通讯双方都是全双工的,所以要经过 3 次交互才能确认双方的发送能力和接收能力,并且 TCP 握手必须是 3 次,如果是 2 次握手,不能证明服务器端的发送能力和客户端的接收能力;也不能是 4 次握手,因为 3 次已经能证明的事情,再交互握手 1 次完全没有必要。