4. Transportní vrstva PB156: Počítačové sítě Eva Hladká Fakulta informatiky Masarykovy univerzity jaro 2010 Eva Hladká (FI MU) 4. Transportní vrstva jaro 2010 1 / 70 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 Mechanismy zajištění spolehlivého přenosu Stop-and-Wait ARQ Go-Back-N ARQ Selective-Repeat ARQ 6 TCP protokol Poskytované služby Hlavička segmentů Well-known TCP aplikace Správa spojení Řízení chyb Mechanismy pro řízení množství zasílaných dat Řízení toku (Flow Control) Řízení zahlcení (Congestion Control) Eva Hladká (FI MU) 4. Transportní vrstva jaro 2010 2 / 70 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) 4. Transportní vrstva jaro 2010 3 / 70 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) 4. Transportní vrstva jaro 2010 4 / 70 Ú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) 4. Transportní vrstva jaro 2010 5 / 70 Úvod Úvod II. Obrázek: Ilustrace end-to-end služeb poskytovaných transportní vrstvou. Eva Hladká (FI MU) 4. Transportní vrstva jaro 2010 6 / 70 Úvod Úvod III. Obrázek: Formy komunikace. Eva Hladká (FI MU) 4. Transportní vrstva jaro 2010 7 / 70 Poskytované služby 1 Přehled 2 Úvod 3 Poskytované služby Adresace na L4 Řízení spojení – spojované vs. nespojované L4 služby 4 UDP protokol 5 Mechanismy zajištění spolehlivého přenosu Stop-and-Wait ARQ Go-Back-N ARQ Selective-Repeat ARQ 6 TCP protokol Poskytované služby Hlavička segmentů Well-known TCP aplikace Správa spojení Řízení chyb Mechanismy pro řízení množství zasílaných dat Řízení toku (Flow Control) Řízení zahlcení (Congestion Control) Eva Hladká (FI MU) 4. Transportní vrstva jaro 2010 8 / 70 Poskytované služby Obrázek: Ilustrace služeb transportní vrstvy. Eva Hladká (FI MU) 4. Transportní vrstva jaro 2010 9 / 70 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) 4. Transportní vrstva jaro 2010 10 / 70 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) 4. Transportní vrstva jaro 2010 11 / 70 Poskytované služby Adresace na L4 Adresace na L4 II. Obrázek: Doručení dat cílové aplikaci – IP adresa a port. Eva Hladká (FI MU) 4. Transportní vrstva jaro 2010 12 / 70 Poskytované služby Adresace na L4 Adresace na L4 III. porty rozděleny do 3 tříd rozděleno organizací IANA (Internet Assigned Number Authority) třídy: well-known („dobře známé ) porty rozsah 0 − 1023 identifikují známou konkrétní službu přidělovány organizací IANA registrované porty rozsah 1024 − 49151 volně využitelné porty, nejsou přidělovány organizací IANA lze je však u organizace IANA zaregistrovat (zamezení duplikací) dynamické porty rozsah 49152 − 65535 dynamicky přidělované porty, využity zejména jako zdrojové porty odesílacích aplikací Eva Hladká (FI MU) 4. Transportní vrstva jaro 2010 13 / 70 Poskytované služby Adresace na L4 Adresace na L4 – Multiplexing vs. Demultiplexing mechanismus adresace na L4 představuje formu multiplexingu a demultiplexingu na odesílací straně mnoho aplikací a jeden transportní protokol – multiplexing odesílací aplikace identifikována zdrojovým portem na přijímací straně jeden transportní protokol, výběr vhodné aplikace pro doručení – demultiplexing přijímající aplikace identifikována cílovým portem Eva Hladká (FI MU) 4. Transportní vrstva jaro 2010 14 / 70 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) 4. Transportní vrstva jaro 2010 15 / 70 UDP protokol 1 Přehled 2 Úvod 3 Poskytované služby Adresace na L4 Řízení spojení – spojované vs. nespojované L4 služby 4 UDP protokol 5 Mechanismy zajištění spolehlivého přenosu Stop-and-Wait ARQ Go-Back-N ARQ Selective-Repeat ARQ 6 TCP protokol Poskytované služby Hlavička segmentů Well-known TCP aplikace Správa spojení Řízení chyb Mechanismy pro řízení množství zasílaných dat Řízení toku (Flow Control) Řízení zahlcení (Congestion Control) Eva Hladká (FI MU) 4. Transportní vrstva jaro 2010 16 / 70 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) 4. Transportní vrstva jaro 2010 17 / 70 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) 4. Transportní vrstva jaro 2010 18 / 70 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) 4. Transportní vrstva jaro 2010 19 / 70 UDP protokol UDP protokol – „well-known porty Eva Hladká (FI MU) 4. Transportní vrstva jaro 2010 20 / 70 Mechanismy zajištění spolehlivého přenosu 1 Přehled 2 Úvod 3 Poskytované služby Adresace na L4 Řízení spojení – spojované vs. nespojované L4 služby 4 UDP protokol 5 Mechanismy zajištění spolehlivého přenosu Stop-and-Wait ARQ Go-Back-N ARQ Selective-Repeat ARQ 6 TCP protokol Poskytované služby Hlavička segmentů Well-known TCP aplikace Správa spojení Řízení chyb Mechanismy pro řízení množství zasílaných dat Řízení toku (Flow Control) Řízení zahlcení (Congestion Control) Eva Hladká (FI MU) 4. Transportní vrstva jaro 2010 21 / 70 Mechanismy zajištění spolehlivého přenosu Mechanismy zajištění spolehlivého přenosu I. otázka: k čemu je řízení chyb na L4, když je toto poskytováno L2 vrstvou? Eva Hladká (FI MU) 4. Transportní vrstva jaro 2010 22 / 70 Mechanismy zajištění spolehlivého přenosu Mechanismy zajištění spolehlivého přenosu I. otázka: k čemu je řízení chyb na L4, když je toto poskytováno L2 vrstvou? L2 poskytuje řízení chyb vždy pouze mezi dvěma uzly na cestě, ne mezi koncovými stanicemi Eva Hladká (FI MU) 4. Transportní vrstva jaro 2010 22 / 70 Mechanismy zajištění spolehlivého přenosu Mechanismy zajištění spolehlivého přenosu II. transportní protokoly tak mohou zajišťovat spolehlivý přenos nad nespolehlivou (best-effort) IP službou Eva Hladká (FI MU) 4. Transportní vrstva jaro 2010 23 / 70 Mechanismy zajištění spolehlivého přenosu Mechanismy zajištění spolehlivého přenosu III. spolehlivost přenosu zajištěna mechanismem potvrzování (acknowledgement) pakety číslovány tzv. sekvenčními čísly (Sequence Numbers, SEQ) pozitivní potvrzování (positive acknowledgement) potvrzení úspěšného přijetí paketu ala „doručeno v pořádku negativní potvrzování (negative acknowledgement) informace o neúspěšném přijetí/ztrátě datagramu ala „prosím, zopakuj v případě výskytu chyby jsou data opětovně přeposílána mechanismy ARQ (Automatic Repeat reQuest) Stop-and-Wait ARQ Go-Back-N ARQ Selective-Repeat ARQ nutnost vypořádat se s duplicitami! Eva Hladká (FI MU) 4. Transportní vrstva jaro 2010 24 / 70 Mechanismy zajištění spolehlivého přenosu Stop-and-Wait ARQ Stop-and-Wait ARQ I. nejjednodušší mechanismus řízení toku a řízení chyb odesílací strana po odeslání paketu vyčkává na jeho potvrzení aniž by odesílala další po uplynutí definované doby (timeout) je paket pokládán za ztracený následuje znovuposlání pakety číslovány střídavě 0 a 1 potvrzení paketu = ACK s číslem následujícího (očekávaného) paketu v případě poškození paketu (vadný kontrolní součet) jej příjemce zahazuje a vyčkává na znovuposlání nezasílá se žádné negativní potvrzení Eva Hladká (FI MU) 4. Transportní vrstva jaro 2010 25 / 70 Mechanismy zajištění spolehlivého přenosu Stop-and-Wait ARQ Stop-and-Wait ARQ II. Obrázek: Stop-and-Wait ARQ: bezeztrátový přenos Eva Hladká (FI MU) 4. Transportní vrstva jaro 2010 26 / 70 Mechanismy zajištění spolehlivého přenosu Stop-and-Wait ARQ Stop-and-Wait ARQ III. Obrázek: Stop-and-Wait ARQ: ztráta paketu Eva Hladká (FI MU) 4. Transportní vrstva jaro 2010 27 / 70 Mechanismy zajištění spolehlivého přenosu Stop-and-Wait ARQ Stop-and-Wait ARQ IV. Obrázek: Stop-and-Wait ARQ: ztráta potvrzení Eva Hladká (FI MU) 4. Transportní vrstva jaro 2010 28 / 70 Mechanismy zajištění spolehlivého přenosu Stop-and-Wait ARQ Stop-and-Wait ARQ V. Obrázek: Stop-and-Wait ARQ: opožděné potvrzení Eva Hladká (FI MU) 4. Transportní vrstva jaro 2010 29 / 70 Mechanismy zajištění spolehlivého přenosu Stop-and-Wait ARQ Stop-and-Wait ARQ VI. V případě obousměrného přenosu lze využít mechanismus Piggybacking kombinace datového paketu s potvrzením místo dvou samostatných paketů (potvrzení, data) se tak zasílá právě jeden Eva Hladká (FI MU) 4. Transportní vrstva jaro 2010 30 / 70 Mechanismy zajištění spolehlivého přenosu Go-Back-N ARQ Go-Back-N ARQ I. problém Stop-and-Wait ARQ: do sítě lze v jakémkoliv okamžiku vyslat pouze jeden paket ⇒ degradace výkonu vylepšení mechanismu Stop-and-Wait zasílání více paketů bez vyčkávání na jejich potvrzení cílem je vyšší efektivita přenosu pakety číslovány postupně se zvyšujícími sekvenčními čísly v případě dosažení horní hranice se začíná znovu od začátku např. 0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, ... potvrzení paketu = ACK se sekvenčním číslem následujícího (očekávaného) paketu využití tzv. kumulativních potvrzení v případě obousměrné komunikace možno využít piggybacking informace o odeslaných/přijatých paketech uchovávána za pomoci mechanismu tzv. plovoucího okna (sliding window) udržováno jak na straně odesílatele, tak na straně příjemce varianta Go-Back-N ARQ využita v protokolu TCP (viz později) Eva Hladká (FI MU) 4. Transportní vrstva jaro 2010 31 / 70 Mechanismy zajištění spolehlivého přenosu Go-Back-N ARQ Go-Back-N ARQ II. – Sender Window vs. Receiver Window Okno odesílatele (Sender Window) maximální velikost 2m − 1 (m = počet bitů pro uchování SEQ) důvody viz dále Okno příjemce (Receiver Window) velikost v případě Go-Back-N ARQ vždy 1 (vždy se očekává pouze určitý paket) Eva Hladká (FI MU) 4. Transportní vrstva jaro 2010 32 / 70 Mechanismy zajištění spolehlivého přenosu Go-Back-N ARQ Go-Back-N ARQ III. Obrázek: Go-Back-N ARQ: bezeztrátový přenos Eva Hladká (FI MU) 4. Transportní vrstva jaro 2010 33 / 70 Mechanismy zajištění spolehlivého přenosu Go-Back-N ARQ Go-Back-N ARQ IV. Obrázek: Go-Back-N ARQ: ztráta paketu Eva Hladká (FI MU) 4. Transportní vrstva jaro 2010 34 / 70 Mechanismy zajištění spolehlivého přenosu Go-Back-N ARQ Go-Back-N ARQ V. – omezení maximální velikosti okna Okno odesílatele musí být menší než 2m (m je počet bitů pro uchování SEQ) kvůli správné detekci duplicit! Eva Hladká (FI MU) 4. Transportní vrstva jaro 2010 35 / 70 Mechanismy zajištění spolehlivého přenosu Selective-Repeat ARQ Selective-Repeat ARQ I. problém Go-Back-N ARQ: neefektivní pro vysoce ztrátové linky vyšší ztrátovost ⇒ vyšší procento paketů došlých mimo pořadí (out-of-order) Go-Back-N ARQ pakety mimo pořadí zahazuje neefektivní, již došlé pakety musí být znovu zasílány pakety opět číslovány postupně se zvyšujícími sekvenčními čísly rozšíření Go-Back-N ARQ v oblasti okna příjemce místo 1 paketu jich může pojmout více ⇒ out-of-order pakety na straně příjemce bufferovány potvrzení paketu = ACK se sekvenčním číslem následujícího (očekávaného) paketu opět využívá kumulativních potvrzení v případě obousměrné komunikace možno využít piggybacking kromě pozitivních potvrzení využívá i negativních potvrzení Negative Acknowledgements zasílány v případě detekce ztráty/porušení paketu Eva Hladká (FI MU) 4. Transportní vrstva jaro 2010 36 / 70 Mechanismy zajištění spolehlivého přenosu Selective-Repeat ARQ Selective-Repeat ARQ II. Obrázek: Selective-Repeat ARQ: ztráta paketu Eva Hladká (FI MU) 4. Transportní vrstva jaro 2010 37 / 70 Mechanismy zajištění spolehlivého přenosu Selective-Repeat ARQ Selective-Repeat ARQ III. – omezení maximální velikosti okna Okno odesílatele musí být menší nebo rovno 2m−1 (m je počet bitů pro uchování SEQ) kvůli správné detekci duplicit! Eva Hladká (FI MU) 4. Transportní vrstva jaro 2010 38 / 70 TCP protokol 1 Přehled 2 Úvod 3 Poskytované služby Adresace na L4 Řízení spojení – spojované vs. nespojované L4 služby 4 UDP protokol 5 Mechanismy zajištění spolehlivého přenosu Stop-and-Wait ARQ Go-Back-N ARQ Selective-Repeat ARQ 6 TCP protokol Poskytované služby Hlavička segmentů Well-known TCP aplikace Správa spojení Řízení chyb Mechanismy pro řízení množství zasílaných dat Řízení toku (Flow Control) Řízení zahlcení (Congestion Control) Eva Hladká (FI MU) 4. Transportní vrstva jaro 2010 39 / 70 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) 4. Transportní vrstva jaro 2010 40 / 70 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) 4. Transportní vrstva jaro 2010 41 / 70 TCP protokol Poskytované služby TCP protokol – poskytované služby Odesílací a přijímající buffery aplikací předaná data nutno uchovávat v bufferech nutnost vyrovnání rozdílných rychlostí komunikujících stran rychlost odesílajícího a přijímajícího procesu nemusí být stejná buffery navíc využity pro řízení toku a chyb (viz dále) Eva Hladká (FI MU) 4. Transportní vrstva jaro 2010 42 / 70 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) 4. Transportní vrstva jaro 2010 43 / 70 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) 4. Transportní vrstva jaro 2010 44 / 70 TCP protokol Hlavička segmentů TCP protokol – hlavička segmentů I. Eva Hladká (FI MU) 4. Transportní vrstva jaro 2010 45 / 70 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) 4. Transportní vrstva jaro 2010 46 / 70 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) 4. Transportní vrstva jaro 2010 47 / 70 TCP protokol Well-known TCP aplikace Well-known TCP aplikace Eva Hladká (FI MU) 4. Transportní vrstva jaro 2010 48 / 70 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) 4. Transportní vrstva jaro 2010 49 / 70 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) 4. Transportní vrstva jaro 2010 50 / 70 TCP protokol Řízení chyb Řízení chyb (Error Control) během přenosu je nutno detekovat poškozené, ztracené, duplikované a out-of-order segmenty TCP mechanismy pro zajištění spolehlivého přenosu: kontrolní součty – detekce poškozených segmentů potvrzování přijatých segmentů (acknowledgements) – detekce ztracených (na straně příjemce), duplikovaných a out-of-order segmentů zajištěno mechanismem pozitivního potvrzování (positive acknowledgements) využito kumulativní potvrzování timeoutů – detekce ztracených segmentů (na straně odesílatele) mechanismus přeposílání založen na Go-Back-N ARQ rozdíl: buffer pro out-of-order segmenty na přijímající straně Eva Hladká (FI MU) 4. Transportní vrstva jaro 2010 51 / 70 TCP protokol Řízení chyb Řízení chyb (Error Control) – Ztráta segmentu Eva Hladká (FI MU) 4. Transportní vrstva jaro 2010 52 / 70 TCP protokol Řízení chyb Řízení chyb (Error Control) – Ztráta potvrzení Eva Hladká (FI MU) 4. Transportní vrstva jaro 2010 53 / 70 TCP protokol Řízení chyb Řízení chyb (Error Control) – Timeouty I. timeout – doba, po kterou se čeká na potvrzení odeslaného segmentu založeno na tzv. Round-Trip Time (RTT) čas potřebný pro cestu segmentu od odesílatele k příjemci a zpět typicky: timeout = 2 · RTT Eva Hladká (FI MU) 4. Transportní vrstva jaro 2010 54 / 70 TCP protokol Řízení chyb Řízení chyb (Error Control) – Timeouty II. RTT upravováno s využitím následující formule (vyhlazování abnormalit): RTTnew = α · RTTold + (1 − α) · RTTmeasured kde α = 0.875 (typicky) Eva Hladká (FI MU) 4. Transportní vrstva jaro 2010 55 / 70 TCP protokol Mechanismy pro řízení množství zasílaných dat 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) 4. Transportní vrstva jaro 2010 56 / 70 TCP protokol Mechanismy pro řízení množství zasílaných dat Flow Control vs. Congestion Control Eva Hladká (FI MU) 4. Transportní vrstva jaro 2010 57 / 70 TCP protokol Řízení toku (Flow Control) Řízení toku (Flow Control) mechanismus pro zábranu zahlcení přijímající strany explicitní zpětná vazba od příjemce příjemce informuje odesílatele o stavu svého přijímacího bufferu (receiver window, rwnd) o zbývajícím volném místě snižující rwnd indikuje nutnost snížení rychlosti vysílání rwnd = 0 ⇒ buffer přijímající stanice je plný, vysílač musí pozastavit vysílání informace zasílána v rámci ACK packetů nebo s využitím piggybackingu (obousměrná komunikace) Eva Hladká (FI MU) 4. Transportní vrstva jaro 2010 58 / 70 TCP protokol Řízení zahlcení (Congestion Control) Řízení zahlcení (Congestion Control) I. snaha o přizpůsobení rychlosti vysílání dostupné kapacitě sítě nejmenší volné kapacitě na trase zahlcení (congestion) sítě ⇔ počet paketů zaslaných do sítě > kapacita sítě mechanismus závislý na dostupnosti informací ze sítě explicitní zpětná vazba – síť dokáže informovat o (blížícím se) zahlcení např. ATM sítě bez zpětné vazby – nutnost odhadovat dostupnou kapacitu běžné IP sítě dva možné přístupy k řešení: proaktivní přístup – snaha zahlcení předcházet (tak, aby k němu nikdy nedošlo) reaktivní přístup – jakmile dojde k zahlcení, je toto detekováno a řešeno (snížením rychlosti vysílání) Eva Hladká (FI MU) 4. Transportní vrstva jaro 2010 59 / 70 TCP protokol Řízení zahlcení (Congestion Control) Řízení zahlcení (Congestion Control) II. kde (a proč) může nastat zahlcení? směrovače/switche mají fronty (vstupní, výstupní) příchozí pakety je zapotřebí zpracovat (přeposlat blíže k cílové destinaci) zahlcení nastává ⇔ když: rychlost příchodu paketů je větší než rychlost jejich zpracování nebo rychlost výstupu paketů je menší než rychlost jejich zpracování Eva Hladká (FI MU) 4. Transportní vrstva jaro 2010 60 / 70 TCP protokol Řízení zahlcení (Congestion Control) Zahlcení sítě – důsledky zvýšení zpoždění přenosu a degradace rychlosti přenosu Eva Hladká (FI MU) 4. Transportní vrstva jaro 2010 61 / 70 TCP protokol Řízení zahlcení (Congestion Control) Řízení zahlcení v TCP zahlcení většinou detekováno na základě ztráty paketu předpoklad: ztráta paketu způsobena přeplněním vstupní/výstupní fronty některého ze síťových zařízení po cestě = reaktivní přístup většinou = existují varianty TCP s proaktivním přístupem v průběhu přenosu odhadována velikost okna zahlcení (congestion window, cwnd) cwnd určuje množství dat, které lze do sítě zaslat, aniž by došlo k zahlcení množství skutečně zasílaných dat definováno velikostí tzv. outstanding window, ownd ownd = min(rwnd, cwnd) Eva Hladká (FI MU) 4. Transportní vrstva jaro 2010 62 / 70 TCP protokol Řízení zahlcení (Congestion Control) Řízení zahlcení v TCP – odhad cwnd I. běžná IP síť nepodává explicitní informace o dostupné přenosové kapacitě či blížícím se zahlcení ⇒ dostupnou přenosovou kapacitu (tj. velikost cwnd) musí TCP odhadovat využity tři základní algoritmy pro odhad cwnd (přístup AIMD – Additive Increase, Multiplicative Decrease): fáze Slow Start „pomalý start – snaha o rychlé navýšení rychlosti odesílání až do dosažení určité hranice fáze Additive Increase zpomalení rychlosti růstu snaha o udržení vysoké rychlosti přenosu po co možná nejdelší dobu fáze Multiplicative Decrease zahlcení sítě (= ztráta paketu) – snížení rychlosti přenosu mimo jiné umožňuje zajištění férovosti mezi TCP proudy Eva Hladká (FI MU) 4. Transportní vrstva jaro 2010 63 / 70 TCP protokol Řízení zahlcení (Congestion Control) Řízení zahlcení v TCP – odhad cwnd II. Obrázek: Ilustrace mechanismu AIMD. Eva Hladká (FI MU) 4. Transportní vrstva jaro 2010 64 / 70 TCP protokol Řízení zahlcení (Congestion Control) TCP – zajištění férovosti Obrázek: Zajištění férovosti dvou rovnocenných TCP proudů. Eva Hladká (FI MU) 4. Transportní vrstva jaro 2010 65 / 70 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) 4. Transportní vrstva jaro 2010 66 / 70 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) 4. Transportní vrstva jaro 2010 67 / 70 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) 4. Transportní vrstva jaro 2010 68 / 70 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) 4. Transportní vrstva jaro 2010 69 / 70 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: PV159: Počítačové sítě a jejich aplikace I. (prof. Matyska, doc. Hladká) PV160: Počítačové sítě a jejich aplikace II. (prof. Matyska) Eva Hladká (FI MU) 4. Transportní vrstva jaro 2010 70 / 70