三次握手:
当客户端向服务端发起连接时,会先发一包SYN包连接请求数据过去询问一下能否服务端建立连接,如果同意连接,服务端则回复一包(SYN+ACK)包,而客户端收到后会回复一包ACK包,由此建立连接。而由于此过程中发送了三次包所以就被称为三次握手。
四次断开:
客户端主动发起连接关闭请求,客户端会向服务端发一包FIN包,表示要关闭连接,自己进入终止等待1状态——第一次断开;服务端收到FIN包,便立即发送一包ACK包回去,表示自己进入了关闭等待状态,客户端进入终止等待2状态,此时服务端还可以发送未发送的数据,客户端还可以接收数据——第二次断开;待服务端发送完数据后,服务端发送一包FIN包,进入最后确认状态——第三次断开;客户端收到之后回复ACK包,进入超时等待状态,经过超时时间后(为了保证客户端已收到ACK包,防止ACK包在网络传输过程中丢失)关闭连接,而服务端收到ACK包后就会立即关闭连接——第四次断开。