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。

  • 相关阅读:
    适度平衡树
    适度平衡树
    卡特兰(Catalan)数列
    卡特兰(Catalan)数列
    从二叉搜索树到平衡二叉搜索树
    java开发环境配置(windows下JDK7+tomcat7)
    Spring整合Hibernate的步骤
    C++重载加号运算符实现两个结构体的相加
    AABB包围盒、OBB包围盒、包围球的比較
    Html的空格显示
  • 原文地址:https://www.cnblogs.com/lyhero11/p/15693849.html
Copyright © 2011-2022 走看看