三次握手
1. 第一次握手:建立连接。客户端发送连接请求报文段,将SYN设置为1,Seq为x,然后,客户端进入 SYN_SEND 状态,等待服务器的确认
2. 第二次握手:服务器收到客户端的SYN报文段,需要对这个SYN报文段进行确认,设置 Ack 为 x+1(seq+1);同时,自己还要发送 SYN 请求信息, 将SYN设置为1,Seq设置为y;服务器端将上述所有信息放到一个报文段(即SYN+ACK报文段中),一并发送给客户端,此时服务器进入SYN_RCVD状态。
3. 第三次握手:客户端收到服务端的SYN+ACK报文段。然后将Ack设置为y+1,向服务器发送Ack报文段,这个报文段发送完毕之后,客户端和服务端都进入ESTABLISHED状态,完成TCP三次握手。
图解三次握手
为什么要三次握手?
三次握手的目的是建立可靠的通信信道,说到通讯,简单来说就是数据的发送和接收,而三次握手最主要的目的就是双方确认自己与对方的发送与接收机能正常。
第一次握手:Client什么都不能确认,Server确认了对方发送正常和自己的接收正常。
第二次握手:Client确认了,自己发送、接收正常,对方发送、接收