2010-10-22 69 views
3

在章过滤器(向下滚动〜50%)在article有关远程调用框架中提到压缩的2种方式:无状态和有状态压缩之间的区别?

  • 的ZLib无国籍压缩
  • 的ZLib状态压缩

什么那两者之间的区别是什么?它是ZLib相关还是这些常见的压缩方法?

在搜索时,我只能找到有状态和无状态的web服务。这些属性是不是无状态/完全意味着描述压缩方法?

+0

感谢这些答案,将标记更多的答案,如果我可以接受...... – MOnsDaR 2010-10-22 13:45:16

回答

2

Transport Layer Security Protocol Compression Methods

与TLS使用的压缩方法可以 可以是有状态(压缩机 保持它的通过所有 压缩记录状态)或无国籍 (压缩机压缩每个记录 独立),但在 TLS中使用 无状态压缩方法似乎是 几乎没有已知的好处。

一些压缩算法压缩和解压 包有效载荷时要保持历史
信息 能力。所述
压缩历史允许在 流取得了较高的 压缩比相比,每分组 压缩,但维持跨越分组的
历史意味着一个 包可能包含完全是解包含的数据需要 数据 在不同的数据包中。历史 维护因此需要 可靠链接和有序包 交付。由于TLS和较低层协议提供可靠的,有序的分组传送,因此如果通过压缩方法支持 ,则压缩 历史信息可以是 维护和利用。

+0

因此,当使用的方法支持历史时,有状态压缩会导致更高的压缩比? – MOnsDaR 2010-10-22 06:02:43

+0

我会这么认为,但可能如链接文件所述,增加并不是那么大...... – 2010-10-22 06:05:25

3

在一般情况下,无状态的描述不过去的事情的记忆任何过程和状态描述确实有这样的记忆任何过程(并用它来做出决定。)

在压缩,那么,无状态意味着它看到的任何大块数据,它都会压缩,而不依赖于以前的输入。速度更快但通常压缩程度更低;有状态压缩查看以前的数据来决定如何压缩当前数据,但速度较慢但压缩好得多。

3

Zlib是一种自适应的压缩算法。所有压缩算法的工作原理都是因为他们的数据并不完全是随机的。相反,他们的输入数据具有可以被利用的不均匀分布。以英文文本为例。字母e比字母q更常见。 Zlib将检测到这一点,并使用较少的位来处理字母e

现在,当您发送大量短信时,您知道这些短信都是英文的,您应该使用Zlib有限状态压缩。它会在所有消息中保留e的低位表示。但是如果有中文,日文,法文等混杂在一起的消息,有状态压缩就不再那么聪明了。在日文文本中会有几个字母e。无状态压缩将检查每个消息哪些字母是常见的。 ZLib无状态压缩的一个众所周知的例子是PNG文件格式,它在2个不同的图像之间不保持任何状态。

相关问题