Internet Engineering Task Force (IETF)                      N. Jaju, Ed.
Request for Comments: 9659                                        Google
Updates: 8878                                          W. F. Handte, Ed.
Category: Informational                             Meta Platforms, Inc.
ISSN: 2070-1721                                           September 2024
        
Window Sizing for Zstandard Content Encoding
ZStandardコンテンツエンコーディングのウィンドウサイジング
Abstract
概要

Deployments of Zstandard, or "zstd", can use different window sizes to limit memory usage during compression and decompression. Some browsers and user agents limit window sizes to mitigate memory usage concerns, thereby causing interoperability issues. This document updates the window size limit in RFC 8878 from a recommendation to a requirement in HTTP contexts.

Zstandardまたは「ZSTD」の展開は、異なるウィンドウサイズを使用して、圧縮と減圧中のメモリ使用量を制限できます。一部のブラウザやユーザーエージェントは、ウィンドウサイズを制限してメモリの使用に関する懸念を軽減し、それにより相互運用性の問題を引き起こします。このドキュメントは、RFC 8878のウィンドウサイズの制限を、HTTPコンテキストでの要件までの推奨事項から更新します。

Status of This Memo
本文書の位置付け

This document is not an Internet Standards Track specification; it is published for informational purposes.

このドキュメントは、インターネット標準の追跡仕様ではありません。情報目的で公開されています。

This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Not all documents approved by the IESG are candidates for any level of Internet Standard; see Section 2 of RFC 7841.

このドキュメントは、インターネットエンジニアリングタスクフォース(IETF)の製品です。IETFコミュニティのコンセンサスを表しています。公開レビューを受けており、インターネットエンジニアリングステアリンググループ(IESG)からの出版が承認されています。IESGによって承認されたすべてのドキュメントが、インターネット標準のあらゆるレベルの候補者であるわけではありません。RFC 7841のセクション2を参照してください。

Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at https://www.rfc-editor.org/info/rfc9659.

このドキュメントの現在のステータス、任意のERRATA、およびそれに関するフィードバックを提供する方法に関する情報は、https://www.rfc-editor.org/info/rfc9659で取得できます。

著作権表示

Copyright (c) 2024 IETF Trust and the persons identified as the document authors. All rights reserved.

著作権(c)2024 IETF Trustおよび文書著者として特定された人。無断転載を禁じます。

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.

このドキュメントは、BCP 78およびIETFドキュメント(https://trustee.ietf.org/license-info)に関連するIETF Trustの法的規定の対象となります。この文書に関するあなたの権利と制限を説明するので、これらの文書を注意深く確認してください。このドキュメントから抽出されたコードコンポーネントには、セクション4.Eで説明されている法的規定のセクション4.Eで説明されており、改訂されたBSDライセンスで説明されている保証なしで提供されるように、改訂されたBSDライセンステキストを含める必要があります。

Table of Contents
目次
   1.  Introduction
   2.  Conventions and Definitions
   3.  Window Size
   4.  Security Considerations
   5.  IANA Considerations
     5.1.  Content Encoding
   6.  Normative References
   Acknowledgments
   Authors' Addresses
        
1. Introduction
1. はじめに

Zstandard, or "zstd", specified in [RFC8878], is a lossless data compression mechanism similar to gzip. When used with HTTP, the "zstd" content coding token signals to the decoder that the content is Zstandard-compressed.

[RFC8878]で指定されているZstandard、または「ZSTD」は、GZIPと同様のロスレスデータ圧縮メカニズムです。HTTPで使用する場合、「ZSTD」コンテンツコーディングトークンは、コンテンツがZSTANDARDが圧縮されていることをデコーダーに信号します。

An important property of Zstandard-compressed content is its Window_Size ([RFC8878], Section 3.1.1.1.2), which describes the maximum distance for back-references and therefore how much of the content must be kept in memory during decompression.

Zstandardが圧縮されたコンテンツの重要な特性は、window_size([RFC8878]、セクション3.1.1.1.2)です。

The minimum Window_Size is 1 KB. The maximum Window_Size is (1<<41) + 7*(1<<38) bytes, where "<<" denotes a bitwise left shift, which is 3.75 TB. Larger Window_Size values tend to improve the compression ratio but at the cost of increased memory usage.

最小window_sizeは1 kbです。最大window_sizeは(1 << 41) + 7*(1 << 38)バイトです。ここで、 "<<"はビットワイズの左シフトを示します。これは3.75 Tbです。window_size値が大きいと、圧縮率が改善される傾向がありますが、メモリ使用量が増加します。

To protect against unreasonable memory usage, some browsers and user agents limit the maximum Window_Size they will handle. This causes failures to decode responses when the content is compressed with a larger Window_Size than the recipient allows, leading to decreased interoperability.

不合理なメモリ使用量から保護するために、一部のブラウザとユーザーエージェントは、それらが処理する最大window_sizeを制限します。これにより、コンテンツが受信者が許すよりも大きなwindow_sizeで圧縮されている場合、故障が応答をデコードし、相互運用性が低下します。

[RFC8878], Section 3.1.1.1.2 recommends that decoders support a Window_Size of up to 8 MB, and that encoders not generate frames using a Window_Size larger than 8 MB. However, it imposes no requirements.

[RFC8878]、セクション3.1.1.1.2では、デコーダが最大8 MBのwindow_sizeをサポートし、エンコーダーが8 MBを超えるwindow_sizeを使用してフレームを生成しないことを推奨しています。ただし、要件は課されません。

This document updates [RFC8878] to enforce Window_Size limits on the encoder and decoder for the "zstd" HTTP content coding.

このドキュメントは[RFC8878]を更新して、「ZSTD」HTTPコンテンツコーディングのエンコーダーとデコーダーのwindow_size制限を強制します。

2. Conventions and Definitions
2. 慣習と定義

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.

「必須」、「必要」、「必須」、「shall」、「shall」、「suff」、 "not"、 "becommended"、 "becommented"、 "may"、 "optional「このドキュメントでは、BCP 14 [RFC2119] [RFC8174]で説明されているように解釈されます。

3. Window Size
3. ウィンドウサイズ

To ensure interoperability, when using the "zstd" content coding, decoders MUST support a Window_Size of up to and including 8 MB, and encoders MUST NOT generate frames requiring a Window_Size larger than 8 MB (see Section 5.1).

相互運用性を確保するために、「ZSTD」コンテンツコーディングを使用する場合、デコーダは8 MBまでのwindow_sizeをサポートする必要があり、エンコーダーは8 MBを超えるwindow_sizeを必要とするフレームを生成してはなりません(セクション5.1を参照)。

4. Security Considerations
4. セキュリティに関する考慮事項

This document introduces no new security considerations beyond those discussed in [RFC8878].

このドキュメントでは、[RFC8878]で議論されているものを超えて新しいセキュリティ上の考慮事項を紹介しません。

Note that decoders still need to take into account that they can receive oversized frames that do not follow the window size limit specified in this document and fail decoding when such invalid frames are received.

デコーダーは、このドキュメントで指定されたウィンドウサイズの制限に従い、そのような無効なフレームが受信されたときにデコードに失敗する特大のフレームを受信できることを考慮に入れる必要があることに注意してください。

5. IANA Considerations
5. IANAの考慮事項
5.1. Content Encoding
5.1. コンテンツエンコーディング

This document updates the following entry in the "HTTP Content Coding Registry" in the "Hypertext Transfer Protocol (HTTP) Parameters" registry group (https://www.iana.org/assignments/http-parameters):

このドキュメントは、「HyperText Transfer Protocol(HTTP)パラメーター」レジストリグループ(https://www.iana.org/assignments/http-parameters)の「HTTPコンテンツコーディングレジストリ」の次のエントリを更新します。

Name:

名前:

zstd

ZSTD

Description:

説明:

A stream of bytes compressed using the Zstandard protocol with a Window_Size of not more than 8 MB.

8 MB以下のwindow_sizeを使用してzStandardプロトコルを使用して圧縮されたバイトのストリーム。

Reference:

参照:

This document and [RFC8878]

このドキュメントと[RFC8878]

6. Normative References
6. 引用文献
   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <https://www.rfc-editor.org/info/rfc2119>.
        
   [RFC8174]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
              2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
              May 2017, <https://www.rfc-editor.org/info/rfc8174>.
        
   [RFC8878]  Collet, Y. and M. Kucherawy, Ed., "Zstandard Compression
              and the 'application/zstd' Media Type", RFC 8878,
              DOI 10.17487/RFC8878, February 2021,
              <https://www.rfc-editor.org/info/rfc8878>.
        
Acknowledgments
謝辞

Zstandard was developed by Yann Collet.

ZStandardはYann Colletによって開発されました。

The authors would like to thank Yann Collet, Klaus Post, Adam Rice, and members of the Web Performance Working Group in the W3C for collaborating on the window size issue and helping to formulate a solution.

著者は、Yann Collet、Klaus Post、Adam Rice、およびW3CのWeb Performance Working Groupのメンバーに、ウィンドウサイズの問題をコラボレーションし、ソリューションの策定を支援してくれたことに感謝します。

Authors' Addresses
著者のアドレス
   Nidhi Jaju (editor)
   Google
   Shibuya Stream, 3 Chome-21-3 Shibuya, Shibuya City, Tokyo
   150-0002
   Japan
   Email: nidhijaju@google.com
        
   W. Felix P. Handte (editor)
   Meta Platforms, Inc.
   380 W 33rd St
   New York, NY 10001
   United States of America
   Email: felixh@meta.com