美文网首页
TCP协议中粘包拆包的原因以及解决

TCP协议中粘包拆包的原因以及解决

作者: 阳刚霸气大秋 | 来源:发表于2019-03-27 23:32 被阅读0次

       最近在面试中遇到这样的问题,在使用netty作为分布式发布容器做接口时如果遇到粘包和拆包的问题怎么解决。这个问题才真正让我考虑起来。于是在网上搜索了很多教程。终于有了点门路头绪,于是写下来,避免忘记。

        粘包拆包发生的情况:

1.当客户端发送的内容大于套接字缓冲区的长度时,就会出现拆包。反之容易发生粘包

2.进行MSS大小的TCp分段

3.以太网帧的payload大于MTU的ip分段

        解决方法:

1.发送的字节大小是固定长度

2.在包尾添加换行符 LinkBasedFrameDecode

3.使用特定的分隔符进行分隔DelimteBasedFrameDecode

4.将消息分为消息头和消息体,消息头中包含消息总长度

5.更复杂的应用协议。(自定义的高级解码器)

相关文章

  • TCP协议下的粘包与拆包,如何解决

    TCP协议下的粘包与拆包,如何解决 TCP协议下的粘包与拆包,如何解决一、粘包、拆包1.1 粘包原因1.1.1 滑...

  • JAVA-每日一面 2022-01-25

    什么是 TCP 粘包/拆包以及TCP 粘包/拆包的解决办法 TCP 粘包/拆包1、要发送的数据大于 TCP 发送缓...

  • TCP协议中粘包拆包的原因以及解决

    最近在面试中遇到这样的问题,在使用netty作为分布式发布容器做接口时如果遇到粘包和拆包的问题怎么解决。这个...

  • Netty 权威指南笔记(三):TCP 粘包和拆包

    Netty 权威指南笔记(三):TCP 粘包和拆包 什么是 TCP 粘包和拆包? TCP 是一个“流”协议,所谓“...

  • Netty-TCP拆包/粘包

    Netty-TCP拆包/粘包 TCP拆包/粘包 TCP 是一个面向字节流的协议,它是性质是流式的,所以它并没有分段...

  • Netty系列(3)TCP的粘包拆包问题及方案

    1.概述 1.1 粘包拆包问题描述 1.2 粘包拆包产生的原因 1.3 粘包拆包问题的解决思路 2.Netty中粘...

  • Netty之七TCP粘包和拆包及解决方案

    个人专题目录 1. TCP 粘包和拆包及解决方案 1.1 TCP 粘包和拆包基本介绍 TCP是面向连接的,面向流的...

  • 15 Netty编解码框架

    1 Netty编解码框架 在上一节中,我们提到TCP的粘包、拆包问题,可以通过自定义通信协议的方式来解决。通信协议...

  • netty的编解码

    什么是拆包/粘包 TCP 粘包/拆包 半包:读取的数据不是一个数据包粘包:读取的数据超过一个数据包 粘包问题的解决...

  • netty-拆包和粘包

    为什么会发生TCP粘包、拆包呢? 发生TCP粘包、拆包主要是由于下面一些原因: 应用程序写入的数据大于套接字缓冲区...

网友评论

      本文标题:TCP协议中粘包拆包的原因以及解决

      本文链接:https://www.haomeiwen.com/subject/nibxbqtx.html