5. Transportní vrstva PB156: Počítačové sítě Eva Hladká S lidy pripravil: Tomáš Rebok Fakulta informatiky Masarykovy univerzity jaro 2016 Eva Hladká (Fl MU) 5. Transportní vrstva jaro 2016 1/85 Struktura přednášky O Přehled Úvod Poskytované služby • Adresace na L4 • Řízení spojení - spojované vs. nespojované L4 služby UDP protokol Mechanismy zajištění spolehlivého přenosu • Stop-and-Wait ARQ • Go-Back-N ARQ • Selective-Repeat ARQ Tradiční TCP • 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) 9 Varianty TCP • Vylepšení TCP O Konzervativní rozšíření TCP • Přístupy odlišné od TCP Rekapitulace Eva Hladká (Fl MU) 5. Transportní vrstva jaro 2016 2 / 85 Struktura přednášky Přehled Úvod Poskytované služby • Adresace na L4 • Řízení spojení - spojované vs. nespojované L4 služby U DP protokol Mechanismy zajištění spolehlivého přenosu • Stop-and-Wait ARQ • Go-Back-N ARQ • Selective-Repeat ARQ Tradiční TCP • 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) • Varianty TCP Tr d Eva Hladká ÍFI MU) 5. Transportní vrstva L4. Transportní vrstva - Přehled c c c iso / osi Aplikační vrstva Síťové aplikace Prezentační vrstva Reprezentace dat Relační vrstva Relace, meziuzlová komunikace "ransportní vrstva End-to-end spoje, zajištění spolehlivosti C c Síťová vrstva Výběr cesty a IP (logické adresování) Vrstva datového spoje MAC a LLC (fyzické adresování) Fyzická vrstva Přenosová média, signály, přenos binárních dat D 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 U D P, TCP Eva Hladká (Fl MU) 5. Transportní vrstva jaro 2016 4/85 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ítovou 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á (Fl MU) 5. Transportní vrstva jaro 2016 5 / 85 Struktura přednášky _ Přehled Q Úvod Poskytované služby • Adresace na L4 • Řízení spojení - spojované vs. nespojované L4 služby O U DP protokol Mechanismy zajištění spolehlivého přenosu • Stop-and-Wait ARQ • Go-Back-N ARQ • Selective-Repeat ARQ Tradiční TCP • 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) • Varianty TCP • Vylepšení TCP • Konzervativní rozšíření TCP • Přístupy odlišné od TCP Úvod I. transportní vrstva: • poskytuje služby pro aplikační vrstvu: • přijímá data odesílací aplikace, které transformuje do segmentů 9 přijaté segmenty pak předává cílové aplikaci • ve spolupráci se sítovou vrstvou zajištuje 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 • nej nižší vrstva poskytující tzv. end-to-end služby • hlavičky generované na straně odesílatele jsou interpretovány jen na straně příjemce 9 směrovače vidí data transportní vrstvy jako payload přenášených paketů Eva Hladká (Fl MU) 5. Transportní vrstva jaro 2016 7 / 85 actual PDU flow 1 applicatii 1 transport network 1 data link r physical' L network dl dl dl ph ph ph / \ Router R1 logical end-end transport Host H1, network F dl T J . ph ph Router R2 network dl dl dll ph ph pi Router R3 pŘouter R4 4 apJlication I transport net vork dat i link phi sical Host H2 Figure: Ilustrace end-to-end služeb poskytovaných transportní vrstvou Eva Hladká (Fl MU) 5. Transportní vrstva jaro 2016 8 / 85 Úvod III. Processes Processes Node-to-node: Data link layer Host-to-host: Network layer Process-to-process: Transport layer / / Internet -node <->■ T Node-to ! Node-to-node -1------1-- j Node-to j Node-to -node i -node ">T<->*T<->■ Host-to-host i I Process-to-process \ \ \ Figure: Formy komunikace. Eva Hladká (Fl MU) 5. Transportní vrstva jaro 2016 Poskytované služby Struktura přednášky Přehled Úvod Poskytované služby • Adresace na L4 • Řízení spojení - spojované vs. nespojované L4 služby ô U DP protokol Mechanismy zajištění spolehlivého přenosu • Stop-and-Wait ARQ • Go-Back-N ARQ • Selective-Repeat ARQ Q Tradiční TCP O o o o o o o o o 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) Varianty TCP • Vylepšení TCP • Konzervativní rozšíření TCP • Přístupy odlišné od TCP Eva Hladká (Fl MU) 5. Transportní vrstva jaro 2016 10 / 85 Poskytované služby Quality of service Application layer Gives services to Transport layer Addressing Connection control Reliability Receives services from Network layer Congestion control Figure: Ilustrace služeb transportní vrstvy. Eva Hladká (Fl MU) 5. Transportní vrstva jaro 2016 11 / 85 Poskytované služby Služby • Tvorba paketů (Packetizing) 9 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ítový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 prenosu (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á (Fl MU) 5. Transportní vrstva jaro 2016 12 / 85 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 lčbitovým číslem • rozsah 0 — 65535 H Daytime client SN H52,000 i ] h Transport layer H Daytime server 13 H A Transport layer Data 13 52,000 <=| 13 152,0001 Data h Eva Hladká (Fl MU) 5. Transportní vrstva jaro 2016 13 / 85 Poskytované služby Adresace na L4 Adresace na L4 II. 5b, M 13 13 Port number selects the process I r ] A HKU 4 _2 6.7 _ IP header Transport-layer header 193.14.26.7<^ 13 IP address selects the host Figuře: Doručení dat cílové aplikaci - IP adresa a port. Eva Hladká (Fl MU) 5. Transportní vrstva jaro 2016 14 / 85 Poskytované služby Adresace na L4 Adresace na L4 I. 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í Registered 0 1023 JI 49,152 65,535 I-r-1 I-^-1 I-r-1 |[ 1024 49,151 |f Well-known Dynamic Eva Hladká (Fl MU) 5. Transportní vrstva jaro 2016 15 / 85 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 Processes Processes 3\ I I Multiplexer f IP I Demultiplexer IP Eva Hladká (Fl MU) 5. Transportní vrstva jaro 2016 16 / 85 Poskytované služby Řízení spojení - spojované vs. nespojované L4 služby Řízení spojení - spojované vs. nespojované L4 služby Spojované služby 9 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á (Fl MU) 5. Transportní vrstva jaro 2016 17 / 85 U DP protokol Struktura přednášky Přehled Úvod Poskytované služby • Adresace na L4 • Řízení spojení - spojované vs. nespojované L4 služby U DP protokol Mechanismy zajištění spolehlivého přenosu • Stop-and-Wait ARQ • Go-Back-N ARQ • Selective-Repeat ARQ Tradiční TCP o o o o o o o o o 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) Varianty TCP • Vylepšení TCP • Konzervativní rozšíření TCP • Přístupy odlišné od TCP Eva Hladká (Fl MU) 5. Transportní vrstva jaro 2016 18 / 85 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á (Fl MU) 5. Transportní vrstva jaro 2016 19 / 85 U DP protokol 8 bytes h<-H Source port number 16 bits Destination port number 16 bits Total length 16 bits Checksum 16 bits 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) jaro 2016 20 / 85 Eva Hladká (Fl MU) 5. Transportní vrstva 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) 9 multicastové přenosy • aktualizace směrovacích tabulek RIP protokolem • atd. atd. Eva Hladká (Fl MU) 5. Transportní vrstva jaro 2016 21 / 85 U DP protokol U DP protokol - well-known porty Port Protocol Description i Echo Echoes a received datagram back to the sender 9 Discard Discards any datagram that is received 11 Users Active users 13 Daytime Returns the date and the time 17 Quote Returns a quote of the day 19 Chargen Returns a string of characters 53 Nameserver Domain Name Service 67 Bootps Server port to download bootstrap information 68 Bootpc Client port to download bootstrap information 69 111 Remote Procedure Call 123 Network Time Protocol 161 Simple Network Management Protocol 162 SNMP Simple Network Management Protocol (trap) Eva Hladká (Fl MU) 5. Transportní vrstva jaro 2016 Mechanismy zajištění spolehlivého přenosu Struktura přednášky Přehled Úvod Poskytované služby • Adresace na L4 • Řízení spojení - spojované vs. nespojované L4 služby O U DP protokol Mechanismy zajištění spolehlivého přenosu • Stop-and-Wait ARQ • Go-Back-N ARQ • Selective-Repeat ARQ Q Tradiční TCP O o o o o o o o o 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) Varianty TCP • Vylepšení TCP • Konzervativní rozšíření TCP • Přístupy odlišné od TCP Eva Hladká (Fl MU) 5. Transportní vrstva jaro 2016 23 / 85 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á (Fl MU) 5. Transportní vrstva jaro 2016 24 / 85 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 Transport Network Data link Physical Error is checked in these paths by the data link layer Error is not checked in these paths by the data link layer s □c: CT WANTľ> Transport Network Data link Physical Eva Hladká (Fl MU) 5. Transportní vrstva jaro 2016 24 / 85 Mechanismy zajištění spolehlivého přenosu Mechanismy zajištění spolehlivého přenosu II. transportní protokoly tak mohou zajištovat spolehlivý přenos nad nespolehlivou (best-effort) IP službou c o O 0 o > Cl O O ^ Q. 0) 00 >. sending receiver process process [dotal data I ►Qreliable channel] reliable data transfer protocol (sending side) rdt_SQnd()||daŤa| |ďaTalfdeliver_data () reliable data transfer protocol| (receiving side) udt sendOÜ lPgckeM I packet! rdt rev() unreliable channel (a) provided service (b) service implementation Eva Hladká (Fl MU) 5. Transportní vrstva jaro 2016 25 / 85 Mechanismy zajištění spolehlivého přenosu Mechanismy zajištění spolehlivého přenosu III. 9 spolehlivost přenosu zajištěna mechanismem potvrzování (acknowledgement) 9 pakety číslovány tzv. sekvenčními čísly (Sequence Numbers, SEQ) • pozitivní potvrzování (positive acknowledgement) • potvrzení úspěšného přijetí paketu • a lá doručeno v pořádku • negativní potvrzování (negative acknowledgement) 9 informace o neúspěšném přijetí/ztrátě datagramu 9 a lá prosím, zopakuj 9 v případě výskytu chyby jsou data opětovně přeposílána • mechanismy ARQ (Automatic Repeat reQuest) 9 Stop-and-Wait ARQ • Go-Back-N ARQ 9 Selective-Repeat ARQ • nutnost vypořádat se s duplicitami! Eva Hladká (Fl MU) 5. Transportní vrstva jaro 2016 26 / 85 Mechanismy zajištění spolehlivého přenosu Stop-and-Wait ARQ Stop-and-Wait ARQ I. • nejjednodušší mechanismus řízení toku a řízení chyb 9 odesílací strana po odeslání paketu vyčkává na jeho potvrzení • aniž by odesílala další • po uplynutí definované doby (timeouť) je paket pokládán za ztracený • následuje znovuposlání o 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á (Fl MU) 5. Transportní vrstva jaro 2016 27 / 85 Mechanismy zajištění spolehlivého přenosu Stop-and-Wait ARQ Stop-and-Wait ARQ II. Sender ] S= 0 S= 1 s= o Time Frame l Receiver r 7?= 0 Ä = 1 t Time Figure: Stop-and-Wait ARQ: bezeztrátový přenos Eva Hladká (Fl MU) 5. Transportní vrstva jaro 2016 28 / 85 Mechanismy zajištění spolehlivého přenosu Stop-and-Wait ARQ Stop-and-Wait ARQ III. Time-out Sender O 5=0 S= 1 5= 1 5 = 0 Time Receiver □ Frame 0 Lost R= 0 R= 1 /?= 1 i?=0 Time Figure: Stop-and-Wait ARQ: ztráta paketu Eva Hladká (Fl MU) 5. Transportní vrstva jaro 2016 29 / 85 Mechanismy zajištění spolehlivého přenosu Stop-and-Wait ARQ Stop-and-Wait ARQ IV. ® Time-out Sender r I S= 0 5= 1 S= 1 5=0 Frame J ACKO Lost^ Time Receiver □ R = 0 R= 1 R= 0 Expecting frame 0, frame 1 discarded t Time Figure: Stop-and-Wait ARQ: ztráta potvrzení Eva Hladká (Fl MU) 5. Transportní vrstva jaro 2016 30 / 85 Mechanismy zajištění spolehlivého přenosu Stop-and-Wait ARQ Stop-and-Wait ARQ V. Sender O © s= o Time-out 5=0 S= 1 Time out Discarded 5 = 1 Receiver □ Frame 0 Frame 0 Time R= 0 R= 1 Expecting frame 1, frame 0 discarded R= 1 t Time Figure: Stop-and-Wait ARQ: opožděné potvrzení Eva Hladká (Fl MU) 5. Transportní vrstva jaro 2016 31 / 85 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 A s. R = 0 R = 0 5 = 0 5 = 1 R= 1 5=0 Time Fra^J.ACK 0 B □ R= 0 5=0 R= 1 5= 1 t Time Eva Hladká (Fl MU) 5. Transportní vrstva jaro 2016 32 / 85 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 =4> 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á (Fl MU) 5. Transportní vrstva jaro 2016 33 / 85 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 Window size = 7 K- -H 5 6 7 0 1 2 1 3 4 5 6 7 0 a. Before sliding . Window size = 7 5 6 7 0 1 2 3 4 5 6 7 0 b. After sliding two frames 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) • • 5 6 7 0 1 2 3 4 Ol 6 7 0 a. Before sliding 5 6 7 0 1 2 3 4 5 6 7 0 b. After sliding Eva Hladká (Fl MU) 5. Transportní vrstva jaro 2016 34 / 85 Mechanismy zajištění spolehlivého přenosu Go-Back-N ARQ Sender ] r Receiver □ SF SĹ 1 0 1 2 3 0 1 2 H-' S 0 1 2 3 0 1 2 + s 0 1 2 3 0 1 2 5 0 1 2 3 0 1 2 Frame o Frame l ACK2 Frame 2 ACK3 Frame 3 t Time 0 1 2 3 0 1 2 1 R 1— 0 1 2 3 0 1 2 i R 0 1 2 3 0 1 2 1 i? 0 1 2 3 0 1 2 Time Figure: Go-Back-N ARQ: bezeztrátový přenos Eva Hladká (Fl MU) 5. Transportní vrstva jaro 2016 35 / 85 Mechanismy zajištění spolehlivého přenosu Go-Back-N ARQ Go-Back-N ARQ IV. Sender a SF SL ® Time-out 0 1 2 3 0 1 2 H-' S 0 1 2 3 0 1 2 1-h 5 0 1 2 3 0 1 2 H- 5 0 1 2 3|0 1 2 -t-5 0 1 2 3|0 1 2 0 12 3 0 1 Receiver Lost Práme 3 0 0 1 2 3 0 1 2 H-R Frame 3 discarded, not in the window 0 1 2 3 0 1 2 H-R 0 1 2 3 0 1 2 Time Time Figure: Go-Back-N ARQ: ztráta paketu Eva Hladká (Fl MU) 5. Transportní vrstva jaro 2016 36 / 85 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! Sender Receiver O Tirne-out 0 1 2 3 ■i-1 5 0 1 2 3 1—i-1 5 0 1 2 3 ■-r 5 0 1 1 2 3 e0 ft 1 2 3 R 0 1 2 3 H1 R 0 1 2~ 3 R 0 1 2 3 Correctly discarded a. Window size < 2m Sender Receiver O 0 1 2 3 0 M-1 S 0 1 1 2 3 n o n o o Time-out 0 1 2 3 0 3m. e o 3m 91 3m. *2 e3 3^t e O 0 0 R 0 1 2 3 0 4- i R 0 3 0 R 0 0 R 0 0 R Erroneously accepted b. Window size = 2m Eva Hladká (Fl MU) 5. Transportní vrstva jaro 2016 37 / 85 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 9 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 o pakety opět číslovány postupně se zvyšujícími sekvenčními čísly a 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 buf Pérová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í 9 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á (Fl MU) 5. Transportní vrstva jaro 2016 38 / 85 Mechanismy zajištění spolehlivého přenosu Selective-Repeat ARQ Sender 0 1 2 3 0 1 2 H-1 5 0 1 2 3 0 1 2 '-H S 0 1 2 3 0 1 2 0 1 2 3 0 1 2 1-\-S 0 1 2 3 0 1 2 Receiver 5 0 1 2 3 0 1 2 0 1 2 3 0 1 2 0 1 2 3 0 1 2 C) o Time Time Figure: Selective-Repeat ARQ: ztráta paketu Eva Hladká (Fl MU) 5. Transportní vrstva jaro 2016 39 / 85 Mechanismy zajištění spolehlivého přenosu Selective-Repeat ARQ Selective-Repeat ARQ okna . - omezení maximální velikosti 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! Sender Receiver Sender Receiver O O 0 o Time-out 0 e o 0 .— 1 2 3 0 1 2 3 0 1 2 3 0 M- 5 r-1 0 1 2 3 0 1-i-1 0 1 2 3 0 1-h it 0 1 2 3 Time-out 0 1 2 3 0 H- Correctly Discarded f) 0 ľ) e0 0 1 2 3 0 1 0 1 2 3 0 1 0 1 2 3 0 1 0 1 2 3 0 1 Erroneously accepted Time Time a. Window size = 2m_1 Time Time b. Window size > 2m_1 Eva Hladká (Fl MU) 5. Transportní vrstva jaro 2016 40 / 85 Tradiční TCP Struktura přednášky Přehled Úvod Poskytované služby • Adresace na L4 • Řízení spojení - spojované vs. nespojované L4 služby O UDP protokol Mechanismy zajištění spolehlivého přenosu • Stop-and-Wait ARQ • Go-Back-N ARQ • Selective-Repeat ARQ Q Tradiční TCP • Poskytované služby • Hlavička segmentů • Well-known TCP aplikace 3 Správa spojení • Řízení chyb • Mechanismy pro řízení množství zasílaných dat 9 Řízení toku (Flow Control) © Řízení zahlcení (Congestion Control) O Varianty TCP • Vylepšení TCP • Konzervativní rozšíření TCP • Přístupy odlišné od TCP Eva Hladká (Fl MU) 5. Transportní vrstva jaro 2016 41 / 85 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á (Fl MU) 5. Transportní vrstva jaro 2016 42 / 85 Tradiční TCP 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ítovému protokolu (např. IP) • přenos dat v rámci TCP: • aplikace předává TCP protokolu proud bytů, které TCP segmentuje, opatřuje hlavičkou a předává sítovému protokolu • aplikacím poskytuje iluzi roury, která přenáší jejich data Sending Process TCP Stream of Bytes Receiving Process Eva Hladká (Fl MU) 5. Transportní vrstva jaro 2016 43 / 85 Tradiční TCP 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) Sending Process Receiving Process Next byte to be sent Next byte to be received Next byte to deliver Sending TCP Receiving TCP Eva Hladká (Fl MU) 5. Transportní vrstva jaro 2016 44 / 85 B5D Tradiční TCP Poskytované služby TCP protokol - poskytované služby Segmentace dat • aplikace TCP protokolu předává proud bytů • sítová vrstva (IP protokol) očekává bloky dat • =4> 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ítovému protokolu Sending Process Receiving Process Tradiční TCP Poskytované služby TCP protokol - poskytované služby Segmentace dat - číslování segmentu o čí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ů. The following shows the sequence number for each segment: Segment 1 ==> sequence number: 10,010 (range: 10,010 to 11,009) Segment 2 ==> sequence number: 11,010 (range: 11,010 to 12,009) Segment 3 ==> sequence number: 12,010 (range: 12,010 to 13,009) Segment 4 ==> sequence number: 13,010 (range: 13,010 to 14,009) Segment 5 ==> sequence number: 14,010 (range: 14,010 to 16,009) Eva Hladká (Fl MU) 5. Transportní vrstva jaro 2016 46 / 85 Tradiční TCP Hlavička segmentů TCP protokol - hlavička segmentů I. Source port address 16 bits Destination port address 16 bits Sequence number 32 bits Acknowledgment number 32 bits HLEN 4 bits u a p r s Reserved r c i v 6 bits g v k j-IhJ t y n r 1 n Window size 16 bits Checksum 16 bits Urgent pointer 16 bits Options and padding Eva Hladká (Fl MU) 5. Transportní vrstva jaro 2016 47/ Tradiční TCP Hlavička segmentů TCP protokol - hlavička segmentů II. o 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á (Fl MU) 5. Transportní vrstva jaro 2016 48 / 85 Tradiční TCP Hlavička segmentů TCP protokol - hlavička segmentů III. • řídící data (control) -6 bitů identifikujících nejrůznější řídící informace URG: Urgent pointer is valid RST: Reset the connection ACK: Acknowledgment is valid SYN: Synchronize sequence numbers PSH: Request for push FIN: Terminate the connection URG ACK PSH RST SYN FIN • 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á (Fl MU) 5. Transportní vrstva jaro 2016 49 / 85 Tradiční TCP Well-known TCP aplikace Well-known TCP aplikace Port 11 13 17 19 20 21 23 25 53 67 79 80 111 Protocol Users Daytime Quote Chargen FTP, Data TP. Description Discard Discards any datagram that is recei Active users Returns the date and the time Returns a quote of the day Returns a string of characters File Transfer Protocol (data connection) File Transfer Protocol (c connect! Terminal Networl Simple Mail Transfe Domain Name Serve r ootstrap Protocol - inger HTTP RPC inger Hypertext Transfer Protocol Remote Procedure Call Eva Hladká (Fl MU) 5. Transportní vrstva jaro 2016 50 / 85 Tradiční TCP 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 t Time Segment 1: SYN ■ jseq: í2QQt ack: - Uť> " " ---„I Segment 3: ACK -\ seq: 1201, ack: 4801 f^- t Time Sprá rradiční TCI va spojen,'-ukončení spojen Time ízení chyb (Error Control) • během přenosu je nutno detekovat poškozené, ztracené, duplikované 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) a 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á (Fl MU) 5. Transportní vrstva jaro 2016 53 Tradiční TCP Řízení chyb Řízení chyb (Error Control) - Ztráta segmentu Sender Receiver Tradiční TCP Řízení chyb Řízení chyb (Error Control) - Ztráta potvrzení © © OK OK OK t Time Acknowledgment lost ack: 1601 ack: 1801 t Time Eva Hladká (Fl MU) 5. Transportní vrstva jaro 2016 55 Tradiční TCP Ří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) 9 čas potřebný pro cestu segmentu od odesílatele k příjemci a zpět • typicky: timeout = 2 • RTT Time for data to arrive Time for ACK to return Eva Hladká (Fl MU) 5. Transportní vrstva jaro 2016 56 / 85 Tradiční TCP Řízení chyb Řízení chyb (Error Control) - Timeouty II 0.9 sec Sender r Receiver RTT -s 2.2 sec RTT = 2.2 sec - 0.9 sec. = 1.3 sec RTT upravováno s využitím následující formule (vyhlazování abnormalit) RTTnew = a • RTT au + (1 — a) • RTTmeasurecj kde a = 0.875 (typicky) Eva Hladká (Fl MU) 5. Transportní vrstva jaro 2016 57 / 85 Tradiční TCP 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) a velikostí tzv. okna zahlcení (congestion window) (řízení zahlcení) • na straně odesílatele 9 množství skutečně vysílaných dat ohraničeno menší hodnotou z obou jmenovaných Eva Hladká (Fl MU) 5. Transportní vrstva jaro 2016 Tradiční TCP Mechanismy pro řízení množství zasílaných dat Flow Control vs. Congestion Control bez řízení: příjemce vysílající síť řízení toku (flow control): vysílající síť příjemce řízení zahlcení {congestion control): vysílající příjemce síť Eva Hladká (Fl MU) 5. Transportní vrstva jaro 2016 59 / 85 Tradiční TCP Ří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) 9 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) data od IP protokolu - - - přijatá TCP data přijímací buffer data k aplikaci Eva Hladká (Fl MU) 5. Transportní vrstva jaro 2016 60 / 85 Tradiční TCP Řízení zahlcení (Congestion Control) Řízení zahlcení (Congestion Control) I. e 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 site • mechanismus závislý na dostupnosti informací ze sítě • explicitní zpětná vazba - sít 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ě a 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á (Fl MU) 5. Transportní vrstva jaro 2016 61 / 85 Tradiční TCP Ří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á 44> 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í — Input *- Output jaro 2016 Tradiční TCP Řízení zahlcení (Congestion Control) Zahlcení sítě - důsledky zvýšení zpoždění přenosu a degradace rychlosti přenosu Delay Throughput No congestion area I Congestion area No Congestion Area Congestion Area Capacity Load Capacity Load Eva Hladká (Fl MU) 5. Transportní vrstva jaro 2016 63 / 85 Tradiční TCP Ří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ítový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) free or waiting to be sent outstanding window, ownd Can be sent immediately Sent, not ■acknowledged Sent and acknowledged, recycled 214 213 212 211 210 209 208 207 20G 205 204 203 202 201 200 Eva Hladká (Fl MU) _Next byte to be sent 5. Transportní vrstva jaro 2016 64 / 85 Tradiční TCP Řízení zahlcení (Congestion Control) Řízení zahlcení v TCP - odhad cwnd I. • běžná IP sít 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 AI M D - 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á (Fl MU) 5. Transportní vrstva jaro 2016 65 / 85 Tradiční TCP Řízení zahlcení (Congestion Control) Řízení zahlcení v TCP - odhad cwnd II. a o B OD m OJ N O -a =: o ■i—i nl- O DC C O O 26 24 22 20 18 16 14 12 10 08 06 04 02 Threshold = 16 Time-out Threshold - 10 1 J_I_I_L J_L 1 5 6 7 8 9 10 11 12 Number of transmitted segments 13 14 15 16 Figure: Ilustrace mechanismu AIMD. Eva Hladká (Fl MU) 5. Transportní vrstva jaro 2016 66 / 85 Tradiční TCP Řízení zahlcení (Congestion Control) TCP - zajištění férovosti 100 80 4- 60 - 40 - 20 - 0 0 20 40 60 80 100 Figure: Zajištění férovosti dvou rovnocenných TCP proudů Eva Hladká (Fl MU) 5. Transportní vrstva jaro 2016 67 / 85 Tradiční TCP 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 Hýbla • TCP BIC • TCP CUBIC • Compound TCP 9 atp. Eva Hladká (Fl MU) 5. Transportní vrstva jaro 2016 68 / 85 Tradiční TCP Varianty TCP Varianty TCP II. - TCP Tahoe 30 25 20 rsy iq 10 5 0 0 10 20 30 40 50 čas [RTT] • ■ cwnd .......... sstresh • cwnd = cwnd + MSS ... za každý potvrzený segment • cwnd = ci/i/A7č/ + MSS ... za každý RTT bez výpadku nad hranicí ssthresh • ssthresh = 0.5 • cwnd • cwnd = MSS ... pro každý výpadek Eva Hladká (Fl MU) 5. Transportní vrstva jaro 2016 69 / 85 Tradiční TCP Varianty TCP Varianty TCP III. - TCP Reno 20 30 čas [RTT] 50 ° ° cwnd sstresh 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á (Fl MU) 5. Transportní vrstva jaro 2016 70 / 85 Tradiční TCP Varianty TCP Varianty TCP IV. - TCP Vegas • proaktivní varianta TCP 9 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á (Fl MU) 5. Transportní vrstva jaro 2016 71 / 85 Tradiční TCP Vylepšení TCP Problém • Sítové spoje s vysokou kapacitou a vysokou latencí 9 iGrid 2005: San Diego Brno, RTT = 205 ms • SC'05: Seattle Brno, RTT = 147 ms • Tradiční TCP není připraveno pro takové prostředí • 10 Gb/s, RTT = 100 ms, 1500 B MTU ^> vysílací okno 83 333 paketů ^> ztráta jednoho paketu za 1/36 hodiny • Jak dosáhnout lepšího využití sítě? • Jak zajistit rozumnou koexistenci s tradičním TCP? • Jak zajistit postupné nasazování nového protokolu? Eva Hladká (Fl MU) 5. Transportní vrstva jaro 2016 72 / 85 Tradiční TCP Vylepšení TCP Vliv RTT Řízení toku • explicitní zpětná vazba od příjemce pomocí rwnd • deterministické ■v Řízení zahlcení • přibližný odhad pomocí odesílatelem určovaného cwnd Finální výstupní okno ownd ownd = min{rwnd, cwnd} Použitá šířka pásma bw]e pak 8 • ownd • MTU bw = RTT 9 Problém „meziplanetárního" internetu • RTT vysoké ^> tradiční TCP nepoužitelné • viz http://en.wikipedia.org/wiki/Interplanetary_Internet Eva Hladká (Fl MU) 5. Transportní vrstva jaro 2016 73 / 85 Tradiční TCP Vylepšení TCP Víceproudové TCP • Zlepšuje chovaní TCP pouze, pokud nastávají izolované výpadky paketů • Výpadek více paketů obvykle ovlivní více proudů • Dostupné díky snadné implementaci • bbftp, GridFTP, Internet Backplane Protocol, . .. • Nevýhody: • komplikovanější než TCP (obvykle více vláken) • nastartování je zrychleno nanejvýš lineárně • synchronní přetěžování front a vyrovnávacích pamětí na směrovacích Eva Hladká (Fl MU) 5. Transportní vrstva jaro 2016 74 / 85 GridDT Tradiční TCP Konzervativní rozšíření TCP • Sbírka ad-hoc modifikací 9 korekce sstresh • rychlejší slowstart • modifikace AIMD řízení zahlcení • pro úspěšné RTT: cwnd = cwnd + a • pro výpadek: cwnd = b • cwnd o modifikace pouze na straně odesílajícího Eva Hladká (Fl MU) 5. Transportní vrstva jaro 2016 75 / 85 Tradiční TCP Konzervativní rozšíření TCP Scalable TCP • řízení zahlcení již není AIMD: • pro úspěšné RTT: cwnd = cwnd + 0,01 • cwnd • per ACK: cwnd = cwnd + 0,01 • pro výpadek: cwnd = 0,875 • cwnd ^> Multiplicative Increase Multiplicative Decrease (MIMD) 9 pro malé velikosti okna a/nebo větší množství ztrát v síti se přepíná do AIMD režimu Eva Hladká (Fl MU) 5. Transportní vrstva jaro 2016 76 / 85 High-Speed TCP (HSTCP) • RFC3649, Sally Floyd • řízení zahlcení AIMD/MIMD: • pro úspěšné RTT: cwnd = cwnd + a(cwnd) • per ACK: cwnd = cwnd + a(cwn^ r cwnd • pro výpadek: cwnd = b(cwnd)cwnd • emuluje chování tradičního TCP pro malé velikosti okna a/nebo větší množství ztrát v síti Tradiční TCP Konzervativní rozšíření TCP Early Congestion Notification (ECN) • Součást Advanced Queue Management (AQM) • Bit, který nastavují routery pro detekci zahlcení linky/fronty/bufferu • TCP má na ECN reagovat stejně jako na výpadek • ECN příznak musí být odzrcadlen přijímačem Eva Hladká (Fl MU) 5. Transportní vrstva jaro 2016 78 / 85 Tradiční TCP Konzervativní rozšíření TCI E-TCP a FAST • E-TCP • navrhuje odzrcadlit ECN bit jen jednou (poprvé) • vyžaduje umělé zavedení malých náhodných výpadků, aby byla zajištěna férovost • vyžaduje změnu chování k ECN bitu na přijímačích a konfiguraci na směrovacích • FAST - Fast AQM Scalable TCP • používá end-to-end delay, ECN a ztráty paketů pro detekci/vyhýbání zaníceni Eva Hladká (TI MU) 5. Transportní vrství jaro 2016 79 / 85 tsunami Tradiční TCP Přístupy odlišné od TCP • TCP spojení pro out-of-band řídící kanál • vyjednávání parametrů přenosu • požadavky na znovuposlání - používá NACK místo ACK • vyjednávání ukončení přenosu 9 UDP kanál pro přenos dat • řízení zahlcení MIMD • vysoce konfigurovatelné - parametry MIMD, práh chyb, maximální velikost fronty pro znovuposlání, ... Eva Hladká (Fl MU) 5. Transportní vrstva jaro 2016 80 / 85 Reliable Blast UDP - RBUDP Out-of-band TCP kanál pro řízení, UDP pro přenos vytvořeno pro přenosy z disku na disk, příp. takové, kde kompletní ■ s ——X4-, v#\;cinrp přenášena data lze udržet v paměti vysílače posílá data uživatelem definovanou rychlostí zahájení vysílání Receiver —> UDP data traffic —► TCP signaling traffic A B C H c 1. The Time Sequence Diagram of RBUDP konec vysílání zaslaní signálu DONE po řídícím kanálu; přijímač reaguje zasláním masky přijatých dat D zaslání chybějících dat E-G dokončení přenosu C a D se opakují dokud nejsou přenesena všechna data Zero,. E.He, Z: « B,ast UDP: Predne W Bulk Data Transfer", IEEE Cluster Computmg 2002. Tradiční TCP Přístupy odlišné od TCP Další přístupy • XCP - zpětná vazba od směrovačů per paket 9 SCTP - víceproudový multi-homed transport • http://www.sctp.org • DCCP - UDP s řízením zahlcení kompatibilním s TCP • http://www.icir.org/kohler/dcp/ • STP - založeno na CTS/RTS • jednoduchý protokol pro snadnou implementaci v HW • bez sofistikovaného řízení zahlcení • http://lwn.net/2001/features/OLS/pdf/pdf/stlinux.pdf 9 Reliable UDP - spolehlivé in-order doručení (do maximálního počtu opakování retransmise) • původně vzniklo kvůli IP telefonii (RFC908 a RFC1151) • konfigurace parametrů per-spojení Eva Hladká (Fl MU) 5. Transportní vrstva jaro 2016 82 / 85 • Současný stav: • Víceproudové TCP se používá např. na Gridech • Hledají se cesty, jak bezpečně zajistit nasazení post-TCP protokolů (zpětná kompatibilita) • Nasazení agresivních protokolů na privátních/dedikovaných sítích a okruzích (CzechLight/CESNET2, SurfNet, ...) 9 Interakce s L3 (IP) • Interakce s linkovou vrstvou • proměnné zpoždění/propustnost u bezdrátových sítí • optical burst switching Eva Hladká (Fl MU) 5. Transportní vrstva jaro 2016 83 / 85 Rekapitulace Struktura přednášky Přehled Uvod Poskytované služby • Adresace na L4 • Řízení spojení - spojované vs. nespojované L4 služby UDP protokol Mechanismy zajištění spolehlivého přenosu • Stop-and-Wait ARQ • Go-Back-N ARQ • Selective-Repeat ARQ Tradiční TCP • 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) • Varianty TCP • Vylepšení TCP • Konzervativní rozšíření TCP • Přístupy odlišné od TCP Eva Hladká (TI MU) 5. Transportní vrstva jaro 2016 84/85 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čtem • 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. Matýska) Eva Hladká (Fl MU) 5. Transportní vrstva jaro 2016 85 / 85