File tree 1 file changed +4
-4
lines changed
1 file changed +4
-4
lines changed Original file line number Diff line number Diff line change 43
43
44
44
断开一个 TCP 连接则需要“四次挥手”,缺一不可:
45
45
46
- 1 . ** 第一次挥手** :客户端发送一个 FIN(SEQ=x) 标志的数据包->服务端,用来关闭客户端到服务器的数据传送。然后,客户端进入 ** FIN-WAIT-1** 状态。
47
- 2 . ** 第二次挥手** :服务器收到这个 FIN(SEQ=X) 标志的数据包,它发送一个 ACK (ACK=x+1)标志的数据包->客户端 。然后,此时服务端进入 ** CLOSE-WAIT** 状态,客户端进入 ** FIN-WAIT-2** 状态。
48
- 3 . ** 第三次挥手** :服务端关闭与客户端的连接并发送一个 FIN (SEQ=y)标志的数据包->客户端请求关闭连接,然后,服务端进入 ** LAST-ACK** 状态。
49
- 4 . ** 第四次挥手** :客户端发送 ACK (ACK=y+1)标志的数据包->服务端并且进入 ** TIME-WAIT** 状态,服务端在收到 ACK (ACK=y+1)标志的数据包后进入 CLOSE 状态。此时,如果客户端等待 ** 2MSL** 后依然没有收到回复,就证明服务端已正常关闭,随后,客户端也可以关闭连接了 。
46
+ 1 . ** 第一次挥手** :客户端发送一个 FIN(SEQ=x) 标志的数据包->服务端,用来关闭客户端到服务器的数据传送。然后客户端进入 ** FIN-WAIT-1** 状态。
47
+ 2 . ** 第二次挥手** :服务器收到这个 FIN(SEQ=X) 标志的数据包,它发送一个 ACK (ACK=x+1)标志的数据包->客户端 。然后服务端进入 ** CLOSE-WAIT** 状态,客户端进入 ** FIN-WAIT-2** 状态。
48
+ 3 . ** 第三次挥手** :服务端发送一个 FIN (SEQ=y)标志的数据包->客户端,请求关闭连接,然后服务端进入 ** LAST-ACK** 状态。
49
+ 4 . ** 第四次挥手** :客户端发送 ACK (ACK=y+1)标志的数据包->服务端,然后客户端进入 ** TIME-WAIT** 状态,服务端在收到 ACK (ACK=y+1)标志的数据包后进入 CLOSE 状态。此时如果客户端等待 ** 2MSL** 后依然没有收到回复,就证明服务端已正常关闭,随后客户端也可以关闭连接了 。
50
50
51
51
** 只要四次挥手没有结束,客户端和服务端就可以继续传输数据!**
52
52
You can’t perform that action at this time.
0 commit comments