Netty的粘包和拆包问题分析

上一篇 << 下一篇 >>>粘包和拆包问题解决方案汇总


什么是粘包和拆包

粘包:多次发送的消息,客户端一次合并读取 Msg Msg=msgmsg
拆包:第一次完整消息+第二次部分消息组合 、第二次缺失的消息 Msg Msg=MsgM sg

粘包和拆包产生的原因

前提长连接、其次缓冲区
Tcp协议为了能够高性能的传输数据,发送和接受时候都会采用缓冲区,必须等待缓冲区满了以后才可以发送或者读取;
1.当我们的应用程序如果发送的数据大于了我们的套字节的缓冲区大小的话,就会造成了拆包。拆分成多条消息读取
2.当我们应用程序如果发送的写入的消息如果小于套字节缓冲区大小的时候,就会造成粘包。
3.接受端不够及时的获取缓冲区的数据,也会产生粘包的问题
4.进行mss(最大报文长度)大小的TCP分段,当TCP报文长度-TCP头部长度>mss的时候将发生拆包。


推荐阅读:
<< << << << << << << << << << << <<<粘包和拆包问题解决方案汇总
<<<序列化与反序列化知识点汇总
<< <<

你可能感兴趣的:(Netty的粘包和拆包问题分析)