说一说协议生成器 - Ricequant米筐量化

协议是在通信层之上管理具体消息在应用之间如何传递和理解的逻辑规则,而协议生成器则是一种根据这些规则生成具体的消息定义的工具。协议生成器大大降低了维护协议的难度,是某些协议(例如大名鼎鼎的 Protobuf 和老牌一些的 Thrift 等)得以流行的关键。本文将假设读者对计算机通信和协议有一定了解,重点讲述生成器的设计和作用。

 

协议的设计

从最高层来看,一个通信协议必须具备三种要素:数据交互方式、消息描述和编解码规范。这里也许会有不同意见——将编解码规范列入到通信层。但是本文所持的观点是,编解码规范也是协议不可或缺的一部分,因为协议本身是为了通过媒介在多个程序实例之间通信而设计的。如果脱离了编解码,协议便成为了单纯的接口描述,并不能体现出“通信”的功能了。

协议的制定

设计协议时,一般会从需求入手,围绕上述的协议三个要素进行反复论证。本文想要探讨的协议是在网络协议栈里最顶层的应用层协议,其余层级的协议因为通用性较强、需要底层的软硬件支持,日常开发中针对其应用的场景较多,而修改甚至重写的可能性较小,因此不作讨论。

应用层协议通常会有广播式应答式两大类,通常对应单向传输信息交互两种类型的应用。例如 GPS 卫星信号就是一种广播式协议,设备只需要接收信号,并不需要向卫星发射信号;而我们常见的网络浏览器所使用的 HTTP 协议就是一种信息交互式的协议——服务器需要知道客户端想要什么,客户端也必须知道服务器给出的结果。这通常是协议设计的第一步。

接着则是选择合适的编码方式,通常会在编码效率、传

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值