tcp连接时的三次握手:
客户端connect时发出syn信号给服务端,服务端收到后返回ack信号和syn信号,客户端收到后发送ack信号给服务端。
可以用两个人在线语音形象的描述三次握手
我对你说:能听到我说话吗(syn)?你听到后跟我说:能听到(ack),那你能听到我说话吗(syn)?我听到后跟你说:能听到(ack)。这就确保了信号在你和我之间的双向连通
tcp断开时的四次握手:
A端发出fin信号,B端收到后返回ack信号,B端再发fin信号,A端收到后返回ack信号。这里的fin只是代表单边结束,因为tcp是全双工,所以必须两端都断开才断开。断开之后在read会得到一个数据长度0的包,可以用来处理断开之后的事情
![](https://img2024.cnblogs.com/blog/35695/202408/35695-20240826070647288-243310440.jpg)