Počítačové sítě Transportní vrstva Rozhraní služeb Transportní vrstva UDP TCP ICMP IGMP OSPF Rozhraní protokolů 17 6 01 02 89 SAP IP Síťová vrstva ARP RARP Rozhraní přístupu k I/O Ethernet driver Vrstva síťového rozhraní
Uživatel transportní služby Systém B Uživatel transportní služby Systém A Uživatel transportní služby Systém B Uživatel transportní služby Aplikační vrstva DATA DATA Služby poskytované uživateli transportu dat Transportní entita transport dat Transportní entita Transportní vrstva DATA Služby požadované od síťové vrstvy DATA Síťová 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 Aplikační protokol 2 Aplikační protokol 4 Aplikační protokol 6 Aplikační protokol 7 Aplikační protokol 1 Aplikační protokol 3 Aplikační protokol 5 porty UDP TCP IP
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 spotřebitelem 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., jinak k disposici operačním systémům (přidělování procesům typu „klient“ – spotřebitelům síťových služeb) – porty alokované
Počítačové sítě Transportní vrstva Klient Server 1025 1028 23 X Y Z A B Servery používají „well-known“ porty, na kterých očekávají („naslouchají“) inicializační zprávy klienta. Typicky – procesy daemon v OS UNIX Klienti používají alokované – systémem dočasně přidělené porty
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) UDP záhlaví UDP data Checksum – kontrolní součet UDP paketu + UDP pseudozáhlaví Zdrojový port Délka paketu Checksum Cílový port 0 15 16 31 0 15 16 31 Zdrojová IP adresa Cílová IP adresa Protokol Délka paketu
Počítačové sítě Transportní vrstva UDP paket v IP datagramu typicky je jeden UDP paket vysílán v jednom IP datagramu 20B 8B IP záhlaví UDP záhlaví UDP data (PDU aplikačního protokolu)
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 HTTP DNS RIP TELNET FTP SMTP SNMP RTP porty UDP TCP IP
Počítačové sítě Transportní vrstva Formát TCP záhlaví 0 15 16 31 Zdrojový port Cílový port Pořadové číslo – Sequence Number Pořadové číslo potvrzení – Acknowledgement Number Offset --- Řídící bity Window Size Checksum Urgent Pointer TCP volby (Options) TCP data
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 „slovech“ - 4 oktety)
Počítačové sítě Transportní vrstva Řídící bity – Flags 10 15 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) Řídící bity URG ACK PSH RST SYN FIN
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) Window Scale Factor (3, 3) – umožní zvětšení velikosti „plovoucího okna“ (65 535 x 214 ) Timestamp (8, 10) – nastavení časových známek na každý přenášený segment – pro měření RTT Typ Délka Data
Počítačové sítě Transportní vrstva TCP spojení: socket A socket B Příklad: 195.178.78.10.22 - 195.178.80.140.10500 služba SSH: server 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 spojení (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
TCP/UDP aplikace aplikace TCP/UDP TCP TCP UDP UDP server X klient X server Y server Z TCP klient Z Porty Well-known alokovaný klient Y klient W server J server K UDP UDP klient K klient J
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í Klient Server LISTEN (passive open) (active open) SYN_SENT SYN seq J SYN_RCVD SYN seq K, ack J+1 ESTABISHED ack K+1, seq J + 1
Počítačové sítě Transportní vrstva Klient Server Klient Server ESTABISHED ESTABISHED seq K+1 ack J+1 seq 2 ack 1 S A 1 3 2 . 3 . 4 4 5 5 seq J+1 ack K+2 S A 3 2 4 3 5 4 seq K+2 ack J+2 seq J+2 ack K+3 Jednoduché potvrzování Řízení „Sliding Window“ (= 3)
Počítačové sítě Transportní vrstva Stavy TCP spojení při normálním průběhu uzavírání Klient Server (active close) FIN_WAIT_1 CLOSE_WAIT (passive close) FIN seq M ack M+1 ack N+1 FIN seq N TIME_WAIT LAST_ACK CLOSED FIN_WAIT_2
Počítačové sítě Transportní vrstva Přechodový diagram stavů TCP spojení