概述
众所周知, 在Protobuf中使用的编码方式是TLV, 也就是Tag-Length-Value, 但是在单纯的理解TLV是什么之前, 我认为需要去理解一下编码规范的历史, 因此写了这篇文章:
一, 紧凑时代
时代背景是刚刚有类似DOS的时候, 这个时候的显著特征就是各方面都很原始, 带宽很低, 因此在传输数据的时候要省之又省, 因此协议的编码规范以紧凑为特点.
假设武大和华师要搞一个数据传输协议, 目的是传输一本书的信息, 然后两个学校商量好了:
struct BookInfo {
unsigned short cmd; // 代表不同的操作
char[8] num;
char[60] name;
}
学校觉得应该是可以的, 这个协议可以很好的沟通数据了! 也非常的节省空间!
+---+---+----+
|cmd|num|name|
+---+---+----+
| 2 | 8 | 60 |
+---+---+----+
这种编码规范的特点就是紧凑, 对于空间的利用率高, 导致这样的特征出现是因为当时的时代环境所限制, 带宽是非常珍贵的, 因此能省则省, 不允许冗余字段的产生.
二, Version的出现
在两三年后, 武大想在这个数据传输协议中增加一个字段: 入馆日期. 我们可以叫它da
最后
以上就是无私水蜜桃为你收集整理的TLV, TTLV和编码规范的历史的全部内容,希望文章能够帮你解决TLV, TTLV和编码规范的历史所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复