3. 什么是 TCP 拆包和粘包?为什么会出现?
TCP 粘包:
- 发送端:一个数据包中包含了发送端发送的两个数据包的信息
- 接收端:接收的数据包接收到了两个数据包,两个数据包多出了一块
TCP 拆包:
- 发送端:发送的一个数据包不完整
出现的原因是:
- TCP 面向字节流,数据块间是五结构的字节流,没有边界
- TCP 首部没有表示数据长度的字段,比较不好区分块的区别
解决方案:
- 特殊字符串控制
- 在包首部添加数据包的长度字段
TCP 粘包:
TCP 拆包:
出现的原因是:
解决方案:
相关推荐