CSLIP

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

CSLIP (Compressed SLIP) je linkový protokol vycházející z protokolu SLIP s možností komprese TCP+IP záhlaví. Protokol slouží k přenosu dat na sériové lince. Protokol CSLIP komprimuje 40 bajtů záhlaví protokolů TCP a IP (přesněji 20 bajtů z TCP-záhlaví a 20 bajtů z IP-záhlaví), na velikost 3 až 16 bajtů. Ke komprimaci dochází u TCP a IP záhlaví, nikoliv u dat.

Význam slova komprese záhlaví neznamená kompresi, jak si ji představujme (např. pomocí programu ZIP). +more Autor CSLIP (Van Jacobson) si uvědomil, že mnoho údajů v IP a TCP záhlaví během TCP spojení zůstává stejná nebo se mění nepatrně, takže je dostačující přenášet změněné položky IP a TCP záhlaví nebo jen přírůstky těchto položek. Ke změně položek dochází: * identifikace IP-datagramu * pořadové číslo odesílaného bajtu * pořadové číslo přijatého bajtu * délka okna * kontrolní součet TCP záhlaví * ukazatel naléhavých dat Změna ostatních položek je výjimečná. Položky celková délka IP-datagramu a kontrolní součet IP-záhlaví jsou nepotřebné.

012345678910111213141516171819202122232425262728293031
Verze IPVerze IPVerze IPVerze IPDélka záhlavíDélka záhlavíDélka záhlavíDélka záhlavíTyp službyTyp službyTyp službyTyp službyTyp službyTyp službyTyp službyTyp službyCelková délka IP-datagramuCelková délka IP-datagramuCelková délka IP-datagramuCelková délka IP-datagramuCelková délka IP-datagramuCelková délka IP-datagramuCelková délka IP-datagramuCelková délka IP-datagramuCelková délka IP-datagramuCelková délka IP-datagramuCelková délka IP-datagramuCelková délka IP-datagramuCelková délka IP-datagramuCelková délka IP-datagramuCelková délka IP-datagramuCelková délka IP-datagramu
Identifikace IP-datagramuIdentifikace IP-datagramuIdentifikace IP-datagramuIdentifikace IP-datagramuIdentifikace IP-datagramuIdentifikace IP-datagramuIdentifikace IP-datagramuIdentifikace IP-datagramuIdentifikace IP-datagramuIdentifikace IP-datagramuIdentifikace IP-datagramuIdentifikace IP-datagramuIdentifikace IP-datagramuIdentifikace IP-datagramuIdentifikace IP-datagramuIdentifikace IP-datagramuPříznaky(flags)Příznaky(flags)Příznaky(flags)Příznaky(flags)Posunutí fragmentu od počátkuPosunutí fragmentu od počátkuPosunutí fragmentu od počátkuPosunutí fragmentu od počátkuPosunutí fragmentu od počátkuPosunutí fragmentu od počátkuPosunutí fragmentu od počátkuPosunutí fragmentu od počátkuPosunutí fragmentu od počátkuPosunutí fragmentu od počátkuPosunutí fragmentu od počátkuPosunutí fragmentu od počátku
Doba života datagramu(TTL)Doba života datagramu(TTL)Doba života datagramu(TTL)Doba života datagramu(TTL)Doba života datagramu(TTL)Doba života datagramu(TTL)Doba života datagramu(TTL)Doba života datagramu(TTL)Protokol vyšší vrstvyProtokol vyšší vrstvyProtokol vyšší vrstvyProtokol vyšší vrstvyProtokol vyšší vrstvyProtokol vyšší vrstvyProtokol vyšší vrstvyProtokol vyšší vrstvyKontrolní součet z IP-záhlavíKontrolní součet z IP-záhlavíKontrolní součet z IP-záhlavíKontrolní součet z IP-záhlavíKontrolní součet z IP-záhlavíKontrolní součet z IP-záhlavíKontrolní součet z IP-záhlavíKontrolní součet z IP-záhlavíKontrolní součet z IP-záhlavíKontrolní součet z IP-záhlavíKontrolní součet z IP-záhlavíKontrolní součet z IP-záhlavíKontrolní součet z IP-záhlavíKontrolní součet z IP-záhlavíKontrolní součet z IP-záhlavíKontrolní součet z IP-záhlaví
IP-adresa odesílateleIP-adresa odesílateleIP-adresa odesílateleIP-adresa odesílateleIP-adresa odesílateleIP-adresa odesílateleIP-adresa odesílateleIP-adresa odesílateleIP-adresa odesílateleIP-adresa odesílateleIP-adresa odesílateleIP-adresa odesílateleIP-adresa odesílateleIP-adresa odesílateleIP-adresa odesílateleIP-adresa odesílateleIP-adresa odesílateleIP-adresa odesílateleIP-adresa odesílateleIP-adresa odesílateleIP-adresa odesílateleIP-adresa odesílateleIP-adresa odesílateleIP-adresa odesílateleIP-adresa odesílateleIP-adresa odesílateleIP-adresa odesílateleIP-adresa odesílateleIP-adresa odesílateleIP-adresa odesílateleIP-adresa odesílateleIP-adresa odesílatele
IP-adresa příjemceIP-adresa příjemceIP-adresa příjemceIP-adresa příjemceIP-adresa příjemceIP-adresa příjemceIP-adresa příjemceIP-adresa příjemceIP-adresa příjemceIP-adresa příjemceIP-adresa příjemceIP-adresa příjemceIP-adresa příjemceIP-adresa příjemceIP-adresa příjemceIP-adresa příjemceIP-adresa příjemceIP-adresa příjemceIP-adresa příjemceIP-adresa příjemceIP-adresa příjemceIP-adresa příjemceIP-adresa příjemceIP-adresa příjemceIP-adresa příjemceIP-adresa příjemceIP-adresa příjemceIP-adresa příjemceIP-adresa příjemceIP-adresa příjemceIP-adresa příjemceIP-adresa příjemce
Zdrojový portZdrojový portZdrojový portZdrojový portZdrojový portZdrojový portZdrojový portZdrojový portZdrojový portZdrojový portZdrojový portZdrojový portZdrojový portZdrojový portZdrojový portZdrojový portCílový portCílový portCílový portCílový portCílový portCílový portCílový portCílový portCílový portCílový portCílový portCílový portCílový portCílový portCílový portCílový port
Pořadové číslo odesílaného bajtuPořadové číslo odesílaného bajtuPořadové číslo odesílaného bajtuPořadové číslo odesílaného bajtuPořadové číslo odesílaného bajtuPořadové číslo odesílaného bajtuPořadové číslo odesílaného bajtuPořadové číslo odesílaného bajtuPořadové číslo odesílaného bajtuPořadové číslo odesílaného bajtuPořadové číslo odesílaného bajtuPořadové číslo odesílaného bajtuPořadové číslo odesílaného bajtuPořadové číslo odesílaného bajtuPořadové číslo odesílaného bajtuPořadové číslo odesílaného bajtuPořadové číslo odesílaného bajtuPořadové číslo odesílaného bajtuPořadové číslo odesílaného bajtuPořadové číslo odesílaného bajtuPořadové číslo odesílaného bajtuPořadové číslo odesílaného bajtuPořadové číslo odesílaného bajtuPořadové číslo odesílaného bajtuPořadové číslo odesílaného bajtuPořadové číslo odesílaného bajtuPořadové číslo odesílaného bajtuPořadové číslo odesílaného bajtuPořadové číslo odesílaného bajtuPořadové číslo odesílaného bajtuPořadové číslo odesílaného bajtuPořadové číslo odesílaného bajtu
Pořadové číslo přijatého bajtuPořadové číslo přijatého bajtuPořadové číslo přijatého bajtuPořadové číslo přijatého bajtuPořadové číslo přijatého bajtuPořadové číslo přijatého bajtuPořadové číslo přijatého bajtuPořadové číslo přijatého bajtuPořadové číslo přijatého bajtuPořadové číslo přijatého bajtuPořadové číslo přijatého bajtuPořadové číslo přijatého bajtuPořadové číslo přijatého bajtuPořadové číslo přijatého bajtuPořadové číslo přijatého bajtuPořadové číslo přijatého bajtuPořadové číslo přijatého bajtuPořadové číslo přijatého bajtuPořadové číslo přijatého bajtuPořadové číslo přijatého bajtuPořadové číslo přijatého bajtuPořadové číslo přijatého bajtuPořadové číslo přijatého bajtuPořadové číslo přijatého bajtuPořadové číslo přijatého bajtuPořadové číslo přijatého bajtuPořadové číslo přijatého bajtuPořadové číslo přijatého bajtuPořadové číslo přijatého bajtuPořadové číslo přijatého bajtuPořadové číslo přijatého bajtuPořadové číslo přijatého bajtu
Délka záhlavíDélka záhlavíDélka záhlavíDélka záhlavíRezervaRezervaRezervaRezervaRezervaRezervaURGACKPSHRSTSYNFINDélka oknaDélka oknaDélka oknaDélka oknaDélka oknaDélka oknaDélka oknaDélka oknaDélka oknaDélka oknaDélka oknaDélka oknaDélka oknaDélka oknaDélka oknaDélka okna
Kontrolní součetKontrolní součetKontrolní součetKontrolní součetKontrolní součetKontrolní součetKontrolní součetKontrolní součetKontrolní součetKontrolní součetKontrolní součetKontrolní součetKontrolní součetKontrolní součetKontrolní součetKontrolní součetUkazatel naléhavých datUkazatel naléhavých datUkazatel naléhavých datUkazatel naléhavých datUkazatel naléhavých datUkazatel naléhavých datUkazatel naléhavých datUkazatel naléhavých datUkazatel naléhavých datUkazatel naléhavých datUkazatel naléhavých datUkazatel naléhavých datUkazatel naléhavých datUkazatel naléhavých datUkazatel naléhavých datUkazatel naléhavých dat

Ke komprimování záhlaví dochází u TCP protokolu a v záhlaví se změní pouze výše uvedené položky. V opačném případě (např. +more pokud se jedná o ICMP paket, UDP datagram či fragment IP-datagramu, nebo je-li nastaven některý z příznaků RST,SYN,FIN ,nedojde ke kompresi a přenese se nekomprimovaný rámec.

Komprese-dekomprese

Posílá-li odesílatel TCP/IP paket, pak je paket na straně odesílatele předán kompresoru. Kompresor paket zkomprimuje nebo jej pustí bez změny. +more Na straně příjemce dekompresor sestaví paket do původní podoby. Kompresor komprimuje postupně jednotlivé datové toky (spojení). Všechny důležité informace ze záhlaví TCP a IP nutné pro kompresi a dekompresi si udržuje kompresor ve slotu.

Při odesílání paketu projde odesílatelův paket kompresorem. Kompresor analyzuje, zda je paket komprimovaný či ne. +more Pokud je paket nekomprimovaný nebo byl odeslán paket ICMP, UDP datagram, fragment IP-datagramu nebo má paket nastaven některý z příznaků RST,SYN,FIN, je paket poslán bez komprese. V opačném případě je spuštěn proces komprimace záhlaví. Kompresor prohledá své sloty, zdali nemá uložené informace z TCP/IP záhlaví konkrétního paketu.

Mohou nastat dvě situace

* Žádný slot kompresoru neobsahuje informace TCP+IP záhlaví, tudíž se jedná o první komprimovatelný paket nového spojení (první paket nového TCP spojení má nastaven příznak SYN). Dojde k vložení záhlaví TCP a IP tohoto paketu do prvního volného slotu. +more Není-li žádný slot volný, použije se nejdéle nepoužívaný slot. Kompresor tento paket nekomprimuje a následovně dojde v poli Protokol vyšší vrstvy(Protocol) ke změně hodnoty na číslo použitého slotu.

* Kompresor našel ve slotu číslo Č záhlaví IP a TCP, které náleží předchozímu spojení. Kompresor provede okamžitou kompresi paketu.

Komprimované záhlaví

Komprimované záhlaví obsahuje v prvním bajtu tzv.masku. Pomocí jednotlivých bitů masky lze zjistit, které položky v záhlaví originálního paketu se změnily.

-ČIPSAWU
číslo slotu(číslo spojení)-Ččíslo slotu(číslo spojení)-Ččíslo slotu(číslo spojení)-Ččíslo slotu(číslo spojení)-Ččíslo slotu(číslo spojení)-Ččíslo slotu(číslo spojení)-Ččíslo slotu(číslo spojení)-Ččíslo slotu(číslo spojení)-Č
kontrolní součet TCPkontrolní součet TCPkontrolní součet TCPkontrolní součet TCPkontrolní součet TCPkontrolní součet TCPkontrolní součet TCPkontrolní součet TCP
ukazatel naléhavých dat-Uukazatel naléhavých dat-Uukazatel naléhavých dat-Uukazatel naléhavých dat-Uukazatel naléhavých dat-Uukazatel naléhavých dat-Uukazatel naléhavých dat-Uukazatel naléhavých dat-U
přírůstek velikosti okna-Wpřírůstek velikosti okna-Wpřírůstek velikosti okna-Wpřírůstek velikosti okna-Wpřírůstek velikosti okna-Wpřírůstek velikosti okna-Wpřírůstek velikosti okna-Wpřírůstek velikosti okna-W
přírůstek potvrzených dat-Apřírůstek potvrzených dat-Apřírůstek potvrzených dat-Apřírůstek potvrzených dat-Apřírůstek potvrzených dat-Apřírůstek potvrzených dat-Apřírůstek potvrzených dat-Apřírůstek potvrzených dat-A
přírůstek odeslaných dat-Spřírůstek odeslaných dat-Spřírůstek odeslaných dat-Spřírůstek odeslaných dat-Spřírůstek odeslaných dat-Spřírůstek odeslaných dat-Spřírůstek odeslaných dat-Spřírůstek odeslaných dat-S
přírůstek identifikace IP-datagramu-Ipřírůstek identifikace IP-datagramu-Ipřírůstek identifikace IP-datagramu-Ipřírůstek identifikace IP-datagramu-Ipřírůstek identifikace IP-datagramu-Ipřírůstek identifikace IP-datagramu-Ipřírůstek identifikace IP-datagramu-Ipřírůstek identifikace IP-datagramu-I
datadatadatadatadatadatadatadata

Jednotlivé bity masky

* Č - značí číslo slotu. Číslo slotu není povinné. +more Pokud číslo slotu není uvedeno, pak se předpokládá že číslo slotu je shodné s číslem slotu předchozího komprimovaného paketu. Číslo slotu je reprezentováno hodnotou jeden bajt, protože číslo slotu se přenáší mezi kompresorem a dekompresorem v poli Protokolu vyšší vrstvy, které je dlouhé právě jeden bajt.

Proto je možné komprimovat zároveň max. 255 připojení.

* U - ukazatel naléhavých dat. Oznamuje, že je v paketu vyplněno pole obsahující ukazatel naléhavých dat.

* W - přírůstek velikosti okna. U komprimovaného záhlaví nedochází k přenosu celkové velikosti okna ale jen přírůstku. +more Pokud by přírůstek přesahoval velikost 64K nebo byl záporný, nedošlo by ke komprimaci paketu.

* A - přírůstek potvrzených dat.

* S - přírůstek odeslaných dat.

* I - přírůstek identifikace IP-datagramu.

* P - příznak PUSH.

TCP spojení je duplexní, ale komprimace záhlaví se provádí pro každý směr zcela samostatně.

Protokol CSLIP je popsán v RFC-1144. Celý mechanismus a problematika komprese IP záhlaví je již možné přenést i na jiné protokoly (např. +more UDP, IPv6) a specifikace se nachází pod RFC-2507 až 2509.

Reference

Alena Kabelová,Libor Dostálek: Velký průvodce protokoly TCP/IP a systémem DNS, CP Books, 2005;

Kategorie:Aplikační protokoly IP

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top