如何深入理解protobuf

Protocol Buffers(protobuf)是一种轻便高效的结构化数据存储格式,用于数据序列化和反序列化,具有语言无关、平台无关、可扩展性强等特点,能有效提高数据存储和传输的效率。

一.协议的设计

我们在介绍protobuf之前我们先来了解一下“协议”所谓协议就是规定了通信的双方比如客户端和服务器要遵循什么样的规则去收发数据

1.协议设计的基本概念

①.协议是两端约定的通信规范,确保通信的可靠性。

②.协议设计的注意事项包括解析效率、运行时限、可读性和兼容性。

③.协议设计的具体定义和应用场景。

2.协议设计的具体实现

①.消息边界的判断:通过特定符号或固定消息头加消息体结构。

②.版本区分:通过版本号字段区分不同版本的协议。

③.消息类型区分:通过command ID字段区分不同类型的消息。

二.序列化

1.序列化方法

TLV编码(是一种将数据表示为标签(Tag)、长度(Length)和值(Value)三元组形式的编码方式)及其变体:比如protobuf

文本流编码(文本流编码是将文本信息按照特定的规则转换为字节流的过程,):比如XML/JSON

固定结构编码:基本原理是,协议规定了传输字段类型和字段含义

内存dump:基本原理是,把内存中的数据直接输出,不做任何序列化的操作,反序列化就是直接还原内存

2.常见的序列化方法

主流序列化协议:xml,json,protobuf

XML:属于文本格式

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值