home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / drafts / draft_s_z / draft-sabin-lzs-payload-00.txt < prev    next >
Text File  |  1996-11-26  |  14KB  |  415 lines

  1.  
  2.  
  3.  
  4. Internet Draft                          November 1996 (Expires May 1997)
  5.  
  6.                                                     M. Sabin, Consultant
  7.                                                   R. Monsour, Hi/fn Inc.
  8.  
  9.  
  10.                LZS Payload Compression Transform for ESP
  11.                     <draft-sabin-lzs-payload-00.txt>
  12.  
  13.  
  14. Status of this Memo
  15.  
  16.    This document is an Internet-Draft.  Internet-Drafts are working
  17.    documents of the Internet Engineering Task Force (IETF), its areas,
  18.    and its working groups.  Note that other groups may also distribute
  19.    working documents as Internet-Drafts.
  20.  
  21.    Internet-Drafts are draft documents valid for a maximum of six months
  22.    and may be updated, replaced, or obsoleted by other documents at any
  23.    time.  It is inappropriate to use Internet-Drafts as reference
  24.    material or to cite them other than as "work in progress."
  25.  
  26.    To learn the current status of any Internet-Draft, please check the
  27.    "1id-abstracts.txt" listing contained in the Internet-Drafts Shadow
  28.    Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe),
  29.    munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or
  30.    ftp.isi.edu (US West Coast).
  31.  
  32.    It is intended that a future version of this draft be submitted to
  33.    the IESG for publication as an Informational RFC.  Comments about
  34.    this draft should be submitted to the authors or to the IPSEC mailing
  35.    list (ipsec@tis.com).
  36.  
  37.  
  38. Abstract
  39.  
  40.    This memo proposes a "payload compression transform" based on the LZS
  41.    compression algorithm.  The transform can be used to compress the
  42.    payload field of an IP datagram that uses the Encapsulating Security
  43.    Payload (ESP) format.  The compression transform proposed here is
  44.    stateless, meaning that a datagram can be decompressed independently
  45.    of any other datagram.  Compression is performed prior to the
  46.    encryption operation of ESP, which has the side benefit of reducing
  47.    the amount of data that must be encrypted.
  48.  
  49.    This memo anticipates a forthcoming draft of ESP that will supercede
  50.    [Atkins96].  The forthcoming draft will allow for ESP payloads to be
  51.    compressed via transforms such as the one described in this memo.
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58. Sabin, et al                                                   [Page  1]
  59.  
  60. INTERNET DRAFT          LZS Compression for ESP            November 1996
  61.  
  62.  
  63. Acknowledgments
  64.  
  65.    The LZS details presented here are similar to those in "PPP Stac LZS
  66.    Compression Protocol," by R. Friend and W. A. Simpson [RFC-1974].
  67.  
  68.    The authors wish to thank the many participants of the IPSEC mailing
  69.    list whose discussion made possible the architecture for integrating
  70.    compression with ESP.
  71.  
  72.  
  73. Table of Contents
  74.  
  75.    1.  Introduction
  76.    2.  Format of Transformed Payload
  77.    3.  Compression Procedure
  78.    4.  Decompression Procedure
  79.    5.  Security Considerations
  80.    6.  References
  81.    7.  Author's Addresses
  82.    8.  Appendix:  Compression Efficiency versus Datagram Size
  83.  
  84.  
  85. 1.  Introduction
  86.  
  87.    Encrypted data is random in nature and not compressible.  When an IP
  88.    datagram is encrypted, compression methods used at lower protocol
  89.    layers -- e.g., PPP compression [RFC-1962] -- no longer work.  If
  90.    both compression and encryption are desired, compression must be
  91.    performed first.
  92.  
  93.    A side benefit of compressing the data first is that the amount of
  94.    data which must be encrypted is reduced.  In some implementations,
  95.    compression is done in hardware and encryption is done in software,
  96.    and this can represent a significant reduction in software overhead.
  97.  
  98.    The Encapsulating Security Payload (ESP) format is well suited to
  99.    combining compression with encryption, for a variety of reasons:
  100.  
  101.       -  ESP is the place were encryption is applied to an IP datagram.
  102.       It is straightforward to precede the encryption step by an
  103.       optional compression step.  The compression step transforms an
  104.       uncompressed ESP payload into a compressed ESP payload.  This
  105.       "payload compression transform" can be independently defined and
  106.       used with any ESP transform.
  107.  
  108.       -  ESP provides a security parameters index (SPI) that links a
  109.       datagram to security parameters negotiated elsewhere.  A
  110.       destination uses the SPI to look up the ESP transform needed to
  111.       decode an incoming datagram.  If compression details are included
  112.       among the negotiated parameters, a destination can also use the
  113.       SPI to look up the compression transform needed to decode the ESP
  114.  
  115.  
  116.  
  117. Sabin, et al                                                   [Page  2]
  118.  
  119. INTERNET DRAFT          LZS Compression for ESP            November 1996
  120.  
  121.  
  122.       payload.
  123.  
  124.    This memo proposes a payload compression transform based on the LZS
  125.    compression algorithm.  The transform can be used to compress any ESP
  126.    payload.  The transform is stateless, meaning that the payload of a
  127.    datagram can be decompressed independently of any other datagram.
  128.    This is important in IP, where the delivery of individual datagrams
  129.    is not guaranteed.
  130.  
  131.  
  132.    1.1  Background of LZS Compression 
  133.  
  134.       The LZS algorithm is a lossless compression method that uses a
  135.       sliding window of 2,048 bytes.  During compression, redundant
  136.       sequences of data are replaced with tokens that represent those
  137.       sequences.  During decompression, the original sequences are
  138.       substituted for the tokens, in such a way that the original data
  139.       is exactly recovered.  LZS differs from lossy schemes, such as
  140.       those often used for video compression, that do not exactly
  141.       reproduce the original data.
  142.  
  143.       Details of LZS formatting can be found in [ANSI94].
  144.  
  145.       The efficiency of the LZS algorithm depends on the degree of
  146.       redundancy in the original data.  A typical compression ratio 
  147.       is 2:1.  LZS achieves a compression ratio of 2.34:1 on
  148.       the University of Calgary Text Compression Corpus [Calgary].
  149.  
  150.  
  151.    1.2  Licensing
  152.  
  153.       Source and object licenses for LZS are available on a
  154.       non-discriminatory basis.  Hardware implementations are also
  155.       available.  For more information, contact Hi/fn at the address
  156.       listed with the authors' addresses.
  157.  
  158.  
  159.    1.3  Requirements Terminology
  160.  
  161.       In this document, the words that are used to define the
  162.       significance of each particular requirement are usually
  163.       capitalized.  These words are:
  164.  
  165.          - MUST:  This word, or the adjective "REQUIRED," means that the
  166.          item is an absolute requirement of the specification.
  167.  
  168.          - SHOULD:  This word, or the adjective "RECOMMENDED," means
  169.          that there might exist valid reasons in particular
  170.          circumstances to ignore this item, but the full implications
  171.          should be understood and the case carefully weighed before
  172.          taking a different course.
  173.  
  174.  
  175.  
  176. Sabin, et al                                                   [Page  3]
  177.  
  178. INTERNET DRAFT          LZS Compression for ESP            November 1996
  179.  
  180.  
  181.  
  182.          - MAY:  This word, or the adjective "OPTIONAL," means that the
  183.          item is truly optional.  One vendor might choose to include the
  184.          item because of a particular marketplace requirement or because
  185.          it enhances the product, while another vendor might omit the
  186.          item.
  187.  
  188.  
  189. 2. Format of Transformed Payload
  190.  
  191. The input to the payload compression transform is a payload to be
  192. encapsulated by ESP.  The output of the transform is a new payload of
  193. following format:
  194.  
  195.  
  196.   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
  197.   |      CC       |                                               |
  198.   +-+-+-+-+-+-+-+-+                                               |
  199.   |                                                               |
  200.   |           Payload Data (compressed or uncompressed)           |
  201.   |                                                               |
  202.   |                                               +-+-+-+-+-+-+-+-|
  203.   |                                               |               
  204.   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+               
  205.  
  206.  
  207.    2.1  Compression Control
  208.  
  209.       The Compression Control (CC) field is a single, bit-mapped byte.
  210.       The bits are numbered 7 (most significant) to 0 (least
  211.       significant).  The following bits are defined:
  212.  
  213.  
  214.          - COMPRESSED (bit 7)
  215.  
  216.          This bit is set to 1 to indicate the payload is compressed.  It
  217.          is cleared to 0 to indicate the payload is not compressed.
  218.  
  219.  
  220.          - HIST_RESET (bit 6)
  221.  
  222.          This bit is set to 1 to indicate that the compression history
  223.          associated with this datagram's SPI was reset prior to
  224.          processing this datagram's payload.  It is cleared to 0 to
  225.          indicate the compression history was not reset.
  226.  
  227.          In order to make the transform stateless between datagrams, the
  228.          sender MUST reset the compression history prior to processing
  229.          each datagram's payload.  Thus, the HIST_RESET bit MUST be set
  230.          to 1 in every datagram.  (The HIST_RESET bit is defined here
  231.          for upwards compatibility with future transforms that may allow
  232.  
  233.  
  234.  
  235. Sabin, et al                                                   [Page  4]
  236.  
  237. INTERNET DRAFT          LZS Compression for ESP            November 1996
  238.  
  239.  
  240.          statefulness.)
  241.  
  242.          The sender MUST flush the compressor each time it transmits a
  243.          compressed datagram.  Flushing means that all data going into
  244.          the compressor is included in the output, i.e., no data is held
  245.          back in the hope of achieving better compression.  Flushing is
  246.          necessary to prevent a datagram's data from spilling over into
  247.          a later datagram.
  248.  
  249.  
  250.    2.2  Payload Data
  251.  
  252.       The Payload Data is either compressed or uncompressed.  The value
  253.       of the COMPRESSED bit of the CC field is set accordingly.  The
  254.       Payload Data field is an integral number of bytes in length.
  255.  
  256.  
  257. 3.  Compression Procedure
  258.  
  259.    The compression procedure consists of the following steps:
  260.  
  261.       i)  The sender resets the compression history and sets the
  262.       HIST_RESET bit of the CC field to 1.
  263.  
  264.       ii)  The sender decides whether or not to compress the payload.
  265.  
  266.          - If the sender chooses to compress the payload, the LZS
  267.          algorithm is applied.  The resulting compressed data is
  268.          formatted according to [ANSI94].  The COMPRESSED bit of the CC
  269.          field is set to 1.
  270.  
  271.          - If the sender chooses not to compress the payload, the
  272.          COMPRESSED bit of the CC field is set to 0.
  273.  
  274.    An implementation SHOULD monitor the results of the payload
  275.    compression operation and reject the operation if it results in
  276.    expansion.  In such a case, the uncompressed payload SHOULD be
  277.    transmitted with the COMPRESSED bit set to 1.
  278.  
  279.    After the payload has been transformed by these steps, the
  280.    transformed payload is submitted to the encode procedure of the
  281.    selected ESP transform.
  282.  
  283.  
  284. 4.  Decompression Procedure
  285.  
  286.    Prior to applying the decompression procedure, the decode procedure
  287.    of the selected ESP transform is applied to extract the payload.
  288.  
  289.    The decompression procedure consists of the following steps:
  290.  
  291.  
  292.  
  293.  
  294. Sabin, et al                                                   [Page  5]
  295.  
  296. INTERNET DRAFT          LZS Compression for ESP            November 1996
  297.  
  298.  
  299.       i)  The receiver checks the HIST_RESET bit of the CC field.  If
  300.       HIST_RESET = 1, the decompression history is reset.  If HIST_RESET
  301.       = 0, the datagram is discarded.
  302.  
  303.       ii)  The receiver checks the COMPRESSED bit of the CC field.  If
  304.       COMPRESSED = 1, the LZS decompression algorithm is applied to the
  305.       payload data.  If COMPRESSED = 0, decompression is not applied.
  306.  
  307.  
  308. 5.  Security Considerations
  309.  
  310.    Security issues are not discussed in this memo.
  311.  
  312.  
  313. 6.  References
  314.  
  315.    [ANSI94] American National Standards Institute, Inc., "Data
  316.       Compression Method for Information Systems," ANSI X3.241-1994,
  317.       August 1994.
  318.  
  319.    [Atkins96]  Atkinson, R., "IP Encapsulating Security Protocol,"
  320.       RFC-xxxx, June 1996.
  321.  
  322.    [Calgary]  Text Compression Corpus, University of Calgary, available
  323.       at
  324.       ftp://ftp.cpsc.ucalgary.ca/pub/projects/text.compression.corpus.
  325.  
  326.    [RFC-1962] Rand, D., "The PPP Compression Control Protocol (CCP),"
  327.       RFC-1962, June 1996.
  328.  
  329.    [RFC-1974] Friend, R., and Simpson, W.A., "PPP Stac LZS Compression
  330.       Protocol," RFC-1974, August 1996.
  331.  
  332.  
  333. 7.  Authors' Addresses
  334.  
  335.    Michael Sabin
  336.    883 Mango Avenue
  337.    Sunnyvale, CA  94087
  338.    Email:  mike.sabin@worldnet.att.net
  339.  
  340.    Robert Monsour
  341.    Hi/fn Inc.
  342.    12636 High Bluff Drive
  343.    San Diego, CA  92130
  344.    Email: rmonsour@earthlink.net
  345.  
  346.  
  347. 8.  Appendix:  Compression Efficiency versus Datagram Size
  348.  
  349.    The following table offers some guidance on the compression
  350.  
  351.  
  352.  
  353. Sabin, et al                                                   [Page  6]
  354.  
  355. INTERNET DRAFT          LZS Compression for ESP            November 1996
  356.  
  357.  
  358.    efficiency that can be achieved as a function of datagram size.  Each
  359.    entry in the table shows the compression ratio that was achieved when
  360.    the proposed transform was applied to a test file using datagrams of
  361.    a specified size.
  362.  
  363.    The test file was the University of Calgary Text Compression Corpus
  364.    [Calgary].  The length of the file prior to compression was 3,278,000
  365.    bytes.  When the entire file was compressed as a single payload, a
  366.    compression ratio of 2.34 resulted.
  367.  
  368.  
  369.     Datagram size,|  64   128   256   512  1024  2048  4096  8192 16384 
  370.     bytes         |
  371.     --------------|----------------------------------------------------
  372.     Compression   |1.18  1.28  1.43  1.58  1.74  1.91  2.04  2.11  2.14
  373.     ratio         |
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401.  
  402.  
  403.  
  404.  
  405.  
  406.  
  407.  
  408.  
  409.  
  410.  
  411.  
  412. Sabin, et al                                                   [Page  7]
  413.  
  414.  
  415.