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。

  • 相关阅读:
    【02】SASS与SCSS
    【02】sass更新的方法
    10.19 dig:域名查询工具
    10.7 netstat:查看网络状态
    10.6 ip:网络配置工具
    S11 Linux系统管理命令
    11.19 rpm:RPM包管理器
    11.20 yum:自动化RPM包管理工具
    11.2 uptime:显示系统的运行时间及负载
    11.3 free:查看系统内存信息
  • 原文地址:https://www.cnblogs.com/lyhero11/p/15693849.html
Copyright © 2011-2022 走看看