<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="sv">
	<id>https://wiki.linux.se/index.php?action=history&amp;feed=atom&amp;title=%C2%BB_ZLIB_Compressed_Data_Format_Specification_%28RFC_1950%29</id>
	<title>» ZLIB Compressed Data Format Specification (RFC 1950) - Versionshistorik</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.linux.se/index.php?action=history&amp;feed=atom&amp;title=%C2%BB_ZLIB_Compressed_Data_Format_Specification_%28RFC_1950%29"/>
	<link rel="alternate" type="text/html" href="https://wiki.linux.se/index.php?title=%C2%BB_ZLIB_Compressed_Data_Format_Specification_(RFC_1950)&amp;action=history"/>
	<updated>2026-05-28T08:36:58Z</updated>
	<subtitle>Versionshistorik för denna sida på wikin</subtitle>
	<generator>MediaWiki 1.38.4</generator>
	<entry>
		<id>https://wiki.linux.se/index.php?title=%C2%BB_ZLIB_Compressed_Data_Format_Specification_(RFC_1950)&amp;diff=6282&amp;oldid=prev</id>
		<title>Admin: Skapade sidan med &#039;= Specifikation av ZLIB:s komprimerade dataformat, version 3.3 =  == Status för detta dokument == Detta dokument tillhandahåller information för internetgemenskapen. Dokumentet specificerar inte någon internetstandard. Distributionen av detta dokument är obegränsad.  === IESG-anteckning === IESG tar ingen ställning till giltigheten av några uttalanden om immateriella rättigheter som nämns i detta dokument.  === Meddelanden === &#039;&#039;&#039;Upphovsrätt (c) 1996 av L. Pet...&#039;</title>
		<link rel="alternate" type="text/html" href="https://wiki.linux.se/index.php?title=%C2%BB_ZLIB_Compressed_Data_Format_Specification_(RFC_1950)&amp;diff=6282&amp;oldid=prev"/>
		<updated>2024-12-02T09:56:19Z</updated>

		<summary type="html">&lt;p&gt;Skapade sidan med &amp;#039;= Specifikation av ZLIB:s komprimerade dataformat, version 3.3 =  == Status för detta dokument == Detta dokument tillhandahåller information för internetgemenskapen. Dokumentet specificerar inte någon internetstandard. Distributionen av detta dokument är obegränsad.  === IESG-anteckning === IESG tar ingen ställning till giltigheten av några uttalanden om immateriella rättigheter som nämns i detta dokument.  === Meddelanden === &amp;#039;&amp;#039;&amp;#039;Upphovsrätt (c) 1996 av L. Pet...&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Ny sida&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Specifikation av ZLIB:s komprimerade dataformat, version 3.3 =&lt;br /&gt;
&lt;br /&gt;
== Status för detta dokument ==&lt;br /&gt;
Detta dokument tillhandahåller information för internetgemenskapen. Dokumentet specificerar inte någon internetstandard. Distributionen av detta dokument är obegränsad.&lt;br /&gt;
&lt;br /&gt;
=== IESG-anteckning ===&lt;br /&gt;
IESG tar ingen ställning till giltigheten av några uttalanden om immateriella rättigheter som nämns i detta dokument.&lt;br /&gt;
&lt;br /&gt;
=== Meddelanden ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Upphovsrätt (c) 1996 av L. Peter Deutsch och Jean-Loup Gailly&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Tillstånd ges att kopiera och distribuera detta dokument för alla ändamål och utan kostnad, inklusive översättningar till andra språk och inkludering i samlingar, förutsatt att upphovsrättsmeddelandet och detta meddelande bibehålls, och att eventuella väsentliga ändringar eller borttagningar från originalet tydligt anges.  &lt;br /&gt;
&lt;br /&gt;
En länk till den senaste versionen av detta och relaterad dokumentation i HTML-format finns på:&lt;br /&gt;
&amp;lt;ftp://ftp.uu.net/graphics/png/documents/zlib/zdoc-index.html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sammanfattning ==&lt;br /&gt;
Denna specifikation definierar ett &amp;#039;&amp;#039;&amp;#039;förlustfritt komprimerat dataformat&amp;#039;&amp;#039;&amp;#039;. Data kan produceras eller användas, även för en godtyckligt lång sekventiell datainmatning, med endast en på förhand begränsad mängd mellanlagringsutrymme.&lt;br /&gt;
&lt;br /&gt;
Formatet använder för närvarande kompressionsmetoden &amp;#039;&amp;#039;&amp;#039;DEFLATE&amp;#039;&amp;#039;&amp;#039;, men kan enkelt utökas för att använda andra kompressionsmetoder. Det kan implementeras utan att omfattas av patent.&lt;br /&gt;
&lt;br /&gt;
Denna specifikation definierar även &amp;#039;&amp;#039;&amp;#039;ADLER-32-checksumman&amp;#039;&amp;#039;&amp;#039; (en utökning och förbättring av Fletcher-checksumman) som används för att upptäcka datakorruption, och tillhandahåller en algoritm för att beräkna den.&lt;br /&gt;
&lt;br /&gt;
== Innehållsförteckning ==&lt;br /&gt;
# [[#Introduktion|Introduktion]]&lt;br /&gt;
## [[#Syfte|Syfte]]&lt;br /&gt;
## [[#Avsedd målgrupp|Avsedd målgrupp]]&lt;br /&gt;
## [[#Omfattning|Omfattning]]&lt;br /&gt;
## [[#Överensstämmelse|Överensstämmelse]]&lt;br /&gt;
## [[#Definitioner av termer och konventioner|Definitioner av termer och konventioner]]&lt;br /&gt;
## [[#Ändringar från tidigare versioner|Ändringar från tidigare versioner]]&lt;br /&gt;
# [[#Detaljerad specifikation|Detaljerad specifikation]]&lt;br /&gt;
## [[#Allmänna konventioner|Allmänna konventioner]]&lt;br /&gt;
## [[#Dataformat|Dataformat]]&lt;br /&gt;
## [[#Efterlevnad|Efterlevnad]]&lt;br /&gt;
# [[#Referenser|Referenser]]&lt;br /&gt;
# [[#Källkod|Källkod]]&lt;br /&gt;
# [[#Säkerhetsaspekter|Säkerhetsaspekter]]&lt;br /&gt;
# [[#Tack och erkännanden|Tack och erkännanden]]&lt;br /&gt;
# [[#Författarnas kontaktuppgifter|Författarnas kontaktuppgifter]]&lt;br /&gt;
# [[#Bilaga: Motivering|Bilaga: Motivering]]&lt;br /&gt;
# [[#Bilaga: Exempelkod|Bilaga: Exempelkod]]&lt;br /&gt;
&lt;br /&gt;
== Introduktion ==&lt;br /&gt;
=== Syfte ===&lt;br /&gt;
Syftet med denna specifikation är att definiera ett förlustfritt komprimerat dataformat som:&lt;br /&gt;
&lt;br /&gt;
* Är oberoende av CPU-typ, operativsystem, filsystem och teckenkodning, och därmed kan användas för utbyte.&lt;br /&gt;
* Kan produceras eller användas, även för en godtyckligt lång sekventiell datainmatning, med endast en på förhand begränsad mängd mellanlagringsutrymme, och därmed kan användas i datakommunikation eller liknande strukturer såsom Unix-filter.&lt;br /&gt;
* Kan använda flera olika kompressionsmetoder.&lt;br /&gt;
* Kan implementeras på ett sätt som inte omfattas av patent, och därmed kan användas fritt.&lt;br /&gt;
&lt;br /&gt;
Dataformatet som definieras i denna specifikation försöker inte tillåta slumpmässig åtkomst till komprimerade data.&lt;br /&gt;
&lt;br /&gt;
=== Avsedd målgrupp ===&lt;br /&gt;
Denna specifikation är avsedd för utvecklare av mjukvara för att komprimera data i zlib-format och/eller dekomprimera data från zlib-format.  &lt;br /&gt;
Texten förutsätter grundläggande kunskaper i programmering på bitnivå och andra primitiva datarepresentationer.&lt;br /&gt;
&lt;br /&gt;
=== Omfattning ===&lt;br /&gt;
Specifikationen definierar ett komprimerat dataformat som kan användas för minnesintern komprimering av en sekvens av godtyckliga bytes.&lt;br /&gt;
&lt;br /&gt;
=== Överensstämmelse ===&lt;br /&gt;
Om inte annat anges nedan, måste en kompatibel dekompressor kunna acceptera och dekomprimera vilken dataset som helst som uppfyller alla specifikationer här; en kompatibel kompressor måste producera datasets som uppfyller alla specifikationer här.&lt;br /&gt;
&lt;br /&gt;
=== Definitioner av termer och konventioner ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;byte&amp;#039;&amp;#039;&amp;#039;: 8 bitar lagrade eller överförda som en enhet (samma som en oktett). För denna specifikation är en byte exakt 8 bitar, även på maskiner som lagrar en teckenrepresentation med fler eller färre bitar.  &lt;br /&gt;
&lt;br /&gt;
=== Ändringar från tidigare versioner ===&lt;br /&gt;
* Version 3.1 var den första offentliga versionen av denna specifikation.&lt;br /&gt;
* I version 3.2 ändrades terminologi och Adler-32-exempelkoden skrevs om för tydlighet.&lt;br /&gt;
* I version 3.3 infördes stöd för ett förinställt ordförråd, och specifikationen omarbetades till RFC-format.&lt;br /&gt;
&lt;br /&gt;
== Detaljerad specifikation ==&lt;br /&gt;
=== Allmänna konventioner ===&lt;br /&gt;
Diagram används för att representera bytes och strukturer. Till exempel:&lt;br /&gt;
&lt;br /&gt;
En byte representeras som:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+---+&lt;br /&gt;
|   |&lt;br /&gt;
+---+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Och en variabel mängd bytes representeras som:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+==============+&lt;br /&gt;
|              |&lt;br /&gt;
+==============+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dataformat ===&lt;br /&gt;
Ett zlib-flöde har följande struktur:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0   1&lt;br /&gt;
+---+---+&lt;br /&gt;
|CMF|FLG|   (mer --&amp;gt;)&lt;br /&gt;
+---+---+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Om flaggan &amp;#039;&amp;#039;&amp;#039;FLG.FDICT&amp;#039;&amp;#039;&amp;#039; är satt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0   1   2   3&lt;br /&gt;
+---+---+---+---+&lt;br /&gt;
|     DICTID    |   (mer --&amp;gt;)&lt;br /&gt;
+---+---+---+---+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+=====================+---+---+---+---+&lt;br /&gt;
|...komprimerad data...|    ADLER32    |&lt;br /&gt;
+=====================+---+---+---+---+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Referenser ==&lt;br /&gt;
* [1] Deutsch, L.P., &amp;quot;GZIP Compressed Data Format Specification&amp;quot;.&lt;br /&gt;
* [2] Thomas Boutell, &amp;quot;PNG (Portable Network Graphics) specification&amp;quot;.&lt;br /&gt;
* [3] Deutsch, L.P., &amp;quot;DEFLATE Compressed Data Format Specification&amp;quot;.&lt;br /&gt;
* [4] Fletcher, J.G., &amp;quot;An Arithmetic Checksum for Serial Transmissions&amp;quot;.&lt;br /&gt;
* [5] ITU-T Recommendation X.224, Annex D.&lt;br /&gt;
&lt;br /&gt;
== Källkod ==&lt;br /&gt;
Källkod för en C-implementering av ett bibliotek som följer zlib-format finns på:  &lt;br /&gt;
&amp;lt;ftp://ftp.uu.net/pub/archiving/zip/zlib/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Säkerhetsaspekter ==&lt;br /&gt;
En dekompressor som misslyckas med att kontrollera ADLER-32-checksumman kan bli utsatt för oupptäckt datakorruption.&lt;br /&gt;
&lt;br /&gt;
== Tack och erkännanden ==&lt;br /&gt;
Varumärken som nämns i detta dokument tillhör sina respektive ägare.&lt;br /&gt;
&lt;br /&gt;
Jean-Loup Gailly och Mark Adler designade zlib-formatet och skrev den relaterade mjukvaran som beskrivs i denna specifikation. Glenn Randers-Pehrson konverterade detta dokument till RFC- och HTML-format.&lt;br /&gt;
&lt;br /&gt;
== Författarnas kontaktuppgifter ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;L. Peter Deutsch&amp;#039;&amp;#039;&amp;#039;  &lt;br /&gt;
Aladdin Enterprises  &lt;br /&gt;
203 Santa Margarita Ave.  &lt;br /&gt;
Menlo Park, CA 94025  &lt;br /&gt;
Telefon: (415) 322-0103 (FM endast)  &lt;br /&gt;
E-post: &amp;lt;ghost@aladdin.com&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Jean-Loup Gailly&amp;#039;&amp;#039;&amp;#039;  &lt;br /&gt;
E-post: &amp;lt;gzip@prep.ai.mit.edu&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Bilaga: Motivering ==&lt;br /&gt;
### Adler-32-algoritmen&lt;br /&gt;
Adler-32-algoritmen är mycket snabbare än CRC32 men ger ändå en extremt låg sannolikhet för oupptäckta fel. &lt;br /&gt;
&lt;br /&gt;
== Bilaga: Exempelkod ==&lt;br /&gt;
Följande kod är en C-implementering av Adler-32-algoritmen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#define BASE 65521 /* största primtalet mindre än 65536 */&lt;br /&gt;
&lt;br /&gt;
unsigned long update_adler32(unsigned long adler, unsigned char *buf, int len) {&lt;br /&gt;
    unsigned long s1 = adler &amp;amp; 0xffff;&lt;br /&gt;
    unsigned long s2 = (adler &amp;gt;&amp;gt; 16) &amp;amp; 0xffff;&lt;br /&gt;
    for (int n = 0; n &amp;lt; len; n++) {&lt;br /&gt;
        s1 = (s1 + buf[n]) % BASE;&lt;br /&gt;
        s2 = (s2 + s1) % BASE;&lt;br /&gt;
    }&lt;br /&gt;
    return (s2 &amp;lt;&amp;lt; 16) + s1;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>