我是靠谱客的博主 无私水蜜桃,最近开发中收集的这篇文章主要介绍TLV, TTLV和编码规范的历史,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

众所周知, 在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和编码规范的历史所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(60)

评论列表共有 0 条评论

立即
投稿
返回
顶部