TCP协议建立连接的三次握手

1.客户端将报文段数据包SYN同步标志位置为1,系统随机生成一个Sequence Number J,并将这个报文段数据包发送给服务端,其连
接状态由CLOSED变为SYN_SENT状态。这是第一次握手。(这个Sequence Number不能固定,如果***是固定的,中间如果断
了连接,重新建立连接,中间的数据包就没办分清是属于哪次连接的。)

2.服务端收到了客户端的连接请求后,就要给客户端一个应答,服务端也把报文段数据包中的SYN同步标志位设置为1,同时将ACK标志
位也设置为1,然后生成一个ack的值,这个ack的值为客户端发送来的的Sequence Number J + 1,最后也要随机生成一个Sequence
Number 比如为K,将这个报文段数据包打包发送给客户端,此时服务端的连接状态为SYN_RCVD状态。客户端收到服务端的应答后其
连接状态变为ESTABLISHED,表示已经建立连接。这是第二次握手。

3.客户端收到服务端的应答后还要再次给服务端发送一个信息,将报文数据包中的ACK标志位设为1,并将服务端发来的Sequence
Number K + 1后作为一个ack放到报文数据包中发送给服务端(即ack = K + 1),服务端收到客户端的确认信息后它的连接状态也变为
ESTABLISHED,完成了第三次握手。这样两端就建立了连接。TCP协议建立连接的三次握手