2010-10-22 134 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個不同的圖像之間不保持任何狀態。

相關問題