三次握手是用来建立TCP连接的,四次挥手是用来终止TCP连接的
几个重要标识符
SYN(synchronous):同步位
ACK(acknowledgement):确认位
FIN(finish):结束位
ack(Acknowledge number):确认号
seq(Sequence number):序列号
三次握手
第一次握手:客户端发送数据包(seq=x)给服务端,并把SYN(建立连接)标志位置为1;
第二次握手:服务端收到客户端的请求,把SYN也置为1,同时生成数据包(seq=y),ACK为(确认连接)为1,ack为x+1;
第三次握手:客户端收到服务端的同意请求返回,客户端再给服务端返回ack标志位置为y+1。完成TCP连接
四次挥手
第一次挥手:客户端向服务端发出结束数据发送的请求,FIN标志位置为1,seq=m,客户端的状态为FIN_WAIT_1的状态;
第二次挥手:服务端收到客户端的FIN信号后,服务端会进入到CLOSE_WAIT状态,ACK为1,seq=n,ack=m+1,客户端进入到FIN_WAIT_1状态;
第三次挥手:服务端数据发送完成,FIN标志位置为1,ACK为1,seq=q,ack=m+1,服务端进入LAST_ACK状态;
第四次挥手:客户端接收到服务端的结束返回信息,进入到TIME_WAIT状态,ACK为1,seq=m+1,ack=q+1,返回给服务端,关闭TCP连接。