三次握手
第一次握手:建立连接时,客户端发送syn包(syn=x)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=x+1),同时自己也发送一个SYN包(syn=y),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=y+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。
通俗理解
1、客户端向服务器通知我想要和你建立连接,并且自己进入等待连接状态
2、服务端收到客户端想要连接的消息,服务端进行确认,并且给客户端通知我知道了,也进入等待连接状态
3、客户端接受到消息后,向服务端发送确认连接的消息,然后连接成功