Selektiiviset kuittaukset (RFC 2018, RFC 3517)

Samankaltaiset tiedostot
on yksi keskeisimpiä toimintoja Internetin toiminnan varmistamiseksi Internetin ruuhkanhallinta pitkälti

Ongelma 1: Ei saada kolmea toistokuittausta

Nopea uudelleenlähetys (Fast retransmit)

Nopea uudelleenlähetys (Fast retransmit)

Ruuhkanvalvonta on hankalaa!

Ruuhkanvalvonta on hankalaa!

Ruuhkanvalvonta on hankalaa!

Ratkaisu: Miksi lähetetään uusi paketti? SACK (Selective Acknowledgement) Nopea toipuminen ei onnistu! Limited Transmit

M. Allman, H. Balakrishnan, S. Floyd. January (Status: PROPOSED STANDARD) Lähettäjä ei saa kolmea toistokuittausta =>

M. Allman, H. Balakrishnan, S. Floyd. January Lähettäjä ei saa kolmea toistokuittausta =>

TCP. TCP-optiot. Erilaisia suorituskykyongelmia. Aikaleima (timestamp) TCP:n peruspiirteiden toiminta tarkemmin. TCP:n uusia piirteitä.

TCP. TCP:n peruspiirteiden toiminta tarkemmin. TCP:n uusia piirteitä. osin vain harjoitustehtävissä

TCP:n peruspiirteiden toiminta tarkemmin. osin vain harjoitustehtävissä. TCP:n uusia piirteitä

Tietoliikenne II Kurssikoe

kynnysarvo (threshold) varoitusarvo = tästä lähtien syytä varoa ruuhkaa aluksi 64 K RTT

kynnysarvo (threshold)

kynnysarvo (threshold)

Tietoliikenne II (2 ov)

Tietoliikenne II (2 ov)

TCP:n vuonohjaus (flow control)

Tietoliikenne II (2 ov) Syksy 2004 Liisa Marttinen

Kuljetuskerros. Tietokoneverkot. Matti Siekkinen Pasi Sarolahti

Tietoliikenne II (2 ov)

Tietoliikenne II (2 ov)

Tietoliikenne II. Tietoliikenne II (2 ov) Alustava sisällysluettelo. Sisällysluettelo jatkuu. Suoritus. Syksy 2003 Liisa Marttinen

Tietoliikenne II (2 ov) Syksy 2003 Liisa Marttinen

Tietoliikenne II (2 ov) Tietoliikenne II. Sisällysluettelo jatkuu. Alustava sisällysluettelo. Suoritus. Täydennystä Tietoliikenne I -kurssin asioihin

ELEC-C7241 Tietokoneverkot Kuljetuskerros

Monimutkaisempi stop and wait -protokolla

Tietoliikenne II (2 ov)

Monimutkaisempi stop and wait -protokolla

TCP. TCP-optiot. Erilaisia suorituskykyongelmia. Aikaleima (timestamp) TCP:n peruspiirteiden toiminta tarkemmin. TCP:n uusia piirteitä.

Monimutkaisempi stop and wait -protokolla

Tietoliikenne II (2 ov) Sisällysluettelo jatkuu. Tietoliikenne II. Alustava sisällysluettelo. Suoritus

Ikkunankoko. Kun käytetty numeroavaruus on 0, 1,.. n ja eri numeroita siis käytettävissä n+1

Ikkunankoko. Kun käytetty numeroavaruus on 0, 1,.. n ja eri numeroita siis käytettävissä n+1

Tietoliikenne II. Syksy 2005 Markku Kojo. Tietoliikenne II (2 ov,, 4 op) Page1. Markku Kojo Helsingin yliopisto Tietojenkäsittelytieteen laitos

Kuittaukset ACK. NAK-kuittaus. kumulatiivinen ACK. yksittäinen ACK. sanoma virheellinen tai puuttuu. tähän saakka kaikki ok!

Kuittaukset. Miksi? Miksi? Negatiiviset kuittaukset NAK-kuittauksilla voidaan nopeuttaa uudelleenlähettämistä. Ikkunankoko ACK

Kuittaukset. tähän saakka kaikki ok! Go-Back N. sanoma virheellinen tai puuttuu

Miksi? Miksi? Kaksisuuntainen liikenne TCP-protokolla. Ikkunankoko. Valikoiva toisto: ikkuna 5, numeroavaruus 8

hteitä 2005 Markku Kojo Detailed algorithm for a RED router

Siirron optimointi. Optimointi on usein tarpeen: Silly window syndrome. Esimerkki jatkuu

Esimerkki jatkuu. <seq = 6, data = m6> <ack = 4, buf = 0> <ack = 4, buf = 1> <ack = 4, buf = 2> <ack = 6, buf = 0> <ack = 6, buf = 4> 1/31/

S Tietoliikenneverkot S Luento 6: Liikenteenhallinta

11/20/ Siirron optimointi

Esimerkki jatkuu. ajastin laukeaa, uudelleen sanoma 2. <seq = 6, data = m6>

Siirron optimointi. Optimointi on usein tarpeen: Silly window syndrome

Kuljetuskerros. Matti Siekkinen. T Johdatus tietoliikenteeseen kevät 2011

S Tietoliikenneverkot

Tehtävä 2: Tietoliikenneprotokolla

TCP/IP-protokollapino. Kuljetuskerros. Tämän luennon jälkeen. Sisältö. Matti Siekkinen. Ymmärrätte:

Kuljetuskerroksen protokollat. Luotettava vai epäluotettava? Kuljetuskerroksen tarkoitus. Tietosähkeen kapselointi. Portit ja (de)multipleksaus

Luento 6: Kuljetuskerros UDP & TCP TCP:n ruuhkanhallinta

Luento 6: Kuljetuskerros UDP & TCP TCP:n ruuhkanhallinta

Kuljetuskerros. CSE-C2400 Tietokoneverkot (osa 1) (osa 2) Matti Siekkinen. Tietokoneverkot 2014

Page1. hteitä. ECN (Explicit Congestion Notification) Muutokset TCP:hen. IP-arkkitehtuuriin. Detailed algorithm for a RED router

Tietoliikenteen perusteet

Luento 6: Kuljetuskerros UDP & TCP TCP:n ruuhkanhallinta. Syksy 2014, Tiina Niklander Kurose&Ross: Ch3

Tietoliikenteen perusteet

Tietoliikenteen perusteet

Vuonohjaus: ikkunamekanismi

Kuljetuskerros. Matti Siekkinen. T Johdatus tietoliikenteeseen kevät 2013

3. Kuljetuskerros 3.1. Kuljetuspalvelu

Kuljetuskerroksen protokollat

3. Kuljetuskerros 3.1. Kuljetuspalvelu

3. Kuljetuskerros 3.1. Kuljetuspalvelu End- to- end

peittää verkkokerroksen puutteet

3. Kuljetuskerros 3.1. Kuljetuspalvelu End- to- end

3. Kuljetuskerros 3.1.

Kuljetuskerroksen protokollat. Kuljetuskerroksen tarkoitus. Luotettava vai epäluotettava?

Kuljetuskerroksen protokollat

Tietoliikenteen perusteet. Kuljetuskerros

Tietoliikenteen perusteet. Kuljetuskerros

7. Palvelun laatu (QoS) Internetissä

7. Palvelun laatu (QoS) Internetissä

Kuva maailmasta Pakettiverkot (Luento 1)

Tietoliikenteen perusteet. Kuljetuskerros

Kuljetuspalvelu. Tietoliikenteen perusteet. Sisältöä. Kuljetuskerros. Kuljetuskerros. Kuljetuskerros. Internetin kuljetusprotokollat

3. Kuljetuskerros 3.1. Kuljetuspalvelu

3. Kuljetuskerros 3.1. Kuljetuspalvelu

6. Kuljetuskerros 6.1. Kuljetuspalvelu End- to- end

6. Kuljetuskerros 6.1. Kuljetuspalvelu

3. Kuljetuskerros 3.1. Kuljetuspalvelu. Internetin kuljetuskerros. kuljetuspalvelut parantavat verkkopalveluja

Tietoliikenteen perusteet. Kuljetuskerros

Kuljetuspalvelu. Tietoliikenteen perusteet. Sisältöä. Kuljetuskerros. Kuljetuskerros. Kuljetuskerros. Internetin kuljetusprotokollat

ICMP-sanomia. 3. IP-kerroksen muita protokollia ja mekanismeja ICMP (Internet Control Message Protocol)

3. IP-kerroksen muita protokollia ja

6. Kuljetuskerros 6.1. Kuljetuspalvelu End- to- end. kuljetuspalvelut parantavat verkkopalveluja Kuljetuskerroksen toiminta

Internet ja tietoverkot. 3 Kuljetusprotokollat Luotettava ja epäluotettava tiedonsiirto

3. Kuljetuskerros 3.1.

Tiivistelmä Kunal Shahin Master of Science -työstä: Simulation Based Study of TCP Fairness in Multi-Hop Wireless Networks

Kuljetuskerros. CSE-C2400 Tietokoneverkot (osa 1) (osa 2) Matti Siekkinen. Tietokoneverkot 2014

Kuljetuskerros. CSE-C2400 Tietokoneverkot (osa 1) (osa 2) Matti Siekkinen. Tietokoneverkot 2014

Kuljetuskerros. CSE-C2400 Tietokoneverkot (osa 1) (osa 2) Matti Siekkinen. Tietokoneverkot 2016

Kuljetuskerroksen protokollat

Chapter 3 Transport Layer. Kuljetuskerros

3. Kuljetuskerros 3.1. Kuljetuspalvelu

Potilaskohtaisten silmätippojen toimittaminen

Liikenneongelmien aikaskaalahierarkia

Transkriptio:

Selektiiviset kuittaukset (RFC 2018, RFC 3517) Toistokuittaus ilmaisee vain yhden puuttuvan segmentin Vastaavasti kumulatiivinen kuittaus toipumisen aikana kertoo vain seuraavaksi haluttavan eli ilmaiseen myös s vain yhden puuttuvan segmentin Toivuttaessa hitaalla aloituksella (ajastin) usein segmenttejä lähetetään n turhaan uudelleen Nopeassa toipisessa (NewReno) voidaan toipua vain yksi segmentti / RTT Selektiivinen kuittaus (Selective Acknowledgement, SACK) optio mahdollistaa useamman puuttuvan segmentin kertomisen yhdellä kuittauksella 40 SACK optiot (RFC 2018) TCP SACK-permitted optio 4 2 Option tyyppi = 4 1 tavu 1 tavu Käytetään n yhteyttä muodostettaessa (SYN-segmentiss segmentissä) Merkitys: yhteydellä voidaan käyttk yttää SACK-kuittauksia TCP SACK optio Kuljettaa lisäinformaatiota informaatiota kumulatiivisen kuittauksen lisäksi mitkä järjestysnumerovälit (lohkot) on vastaannotettu onnistuneesti (ovat vastaanottopuskurissa) 41 Page1 1

TCP SACK optio 5 pituus 1. Lohkon alku (järj. nro) 1. Lohkon loppu (järj. nro+1) 2. Lohkon alku 2. Lohkon loppu 3. Lohkon alku 3. Lohkon loppu Option tyyppi = 5 Yhteen TCP-segmenttiin mahtuu max 4 lohkoa, koska optioille on varattu max 40 tavua (jos ei käytetä muita optioita, kuten aikaleimaa). 42 SACK optio lähetetl hetetään Aina, kun kuitataan muuta kuin korkein vastaanottajan puskurissa oleva järjestysnumeroj SACK-optiolla toistetaan aina niin monta viimeisintä saapunutta epäjatkuvaa järjestysnumeroväliä (lohkoa) kuin mahdollista Takaa sen, että kukin lohko raportoidaan useita kertoja Ensimmäinen inen lohko ilmaisee lohkon, joka sisält ltää kuittauksen aiheuttaneen segmentin Vain ohjeellista tietoa TCP-lähett hettäjälle Lähettäjä poistaa segmentit lähetyspuskurista l vasta, kun saa kumulatiivisen kuittauksen 43 Page2 2

Esim. SACK optio käytk ytöstä Esim. segmentin koko 1000 tavua, segmentti 10000 katoaa, mutta muut tulevat perille 1. kuittaus: ACK 10000, SACK 11000-12000 12000 2. kuittaus: ACK 10000, SACK 11000-13000 13000 3. kuittaus: ACK 10000, SACK 11000-14000 14000... Esim. segmentin koko 1000 tavua, segmentti 10000 ja 12000 katoaa, mutta muut tulevat perille 1. kuittaus: ACK 10000, SACK 11000-12000 12000 2. kuittaus: ACK 10000, SACK 11000-12000, 12000, 13000-14000 14000 3. kuittaus: ACK 10000, SACK 11000-12000, 12000, 13000-15000 15000... 44 SACK toipuminen (RFC 3517) SACK-option avulla TCP-lähett hettäjä pystyy toipumaan enemmän n kuin yhden segmentin per RTT (vrt. NewReno) TCP-lähett hettäjä ylläpit pitää scoreboard tietorakennetta (uudelleenlähetysjonon) yhteydessä Kustakin segmentistä tieto onko saatu SACK-kuittaus (SACKed( SACKed) HighACK:: suurin kumulatiivisesti kuitattu järj. j numero HighRxt:: suurin järjestysnumero, j joka on uudelleenlähetetty HighData:: suurin lähetetty l järjestysnumeroj TCP-lähett hettäjä ylläpit pitää muuttujaa pipe,, jossa estimaatti verkossa olevasta datasta Ruuhkaikkuna (cwnd( cwnd) ) rajoittaa lähetystl hetystä Joscwnd pipe >= 1 SMSS,, voi lähettl hettää lisää ensisijaisesti uudelleenlähetet hetetään n SACK-tiedon perusteella kadonneiksi tulkittuja segmenttejä (segmentille saatu 3 SACK- lohkoa sen yläpuolelta) jos ei kadonneita segmenttejä,, lähetetl hetetään n uutta dataa 45 Page3 3

SACK Fast Retransmit (RFC 3517) Kun saapuu 3. toistokuittaus: 1. Aseta RecoveryPoint = HighData; 2.ssthresh = cwnd = FlightSize / 2 3. Lähetä puuttuva segmentti ja aseta HighRxt = uudelleenlähetetyn segmentin viimeisen tavun järjestysnumero 4. Laske pipe muuttujan arvo. Mukaan lasketaan kaikki segmentit, jotka lähetetty l muttei kuitattu (kumulatiivinen tai SACK), mutta ei segmenttejä,, jotka katsotaan kadonneiksi ( = saatu 3 SACK-lohkoa ko. segmentin yläpuolelta) kaikki uudeleenlähetetyt (HighAck( < järj.nro j <=HighRxt HighRxt) 5. Joscwnd pipe >= 1 SMSS,, voi lähettl hettää lisää segmenttejä Ensisijaisesti kadonneiksi tulkittujen segmenttien uudelleenlähetys, muutoin uutta dataa Samalla päivitettp ivitettävä aina muuttujat HighRxt,HighData ja pipe 46 SACK Fast Recovery (RFC 3517) Aina kun saapuu uusi ACK: A. Jos kumulatiivinen ACK numero >RecoveryPoint Toipuminen valmis, poistu FastRecovery:stä B. Jos kumulatiivinen ACK numero <= RecoveryPoint Päivitä scoreboard SACK-tiedolla Laske pipe-muuttujan arvo C. Joscwnd pipe >= 1 SMSS,, voi lähettl hettää lisää segmenttejä Ensisijaisesti kadonneiksi tulkittujen uudelleenlähetys, muutoin uutta dataa Samalla päivitettp ivitettävä aina muuttujat HighRxt, HighData ja pipe 47 Page4 4

Fast Retransmit&Fast Recovery (SACK) cwnd = 6 RecoveryPoint=7; ssthresh=3 cwnd = 3; pipe =2 pipe = 3 Sender ack = 2 ack = 2 ack = 2 ack = 2 Data, seq = 1 Data, seq = 2 Data, seq = 3 Data, seq = 4 Data, seq = 5 Data, seq = 6 Data, seq = 7 Rexmit Data, seq = 2 Receiver ack=2; SACK 3 ack=2; SACK 3, 5 ack=2; SACK 3, 5, 7 ack=4; SACK 5, 7 Recovery Done cwnd = 3; pipe = 1 pipe = 2 pipe = 3 pipe = 1 pipe = 2 pipe = 3 Time ack = 4 ack = 6 ack = 8 Rexmit Data, seq = 4 Rexmit Data, seq = 6 Data, seq = 8 Data, seq = 9 Time ack=6; SACK 7 ack=8 48 Limited Transmit (RFC 3042) Ongelma: Jos ruuhkaikkuna on hyvin pieni ( cwnd < 4 ) TAI Jos yhdestä ikkunasta katoaa runsaasti segmenttejä TCP-lähett hettäjä ei mahdollisesti koskaan saa kolmea toistokuittausta Täytyy odottaa uudelleenlähetysajastimen laukeamista ja toipuminen Slow-Start:issa Start:issa Toipuminen hidasta ja tehotonta Ratkaisu: Rajoitettu lähetys l (Limited Transmit) ensimmäisen isen sekä toisen toistokuittauksen saavuttua saa lähettl hettää yhden uuden datasegmentin mahdollista, sillä saapuva toistokuittaus indikoi vähintään n yhden paketin poistuneen verkosta 49 Page5 5

Limited Transmit (vrt.. s. 33) Sender Receiver Data, seq = 1 Data, seq = 2 Data, seq = 3 cwnd = 3 Data, seq = 4 Data, seq = 5 Ajastin EI laukea, koska saadaan kolme toistokuittausta RTO Fast Retransmit ack = 3 ack = 3 ack = 3 ack = 3 ack = 8 Data, seq = 6 Data, seq = 7 Rexmit Data, seq = 3 Data, seq = 8 Time Data, seq = 9... Time 50 Aktiivinen jononhallinta (RFC2309) (Active Queue Management) Aktiivinen, ennaltaehkäisev isevä puskurijonon hallinta parantaa TCP:n suorituskykyä proaktiivinen <=> reaktiivinen Ongelma: Kun ruuhka on syntymäss ssä,, puskurien jonot kasvavat ja lopulta puskurit täyttyvt yttyvät t ja paketteja joudutaan hävittämään - yleensä pudotetaan viimeksi saapuvat paketit * tail-drop Purskeinen liikenne aiheuttaa useiden pakettien pudottamisen Globaali tahdistuminen mahdollista Lock-Out: yksi tai muutama yhteys saattavat monopolisoida koko jonoa epäreilua 51 Page6 6

Globaali tahdistuminen Samanaikaisesti usean TCP-lähetyksen uudelleenlähetysajastin laukeaa tai kolme toistokuittausta, jolloin useat TCP:t vähentv hentävät hyvin voimakkaasti lähettl hettämistään verkon vajaakäytt yttöisyys lähettäjät t kasvattavat lähettl hettämisvauhtia jossain määrin samassa tahdissa hitaassa ajoituksessa melko nopeasti ruuhka verkossa 52 Verkon suorituskyky on huono! ruuhka Paketteja pudotaan jonoista Ruuhkanvalvonta vähentää liikennettä vajaakäyttö Hidas aloitus kasvattaa kuormaa melko nopeasti Oskilloidaan ruuhkan ja vajaakäytön välillä eikä yhteyksillä saavuteta tasaista kuittauksien tahdistamaan lähetysputkea. 53 Page7 7

Active Queue Management (AQM) Proaktiivinen lähestymistapa: l Pudota paketti ennenkuin jono täyttyyt Käytetään n keskimää ääräistä jonopituutta ruuhkaindikaattorina Etuja (kun lähettl hettäjät t noudattavat ruuhkanvalvontaa) Keskimää ääräinen jononpituus pysyy lyhyenä päästä- päähän n viive pienenee Reilumpi palvelu kaikille Vähentää reitittimessä pudotettujen pakettien mää äärää Suurempi kapasiteetti purskeiden vastaanottamiseksi Vältetään n globaali synkronoituminen Vältetään n Lock-out out -ilmiö Tunnetuin AQM-menetelm menetelmä: Random Early Detection (RED) 54 RED Aina, kun paketti saapuu jonoon, laske keskimää ääräinen jonopituus (avg)) käyttk yttämällä eksponenttiallista tasoitusta painolla w q, 0<w q <1 (suositus: w q = 0.002) avg n + 1 = ( 1 w q)avgn + wqq ist q ist = jononpituus, kun paketti saapuu jonoon (instantaneous queue length) Jos avg < min th älä tee mitää ään Jos avg max th pudota paketti Jos min th avg < max th pudota paketti todennäköisyydell isyydellä p: Dropping/Marking Probability, p' p' = max p(avg min p = p'/( 1 count p') )/(maxth min th th ) p=1 count = montako pakettia vastaanotettu viime pudotuksen jälkeen j tai sen jälkeenj kun avg ylitti min th :n avg max th min th Max p = 0.1 55 Page8 8

Jonon pituuden vaikutus THmax THmin 0 Aina hävitetään Kasvavalla todennäköisyydella P hävitetään Ei koskaan hävitetä jos jonon pituus q ist = 0 M (time - q_time)/s avg (1-w q ) m * avg S = yhden paketin siirtoaika; ; time = nykyaika; q_time = ajanhetki,, kun jono tyhjeni arvioidaan, kuinka monta pikkupakettia (= M) olisi voitu siirtää sinä aikana, jonka jono on ollut tyhjänä 56 Pyritään pitämää ään jonon pituus koko ajan annetuissa rajoissa hävittämällä paketteja,, kun jonon keskipituus alkaa kasvaa eli voi tulla ruuhka Hävittämistodennäköisyysisyys kasvaa,, kun jono kasvaa Hävittämistodennäköisyysisyys kasvaa,, kun paketteja ei ole hävitetty 57 Page9 9