说起 TCP 协议,很多程序员就能讲出 TCP 三次握手、四次挥手的过程,讲的头头是道。请仔细想一想,为什么会有这种过程呢?
这里我用 A 和 B 表示通信双方,用对话的方式来表示建立连接和断开连接的过程。
三次握手
A:我准备好建立连接了,你呢?
B:我也准备好了。
A:那我们开始吧。

四次挥手
A:我准备好断开连接了,你呢?
B:我知道了,等我这边消息发完了,再断开连接。
B:我这边没有消息了,我要断开连接了。
A:行,那我也就断开连接了。
TCP 通信的规则理解起来其实并不复杂,它能让通信双方建立连接,保持高效率的消息传递,但在传输大规模的 TCP 数据包时,有可能发生拆包、粘包的现象。它相比于 UDP 协议应用的场景更多。