docs: update tcp article, and close #89 @chenjianjian

pull/95/head
yanglbme 4 years ago
parent b5793255f4
commit 271739e78e

@ -34,6 +34,11 @@ TCP 是个 “流” 协议所谓流就是没有界限的一串数据。TC
3. 将消息分为消息头和消息体,在消息头中定义一个 长度字段 Len 来标识消息的总长度;
4. 更复杂的应用层协议。
**注意**:从 TCP 流式设计上来看TCP 粘包其实是一个伪命题。应用层协议需要自己划分消息的边界。**TCP 粘包问题是因为应用层协议开发者的错误设计导致的,他们忽略了 TCP 协议数据传输的核心机制 — 基于字节流,其本身并不存在数据包的概念。** 所有在 TCP 中传输的数据都是以流的形式进行传输,这就需要应用层协议开发者自行设计消息的边界划分规则。所以粘包总的来说还是以下两点:
- TCP 协议是面向字节流的协议,它可能会重新分割组合应用层协议的消息到多个数据段中;
- 应用层协议没有定义消息的边界,导致数据的接收方无法按边界拆分粘连的消息。
介绍完了 TCP 粘包/拆包 的基础,下面我们来看看 Netty 是如何使用一系列 “半包解码器” 来解决 TCP 粘包/拆包问题的。
## 利用 Netty 的解码器 解决 TCP 粘拆包问题

Loading…
Cancel
Save