在TCP/IP协议中,TCP协议通过三次握手,建立可靠的连接服务:
三次握手是由客户端发起
第一步:
客户端向服务端发送请求报文(实际上就是一个具有特定格式的数据包),报文中包含一个标志为Syn,Syn被置为1,同时会随机
生成一个随机序列号Seq=J发送给服务端,同时客户端会处于SYN_SENT状态;
第二步:
服务端收到数据包后由标志位Syn=1知道客户端请求建立连接,服务端将标志位Syn置为1,同时写入一个Ack标志,Ack标志位的值是J+1,
并且随机产生一个序列号Seq=K,发送给客户端一个数据包,同时服务端进入Syn_RCVD状态;
第三步:
客户端收到确认后,检查Ack是否为J+1,Syn是否为1,如果正确则将标志位ACK置为1,Ack=K+1,并将该数据包发送给服务端,
服务端检查Ack是否为K+1,ACK是否为1,如果正确则连接建立成功,客户端和服务端进入ESTABLISHED状态,完成三次握手,
随后客户端与服务端之间可以开始传输数据了。