三次握手--服务器处于listenSYN ----SYN ---ACK客户端 SYN-SENT--发送SYN包,seq =x 服务端-SYN-RECV 结束listen -- 标志位SYN ACK, ack =x+1, seq = y客户端-ESTABLISHED ----ACK, seq= x +1, ack = y+1 服务端 ESTABLISHED 完成 acknowledgement number , sequence number 四次挥手FIN ------ACK-----FIN ACK ------ACK--2MSL客户端 FIN_WAIT-1 ---send FIN, seq = u --- stop sending data server---CLOSE_WAIT-----send ACK seq = v, ack = u+1client----FIN_WAIT------wait for continuing data from server server -----send FIN ACK , ack = u+1, seq = w---then LAST-ACKclient TIME-WAIT ---send ACK server CLOSE client wait for 2 MSL --close如果只有两次握手-第三次服务器无法确定收到-就会超时重传等等为什么第二次还要返回SYN--因为ACK是确定接收无误,而SYN是同步序列号为什么需要四次挥手--TCP全双工通信的因为比如客户端结束传输数据,服务器还有数据传送,所以需要发送ACK+FIN ACK来关闭TCP