【发布时间】:2023-11-14 17:52:02
【问题描述】:
我有一个简单的协议,由 4 个字段组成:
Field-1 (4-bits)
Field-2 (6-bits)
Field-3 (4-bits)
Field-4 (2-bits)
目前,我将它们组织起来,使它们按字节对齐:
Field-1,Field-3,Field-2,Field-4
消息总共占用 2 个字节,开销为 0 个字节。
为了使其向后兼容,以便我可以理解来自以前版本的消息,我在开头添加了一个 1 字节的版本字段,它变为:
Version-Field,Field-1,Field-3,Field-2,Field-4
总共 3 个字节,开销为 1 个字节。
如何添加前向兼容性,以便我可以在新版本的协议中添加新字段,同时确保旧版本的软件仍然可以理解消息,并且开销尽可能低?
【问题讨论】:
-
收件人可以在没有版本字段的情况下计算出消息的长度吗?
-
@Rei:不,很遗憾,这不能假设。当然,可以添加一个 size 字段。
-
不需要,版本字段就足够了。看我的回答。
标签: protocols backwards-compatibility forward-compatibility