使用TCP协议进行通信的双方必须先建立连接,然后才能开始传输数据。
为了确保连接双方可靠性,在双方建立连接时,TCP协议采用三次握手策略。
# 第一次握手
客户端发送带有SYN
标志的连接请求报文段,然后进入SYN SEND
状态,等待服务端的确认。
# 第二次握手
服务端接收到客户端的SYN
报文段后,需要发送ACK
信息对这SYN
报文段进行确认。同时,还要发送自己的SYN
请求信息。
服务端会将上述的信息放到一个报文段(SYN
+ACK
报文段)中,一并发送给客户端此时服务端将会进入SYN RECV
状态。
# 第三次握手
客户端接收到服务端的SYN
+ACK
报文段后,会向服务端发送ACK
确认报文段,这个报文段发送完毕后,客户端和服务端都进入ESTABLISHED
状态,完成TCP三次握手。
# 结论
最少通过三次,才能确定双方都有发送和接收能力。