Разница между сжатием без сохранения состояния и состоянием с сохранением состояния? - PullRequest
3 голосов
/ 22 октября 2010

В главе Фильтры (прокрутка вниз ~ 50%) в статье об инфраструктуре удаленных вызовов упоминаются 2 способа сжатия:

  • ZLib сжатие без сохранения состояния
  • ZLib сжатие с сохранением состояния

В чем разница между ними? Это связано с ZLib или это распространенные методы сжатия?

При поиске я мог только находить веб-сервисы с состоянием и без состояния. Разве атрибуты stateless / ful не предназначены для описания метода сжатия?

Ответы [ 3 ]

3 голосов
/ 22 октября 2010

Как правило, без сохранения состояния описывает любой процесс, который не имеет памяти о прошлых событиях, а с учетом состояния описывает любой процесс, который имеет такую ​​память (и использует его для принятия решений).

Таким образом, при сжатии без сохранения состояния означает, что любой фрагмент данных, который он видит, он сжимает независимо от предыдущих входных данных. Это быстрее, но обычно сжимает меньше; Сжатие с сохранением состояния просматривает предыдущие данные, чтобы решить, как сжимать текущие данные, оно медленнее, но сжимает намного лучше.

3 голосов
/ 22 октября 2010

Zlib - это алгоритм сжатия, который адаптивен.Все алгоритмы сжатия работают, потому что данные, с которыми они работают, не полностью случайны.Вместо этого их входные данные имеют неравномерное распределение, которое можно использовать.Возьмите английский текст в качестве простого примера.Буква e встречается гораздо чаще, чем буква q.Zlib обнаружит это и использует меньше битов для буквы e.

Теперь, когда вы отправляете много коротких текстовых сообщений и знаете, что они все на английском языке, вы должны использовать сжатие Zlib statefull.Это сохранит это младшее битовое представление буквы e во всех сообщениях.Но если есть смешанные сообщения на китайском, японском, французском и т. Д., Сжатие с сохранением состояния уже не так уж умно.В японском тексте будет мало букв e.Сжатие без сохранения состояния проверяет для каждого сообщения, какие буквы являются общими.Хорошо известным примером сжатия без сохранения состояния ZLib является формат файла PNG, который не сохраняет состояния между двумя различными изображениями.

3 голосов
/ 22 октября 2010

С Методы сжатия протокола безопасности транспортного уровня :

Методы сжатия, используемые с банкой TLS быть либо с состоянием (компрессор поддерживает это состояние через все сжатые записи) или без сохранения состояния (компрессор сжимает каждую запись независимо), но, кажется, быть малоизвестным преимуществом в использовании метод сжатия без сохранения состояния в пределах TLS.

Некоторые методы сжатия имеют умение вести историю
информация при сжатии и распаковка пакетов полезных нагрузок.
История сжатия позволяет более высокую степень сжатия, которая будет достигнута на поток по сравнению с пакетом сжатие, но с сохранением
история между пакетами подразумевает, что пакет может содержать данные, необходимые для полностью распаковать данные, содержащиеся в другом пакете. история Таким образом, техническое обслуживание требует как надежная связь и последовательный пакет Доставка. Так как TLS и нижний слой протоколы обеспечивают надежность, последовательная доставка пакетов, сжатие историческая информация МОЖЕТ быть поддерживается и эксплуатируется, если поддерживается по методу сжатия.

...