Počítačové sítě L5 – L7 PB002: Základy informačních technologií Eva Hladká Slidy připravil: Eva Hladká a Tomáš Rebok Fakulta informatiky Masarykovy univerzity podzim 2011 Eva Hladká (FI MU) Počítačové sítě L5 – L7 podzim 2011 1 / 46 Struktura přednášky 1 Přehled 2 Úvod 3 Poskytované služby Adresace na L4 Řízení spojení – spojované vs. nespojované L4 služby 4 UDP protokol 5 TCP protokol Poskytované služby Hlavička segmentů Well-known TCP aplikace Správa spojení Varianty TCP 6 Rekapitulace 7 L5. Relační vrstva Přehled Úvod Služby Závěr 8 L6. Prezentační vrstva Přehled Úvod Závěr Eva Hladká (FI MU) Počítačové sítě L5 – L7 podzim 2011 2 / 46 Přehled Struktura přednášky 1 Přehled 2 Úvod 3 Poskytované služby Adresace na L4 Řízení spojení – spojované vs. nespojované L4 služby 4 UDP protokol 5 TCP protokol Poskytované služby Hlavička segmentů Well-known TCP aplikace Správa spojení Varianty TCP 6 Rekapitulace 7 L5. Relační vrstva Přehled Úvod Služby Závěr 8 L6. Prezentační vrstva Přehled Úvod Závěr Eva Hladká (FI MU) Počítačové sítě L5 – L7 podzim 2011 3 / 46 Přehled L4. Transportní vrstva – Přehled Proč nestačí L3? nemožnost identifikovat aplikaci, které jsou data určena na každém uzlu by tak mohla běžet maximálně jedna aplikace neřeší defekty sítě (ztrátu/znásobení datagramu, zahlcení sítě, atp.) Co nás nyní čeká. . . představení L4, poskytované služby mechanismy zajištění spolehlivého přenosu protokoly UDP, TCP Eva Hladká (FI MU) Počítačové sítě L5 – L7 podzim 2011 4 / 46 Přehled L4 z pohledu sítě – kde se pohybujeme? komunikace konkrétních aplikací (identifikovány transportní vrstvou) na konkrétních uzlech sítě (identifikovány síťovou vrstvou) na uzlech tak může běžet více služeb možnosti zajištění spolehlivého přenosu nad nespolehlivou (best-effort) IP sítí Eva Hladká (FI MU) Počítačové sítě L5 – L7 podzim 2011 5 / 46 Úvod Struktura přednášky 1 Přehled 2 Úvod 3 Poskytované služby Adresace na L4 Řízení spojení – spojované vs. nespojované L4 služby 4 UDP protokol 5 TCP protokol Poskytované služby Hlavička segmentů Well-known TCP aplikace Správa spojení Varianty TCP 6 Rekapitulace 7 L5. Relační vrstva Přehled Úvod Služby Závěr 8 L6. Prezentační vrstva Přehled Úvod Závěr Eva Hladká (FI MU) Počítačové sítě L5 – L7 podzim 2011 6 / 46 Úvod Úvod I. transportní vrstva: poskytuje služby pro aplikační vrstvu: přijímá data odesílací aplikace, které transformuje do segmentů přijaté segmenty pak předává cílové aplikaci ve spolupráci se síťovou vrstvou zajišťuje doručení dat (segmentů) mezi komunikujícími aplikacemi/procesy s případným zajištěním spolehlivosti přenosu poskytuje jim logický komunikační kanál iluze fyzického propojení (přímého komunikačního kanálu) tzv. process-to-process delivery nejnižší vrstva poskytující tzv. end-to-end služby hlavičky generované na straně odesílatele jsou interpretovány „jen na straně příjemce směrovače vidí data transportní vrstvy jako payload přenášených paketů Eva Hladká (FI MU) Počítačové sítě L5 – L7 podzim 2011 7 / 46 Úvod Úvod II. Obrázek: Formy komunikace. Eva Hladká (FI MU) Počítačové sítě L5 – L7 podzim 2011 8 / 46 Poskytované služby Struktura přednášky 1 Přehled 2 Úvod 3 Poskytované služby Adresace na L4 Řízení spojení – spojované vs. nespojované L4 služby 4 UDP protokol 5 TCP protokol Poskytované služby Hlavička segmentů Well-known TCP aplikace Správa spojení Varianty TCP 6 Rekapitulace 7 L5. Relační vrstva Přehled Úvod Služby Závěr 8 L6. Prezentační vrstva Přehled Úvod Závěr Eva Hladká (FI MU) Počítačové sítě L5 – L7 podzim 2011 9 / 46 Poskytované služby Služby Tvorba paketů (Packetizing) aplikací zaslaná data transformována na pakety (s přidanou transportní hlavičkou) Řízení spojení (Connection Control) spojované (connection-oriented) a nespojované (connectionless) služby Adresace (Addressing) adresy entit transportní vrstvy (= síťových aplikací/služeb) – tzv. porty pakety obsahují zdrojový a cílový port (identifikaci zdrojové a cílové aplikace) aplikace tak jsou v síti jedinečně identifikovány dvojicí IP adresa:port Zajištění spolehlivosti přenosu (Reliability) řízení toku (Flow Control) a řízení chyb (Error Control) na nižších vrstvách poskytováno node-to-node, zde end-to-end zajištění spolehlivosti nad best-effort službou (IP) Řízení zahlcení sítě (Congestion Control) a zajištění kvality služby (Quality of Service, QoS) Eva Hladká (FI MU) Počítačové sítě L5 – L7 podzim 2011 10 / 46 Poskytované služby Adresace na L4 Adresace na L4 I. adresy na L4 – čísla portů (ports, port numbers) ≈ adresy služeb identifikují odesílací aplikaci na zdrojovém uzlu (identifikován IP adresou) identifikují přijímající aplikaci na cílovém uzlu (identifikován IP adresou) identifikace portu 16bitovým číslem rozsah 0 − 65535 Eva Hladká (FI MU) Počítačové sítě L5 – L7 podzim 2011 11 / 46 Poskytované služby Řízení spojení – spojované vs. nespojované L4 služby Řízení spojení – spojované vs. nespojované L4 služby Spojované služby na začátku přenosu ustaveno spojení (udržováno po celou dobu přenosu dat) pakety jsou číslovány jejich doručení/nedoručení je explicitně potvrzováno Nespojované služby pakety zasílány cílové aplikaci bez ustaveného spojení pakety nejsou číslovány (⇒ nejsou ani potvrzovány) mohou se ztratit, dorazit se zpožděním, dorazit mimo pořadí, atp. Eva Hladká (FI MU) Počítačové sítě L5 – L7 podzim 2011 12 / 46 UDP protokol Struktura přednášky 1 Přehled 2 Úvod 3 Poskytované služby Adresace na L4 Řízení spojení – spojované vs. nespojované L4 služby 4 UDP protokol 5 TCP protokol Poskytované služby Hlavička segmentů Well-known TCP aplikace Správa spojení Varianty TCP 6 Rekapitulace 7 L5. Relační vrstva Přehled Úvod Služby Závěr 8 L6. Prezentační vrstva Přehled Úvod Závěr Eva Hladká (FI MU) Počítačové sítě L5 – L7 podzim 2011 13 / 46 UDP protokol UDP protokol User Datagram Protocol (UDP) nejjednodušší transportní protokol poskytující nespojovanou a nespolehlivou (= nezajištěnou) službu poskytuje best-effort službu ke službám IP vrstvy přidává pouze process-to-process komunikaci a jednoduchou kontrolu chyb případné zajištění spolehlivosti přenosu je na aplikaci hlavní přednosti: jednoduchost, minimální režie žádná nutnost ustavení spojení (přináší zpoždění na začátku přenosu) žádná nutnost uchovávání stavových informací na komunikujících stranách malá hlavička Eva Hladká (FI MU) Počítačové sítě L5 – L7 podzim 2011 14 / 46 UDP protokol UDP protokol – hlavička paketů zdrojový port (source port) – identifikace odesílací služby/aplikace cílový port (destination port) – identifikace přijímající služby/aplikace délka UDP paketu (length) – celková délka UDP paketu kontrolní součet (checksum) – kontrolní součet UDP paketu (hlavička + data) Eva Hladká (FI MU) Počítačové sítě L5 – L7 podzim 2011 15 / 46 UDP protokol UDP protokol – vybrané aplikace procesy vyžadující jednoduchou komunikaci stylu „dotaz – odpověď např. služba DNS (Domain Name Service) procesy/protokoly s interním řízením toku a kontrolou chyb např. protokol TFTP (Trivial File Transport Protocol) real-time přenosy např. multimediální přenosy, přenosy pro haptickou interakci často ve spolupráci s protokolem RTP (Real Time Transport Protocol) multicastové přenosy aktualizace směrovacích tabulek RIP protokolem atd. atd. Eva Hladká (FI MU) Počítačové sítě L5 – L7 podzim 2011 16 / 46 TCP protokol Struktura přednášky 1 Přehled 2 Úvod 3 Poskytované služby Adresace na L4 Řízení spojení – spojované vs. nespojované L4 služby 4 UDP protokol 5 TCP protokol Poskytované služby Hlavička segmentů Well-known TCP aplikace Správa spojení Varianty TCP 6 Rekapitulace 7 L5. Relační vrstva Přehled Úvod Služby Závěr 8 L6. Prezentační vrstva Přehled Úvod Závěr Eva Hladká (FI MU) Počítačové sítě L5 – L7 podzim 2011 17 / 46 TCP protokol TCP protokol Transmission Control Protocol (TCP) transportní protokol poskytující spojovanou a plně spolehlivou (= zajištěnou) službu pokud je to možné, odeslaná data budou přijímající aplikaci doručena kompletní a ve správném pořadí oproti UDP orientován na přenos proudu bytů (UDP orientováno na přenos bloků dat) před začátkem přenosu nutnost ustavení spojení mezi odesílací a přijímající stranou tzv. handshake před začátkem přenosu zahrnuje výměnu všech potřebných parametrů spojení rozeznatelné jen na koncových uzlech (end-to-end služba) směrovače tato spojení „nevidí ustavené spojení možno využít pro plně duplexní komunikaci řídící data přibalována do dat jdoucích opačným směrem (piggybacking) spojení může být pouze dvoubodové (point-to-point) komunikace mezi více partnery (ala multicast) není podporována multiplexing/demultiplexing a detekce chyb stejné jako v UDP Eva Hladká (FI MU) Počítačové sítě L5 – L7 podzim 2011 18 / 46 TCP protokol Poskytované služby TCP protokol – poskytované služby Přenos proudu bytů přenos dat v rámci UDP: aplikace předává bloky dat, které UDP opatřuje hlavičkou a předává síťovému protokolu (např. IP) přenos dat v rámci TCP: aplikace předává TCP protokolu proud bytů, ktere TCP segmentuje, opatřuje hlavičkou a předává síťovému protokolu aplikacím poskytuje iluzi roury, která přenáší jejich data Eva Hladká (FI MU) Počítačové sítě L5 – L7 podzim 2011 19 / 46 TCP protokol Poskytované služby TCP protokol – poskytované služby Segmentace dat aplikace TCP protokolu předává proud bytů síťová vrstva (IP protokol) očekává bloky dat ⇒ nutnost tvorby bloků dat (segmentů) velikost segmentů omezena hodnotou Maximum Segment Size (MSS) definováno implementací TCP / operačním systémem identifikuje maximální velikost uživatelských dat v segmentu (ne velikost celého segmentu) segmenty následně opatřeny TCP hlavičkou a předány síťovému protokolu Eva Hladká (FI MU) Počítačové sítě L5 – L7 podzim 2011 20 / 46 TCP protokol Poskytované služby TCP protokol – poskytované služby Segmentace dat – číslování segmentů číslovány nejsou bloky dat (segmenty), ale jednotlivé přenášené bajty každý aplikací předaný bajt je opatřen číslem začátek náhodně zvolený; inkrementováno po 1 sekvenční číslo přenášeného TCP segmentu je pak číslo prvního bajtu přenášeného daným segmentem Příklad: Přenos souboru o velikosti 6000 bajtů. První bajt očíslován jako 10010. Poslední segment přenáší 2000 bajtů, ostatní 1000 bajtů. Eva Hladká (FI MU) Počítačové sítě L5 – L7 podzim 2011 21 / 46 TCP protokol Hlavička segmentů TCP protokol – hlavička segmentů I. Eva Hladká (FI MU) Počítačové sítě L5 – L7 podzim 2011 22 / 46 TCP protokol Hlavička segmentů TCP protokol – hlavička segmentů II. zdrojový port (source port) – identifikace odesílací služby/aplikace cílový port (destination port) – identifikace přijímající služby/aplikace sekvenční číslo (sequence number) – sekvenční číslo segmentu číslo potvrzovaného segmentu (acknowledgement number) číslo bajtu, který přijímající strana očekává jako následující piggybacking délka hlavičky (header length) – délka TCP hlavičky ve 4B slovech rezervovaná pole (reserved) Eva Hladká (FI MU) Počítačové sítě L5 – L7 podzim 2011 23 / 46 TCP protokol Hlavička segmentů TCP protokol – hlavička segmentů III. řídící data (control) – 6 bitů identifikujících nejrůznější řídící informace velikost okna (window size) – velikost okna, které musí komunikující strana spravovat určeno pro účely řízení toku (viz dále) kontrolní součet (checksum) – kontrolní součet TCP segmentu (hlavička + data) urgentní data (urgent pointer) – zasílání dat mimo pořadí volby (options) Eva Hladká (FI MU) Počítačové sítě L5 – L7 podzim 2011 24 / 46 TCP protokol Well-known TCP aplikace Well-known TCP aplikace Eva Hladká (FI MU) Počítačové sítě L5 – L7 podzim 2011 25 / 46 TCP protokol Správa spojení Správa spojení – ustavení spojení full-duplexní přenos ⇒ obě strany musí iniciovat spojení mechanismus známý jako třícestný handshake (three-way handshake) Eva Hladká (FI MU) Počítačové sítě L5 – L7 podzim 2011 26 / 46 TCP protokol Správa spojení Správa spojení – ukončení spojení iniciováno jednou z komunikujících stran spojení musí být uzavřeno oběma stranami Eva Hladká (FI MU) Počítačové sítě L5 – L7 podzim 2011 27 / 46 TCP protokol Správa spojení TCP mechanismy pro řízení množství zasílaných dat TCP řídí množství zasílaných dat tak, aby: zabránilo zahlcení příjemce = řízení toku (Flow Control) zabránilo zahlcení sítě = řízení zahlcení (Congestion Control) Množství dat, které je možno zaslat do sítě je definováno: velikostí okna příjemce (řízení toku) velikostí tzv. okna zahlcení (congestion window) (řízení zahlcení) na straně odesílatele množství skutečně vysílaných dat ohraničeno menší hodnotou z obou jmenovaných Eva Hladká (FI MU) Počítačové sítě L5 – L7 podzim 2011 28 / 46 TCP protokol Správa spojení Flow Control vs. Congestion Control Eva Hladká (FI MU) Počítačové sítě L5 – L7 podzim 2011 29 / 46 TCP protokol Varianty TCP Varianty TCP I. postupem doby navrženo několik variant TCP protokolu rozdílné „jen v mechanismu odhadu dostupné kapacity sítě obecně: snaha o co nejrychlejší nárůst rychlosti ke hranici dostupné kapacity a o co nejdelší setrvání na ní při zachování férovosti k ostatním proudům např. TCP Tahoe TCP Reno TCP Vegas TCP NewReno TCP Hybla TCP BIC TCP CUBIC Compound TCP atp. Eva Hladká (FI MU) Počítačové sítě L5 – L7 podzim 2011 30 / 46 TCP protokol Varianty TCP Varianty TCP II. – TCP Tahoe cwnd = cwnd + MSS . . . za každý potvrzený segment cwnd = cwnd + MSS . . . za každý RTT bez výpadku nad hranicí ssthresh ssthresh = 0.5 · cwnd cwnd = MSS . . . pro každý výpadek Eva Hladká (FI MU) Počítačové sítě L5 – L7 podzim 2011 31 / 46 TCP protokol Varianty TCP Varianty TCP III. – TCP Reno v podstatě totéž, co TCP Tahoe, avšak cwnd = ssthresh . . . pro každý výpadek po výpadku se vynechává slow-start fáze Eva Hladká (FI MU) Počítačové sítě L5 – L7 podzim 2011 32 / 46 TCP protokol Varianty TCP Varianty TCP IV. – TCP Vegas proaktivní varianta TCP založeno na myšlence, že při začínajícím zahlcení sítě se prodlužuje RTT (vzrůstají velikosti front) RTT je v průběhu spojení monitorován v případě zvyšování RTT je cwnd lineárně zmenšováno Eva Hladká (FI MU) Počítačové sítě L5 – L7 podzim 2011 33 / 46 Rekapitulace Struktura přednášky 1 Přehled 2 Úvod 3 Poskytované služby Adresace na L4 Řízení spojení – spojované vs. nespojované L4 služby 4 UDP protokol 5 TCP protokol Poskytované služby Hlavička segmentů Well-known TCP aplikace Správa spojení Varianty TCP 6 Rekapitulace 7 L5. Relační vrstva Přehled Úvod Služby Závěr 8 L6. Prezentační vrstva Přehled Úvod Závěr Eva Hladká (FI MU) Počítačové sítě L5 – L7 podzim 2011 34 / 46 Rekapitulace Rekapitulace – transportní vrstva zajišťuje komunikaci konkrétních aplikací s volitelnou spolehlivostí přenosu protokol UDP pro rychlý, avšak nespolehlivý paketový přenos pouze kontrola neporušenosti paketu kontrolním součetem protokol TCP pro zcela spolehlivý proudový přenos dat spolehlivost přenosu zajištěna opakovaným přeposíláním (ARQ mechanismy) mechanismus pro řízení toku (zábrana zahlcení příjemce) – explicitní informace od příjemce mechanismus pro řízení zahlcení (zábrana zahlcení sítě) – odhady dostupné kapacity sítě (algoritmus AIMD) další informace: PA159: Počítačové sítě a jejich aplikace I. (doc. Hladká) PA160: Počítačové sítě a jejich aplikace II. (prof. Matyska) Eva Hladká (FI MU) Počítačové sítě L5 – L7 podzim 2011 35 / 46 L5. Relační vrstva Struktura přednášky 1 Přehled 2 Úvod 3 Poskytované služby Adresace na L4 Řízení spojení – spojované vs. nespojované L4 služby 4 UDP protokol 5 TCP protokol Poskytované služby Hlavička segmentů Well-known TCP aplikace Správa spojení Varianty TCP 6 Rekapitulace 7 L5. Relační vrstva Přehled Úvod Služby Závěr 8 L6. Prezentační vrstva Eva Hladká (FI MU) Počítačové sítě L5 – L7 podzim 2011 36 / 46 L5. Relační vrstva Přehled L5. Relační vrstva – Přehled Hlavní úkoly správa relací (tzv. dialogů) Eva Hladká (FI MU) Počítačové sítě L5 – L7 podzim 2011 37 / 46 L5. Relační vrstva Úvod Úvod I. L1 – L4 orientovány spíše na vlastní přenos dat mezi počítači (koncovými uzly) vyšší vrstvy se orientují na potřeby síťových aplikací Relační vrstva: relace (též dialog): spojení mezi dvěma koncovými účastníky na úrovni bezprostředně vyšší, než je vrstva transportní analogie telefonního hovoru 1 je potřeba jej vytočit = analogie transportního spojení 2 pak je možné jeho prostřednictvím vést hovor (= relaci) dvou účastníků každé spojení obvykle zajišťováno prostřednictvím jednoho transportního spojení ne nutně, jedno transportní spojení může zajišťovat dvě nebo více po sobě jdoucích relací případně více transportních spojení může zajišťovat jednu relaci Eva Hladká (FI MU) Počítačové sítě L5 – L7 podzim 2011 38 / 46 L5. Relační vrstva Služby Relační vrstva – Služby I. Řízení dialogu – řízení dialogu mezi oběma koncovými účastníky (která aplikace smí vysílat) obecně 3 možnosti vedení dialogu plně duplexní (v terminologii RM ISO/OSI: TWS resp. Two-Way-Simultaneous) poloduplexní (TWA resp. Two-Way-Alternate) simplexní (One-Way) poloduplexní režim řízen prostřednictvím mechanismu předávání pověření k přenosu dat (data token) Eva Hladká (FI MU) Počítačové sítě L5 – L7 podzim 2011 39 / 46 L5. Relační vrstva Služby Relační vrstva – Služby II. Synchronizace (též checkpointing) situace: příjemcem dat je počítač, který přijatá data tiskne na tiskárně dojde k dočasné poruše tiskárny (např. zaseklý papír) příjemce může přijít o určitý objem dat, které jinak v pořádku přijal (tj. které byly transportní vrstvou bezchybně doručeny) – je potřeba vrátit se „o kousek zpět a ztracená data přenést znovu řešeno mechanismem kontrolních bodů (synchronization points, checkpoints) příjemci umožňují, aby si na vysílajícím vyžádal návrat k zadanému kontrolnímu bodu (nové vyslání dat) zavedeny dva druhy kontrolních bodů – hlavní (major) a vedlejší (minor) Eva Hladká (FI MU) Počítačové sítě L5 – L7 podzim 2011 40 / 46 L5. Relační vrstva Závěr Relační vrstva – Závěr relační vrstva ISO/OSI není v TCP/IP modelu uplatněna TCP/IP nabízí pouze přenosové služby na úrovni transportní vrstvy potřebuje-li některá aplikace služby obecnějšího charakteru (ala relační vrstva), musí si je realizovat sama příklady „protokolů relační vrstvy : SSL, Secure Sockets Layer SDP, Sockets Direct Protocol RPC, Remote Procedure Call Protocol NetBIOS, Network Basic Input Output System H.245, Call Control Protocol for Multimedia Communication ASP, AppleTalk Session Protocol Eva Hladká (FI MU) Počítačové sítě L5 – L7 podzim 2011 41 / 46 L6. Prezentační vrstva Struktura přednášky 1 Přehled 2 Úvod 3 Poskytované služby Adresace na L4 Řízení spojení – spojované vs. nespojované L4 služby 4 UDP protokol 5 TCP protokol Poskytované služby Hlavička segmentů Well-known TCP aplikace Správa spojení Varianty TCP 6 Rekapitulace 7 L5. Relační vrstva Přehled Úvod Služby Závěr 8 L6. Prezentační vrstva Eva Hladká (FI MU) Počítačové sítě L5 – L7 podzim 2011 42 / 46 L6. Prezentační vrstva Přehled L6. Prezentační vrstva – Přehled Hlavní úkoly. . . konverze přenášených dat do jednotného formátu Eva Hladká (FI MU) Počítačové sítě L5 – L7 podzim 2011 43 / 46 L6. Prezentační vrstva Úvod Úvod I. na různých architekturách odlišnosti ve vnitřní/interní reprezentaci dat (kódování znaků, čísel, atp.) EBCDIC kód (střediskové počítače firmy IBM) vs. ASCII kód pro kódování znaků jedničkový doplňkový kód (CBC Cyber) vs. dvojkový doplňkový kód (většina ostatních PC) pro reprezentaci celých čísel Little Endian (mikropočítače Intel, PDP-11) vs. Big Endian (počítače řady IBM 360/370, mikroprocesory firmy Motorola) nutnost jednotné interpretace dat na obou komunikujících stranách = úkol Prezentační vrstvy 2 základní možnosti jejího dosažení: vzájemné přímé přizpůsobení stylu „každý s každým (v závislosti na komunikujícím partnerovi) převod do společného „mezitvaru Eva Hladká (FI MU) Počítačové sítě L5 – L7 podzim 2011 44 / 46 L6. Prezentační vrstva Úvod Úvod III. prezentační vrstva předpokládá alternativu se společným mezitvarem pro popis přenášených dat využit jazyk ASN.1 (Abstract Syntax Notation version 1) aplikace prezentační vrstvě předává data + jejich popis v jazyce ASN.1 nutnost domluvy na vzájemném kontextu definuje, jaké struktury budou přenášeny a jaká bude jejich přenosová syntaxe viz obrázek další možné služby prezentační vrstvy: šifrování a komprese dat Eva Hladká (FI MU) Počítačové sítě L5 – L7 podzim 2011 45 / 46 L6. Prezentační vrstva Závěr Prezentační vrstva – Závěr v TCP/IP modelu se předpokládá, že úkoly prezentační vrstvy si zajistí sama aplikace příklady „protokolů prezentační vrstvy : AFP, Apple Filing Protocol ASCII, American Standard Code for Information Interchange EBCDIC, Extended Binary Coded Decimal Interchange Code LPP, Lightweight Presentation Protocol NDR, Network Data Representation XDR, eXternal Data Representation X.25 PAD, Packet Assembler/Disassembler Protocol Eva Hladká (FI MU) Počítačové sítě L5 – L7 podzim 2011 46 / 46