三次握手
-
- 客户端 ⇒ Seq_Num = client_isn, SYN = 1⇒ 服务端
-
- 服务端 ⇒Seq_Num = server_isn, Ack_Num = client_isn + 1, SYN + ACK ⇒ 客户端
-
- 客户端 ⇒ Ack_Num = server_isn + 1, ACK ⇒ 服务端
为什么需要三次握手
- 三次才可以阻止重复历史连接的初始化(主要)
- 同步双方初始序列号
- 避免资源浪费
- 三次才可以阻止重复历史连接的初始化
- 网络拥塞环境下,客户端两个连续的报文过去,旧的报文被响应后直接就开始发送数据,这样就造成了服务端资源浪费
- 同步双方初始序列号
- 去除重复发送的数据
- 按照序列号顺序接收
四次挥手
- 客户端 FIN 服务端 ACK
- 服务端 FIN 客户端 ACK
- Wait 2ms
- CLOSE