TCP
三次握手
第一次握手:建立连接时,客户端发送SYN标志位为 1,seq = x到服务器,并进入SYN_SENT状态,等待服务器确认。
第二次握手:服务器收到包确认后,其中包SYN、ACK标志位为1,发送序列号seq=y,接收序列号ack=x+1,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到后,向服务器发送ack=y+1 seq = x+1 ACK标志位为1,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。
四次挥手
第一次挥手:主动关闭方发送第一个包,其中FIN标志位为1,发送顺序号seq为x。
第二次挥手:被动关闭方收到FIN包后发送第二个包,其中发送顺序号seq为z,ack为x+1, ACK标志位为1,此时被动关闭方还可以继续发送数据。
第三次挥手:被动关闭方再发送第三个包,其中FIN标志位为1,ACK标志位为1,发送顺序号seq为y,接收顺序号ack为x+1。
第四次挥手:主动关闭方发送第四个包,其中seq = x+1,ack = y+1。至此,完成四次挥手。
![img](https://img-blog.csdn.net/20180717204202563?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4OTUwMzE2/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70