TCP协议三次握手
第一次握手:
客户端向服务器端发出一个含SYN同步标志的TCP报文请求连接,SYN同步报文会指明客户端使用的端口以及TCP连接的初始序号,客户端进入SYN_SENT状态等待服务器确认,服务器进入LISTEN状态。
第二次握手:
服务器端在收到客户端发出的SYN报文后,向客户端返回一个SYN+ACK报文响应,通知客户端收到连接请求,服务器进入SYN_RCVD状态,同时客户端进入ESTABLISHED状态。
第三次握手:
客户端再次向服务器发送ACK报文确认信息,确认连接。服务器进入ESTABLISHED状态,至此一个TCP连接完成。
TCP的四次挥手
第一次挥手
客户端打算关闭连接,此时会发送 一个 TCP 首部 FIN 标志位被置为 1 的报文, 也即 FIN 报文,之后客户端进入 FIN_WAIT_1 状态。
第二次挥手
服务端收到该报文后,就向客户端 发送 ACK 应答报文,接着服务端进入 CLOSED_WAIT 状态; 客户端收到服务端的 ACK 应答报文后,之后进 入 FIN_WAIT_2 状态。
第三次挥手
等待服务端处理完数据后,也向客 户端发送 FIN 报文,之后服务端进入 LAST_ACK 状态。
第四次挥手
客户端收到服务端的 FIN 报文后, 回一个 ACK 应答报文,之后进入 TIME_WAIT 状态;服务器收到了 ACK 应答报文后,就进入了 CLOSE 状态,至此服务端已经完成连接的关 闭;客户端在经过 2MSL 一段时间后,自动进入 CLOSE 状态,至此客户端也完成连接的关闭。