6. Transportní vrstva Studijní cíl Představíme si funkci transportní vrstvy. Podrobněji popíšeme protokoly TCP a UDP.
Doba nutná k nastudování
3 hodiny
Transportní vrstva Transportní vrstva odpovídá v podstatě transportní vrstvě OSI, protože poskytuje mechanismus pro koncový přenos dat mezi dvěma stanicemi. Původně se proto tato vrstva označovala jako vrstva koncová (end-to-end nebo bost-to-hosf). Nabízí transportní službu se spojením nebo bez spojení za použití jednoho ze dvou protokolů: • Transmission Control Protocol (TCP, RFC 793) - poskytuje transportní službu se spojením včetně řízení koncového spojení („spolehlivý protokol“), • User Datagram Protocol (UDP, RFC 768) - poskytuje transportní službu bez spojení („nespolehlivý protokol“).[1] Rozhraní (SAP) mezi transportní a aplikační vrstvou, tj. identifikace aplikačního protokolu, který bude poskytovanou transportní službu používat, se označuje číslem portu: • známé porty se pohybují v rozmezí celých čísel 0 až l 023 a jsou pro aplikační protokoly pevně dané (konkrétní hodnoty přiděluje IANA); • registrované porty v intervalu l 024 až 49 151 (registruje je IANA a jsou obvykle využívány pro běžné uživatelské procesy a aplikace); • dynamické nebo soukromé porty se pohybují v rozmezí 49 152 až 65 535.
Počítačové sítě I.
1 (6)
KST/IPS1
TCP Vlastnosti podporované transportním protokolem TCP: • spolehlivá transportní služba, • služba se spojením, • efektivní využití přenosových, • plně duplexní spojení (současný obousměrný přenos dat), • rozlišení mezi více potenciálními adresáty (procesy) na daném počítači -pomocí portů. Hlavička TCP segmentu
Obrázek 1 Hlavička TCP segmentu [2]
Source port - port procesu generujícího datagram, Destination port - určuje kterému procesu na cílovém uzlu jsou data určena, Sequence Number - sekvenční číslo prvního datového oktetu v segmentu (pokud není nastaven příznak SYN), Pokud je nastaven příznak SYN, jedná se o tzv. initial sequence number – ISN a první datový oktet má číslo ISN + 1, Acknowledgement Number - má význam pouze, když je nastaven kontrolní bit ACK. Toto číslo je nastaveno na hodnotu, kterou odesílatel očekává v poli Sequence Number v následujícím paketu. Je-li ustaveno spojení, je toto číslo vždy posíláno, Data Offset - specifikuje číslo vyjádřené 32bitovým slovem. Indikuje, kde data v segmentu začínají data přenášená tímto datagramem, Reserved - toto 6ti bitové pole je rezervované a mělo by vždy být nulové,
Počítačové sítě I.
2 (6)
KST/IPS1
Control Bits - kontrolní bity (příznaky) zajišťující "handshaking" a ostatní specifické procesy: • • • • • •
URG - Urgent Pointer, ACK – Acknowledgement, PSH - Push funkce, RST - Reset spojení, SYN - synchronizace sekvenčních čísel, FIN - oznámení, že odesílající nemá žádná další data. Window - množství dat oktetech, které je potvrzováno najednou, Checksum - kontrolní součet, není povinný a v tom případě je 0, Urgent Pointer - údaj je platný, pouze pokud je nastaven příznak URG, Options - pole proměnné délky určené pro volitelné parametry TCP, parametr je používán např. pro indikaci maximální velikosti segmentu, kterou je přijímají strana schopna zpracovat, Padding - specifické množství nulových bitů doplňujících hlavičku tak, aby měla 32 bitovou hranici (tj. aby byla beze zbytku dělitelná 32), Řízení toku TCP se realizuje několika spolupracujícími mechanismy: • velikostí okna, • pořadovými čísly oktetů dat, • potvrzováním. Záhlaví TCP segmentu obsahuje pole okno, které specifikuje, kolik oktetů dat se může přenést od odesilatele k příjemci bez průběžného potvrzování doručení jednotlivých segmentů. Minimální velikost okna je l segment, a to vyžaduje potvrzovat příjem každého jednotlivého segmentu. Protože tento způsob přenosu je neefektivní, využívá se větší šíře okna, tj. většího množství segmentů, které se mohou odeslat ihned za sebou a teprve poté získat na jejich doručení potvrzení. Po obdržení potvrzení jejich příjmu může odesilatel vyslat opět skupinu segmentů podle velikosti okna. Tento mechanismus TCP se nazývá klouzavé okno (sliding window), protože vysílací okno se jakoby posunuje o příslušný počet segmentů dál v řadě segmentů čekajících na odeslání. Typické hodnoty velikosti okna TCP jsou 8 192 bytů (stanice) a 24 000 bytů (velké servery).
Počítačové sítě I.
3 (6)
KST/IPS1
Obrázek 2 Přenos dat a potvrzovací proces [3] Velikost okna není pevná hodnota, nedohaduje se při navazování spojení pro celou dobu spojení. Velikost okna lze v průběhu komunikace specifikovat průběžně, takže velikost inzerovaného okna je dynamická. Každé potvrzení, které specifikuje počet přijatých oktetů, zároveň obsahuje informaci, kolik dalších oktetů je příjemce připraven akceptovat (např. podle aktuální velikosti pamětí), takže vysílající strana pak upraví (zvětší/zmenší) velikost svého vysílajícího okna (ovšem tak, aby zůstala konzistentní vzhledem k předchozí poloze). TCP odpovídá na zahlcení sítě (ztráty paketů) dynamicky snížením velikosti okna vysílání, čímž se sníží propustnost. Poté postupně zvyšuje velikost okna do původní hodnoty, pokud opět nedojde ke ztrátě dat.
Počítačové sítě I.
4 (6)
KST/IPS1
UDP UDP je nespojový (connectionless) protokol, nepřináší vlastnosti spolehlivosti přenosu, řízení toku nebo funkcí opravy chyb • hlavička protokolu UDP obsahu menší množství informací než hlavička TCP a tím má tento protokol menší režii, • protože UDP nemá žádné mechanismy pro dorozumívání se obou komunikujících stran je přenos rychlejší než v případě TCP. Hlavička UDP
Obrázek 3 Hlavička UDP Source port - port procesu generujícího datagram; pokud proces nepodporuje zdrojový port, může toto pole zůstat 0, Destination port - určuje kterému procesu na cílovém uzlu jsou data určena, Length - vyjadřuje délku UDP hlavičky a dat vyjádřenou v oktetech. Checksum - kontrolní součet, není povinný a v tom případě je 0.
Shrnutí kapitoly V této kapitole byla popsány další protokoly –TCP a UDP. Zmínili jsme rozdíl mezi spojovanými a nespojovanými síťovými službami.
Otázky na procvičení: 1. 2. 3. 4.
Kterou vrstvu reprezentují segmenty? Jaké jsou charakteristické funkce síťové vrstvy? Vyjmenujte nejznámější well known porty. Která vrstva zajišťuje segmentaci a opětovné sestavení dat do datového proudu?
: Počítačové sítě I.
5 (6)
KST/IPS1
Literatura [1]
LAMMLE, Todd. CCNA: výukový průvodce přípravou na zkoušku 640802. Vyd. 1. Brno: Computer Press, 2010, 928 s. ISBN 978-802-5123591.
[2]
Cisco Systems, Inc [online]. 2012 [cit. 2012-04-26]. Dostupné z: http://www.cisco.com/.
[3]
PUŽMANOVÁ, Rita. TCP/IP v kostce. 2. upr. a rozš. vyd. České Budějovice: Kopp, 2009, 619 s. ISBN 978-80-7232-388-3.
Počítačové sítě I.
6 (6)
KST/IPS1