5. prednáška ( ) Transportná vrstva 2.časť

Podobné dokumenty
Počítačové siete Transmission Control Protocol (TCP) Explicit Congestion Notification (ECN) SYN cookies

Y36PSI QoS Jiří Smítka. Jan Kubr - 8_rizeni_toku Jan Kubr 1/23

Plánovanie procesov a vlákien

DALI, pomoc a riešenia

Firewal ing v Linuxe

Microsoft Outlook. Stručný prehľad základných funkcií. Ing.Anna Grejtáková, SPP DFBERG

Skákalka. Otvoríme si program Zoner Callisto, cesta je Programy Aplikácie Grafika Zoner Callisto.

DOBROPISY. Dobropisy je potrebné rozlišovať podľa základného rozlíšenia: 1. dodavateľské 2. odberateľské

Moderné vzdelávanie pre vedomostnú spoločnosť/projekt je spolufinancovaný zo zdrojov EÚ. Grafy

NEINTERAKTÍVNA KOMUNIKÁCIA

Školská sieť EDU. Rozdelenie škôl. Obsah: Deleba škôl podľa času zaradenia do projektu: Delba škôl podľa rýchlosti pripojenia:

Studentove t-testy. Metódy riešenia matematických úloh

Formuláre PowerPoint MGR. LUCIA BUDINSKÁ,

Multiplexor a demultiplexor

TomTom Referenčná príručka

PLA-401 v3 Ethernetový adaptér PowerLine (prenos dát cez silové elektrické káble)

Operačný systém Úvodná prednáška

MS OFFICE OUTLOOK 2007

Počítačové siete Smerovacie (routing) protokoly Internetu BGP (v.4)

Počítačové sítě II. 14. Transportní vrstva: TCP a UDP. Miroslav Spousta, 2005

Návod Môj Slovanet Krátky sprievodca registráciou a obnovou hesla

Príručka k programu WinSCP

Bezdrôtová sieť s názvom EDU po novom

Obchodná akadémia Ružomberok Ing. Igor Rosa

KOMISNÝ PREDAJ. Obr. 1

GSM GPRS technológia. Ing. Marek Kudla

Hromadná korešpondencia v programe Word Lektor: Ing. Jaroslav Mišovych

Konfigurácia IP Bell 02C Dverný vrátnik a FIBARO Home Center 2

VYSPORIADANIE PREHRADENÝCH ZÁVÄZKOV A POHĽADÁVOK

Transportní vrstva. RNDr. Ing. Vladimir Smotlacha, Ph.D.

Počítačové sítě Transportní vrstva. Transportní vrstva

Návod na rýchlu inštaláciu Wi-Fi smerovača pre optický internet. Glitel GR660GE

PODPROGRAMY. Vyčlenenie podprogramu a jeho pomenovanie robíme v deklarácii programu a aktiváciu vykonáme volaním podprogramu.

Návod na použite plaftormy ELMARK E- Business obsahuje popis hlavných možností a funkcií programu. Príručka je štruktúrovaná podľa poradia možností.

Astronomická fotografia -- kuchárka pre digitálnu fotografiu

JEDI pohon pre garážové brány

Blokové a prúdové šifry

ANALÝZA PRÍPADNÉHO ROZDIELU A SPÔSOB JEHO ODSTRÁNENIA

Finančné riaditeľstvo Slovenskej republiky

PENETRAČNÉ TESTY. Prevencia pred únikom dát

EDA Klient (príjem výsledkov z oddelení klinickej biochémie a mikrobiológie prostredníctvom internetu)

s.r.o. HelpLine:

Vytvorenie používateľov a nastavenie prístupov

INTERNET BANKING. Platby cez Internet banking VŠETKO, ČO JE MOŽNÉ. with.vub.sk, Bank of

Textový editor WORD. Práca s obrázkami a automatickými tvarmi vo Worde

Úvodná strana IS ZASIELKY Prvky úvodnej stránky:

CM WiFi-Box. Technické inštrukcie. (pre kotly PelTec/PelTec-lambda) VYKUROVACIA TECHNIKA. Domáci wifi router.

Pracovné prostredie MS EXCEL 2003.

PLASTOVÉ KARTY ZÁKAZNÍKOV

Verifikácia a falzifikácia

Automatické pohony na brány

SKLADOVÁ INVENTÚRA 1 VYTVORENIE INVENTÚRY. 1.1 Nastavenie skladovej inventúry

KOMUNIKÁCIA PROSTEDNÍCTVOM IKT INTERNET IV. Interaktívna komunikácia, diskusné skupiny a fóra

Aktualizácia operačného systému Android tabletu Samsung Note 10.1 model N8010

CCNA 2/10 Další funkce TCP/IP Aleš Mareček Jaroslav Matějíček 1

ALGORITMY A PROGRAMOVANIE VO VÝVOJOVOM PROSTREDÍ LAZARUS. Vývojové prostredie Lazarus, prvý program

6. Transportní vrstva

ezakazky Manuál uchádzača

VECIT 2006 Tento materiál vznikol v rámci projektu, ktorý je spolufinancovaný Európskou úniou. 1/4

Používateľská príručka k aplikácii na SOČ

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ

Funkcia - priradenie (predpis), ktoré každému prvku z množiny D priraďuje práve jeden prvok množiny H.

Prevody z pointfree tvaru na pointwise tvar

IP Adresa. Marián Opiela 1.E

Stručný návod na inštaláciu Wi-Fi routra pre T-Mobile mobilný internet

Vlastnosti podporované transportním protokolem TCP:

Ako sme postavili Benátky

Názov: Osmóza. Vek žiakov: Témy a kľúčové slová: osmóza, koncentrácia, zber dát a grafické znázornenie. Čas na realizáciu: 120 minút.

Oprava PC. Odvírenie a bezpečnosť. Inštalácie. Wan Slovakia, spol. s r.o / K. Marxa 10, Levice 0915 /

Zápis predmetov do AiSu na aktuálny akademický rok

Tiandy IP kamera - SK manuál

Manuál Generovanie prístupových práv E-Recept

8. Relácia usporiadania

Súťaž MLADÝ ELEKTROTECHNIK 2010 Peter Kopecký 9.A, ZŠ Duklianska 1. Bánovce nad Bebravou Nastaviteľný zdroj

2. Čo a ako sa prenesie pri opakovanom prechode do nového roka? Po zopakovaní prechodu sa v novom roku v evidencii účtovných dokladov aktualizujú inte

P R O L U C. POZNÁMKY individuálnej účtovnej závierky pre rok 2014

OCHRANA INOVÁCIÍ PROSTREDNÍCTVOM OBCHODNÝCH TAJOMSTIEV A PATENTOV: DETERMINANTY PRE FIRMY EURÓPSKEJ ÚNIE ZHRNUTIE

Návod na aktualizáciu firmvéru pre 4G router TP-Link MR200

/1 REGISTRÁCIA PRIHLÁSENIE MÔJ PROFIL

Topásová 54, Košice, tel./fax: 055/ PMH SWAN

CENY DO VRECKA - DOMÁCNOSTI. keď sa nás spýtajú na ceny pre rok 2019

Externý klient Inštalácia

Manuál pripojenia sa k IP zariadeniu HikVision (videorekordéra, IP kamery, videoservera..) pomocou DDNS servera HikVision.

Príklad ponuky: Riešenie: vrch. hodnota 3 hodnota 2 hodnota 1

7 krokov pre úspešné používanie ZEP pri komunikácii s finančnou správou SR

UŽÍVATEĽSKÁ PRÍRUČKA. TCP Optimizátor

Používateľská príručka pre autorov Prihlásenie

Technická špecifikácia štruktúry ABO formátu DÁTOVÝ SÚBOR

Postupy pre komunikačné pripájanie zákazníkov ku elektromerom MT880 vo vlastníctve Stredoslovenskej distribučnej, a. s. Verzia 4/1.3.

Manuál Elektronická návratka

Automatický timer pre DX7 návod na inštaláciu a manuál

M úlohy (vyriešené) pre rok 2017

Téma : Špecifiká marketingu finančných služieb

Počítačové siete Smerovacie (routing) protokoly Internetu OSPF (v.2)

Stiga Autoclip 200 Series

Strana 1 z 7. Monitorovacie funkcie pre terminálové servery Zverejnené na Customer Monitor (

eformulár ČSOB Leasing užívateľský manuál verzia 1.0

Krok 1 Pochopenie systémov. Krok 2 Hodnotenie silných a slabých stránok. Krok 3 Zber podkladov. - hodnotenie - overenie - postupy a smernice

CERTIFIKAČNÉ ELEKTRONICKÉ TESTOVANIA - PERSPEKTÍVA

tipov pre kvalitnú tlač Na jednoduchých príkladoch Vám ukážeme ako postupovať a na čo si dávať pozor pri príprave podkladov na kvalitnú tlač.

Transkript:

5. prednáška (15.3.2017) Transportná vrstva 2.časť 1

Transportná vrstva: čo už vieme transportná vrstva odosielateľa delí správy (prúd dát) aplikačnej vrstvy na časti, z ktorých pridaním hlavičky vznikajú segmenty transportná vrstva príjemcu extrahuje dáta zo segmentov a poskytuje ich aplikačnej vrstve hlavnou úlohou transportných protokolov je umožniť odosielanie dát medzi dvoma soketmi soket otvára proces alebo vlákno procesu, pričom musí určiť port a rozhranie (jeho IP adresu), cez ktoré bude komunikovať soket je jednoznačne určený: v UDP IP adresou príjemcu a portom príjemcu v TCP IP adresami príjemcu a odosielateľa a portami príjemcu a odosielateľa 2

Transportná vrstva: čo už vieme Vlastnosti protokolu UDP: vysielanie bez nadviazania spojenia umožňuje vysielanie jedného prúdu dát k viacerým staniciam (streaming multimédií) počítanie kontrolných súčtov nepotvrdzovaný prenos dát proces príjemcu môže dostať dáta v inom poradí stratené segmenty sa ignorujú nemá kontrolu toku dát nemá kontrolu zahltenia siete 3

Transportná vrstva: čo už vieme Potvrdzovaný prenos dát cez nespoľahlivý kanál: kontrolný súčet sekvenčné čísla potvrdenia (ACK) so sekvenčnými číslami časovač Pipelining zvýšenie efektivity okno odosielateľných segmentov bez potvrdenia okno prijatých segmentov viac sekvenčných čísiel ( 2 * veľkosť okna) kumulatívne potvrdenie 4

Osnova rozprávania o transportnej vrstve 3.1 Služby transportnej vrstvy 3.2 Delenie správ a adresácia soketov 3.3 UDP: bezstavový transportný protokol 3.4 Princípy potvrdzovaného toku dát 3.5 TCP: stavový transportný protokol štruktúra segmentu pripájanie a odpájanie potvrdzovaný tok dát kontrola toku dát 3.6 Princípy zabezpečenia kontroly zahltenia 3.7 Kontrola zahltenia v protokole TCP 5

TCP: vlastnosti point-to-point: jeden odosielateľ, jeden príjemca potvrdzovaný prúd bajtov v správnom poradí pipelining: kontrola toku dát a zahltenia ovplyvňujú veľkosť okna buffre odosielateľa a príjemcu RFCs: 793, 1122, 1323, 2018, 2581 full duplex: obojsmerný tok dát v tom istom spojení so spojením: handshaking (zahájenie spojenia cez kontrolné správy) pred odosielaním dát kontrola toku dát: odosielateľ nezahltí príjemcu kontrola zahltenia siete: odosielateľ nezahltí zariadenia na ceste k cieľu 6

Štruktúra TCP segmentu 32 bitov URG: urgentné dáta ACK:číslo potvrdenia je nastavené PSH: posunúť hneď aplikačnej vrstve RST, SYN, FIN: zabezpečenie začiatku a konca spojenia zdrojový port cieľový port sekvenčné číslo číslo potvrdenia (ACK number) dĺž. nič UAP R S F hlav. kontr. súčet veľkosť okna point. na urg. dáta voľby (voliteľná dĺžka) zvyšované o počet bajtov v dátach segmentu nie o počet segmentov veľkosť okna príjemcu dáta aplikácie = časť správy (voliteľná dĺžka) 7

Osnova rozprávania o transportnej vrstve 3.1 Služby transportnej vrstvy 3.2 Delenie správ a adresácia soketov 3.3 UDP: bezstavový transportný protokol 3.4 Princípy potvrdzovaného toku dát 3.5 TCP: stavový transportný protokol štruktúra segmentu pripájanie a odpájanie potvrdzovaný tok dát kontrola toku dát 3.6 Princípy zabezpečenia kontroly zahltenia 3.7 Kontrola zahltenia v protokole TCP 8

Potvrdzovaný prenos dát cez TCP TCP využíva nespoľahlivý (best effort) prenos dát protokolom IP pipelining segmentov okno príjemcu aj odosielateľa kumulatívne potvrdenia jediný časovač na preposielania opätovné posielanie je spôsobené: timeout-om viacnásobným potvrdením na začiatok uvažujme zjednodušeného odosielateľa: ignorujme kontrolu toku dát a zahltenia 9

TCP sekvenčné čísla a potvrdenia Vygenerované sekvenčné číslo = 889999, Prvé dátové SČ = 890000 odosielajúci proces pošle veľkú správu transportnej vrstve veľkosti 5000 bajtov 0. bajt 0. bajt 1459. bajt SČ: 890000 4999. bajt 1460. bajt 2919. bajt 2920. bajt SČ: 891460 4379. bajt 4380. bajt 4999. bajt SČ: 892920 SČ: 894380 odosielateľ príjemca ACK: 891460 ACK: 892920 ACK: 894380 ACK: 895000 10

TCP: Manažment napojenia pred výmenou dát sa musí inicializovať spojenie úvodné nastavenie premenných: sekvenčné číslo - náhodne buffer, premenné kontroly toku dát (napr. RcvWindow) server: čaká na klienta ServerSocket serversocket = new ServerSocket(port); Socket connectionsocket = serversocket.accept(); klient: iniciátor spojenia Socket clientsocket = new Socket("hostname",port); 11

TCP: Manažment napojenia Napojenie (handshake): krok 1: klient pošle SYN segment na server vygeneruje svoje úvodné sekvenčné číslo žiadne dáta klient alokuje buffer krok 2: server prijme SYN, odpovie SYNACK segmentom vygeneruje svoje úvodné sekvenčné číslo žiadne dáta server alokuje buffer krok 3: klient prijme SYNACK, odpovie bežným ACK segmentom, ktorý už môže obsahovať dáta klient server SYN CK SYNA A CK Dáta Po vytvorení spojenia už je z pohľadu TCP jedno, ktorý z nich je klient a ktorý je server 12

TCP sekvenčné čísla a potvrdenia Sekvenčné čísla: poradové číslo prvého dátového bajtu v segmente Čísla potvrdenia (ACK): používateľ pošle znak C kumulatívne potvrdenie Seq=4 2, ACK =79, d a ta = C a = C t a d 3, CK=4 A, 9 7 Seq= sekvenčné číslo dátového bajtu, ktorý je očakávaný ako ďalší v poradí na prijatie Stanica B Stanica A potvrdí prijatie C Seq=4 3, ACK =80 scenár telnetu potvrdí prijatie C, pošle späť C čas 13

TCP: Manažment odpojenia Uzavretie spojenia: jedna zo staníc chce ukončiť spojenie (pôvodný klient alebo server): socket.close(); krok 1: stanica A pošle FIN (alebo FINACK) segment stanici B stanica A zatváram stanica B FIN zatváram ACK FIN, ACK krok 2: stanica B prijme FIN, odpovie ACK segmentom. krok 3: stanica B ak už nemá ďalšie dáta, pošle FINACK segment stanici A. 14

TCP: Manažment odpojenia krok 4: stanica A prijme stanica A FINACK, odpovie ACK segmentom. zatváram začne čakať, či nepríde ďalší FINACK (ak sa jeho posledný ACK stratil) ACK FIN, čakanie Uzatvorenie spojenia. FIN zatváram obvykle sa čaká 30 s, 1 min alebo 2 min krok 5: stanica B prijme ACK. stanica B ACK A CK uzavreté uzavreté 15

TCP: príklad komunikácie Stanica A Seq=9 2, 8 b ytes d ata timeout X =100 K C A strata Seq=9 2, 8 bytes data =100 K C A send_base = 92 Seq=92 timeout send_base = 92 Stanica A Stanica B Seq=9 2, 8 b ytes d ata Seq= 100, 20 by tes da ta 0 10 = K 120 = C K A AC Seq=9 2, send_base = 100 send_base = 120 Stanica B 8 byte s data 20 1 = K AC send_base = 100 čas stratené potvrdenie čas predčasný timeout 16

TCP: príklad komunikácie Stanica A Stanica B Seq=9 2, 8 b ytes d ata timeout send_base = 120 100 = Seq=1 K AC 00, 20 bytes data X strata ACK = 120 čas kumulatívne potvrdenie 17

TCP: viacnásobné potvrdenie 18

Udalosti odosielateľa: timeout: došli dáta aplikačnej prepošli najstarší nepotvrdený vrstvy: segment Vytvor segment so reštartuj časovač sekvenčným číslom prišlo potvrdenie: nextseqnum ak sa týka doteraz nastav nextseqnum nepotvrdených segmentov (číslo potvrdenia send_base) na svoje sekvenčné nastav segment s dôjdeným číslo plus veľkosť dát číslom potvrdenia a všetky od v svojom segmente neho staršie ako potvrdené a Ak bolo okno odosielateľa odstráň ich z okna odosielateľa ak sú ešte nepotvrdené prázdne, zapni segmenty, zapni časovač časovač ak prišli 3 potvrdenia s rovnakým expiračný interval: číslom, prepošli najstarší TimeOutInterval nepotvrdený segment znova 19

TCP: generovanie potvrdení [RFC 1122, RFC 2581] udalosť TCP príjemcu akcia Príchod segmentu s očakávaným sekvenčným číslom, všetky dáta s menším číslom už potvrdené. Nastav oneskorené potvrdenie. Čakaj max. 500 ms na ďalší segment. Ak nedôjde, odošli toto potvrdenie. Príchod segmentu s očakávaným sekvenčným číslom. Predchádzajúci segment nebol potvrdený. Odošli kumulatívne potvrdenie za oba segmenty. Príchod segmentu mimo poradie s vyšším ako očakávaným sekvenčným číslom. Zistená diera! Odošli (zdupľované) potvrdenie s číslom potvrdenia najstaršieho neprijatého segmentu. Príchod segmentu, ktorý čiastočne alebo úplne vypĺňa dieru. Odošli potvrdenie s číslom potvrdenia najstaršieho neprijatého segmentu. 20

Rýchle preposlanie Timeout nastáva až po relatívne dlhom čase: dlhá prestávka pred preposlaním strateného paketu Zistenie stratených segmentov cez viacnásobné potvrdenie Odosielateľ odošle mnoho dát, pokiaľ sa nezistí strata Ak sa segment stratí, začne prichádzať veľa rovnakých potvrdení Ak odosielateľ dostane 3 potvrdenia s rovnakým číslom, predpokladá, že dáta sa stratili: rýchle preposlanie: pošlem dáta znova bez toho, aby som čakal na timeout a reštartujem časovač 21

Round Trip Time (RTT) a timeout Aká je správna hodnota pre interval timeoutu časovača? viac ako RTT ale RTT je vždy iné ak je malá: predčasné opätovné poslania zbytočné preposielania ak je veľká: pomalá SampleRTT: čas medzi odoslaním segmentu a príchodom jeho potvrdzovacieho segmentu ignorujeme preposielania SampleRTT sa dosť mení, potrebujeme niečo stabilnejšie vezmeme do úvahy niekoľko posledných hodnôt SampleRTT reakcia na stratu segmentu 22

Očakávané RTT (EstimatedRTT) EstimatedRTT = (1- )*EstimatedRTT + *SampleRTT Predchádzajúca hodnota EstimatedRTT ovplyvňuje novú Exponential weighted moving average (exponenciálny vážený pohybujúci sa priemer?) Vplyv posledného merania je oveľa menší ako vplyv pôvodnej hodnoty EstimatedRTT typicky = 0.125 23

Príklad vývoja SampleRTT a EstimatedRTT v reálnom príklade (s) 24

Nastavenie timeout intervalu EstimatedRTT plus ochranný pás veľká zmena SampleRTT -> väčší ochranný pás najprv vyjadrime, ako sa SampleRTT odchyľuje od EstimatedRTT: DevRTT = (1- )*DevRTT + * SampleRTT-EstimatedRTT typicky = 0.25 TimeoutInterval nastavíme nasledovne: TimeoutInterval = EstimatedRTT + 4*DevRTT 25

Osnova rozprávania o transportnej vrstve 3.1 Služby transportnej vrstvy 3.2 Delenie správ a adresácia soketov 3.3 UDP: bezstavový transportný protokol 3.4 Princípy potvrdzovaného toku dát 3.5 TCP: stavový transportný protokol štruktúra segmentu pripájanie a odpájanie potvrdzovaný tok dát kontrola toku dát 3.6 Princípy zabezpečenia kontroly zahltenia 3.7 Kontrola zahltenia v protokole TCP 26

TCP: Kontrola toku dát príjemca má svoj buffer = okno príjemcu + nespracované dáta: odosielateľ nechce zahltiť príjemcu rýchlym posielaním správ snažíme sa odosielať takou rýchlosťou, akou to stíha príjemca spracúvať proces aplikácie nemusí stíhať čítať z buffra 27

TCP: Kontrola toku dát Príjemca informuje voľné miesto v buffri príjemcu = RcvWindow = RcvBuffer - dáta nespracované aplikáciou odosielateľa o veľkosti RcvWindow v hlavičke segmentu Odosielateľ nastavuje veľkosť svojho okna podľa hodnoty RcvWindow iba toľko nepotvrdených segmentov môže mať odoslaných garantujeme, že príjemcu nezahltíme 28

Štruktúra TCP segmentu 32 bitov URG: urgentné dáta číslo potvrdenia je nastavené PSH: posunúť hneď aplikačnej vrstve RST, SYN, FIN: zabezpečenie začiatku a konca spojenia zdrojový port cieľový port sekvenčné číslo číslo potvrdenia (ACK) dĺž. nič UAP R S F hlav. kontr. súčet veľkosť okna point. na urg. dáta voľby (voliteľná dĺžka) zvyšované o počet bajtov v dátach segmentu nie o počet segmentov veľkosť okna príjemcu dáta aplikácie = časť správy (voliteľná dĺžka) 29

Osnova rozprávania o transportnej vrstve 3.1 Služby transportnej vrstvy 3.2 Delenie správ a adresácia soketov 3.3 UDP: bezstavový transportný protokol 3.4 Princípy potvrdzovaného toku dát 3.5 TCP: stavový transportný protokol štruktúra segmentu pripájanie a odpájanie potvrdzovaný tok dát kontrola toku dát 3.6 Princípy zabezpečenia kontroly zahltenia 3.7 Kontrola zahltenia v protokole TCP 30

Princípy zabezpečenia kontroly zahltenia Zahltenie: neformálne: veľa zdrojov generuje tak veľa dát, že ich sieť nestíha všetky spracovať a preposielať k cieľom rôzne od kontroly toku dát! prejavy: stratené pakety (pretečenie buffrov na routroch) veľké zdržania (čakanie v radoch paketov v routroch) 31

Prístupy ku kontrole zahltenia Dva hlavné prístupy: Kontrola zahltenia pozorovaním vlastnej TCP komunikácie: žiadne explicitné informácie z jadra siete zahltenie sa odhalí stratou a zdržaním segmentov podpora priamo v TCP protokole Kontrola zahltenia s asistenciou siete: routre poskytujú spätnú väzbu cieľovým staniciam jednobitová informácia o zahltení explicitná hodnota rýchlosti, ktorou má odosielateľ vysielať 32

Osnova rozprávania o transportnej vrstve 3.1 Služby transportnej vrstvy 3.2 Delenie správ a adresácia soketov 3.3 UDP: bezstavový transportný protokol 3.4 Princípy potvrdzovaného toku dát 3.5 TCP: stavový transportný protokol štruktúra segmentu pripájanie a odpájanie potvrdzovaný tok dát kontrola toku dát 3.6 Princípy zabezpečenia kontroly zahltenia 3.7 Kontrola zahltenia v protokole TCP 33

Kontrola zahltenia v TCP bez spolupráce so sieťou, teda s routrami rýchlosť odosielania je limitovaná veľkosťou okna Congwin (congestion=zahltenie) okno odosielateľa Okno odosielateľa = min {Congwin, RcvWindow} 34

Kontrola zahltenia v TCP skúšanie použiteľnej šírky pásma: ideálne: odosielam tak rýchlo, ako mi umožňuje pripojenie (Congwin je také veľké ako treba), pričom nedochádza k stratám ani zdržaniu zvyšuj hodnotu Congwin, pokiaľ nedôjde k strate (pokiaľ nezahlcujeme) strata paketu: zníž hodnotu Congwin, a opäť skús zvyšovať dve fázy pomalý štart (slow start) predchádzanie zahlteniu (congestion avoidance) dôležité premenné: Congwin threshold: definuje hranicu správania pri ďalšom odosielaní po zistení straty paketu 35

Pomalý štart (Slow Start) Stanica A SlowStart algoritmus RTT Congwin = 1 do { pre každý ACK segment bez duplicít Congwin++ } while (! strata paketu AND!(CongWin > threshold)) Stanica B jeden seg ment dva segm en ty štyri segm en ty exponenciálny nárast veľkosti okna s každým ~RTT (t.j. potvrdením celého predchádzajúceho okna) čas 36

/* SlowStart skončil */ /* Congwin > threshold */ while (nie je strata počas ~RTT) { Congwin++ } threshold = Congwin/2 Congwin = 1 začni SlowStart Congwin (počet segmentov) Predchádzanie zahlteniu: TCP Tahoe Počet ~RTT 37

TCP AIMD = additive increase, multiplicative decrease zväčšovanie pripočítavaním: zväčšíme CongWin o 1 maximálnu veľkosť segmentu (MSS) po každom ~RTT bez straty paketov zmenšovanie delením: ignorujeme SlowStart => CongWin = CongWin/2 čas 38

Vylepšenie: TCP Reno Po troch 3 rovnakých potvrdeniach: veľkosť CongWin sa delí na polovicu následne rastie lineárne ALE ak nastal timeout: CongWin sa nastaví na veľkosť 1 segmentu (1 MSS) začne SlowStart, ktorý beží až do thresholdu Filozofia: 3 rovnaké potvrdenia hovoria, že sieť je schopná prenášať nejaké segmenty timeout bez toho, aby nastali 3 rovnaké potvrdenia je vážnejšia udalosť 39

Vylepšenie: TCP Reno nastal 3x rovnaký ACK nastal timeout 40

Zhrnutie: kontrola zahltenia v TCP Ak CongWin je menšie ako threshold, odosielateľ je vo fáze slowstart, okno rastie exponenciálne. Ak CongWin je väčšie ako threshold, odosielateľ je vo fáze predchádzanie zahlteniu, okno rastie lineárne, ale: Ak príde 3x rovnaký ACK, threshold aj CongWin sa nastaví na CongWin/2 Ak nastane timeout, threshold sa nastaví na CongWin/2 a CongWin sa nastaví na 1 MSS. 41

Priepustnosť TCP určme priemernú priepustnosť TCP ako funkciu veľkosti okna a ~RTT ignorujme SlowStart označme W ako veľkosť okna pri odhalení straty. keď veľkosť okna je w, priepustnosť je w/~rtt hneď po strate sa w zmenší na W/2, priepustnosť na W/(2*~RTT). predpokladajme, že W sa nemení, potom priemerná priepustnosť je 0.75 W/~RTT 42

Budúcnosť TCP: dlhé, široké rúry Príklad: 1500 bytové segmenty, 100ms RTT, chceme priepustnosť 10 Gb/s Potrebujeme veľkosť okna W = 83 333 MSS Vzorec pre priepustnosť ako funkcia frekvencie strát (L): -10 1.22 MSS RTT L L = 2 10 9 t.j. 1 strata po 4,666 10 segmentoch Vývoj nových TCP algoritmov na kontrolu zahltenia pre veľké rýchlosti a vzdialenosti 43

Užitočné voľby v TCP hlavičke Hlavička obsahuje miesto pre ďalšie voľby Štandardná veľkosť MSS je 536 bajtov. Bežne sa však používa 1460 bajtov. Počas handshaku vieme nastaviť premennú MSS na vyššiu alebo nižšiu Maximálne číslo v TCP hlavičke pre veľkosť okna príjemcu je 65535 bajtov pri veľkosti MSS 1460 B máme iba okno iba do 44 MSS! Počas handshaku vieme nastaviť premennú WSCALE, ktorou vykonáme bitový posun čísla veľkosti okna v hlavičke. Určíme tak násobok dvojky, ktorým sa bude násobiť hodnota veľkosti okna v hlavičke počas celej komunikácie okno môže mať pokojne až 1 GB 44

Spravodlivosť TCP Cieľ spravodlivosti: ak k TCP spojení zdieľa rovnaké úzke miesto s prenosovou rýchlosťou R, každý by mal mať priemernú rýchlosť spojenia R/k TCP spojenie 1 TCP spojenie 2 router kt. je úzkym miestom 45

Prečo je TCP spravodlivé Dve súťažiace spojenia: fáza predchádzanie zahlteniu zväčšuje okno o 1 u oboch pri strate je delenie dvoma proporčné (u pomalšieho menej) R rovnaký podiel šírky pásma Priepustnosť 2.spojenia strata: delenie okna dvoma predchádzanie zahlteniu: pripočítavanie o 1 strata: delenie okna dvoma predchádzanie zahlteniu: pripočítavanie o 1 Priepustnosť 1. spojenia R 46

Spravodlivosť Paralelné TCP spojenia UDP: Multimediálne aplikácie nič nebráni tomu, aby aplikácie otvorili viac často nepoužívajú TCP paralelných spojení medzi 2 rýchlosť sa pri zahltení stanicami neznižuje toto robia webové posielajú dáta prehliadače / sťahovače konštantnou rýchlosťou nevadí im strata paketov príklad: cez úzke miesto Miesto pre výskum: prechádza práve 9 TCP spojení urobiť UDP tak, aby moja nová aplikácia s 1 TCP bolo priateľské k TCP spojením dosiahne rýchlosť R/10 ak si otvorím 9 TCP spojení, dosiahnem R/2! 47

Zhrnutie Princípy fungovania služieb transportnej vrstvy: delenie správ a adresácia soketov spoľahlivý prenos dát kontrola toku dát kontrola zahltenia fungovanie implementácií protokolov transportnej vrstvy na internete: UDP TCP V ďalšej prednáške: opustíme okraje siete (aplikačná a transportná vrstva) pozrieme sa na jadro siete 48

Ďakujem za pozornosť Modifikované slajdy z knihy: Computer Networking: A Top Down Approach, 4th edition. Jim Kurose, Keith Ross Addison-Wesley, July 2007. 49