一致开销字节填充(COB)
cobs的Python项目详细描述
Author: | Craig McQueen |
---|---|
Contact: | http://craig.mcqueen.id.au/ |
Copyright: | 2010 Craig McQueen |
用于编码和解码COB的Python函数。
完整的cobs文档位于https://pythonhosted.org/cobs/
简介
提供了cobs包,其中包含包含函数的模块 用于根据COBS方法进行编码和解码。
什么是COBS?
COBS是一种将字节包编码成不包含 值为零(0x00)的字节。字节的输入包可以包含字节 在0x00到0xFF的整个范围内。COBS编码包保证 生成字节仅在0x01到0xFF范围内的数据包。因此,在 通信协议,包边界可以用0x00可靠地分隔 字节。
COBS编码确实需要增加包的大小来实现这一点 编码。但是,与其他字节填充方法相比,包的大小 增长是合理和可预见的。COBS总是在 消息长度。另外,对于长度为n的较长数据包,它mayadd n/254(四舍五入)编码包大小的额外字节。
例如,与ppp协议相比,ppp协议使用0x7e字节来限定 购买力平价数据包。ppp协议使用字节填充的“转义”方式, 用0x7d 0x5e替换包中所有出现的0x7e字节。 字节填充方法可能会使 最坏的情况。COBS使用不同的字节填充方法,它有很多 更合理的最坏情况开销。
COBS/R
我在cobs中包含了一个变体,我称之为“一致开销字节 填料减少”(COBS/R)。这是一个小的变化,通常可以避免+1 COB中出现的字节开销,从而降低了平均编码 头顶上。然而,与 眼镜蛇。有关详细信息,请参见COBS/R documentation。
完整的cobs文档位于https://pythonhosted.org/cobs/