TCP连接建立时的三次握手和四次挥手

在TCP层,有个FLAGS字段,这个字段有以下几个标识:SYN, FIN, ACK, PSH, RST, URG.

其中,对于我们日常的分析有用的就是前面的五个字段。

它们的含义是:

SYN表示建立连接,

FIN表示关闭连接,

ACK表示响应,

PSH表示有 DATA数据传输,

RST表示连接重置。
第一次握手:客户端给服务器端发送syn,请求连接
第二次握手:服务器端回复客户端ack+syn,确认连接,并为这次连接分配资源
第三次握手:客户端再给服务器端发送ack,再分配资源,然后TCP连接就建立了

第一次挥手:客户端发送一个FIN,来关闭客户到服务器的数据传输
第二次挥手:服务器收到了FIN,回客户端一个ACK,表示收到
第三次挥手:服务器关闭客户端的连接,并给客户端发送一个FIN
第四次挥手:客户端发给服务器ACK确认,

为什么会四次挥手呢?
因为TCP连接收到一个 FIN只意味着这一方向上没有数据传输了,每个方向都必须单独进行关闭,客户端关闭请求 响应 服务器端关闭 响应 一共四次