1
0
mirror of https://github.com/Snailclimb/JavaGuide synced 2025-06-16 18:10:13 +08:00

Merge pull request #2093 from Guofuyinan/main

Docs(tcp-connection-and-disconnection.md) fix grammar mistakes
This commit is contained in:
Guide 2023-07-26 22:22:54 +08:00 committed by GitHub
commit 9c24c1892b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -43,10 +43,10 @@ tag:
断开一个 TCP 连接则需要“四次挥手”,缺一不可:
1. **第一次挥手**:客户端发送一个 FINSEQ=x 标志的数据包->服务端,用来关闭客户端到服务器的数据传送。然后客户端进入 **FIN-WAIT-1** 状态。
2. **第二次挥手**:服务器收到这个 FINSEQ=X 标志的数据包,它发送一个 ACK ACK=x+1标志的数据包->客户端 。然后,此时服务端进入 **CLOSE-WAIT** 状态,客户端进入 **FIN-WAIT-2** 状态。
3. **第三次挥手**:服务端关闭与客户端的连接并发送一个 FIN (SEQ=y)标志的数据包->客户端请求关闭连接,然后服务端进入 **LAST-ACK** 状态。
4. **第四次挥手**:客户端发送 ACK (ACK=y+1)标志的数据包->服务端并且进入**TIME-WAIT**状态,服务端在收到 ACK (ACK=y+1)标志的数据包后进入 CLOSE 状态。此时如果客户端等待 **2MSL** 后依然没有收到回复,就证明服务端已正常关闭,随后客户端也可以关闭连接了。
1. **第一次挥手**:客户端发送一个 FINSEQ=x 标志的数据包->服务端,用来关闭客户端到服务器的数据传送。然后客户端进入 **FIN-WAIT-1** 状态。
2. **第二次挥手**:服务器收到这个 FINSEQ=X 标志的数据包,它发送一个 ACK ACK=x+1标志的数据包->客户端 。然后服务端进入 **CLOSE-WAIT** 状态,客户端进入 **FIN-WAIT-2** 状态。
3. **第三次挥手**:服务端发送一个 FIN (SEQ=y)标志的数据包->客户端请求关闭连接,然后服务端进入 **LAST-ACK** 状态。
4. **第四次挥手**:客户端发送 ACK (ACK=y+1)标志的数据包->服务端,然后客户端进入**TIME-WAIT**状态,服务端在收到 ACK (ACK=y+1)标志的数据包后进入 CLOSE 状态。此时如果客户端等待 **2MSL** 后依然没有收到回复,就证明服务端已正常关闭,随后客户端也可以关闭连接了。
**只要四次挥手没有结束,客户端和服务端就可以继续传输数据!**