TCP的三次握手过程如下:
第一次握手:
- 客户端发送SYN报文:客户端首先发送一个带有SYN标志位的TCP报文到服务器,该报文包含一个随机产生的序列号。此时,客户端进入SYN_SEND状态,等待服务器的确认。
第二次握手:
- 服务器回复ACK和SYN报文:服务器接收到客户端的SYN报文后,会回复一个带有ACK和SYN标志位的TCP报文。该报文包含服务器的序列号以及对客户端序列号的确认。此时,服务器进入SYN_RCVD状态。
第三次握手:
- 客户端确认服务器的ACK报文:客户端接收到服务器的SYN+ACK报文后,会发送一个带有ACK标志位的TCP报文作为确认。该报文的序列号设置为客户端最初的序列号+1,确认号设置为服务器的序列号+1。当服务器接收到这个ACK报文后,双方进入ESTABLISHED状态,至此,TCP连接建立成功。
通过这三次握手,客户端和服务器能够确保彼此之间的通信能力正常,并且为数据传输准备好各自的序列号,从而保证数据传输的可靠性和有序性。