Netty学习3(学习笔记)
Posted javaer开发者
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Netty学习3(学习笔记)相关的知识,希望对你有一定的参考价值。
TCP底层并不了解上层业务数据的具体含义,它会根据TCP缓冲区的实际情况进行包的划分,所以在业务上认为,一个完整的包可能会被TCP拆分成多个包进行发送,也有可能把多个小的包封装成一个大的数据包发送,这就是所谓的TCP粘包和拆包的问题。
问题产生的原因有三个
应用程序write写入的字节大小大于套接口发送缓冲区大小。
进行MSS大小的TCP分段
以太网网帧的payload大于MTU进行IP分片
TCP粘包/拆包问题原因
可以利用LineBaseFrameDecoder + StringDecoder 来解决TCP的粘包/拆包问题。
分隔符和定长解码器的应用
DelimiterBasedFrameDecoder用于对使用分隔符结尾的消息进行自动解码,FixedLengthFrameDecoder用于对固定长度的消息进行自动解码。
以上是关于Netty学习3(学习笔记)的主要内容,如果未能解决你的问题,请参考以下文章