三次握手

image.png

image.png

刚开始客户端处于closed状态,服务端处于listen状态。然后

为什么要三次握手

三次握手最主要的目的是确认双方的发送与接收是否正常。

第一次握手:Client什么都不能确认;Server确认了:对方发送正常,自己接收正常

第二次握手:Client确认了:自己发送、接收正常,对方发送、接收正常;Server确认了:对方发送正常,自己接收正常

第三次握手:Client确认了:自己发送、接收正常,对方发送、接收正常;Server确认了:自己发送、接收正常,对方发送、接收正常

所以三次握手能确认双方收发功能都正常,缺一不可

第二次握手为什么要把SYN再传回去

TCP是可靠连接,双方都要确保发送的信息是可靠的、准确无误的。

服务器传回客户端所发送的ACK是证明服务器收到的确实是客户端发送的信号,这表明从客户端到服务端的通信是正常的。