三次握手四次挥手
三次握手
- 客户端先发送syn给服务端,然后客户端进入
SYN_SENT
状态,证明它已经发送SYN了 - 客户端
SYN_RCVD
,说明已经收到SYN了 - 发送SYN、ACK为1表示有带这些值,ack为前面客户端发送的seq+1,seq则为一个新的
- 客户端收到后知道服务端可以收到,并且客户端也可以收到服务端的,就进入
established
- 当此时服务端不知道它是否发出去了,就得让服务端发ack(服务端的seq+1),此时才可以进入
established
阶段
四次挥手
- 一端请求断开连接,就发送FIN标记给另一端,并进入
FIN_WAIT_1
(等待对面确定) - 另一端收到FIN标记,进入
CLOSE_WAIT
(表示不用再接收另一端发送的正文消息body),并发送ACK回去,表示自己收到了FIN标记 - 然后第一端就进入
FIN_WAIT_2
,等待另一端发送完所有信息并接收FIN - 另一端发送FIN回去,并进入
LAST_ACK
,第一端进入TIME_WAIT
(表示可以准备关了) - 第一端接收到后知道可以关了就发ACK表示自己知道对方也要关了,就进入
CLOSED
- 另一端接收到ACK也进入
CLOESD