为什么netty TCP通信的时候,设备返回的数据array有一定几率会被切成两段?

netty-all 4.0.23.Final

@Override
protected void channelRead0(ChannelHandlerContext ctx, ByteBuf msg) throws Exception {
    final byte[] array;
    final int length = msg.readableBytes();
    array = new byte[length];

    String macid = ChannelMap.getMacid(ctx.channel());
    msg.getBytes(msg.readerIndex(), array, 0, length);
    }

    为什么在进行TCP通信的时候,设备返回的数据array有一定几率会被切成两段
    ![图片说明](https://img-ask.csdn.net/upload/201901/25/1548382472_784572.png)

tcp通信好像有粘包,解半包的问题。