Počítačové sítě Transportní vrstva
Počítačové sítě Transportní vrstva
Počítačové sítě Transportní vrstva Transportní vrstva poskytuje službu aplikační vrstvě. Je nejnižší vrstvou, na kterou se odvolávají síťové aplikace (uživatelské a systémové). Transportní služba – sekvenční přenos dat mezi komunikujícími procesy. Vytváří současně více paralelních transportních spojení Transportní vrstva zahrnuje 2 transportní protokoly: UDP (User Datagram Protocol) TCP (Transmission Control Protocol) Transportní protokoly jsou prostředkem, kterým se zajistí pro uživatelskou aplikaci spojení dvou počítačů v IP síti.
Počítačové sítě Transportní vrstva Přístup k transportní vrstvě z vrstvy aplikační (rozhraní služeb) - multiplexing transportních služeb a IP služby
Počítačové sítě Transportní vrstva Rozhraní SAP mezi aplikační a transportní vrstvou – rozhraní služeb – identifikace aplikačního protokolu, který bude transportní službu používat . Číslo portu – 16 bitová proměnná. Port – SAP transportní vrstvy – „vstup“ do user-end systému Ze strany user-end systému je port schránka na obsah. transportního PDU – číslo portu určuje proces, který generuje data (směr „out“) nebo je příjemcem dat (směr „in). Soket (socket) – IP adresa user-end systému + číslo portu – jednoznačný identifikátor poskytovatele/spotřebitele transportovaných dat v internetu (tj. síťového procesu).
Počítačové sítě Transportní vrstva Číslo portu – dekadické vyjádření 1 – 65535 Adresový prostor portů spravuje IANA (Internet Assigned Numbers Authority) – pevně dané hodnoty pro poskytovatele určitých síťových služeb (tj. procesy typu „server“) Oblast 1 – 1023 – „well-known“ porty pro známé síťové služby Oblast 1024 – 65635 možná registrace (pro firemní vývoj, použití apod.) k disposici operačním systémům pro přidělování procesům typu „klient“– porty dočasně alokované
Počítačové sítě Transportní vrstva
Počítačové sítě Transportní vrstva - protokoly Protokol UDP Služba nespojovaná (connection-less) – nespolehlivá, transport nelze řídit Velmi efektivní – rychlá, malá provozní režie Používá se pro aplikace s malým objemem přenášených dat (zprávy se stanovenou velikostí apod.) pro aplikace vyžadujících broadcast nebo multicast pro aplikace, které si správnost datových přenosů samy zabezpečí
Počítačové sítě Transportní vrstva Typický spotřebitel transportní služby UDP - programy pro systémové síťové služby šíření směrovacích informací – implementace protokolu RIP šíření systémových hodin – implementace protokolu NTP překlady doménových jmen – implementace protokolu DNS správa IP sítí – implementace protokolu SNMP aj.
Počítačové sítě Transportní vrstva - protokol UDP Formát PDU protokolu UDP - UDP datagram (UDP paket
Počítačové sítě Transportní vrstva UDP paket v IP datagramu Typicky je jeden UDP paket vysílán v jednom IP datagramu 20 B
Počítačové sítě Transportní vrstva Protokol TCP Služba spojovaná (connection- oriented), spolehlivá Typ služby - PAR (Positive Acknowledgement with Retransmission) Zajistí doručení datových segmentů ve stejném pořadí, v jakém byly odeslány s vyloučením ztráty, bitové nesprávnosti a duplicity Vytvoří mezi komunikujícími procesy (jejich porty) virtuální osmibitový full-duplex komunikační kanál Pojem: TCP spojení – dvojice komunikujících soketů
Počítačové sítě Transportní vrstva Typicky používají transportní službu TCP uživatelské síťové aplikace (přenos souborů mezi síťovými uzly – FTP, relace přes síťový terminál – TELNET, přístup ke zdrojům systému WWW – HTTP, předávání elektronických poštovních zpráv –SMTP, atd.) Komunikace mezi procesy probíhá ve fázích vytvoření spojení řízený přenos proudu dat (sekvence datových segmentů) s eventuálním opakovaném odesláním nekorektně přijatých segmentů ukončení spojení
Počítačové sítě Transportní vrstva Přístup k transportní vrstvě z vrstvy aplikační – rozhraní služeb Multiplexing transportních služeb a IP služby
Počítačové sítě Transportní vrstva Formát TCP záhlaví
Počítačové sítě Transportní vrstva Sequence Number (SN) Je-li nastaven flag SYN, potom je SN počáteční číslo sekvence (ISN – Initial Sequence Number) Není-li nastaven flag SYN, potom je SN pořadové číslo prvního datového oktetu v segmentu (vzhledem k celé sekvenci přenášených dat v rámci tohoto TCP spojení) Acknowledgement Number (ACKN) – potvrzovací číslo – musí být vysíláno během celého TCP spojení – představuje SN následujícího segmentu (tj. který je očekáván) (viz protokol Positive Acknowledgement with Retransmission) Data Offset (délka záhlaví) - počátek dat (udáváno ve 32 bitových „slovech“ - 4 oktety)
Počítačové sítě Transportní vrstva Řídící bity – Flags CWR (Congestion Window Reduced) a ECE (Explicit Congestion Notification) – bity pro řízení zahlcení TCP spojení URG – určuje platnost pole URGENT POINTER ACK - určuje platnost pole ACKN PSH – oznamuje, že segment obsahuje data, která se mají bezprostředně předat cílovému procesu RST – vyvolá reset TCP spojení SYN – iniciuje TCP spojení, vyvolá proces synchronizace, tj. výměnu SN obou stran FIN – iniciuje ukončovací proces TCP spojení (zpravidla v případě konce sekvence dat)
Počítačové sítě Transportní vrstva Window Size – určuje velikost „Sliding Window“ – max. 65535 (počet oktetů, které je možno přenést bez ACK) Checksum – kontrolní součet (včetně TCP pseudozáhlaví – viz. UDP pseudozáhlaví) Urgent Pointer – specifikuje offset posledního oktetu urgentních dat (spolu s řídícím bitem URG) TCP volby – pole proměnné délky (dorovnává se na hranici 2 oktetů) Maximum segment size (2, 4) – udává maximální možnou velikost segmentu přenášeného v rámci TCP spojení (max. 65535 B) – na začátku spojení (SYN) Window Scale Factor (3, 3) – umožní zvětšení velikosti „plovoucího okna“ (65 535 x 214 ) - na začátku spojení (SYN) Timestamp (8, 10) – nastavení časových známek na každý přenášený segment – pro měření RTT
Počítačové sítě Transportní vrstva TCP spojení: Příklad: SSH server - SSH klient TCP spojení – dynamický objekt v definovaném stavu Stav TCP spojení určuje jeho předchozí stav a časově závislá událost: předání řídící informace (TCP protokol) příkaz aplikace (požadavek na spuštění služby, požadavek na přenos dat aplikace, požadavek na ukončení přenosu dat aplikace) V OS Unix TCP spojení obsluhuje jádro Parametr jádra – maximální počet otevřených TCP spojení Tabulky TCP spojení (datové struktury) – utilita netstat Socket A – Socket B 195.178.78.10.22 - 195.178.80.140.10500
Počítačové sítě Transportní vrstva Aplikace TCP/UDP Aplikace TCP/UDP
Počítačové sítě Transportní vrstva Mechanismy řízení TCP spojení Synchronizace komunikujících stran –ve fázi inicializace (otevírání) TCP spojení si strany vymění svá počáteční sekvenční čísla (ISN – Initial Sequence Number). Posloupnost přijímaných segmentů TCP PDU (segmentů) – PAR – strana potvrzuje korektní přijetí předchozích segmentů pořadovým číslem segmentu následujícího, tzn. ackB = seqA + 1 a seqB = ackA – 1 Řízení toku – zamezení zahlcení virtuálního kanálu – metoda Sliding Window – postupné zvyšování velikosti – strana přijímací data aplikace určuje maximum – při velikosti okna = 0 spojení zůstává otevřené
Počítačové sítě Transportní vrstva Stavy TCP spojení při normálním průběhu otevírání
Počítačové sítě Transportní vrstva
Počítačové sítě Transportní vrstva
Přechodový diagram stavů TCP spojení
Počítačové sítě Transportní vrstva Synchronizace TCP spojení a řízení toku prostřednictvím Window Size
Počítačové sítě Transportní vrstva TCP/IP Guide http://www.tcpipguide.com/free/t_toc.htm Program pro výpis informací o stavu síťového subsystému v operačním systému počítače – netstat netstat –u vypíše seznam UDP spojení netstat –t vypíše seznam TCP spojení netstat –l vypíše seznam naslouchajících portů ……