Protocol Buffers(protobuf)是一种轻便高效的结构化数据存储格式,用于数据序列化和反序列化,具有语言无关、平台无关、可扩展性强等特点,能有效提高数据存储和传输的效率。
一.协议的设计
我们在介绍protobuf之前我们先来了解一下“协议”所谓协议就是规定了通信的双方比如客户端和服务器要遵循什么样的规则去收发数据
1.协议设计的基本概念
①.协议是两端约定的通信规范,确保通信的可靠性。
②.协议设计的注意事项包括解析效率、运行时限、可读性和兼容性。
③.协议设计的具体定义和应用场景。
2.协议设计的具体实现
①.消息边界的判断:通过特定符号或固定消息头加消息体结构。
②.版本区分:通过版本号字段区分不同版本的协议。
③.消息类型区分:通过command ID字段区分不同类型的消息。
二.序列化
1.序列化方法
①TLV编码(是一种将数据表示为标签(Tag)、长度(Length)和值(Value)三元组形式的编码方式)及其变体:比如protobuf
②文本流编码(文本流编码是将文本信息按照特定的规则转换为字节流的过程,):比如XML/JSON
③固定结构编码:基本原理是,协议规定了传输字段类型和字段含义
④内存dump:基本原理是,把内存中的数据直接输出,不做任何序列化的操作,反序列化就是直接还原内存
2.常见的序列化方法
主流序列化协议:xml,json,protobuf
XML:属于文本格式

最低0.47元/天 解锁文章
1万+





