粘包半包
2021-04-11 17:56:06 4 举报
学习笔记
作者其他创作
大纲/内容
先解析长度字段,再读取内容
4️⃣
简单,不浪费
粘包和半包问题的解决方案
ABCDEF
内存复制
效率低
需要转义扫描全部内容
{}成对出现,需要扫描全部内容
封装成帧
2、接收方读取套接字缓冲区数据不及时
组合,而非复制
长度有限
TCP是流式协议,消息无边界
长连接→短连接一个请求一个连接
Netty处理粘包、半包问题
BCDEF
1. 发送方数据>套接字缓冲区大小
固定长度
❌
粘包
DEF
✔+
推荐
精确定位用户数据,不用转义
衡量实际使用场景
cumulation
简单
默认
1️⃣
其他,比如JSON
COMPOSITE_CUMULATOR
ByteToMassageDecoder
2️⃣
A
ABC
分隔符
浪费空间
3️⃣
MTU (Maximum Transmission Unit)最大传输单元分层 ipv4 64kib ethernet v2 1500
优点
缺点
数据累积器
MERGE_CUMULATOR
半包
1. 发送方数据<套接字缓冲区大小
✔
0 条评论
下一页