#三次握手
第一次握手:Client向Server发送连接请求(标志位SYN=1),并产生一个随机数(seq=J),并将该数据包发送给Server,Client进入发送(SYN_SENT)状态,等待Server确认。
第二次握手:Server收到数据包后由标志位SYN=1知道Client请求建立连接,
**Server将标志位SYN(表示连接请求)和ACK(表示确认)都置为1,ack =J+1(确认序号),随机产生一个值seq=K,**并将该数据包发送给Client以确认连接请求,Server进入SYN_RCVD状态。
第三次握手:Client收到确认后,检查ack是否为J+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=K+1,并将该数据包发送给Server,
Server检查ack是否为K+1,ACK是否为1,如果正确则连接建立成功,
Client和Server进入连接状态,完成三次握手,随后Client与Server之间可以开始传输数据了。
四次挥手
第一次挥手:Client发送一个(FIN),用来关闭Client到Server的数据传送。
第二次挥手:Server收到FIN后,发送一个确认信号(ACK)给Client,确认序号为收到序号+1。
第三次挥手:Server发送一个FIN,用来关闭Server到Client的数据传送。
第四次挥手:Client收到FIN后,接着发送一个ACK给Server,确认序号为收到序号+1。