zoukankan      html  css  js  c++  java
  • 网络传输中的帧和payload

    消息 = 数据帧(数据包)* N
    数据帧 = 头 + payload

    来自百度百科:记载着信息的那部分数据。通常在传输数据时,为了使数据传输更可靠,要把原始数据分批传输,并且在每一批数据的头和尾都加上一定的辅助信息,比如这一批数据量的大小,校验位等,这样就相当于给已经分批原始数据加一些外套,这些外套起到标示作用,使得原始数据不易丢失。一批数据加上它的“外套”,就形成了传输通道中基本的传输单元,叫做数据帧或者数据包(有的地方数据帧和数据包不是同一概念比如网络传输)。这些数据帧中的记录信息的原始数据就是有效载荷数据,即payload data

    比如某协议规定每个应答消息由一个帧组成,约定每帧的前6个字节表示这一数据帧Frame长度,后面就是payload了,这样可以确定到底读取多少数据了而获得一个完整的消息。

    上述协议的处理,在Netty 4中可以使用LengthFieldBasedFrameDecoder来做解码,解决拆包粘包问题,在Netty 3里边用的是继承FrameDecoder开发自定义帧解码器的方法。

    Dubbo协议用的就是Length + payload的方式,类似的还有Http协议的分块传输、Transfer-Encoding: chunked。

  • 相关阅读:
    11、旋转图像
    10、有效的数独
    9、两数之和
    8、移动零
    6、两个数组的交集 II
    7、加一
    5、只出现一次的数字
    3、旋转数组
    spring快速复习
    mybatis XML SQL基本配置
  • 原文地址:https://www.cnblogs.com/lyhero11/p/15693849.html
Copyright © 2011-2022 走看看