No Description
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

xep-0229.xml 4.7KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. <?xml version='1.0' encoding='UTF-8'?>
  2. <!DOCTYPE xep SYSTEM 'xep.dtd' [
  3. <!ENTITY % ents SYSTEM 'xep.ent'>
  4. %ents;
  5. ]>
  6. <?xml-stylesheet type='text/xsl' href='xep.xsl'?>
  7. <xep>
  8. <header>
  9. <title>Stream Compression with LZW</title>
  10. <abstract>This document specifies how to use the LZW algorithm in XML stream compression.</abstract>
  11. &LEGALNOTICE;
  12. <number>0229</number>
  13. <status>Draft</status>
  14. <type>Standards Track</type>
  15. <sig>Standards</sig>
  16. <dependencies>
  17. <spec>XMPP Core</spec>
  18. <spec>XEP-0138</spec>
  19. </dependencies>
  20. <supersedes/>
  21. <supersededby/>
  22. <shortname>N/A</shortname>
  23. &stpeter;
  24. <revision>
  25. <version>1.0</version>
  26. <date>2007-09-26</date>
  27. <initials>psa</initials>
  28. <remark><p>Per a vote of the XMPP Council, published as Draft.</p></remark>
  29. </revision>
  30. <revision>
  31. <version>0.0.1</version>
  32. <date>2007-08-30</date>
  33. <initials>psa</initials>
  34. <remark><p>Copied text from XEP-0138.</p></remark>
  35. </revision>
  36. </header>
  37. <section1 topic='Introduction' anchor='intro'>
  38. <p>&xep0138; specifies an extensible framework for XML stream compression and defines a registry for compression methods (see &COMPRESSMETHODS;). However, <cite>XEP-0138</cite> registers only the ZLIB method (see &rfc1950;). This document specifies usage of the LZW compression method.</p>
  39. </section1>
  40. <section1 topic='Background' anchor='background'>
  41. <p>The "LZW" compression algorithm was originally developed by Abraham Lempel and Jacob Ziv, subsequently improved by Terry Welch <note>See "A Technique for High-Performance Data Compression", <cite>Computer</cite> (June 1984), pp. 8-19.</note>, and patented by Sperry Corporation (later Unisys Corporation) as U.S. Patent Number 4,464,650 <note>See &lt;<link url='http://patft.uspto.gov/netacgi/nph-Parser?patentnumber=4,464,650'>http://patft.uspto.gov/netacgi/nph-Parser?patentnumber=4,464,650</link>&gt;.</note>. This patent expired on June 20, 2003 <note>See &lt;<link url='http://compression-links.info/Link/1264_LZW_Patent_Expiration.htm'>http://compression-links.info/Link/1264_LZW_Patent_Expiration.htm</link>&gt;</note> and <note>See &lt;<link url='http://compression-links.info/Link/1814_LZW_Patent_Expiration.htm'>http://compression-links.info/Link/1814_LZW_Patent_Expiration.htm</link>&gt;.</note>. Therefore implementations of LZW are no longer patent-encumbered.</p>
  42. <p>The algorithm is specified by Ecma International in &ecma151; under the name "DCLZ".</p>
  43. </section1>
  44. <section1 topic='Definition' anchor='definition'>
  45. <p>If the receiving entity (server) supports the LZW algorithm, it MUST include a &lt;method/&gt; element whose XML character data is "lzw" in the compression stream feature, as follows.</p>
  46. <example caption='Receiving Entity Offers Stream Compression Feature, Including LZW Method'><![CDATA[
  47. <stream:features>
  48. <starttls xmlns='urn:ietf:params:xml:ns:xmpp-tls'/>
  49. <compression xmlns='http://jabber.org/features/compress'>
  50. <method>zlib</method>
  51. <method>lzw</method>
  52. </compression>
  53. </stream:features>
  54. ]]></example>
  55. <p>If the initiating entity wishes to use the LZW algorithm, then it MUST specify that method.</p>
  56. <example caption='Initiating Entity Requests Stream Compression Using LZW'><![CDATA[
  57. <compress xmlns='http://jabber.org/protocol/compress'>
  58. <method>lzw</method>
  59. </compress>
  60. ]]></example>
  61. <p>The initiating entity and receiving entity then MUST attempt to negotiate use of the LZW algorithm in accordance with <cite>XEP-0138</cite>.</p>
  62. <p>If the use of the LZW algorithm is negotiated, the usage SHOULD follow the definition in <cite>ECMA-151</cite>.</p>
  63. </section1>
  64. <section1 topic='Optionality' anchor='optionality'>
  65. <p>The LZW algorithm is OPTIONAL to implement for <cite>XEP-0138</cite> implementations and this specification does not define a mandatory-to-implement technology.</p>
  66. </section1>
  67. <section1 topic='Security Considerations' anchor='security'>
  68. <p>The security considerations specified in <cite>XEP-0138</cite> apply to usage of the LZW algorithm.</p>
  69. </section1>
  70. <section1 topic='IANA Considerations' anchor='iana'>
  71. <p>This document requires no interaction with &IANA;. </p>
  72. </section1>
  73. <section1 topic='XMPP Registrar Considerations' anchor='registrar'>
  74. <section2 topic='Compression Methods Registry' anchor='registrar-methods'>
  75. <p>The &REGISTRAR; maintains a registry of compression methods at &COMPRESSMETHODS;.</p>
  76. <p>The LZW algorithm is already registered. This specification updates the registry submission as follows:</p>
  77. <code><![CDATA[
  78. <method>
  79. <name>lzw</name>
  80. <desc>the LZW (DCLZ) compression method</desc>
  81. <doc>XEP-0229</doc>
  82. </method>
  83. ]]></code>
  84. </section2>
  85. </section1>
  86. </xep>