Hlavní navigace

Transportní protokol SCTP

Pavel Satrapa

Dlouhá léta nabízel Internet dva transportní protokoly: UDP pro nezaručený přenos dat a TCP, který zajišťoval spolehlivé služby. Nově jim přibyl třetí do mariáše: Stream Control Transmission Protocol (SCTP). Podívejme se mu na zoubek.

Jeho kořeny najdete v telefonických kruzích – s definicí protokolu přišla IETF skupina SIGTRANS, která se zabývá přenosem telefonní signalizace po IP. Odtud pochází požadavek na několik navzájem nezávislých kanálů, které jsou přepravovány paralelně.

Právě tohle je zřejmě největší odlišností SCTP od stávajících transportních protokolů. Po navázání spojení, kterému se v terminologii SCTP říká asociace, po něm lze přenášet řadu navzájem nezávislých proudů (stream). V rámci každého z nich dokáže SCTP garantovat doručení všech dat ve správném pořadí. Případný výpadek (a pozdější opakování, čili zdržení) v některém z proudů se však nijak netýká proudů ostatních. Jejich komunikace pokračuje bez přerušení.

Schopnosti SCTP asociace by se tedy zhruba daly přirovnat ke svazku souběžných TCP spojení. Ovšem SCTP asociace by měla mít menší režii a nabízí také pár vylepšení.

Formát SCTP paketu odpovídá jeho charakteru. Začíná univerzální hlavičkou, která obsahuje jen nejzákladnější údaje: čísla portů identifikující aplikace na obou koncích asociace, údaj pro ověření totožnosti odesilatele a kontrolní součet. Dále pak následují tak zvané kousky (chunks), které mohou obsahovat řídicí informace či data pro jednotlivé proudy. Jejich počet ani struktura nejsou pevně dány – paket se skládá podle aktuální potřeby.

395

Citelné změny v porovnání s TCP zaznamenalo potvrzování. SCTP k němu využívá pořadová čísla (jak také jinak), která zde najdete na dvou úrovních: Transmission Sequence Number (TSN) slouží k číslování jednotlivých datových kousků (na úrovni asociace), zatímco Stream Sequence Number (SSN) určuje číslování v rámci jednoho konkrétního proudu.

Hlavní předností potvrzování v SCTP je, že dokáže ohlásit chybějící kusy dat. Slouží k tomu speciální kousek nazvaný selektivní potvrzení. Ten obsahuje nejvyšší pořadové číslo přijatého datového kousku a zároveň vyjmenovává chybějící úseky dat. Díky tomu je odesilatel přesně informován, která data dorazila a která ne. Navíc pokud vysílající dostane čtyři potvrzení ohlašující stejnou díru v datech, na nic nečeká a chybějící část rovnou pošle znovu (tzv. rychlé opakování).

Do SCTP byly zapracovány mechanismy, kterými se může dobře vyrovnávat se zahlcením sítě či protějšího partnera. Stejně jako v TCP je jejich základem okénko, které určuje, kolik dat lze ještě odeslat. Jeho velikost si řídí příjemce. Navíc se do ní promítá úspěšnost dosavadního doručování prostřednictvím tak zvaného okna zahlcení (při opakování prudce klesne, při úspěšném doručení zvolna narůstá).

SCTP také komplikuje některé útoky směřující k nedostupnosti služeb (DoS). Ty spočívaly v odesílání stále nových a nových žádostí o navázání TCP spojení, na které žadatel dále neodpovídal a polootevřená spojení blokovala kapacity serveru. Proto je proces vytvoření SCTP asociace komplikovanější.

Typicky začíná tím, že jeden z partnerů (klient) pošle druhému (server) žádost o navázání asociace. Server na jeho základě vytvoří potřebná data, zašifruje je a pošle klientovi jako součást své odpovědi (tzv. cookie). Ještě stále si však nic nerezervuje. Klient vzápětí potvrdí svou žádost a přibalí cookie odeslané serverem, jinak bude žádost ignorována. Teprve pokud se klient prokáže platným cookie, usoudí server, že to zřejmě myslí vážně, vytvoří odpovídající datové struktury, prohlásí asociaci za otevřenou a pošle klientovi potvrzení.

Ukončení asociace se velmi podobá TCP. Jedna strana pošle žádost o ukončení, čímž provede tak zvané polouzavření. Od té doby již nesmí posílat žádná data, ale musí potvrzovat příjem. Až se protějšek vypovídá, také on provede polouzavření a asociace bude ukončena. Pro nouzové případy je pochopitelně k dispozici i přerušení, kdy jeden z partnerů vykřikne „už musím letět“ a okamžitě skončí.

Poslední zajímavostí SCTP je, že podporuje tzv. multihoming – tedy situaci, kdy komunikující uzel má několik IP adres. Dostupné adresy si partneři vyměňují při vytvoření asociace a může se jednat o libovolnou směs IPv4 a IPv6 adres. Během komunikace je jedna z nich brána jako primární a na ni jsou odesílána data. Pro opakování však vybírá jinou a pokud má primární adresa častější problémy s dostupností, přejde odesilatel na jinou (je-li k dispozici). SCTP totiž monitoruje všechny cesty a udržuje si přehled o jejich stavu.

A jak je to s implementacemi? SCTP je dost mladé – jeho definice v RFC 2960 pochází z října roku 2000. Tomu odpovídá i skutečnost, že zatím se jedná o velmi exotickou záležitost.

Existuje referenční implementace pro několik různých odrůd Unixu. Kromě ní se dá najít implementace od Siemens AG a Univerzity Essen, která by měla fungovat pod Linuxem, FreeBSD a Mac OS X. Dále existují exempláře pro Linux (jádro 2.4) a Solaris 8 a to je, zdá se, vše. Nepodařilo se mi najít žádnou implementaci pro MS Windows. Když jsem nechal vyhledat SCTP na www.microsoft.com, obdržel jsem pouze stránku s čísly portů…

Právě na implementacích však bude nejvíc záviset, zda se SCTP prosadí nebo ne. Takže uvidíme.

Našli jste v článku chybu?

16. 5. 2001 20:35

Michal Illich (neregistrovaný)
Nejak nechapu, jakou to ma vyhodu oproti nekolika paralelnim TCP spojenim. - ?

V clanku byly ocitovane tri:
- mensi rezie
- cookies
- vice IPs pri pretizeni

ad 1) STCP se asi bude pouzivat napr. na streamovani audio/video dat, takze tam je dost jedno, zda je hlavicka o par bajtu kratsi.
ad 2) To ma TCP take, viz SynCookies. Linux a dalsi to pri zahlceni pouzivaji, a tak jsou proti tomu typu utoku odolni.
ad 3) To je pekne, ale v podstate nikdo nebrani tomu, aby to TCP nedelalo take. Navic na s…








21. 5. 2001 8:20

Pavel Satrapa (neregistrovaný)
Výhodami by měla být hlavně vyšší spolehlivost a nižší zatížení zúčastněných strojů.

Více IP adres cíle neslouží k rozkládání provozu při přetížení, ale k zajištění větší spolehlivosti - pokud některá neodpovídá, použije jinou. K rozkládání provozu nemá SCTP potřebné informace.

Jako menší režie nebylo ani tak míněno pár bajtů v hlavičkách, ale spíše zpracování na koncích. Představte si dvě aplikace, které si vyměňují informace po deseti navzájem nezávislých kanálech. Když to uděláte jedním…



Vitalia.cz: Znáte „černý detox“? Ani to nezkoušejte

Znáte „černý detox“? Ani to nezkoušejte

Lupa.cz: Insolvenční řízení kvůli cookies? Vítejte v ČR

Insolvenční řízení kvůli cookies? Vítejte v ČR

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Měšec.cz: Kdy vám stát dá na stěhování 50 000 Kč?

Kdy vám stát dá na stěhování 50 000 Kč?

Měšec.cz: Zdravotní a sociální pojištění 2017: Připlatíte

Zdravotní a sociální pojištění 2017: Připlatíte

120na80.cz: Rovnátka, která nejsou vidět

Rovnátka, která nejsou vidět

DigiZone.cz: Perspektivy TV v roce 1939 podle časopisu Life

Perspektivy TV v roce 1939 podle časopisu Life

Vitalia.cz: To nejhorší při horečce u dětí: Febrilní křeče

To nejhorší při horečce u dětí: Febrilní křeče

Měšec.cz: Za palivo zaplatíte mobilem (TEST)

Za palivo zaplatíte mobilem (TEST)

DigiZone.cz: NG natáčí v Praze seriál o Einsteinovi

NG natáčí v Praze seriál o Einsteinovi

Podnikatel.cz: Udávání kvůli EET začalo

Udávání kvůli EET začalo

Podnikatel.cz: 3, 2, 1..EET startuje. Na co nezapomenout?

3, 2, 1..EET startuje. Na co nezapomenout?

Měšec.cz: Air Bank zruší TOP3 garanci a zdražuje kurzy

Air Bank zruší TOP3 garanci a zdražuje kurzy

Vitalia.cz: Pravda o přibírání na zimu

Pravda o přibírání na zimu

Podnikatel.cz: Vládu obejde, kvůli EET rovnou do sněmovny

Vládu obejde, kvůli EET rovnou do sněmovny

Vitalia.cz: Spor o mortadelu: podle Lidlu falšovaná nebyla

Spor o mortadelu: podle Lidlu falšovaná nebyla

Podnikatel.cz: Alza.cz má StreetShop. Mall.cz více výdejních míst

Alza.cz má StreetShop. Mall.cz více výdejních míst

120na80.cz: Stoná vaše dítě často? Upravte mu jídelníček

Stoná vaše dítě často? Upravte mu jídelníček

DigiZone.cz: Recenze Westworld: zavraždit a...

Recenze Westworld: zavraždit a...

120na80.cz: Pánové, pečujte o svoje přirození a prostatu

Pánové, pečujte o svoje přirození a prostatu