Monimutkaisempi stop and wait -protokolla



Samankaltaiset tiedostot
Monimutkaisempi stop and wait -protokolla

Monimutkaisempi stop and wait -protokolla

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

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

3. Kuljetuskerros 3.1.

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

3. Kuljetuskerros 3.1. Kuljetuspalvelu End- to- end

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ä

3. Kuljetuskerros 3.1. Kuljetuspalvelu

Tietoliikenteen perusteet

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

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

peittää verkkokerroksen puutteet

kynnysarvo (threshold)

3. Kuljetuskerros 3.1. Kuljetuspalvelu

kynnysarvo (threshold)

3. Kuljetuskerros 3.1. Kuljetuspalvelu

3. Kuljetuskerros 3.1. Kuljetuspalvelu End- to- end

3. Kuljetuskerros 3.1.

3. Kuljetuskerros 3.1. Kuljetuspalvelu

3. Kuljetuskerros 3.1. Kuljetuspalvelu End- to- end

3. Kuljetuskerros 3.1. Kuljetuspalvelu

ELEC-C7241 Tietokoneverkot Kuljetuskerros

Tehtävä 2: Tietoliikenneprotokolla

Kuljetuskerros. Tietokoneverkot. Matti Siekkinen Pasi Sarolahti

3. Siirtoyhteyskerros linkkikerros (Data Link Layer) Virheiden hallinta. Vuonvalvonta. Kuittausviive Suunnitteluperiaatteita

3. Siirtoyhteyskerros linkkikerros (Data Link Layer)

3. Siirtoyhteyskerros

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

6. Kuljetuskerros 6.1. Kuljetuspalvelu End- to- end

6. Kuljetuskerros 6.1. Kuljetuspalvelu

11/20/ Siirron optimointi

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/

Luento 5: Kuljetuskerros

Siirron optimointi. Optimointi on usein tarpeen: Silly window syndrome

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

Luento 5: Kuljetuskerros luotettavan tiedonsiirron periaatteet. Syksy 2014, Tiina Niklander

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

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

Tietoliikenne II (2 ov)

Tietoliikenne II (2 ov)

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

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

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

Siltojen haitat. Yleisesti edut selvästi suuremmat kuin haitat 2/19/ Kytkin (switch) Erittäin suorituskykyisiä, moniporttisia siltoja

Ongelma 1: Ei saada kolmea toistokuittausta

Nopea uudelleenlähetys (Fast retransmit)

Nopea uudelleenlähetys (Fast retransmit)

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

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

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

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

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

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

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

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

Luento 6: Kuljetuskerros UDP & TCP TCP:n ruuhkanhallinta

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

Luento 6: Kuljetuskerros UDP & TCP TCP:n ruuhkanhallinta

Selektiiviset kuittaukset (RFC 2018, RFC 3517)

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

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

Kuljetuskerros. Kirja sivut: ,

Tietoliikenne II (2 ov)

OSI ja Protokollapino

Tietoliikenne II Kurssikoe

Tietoliikenteen perusteet. Kuljetuskerros

Tietoliikenteen perusteet. Kuljetuskerros

Tietoliikenteen perusteet. Kuljetuskerros

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

Vuonohjaus: ikkunamekanismi

Tietoliikenteen perusteet. Kuljetuskerros

TCP:n vuonohjaus (flow control)

Tietoliikenteen perusteet

Tietoliikenteen perusteet

Tietoliikenteen perusteet: Kokeeseen tulevista asioista

Tietoliikenteen perusteet. Kuljetuskerros

Kuljetuskerroksen tehtävä. Kuljetuskerros UDP. UDP-kaappaus (DNS) DNS-haku, Ethernet-kehys <#>

Kuljetuskerroksen protokollat

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

Kuljetuskerroksen protokollat

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

Tietoliikenteen perusteet. Kuljetuskerros

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

3. IP-kerroksen muita protokollia ja

Ruuhkanvalvonta on hankalaa!

Ruuhkanvalvonta on hankalaa!

Ruuhkanvalvonta on hankalaa!

Tietoliikenne II (2 ov) Syksy 2004 Liisa Marttinen

Salausmenetelmät (ei käsitellä tällä kurssilla)

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

Tietoliikenne II (2 ov)

Protokollien yleiset toiminnot

Siltojen haitat Yleisesti edut selvästi suuremmat kuin haitat

Transkriptio:

Monimutkaisempi stop and wait -protokolla Lähettäjä: 0:A vastaanottaja: ajastin lähettäjälle jos kuittausta ei kuulu, sanoma lähetetään automaattisesti uudelleen kuittaus: = ok, lähetä seuraava uudelleenlähetys synnyttää kaksoiskappaleita! Sanomanumerointi jotta vastaanottaja tunnistaa kaksoiskappaleet Miten paljon numeroita tarvitaan?» Numero vie tilaa sanomassa! ajastin laukeaa => uudelleenlähetys ack 1:B 1:B ack Stop and wait -protokollan suorituskyky Esim. satelliittiyhteydellä 50 kbps, kiertoviive ~520 ms, sanoma 1000 bittiä kanavan käyttöaste < 4% => lähetetään useita sanomia ja sitten vasta odotetaan kuittauksia ideaali: lähetykset liukuhihnalla (pipeline) lähetykset ja kuittaukset limittyvät ei mitään odottelua lähetyskanava koko ajan käytössä suorituskyky kasvaa Liukuvan ikkunan protokolla (Sliding Window) Lähetysikkuna ikkunan koko montako sanomaa saa korkeintaan olla kuittaamatta järkevä koko riippuu yhteyden tyypistä ja vastaanottajan kapasiteetista kiinteä koko /vaihteleva koko sisältö = mitkä sanomat saa lähettää sanomalla järjestysnumero rajallinen, N bittiä => 2**N arvoa numerot käytettävä järjestyksessä 1/29/2003 34 Lähettäjä joutuu odottamaan vasta, kun kaikki ikkunan sanomat on lähetetty eli numerot käytetty Kun kuittaus saapuu => ikkuna liukuu seuraavat numerot tulevat luvallisiksi eli lähettäjä: tietyllä hetkellä sallittujen numeroiden joukko = lähettäjän ikkuna mitkä sanomat saa lähettää etukäteen odottamatta kuittausta Vastaanottajan ikkuna kullakin hetkellä sallittujen numeroiden joukko mitä sanomia suostuu vastaanottamaan kuittaus muuttaa myös vastaanottajan ikkunan ikkuna pysäyttää sanomien lähetyksen seuraava sanomanumero ei ole lähetysikkunassa ikkuna estää sanoman vastaanoton saadun sanoman numero ei ole vastaanottoikkunassa 1/29/2003 35

Kun ikkunan koko on 1 Aina vain yksi sanoma kuittaamattomana => One Bit Sliding Window -protokolla ~ stop and wait -protokolla sanomanumerot 0 ja 1 riittävät -sanoma identifioi viimeksi vastaanotetun virheettömän sanoman jotta kuittausduplikaatti ei voi kuitata väärää sanomaa ilmoittaa joko» seuraavaksi odotetun sanoman numeron» viimeksi vastaanotetun sanoman numeron Entä kun tapahtuu virhe? kaksi eri tapaa hoitaa 1.toisto virheestä lähtien (go back n) (tai paluu n:ään) 2.valikoiva toisto (selective repeat) 1/29/2003 37 1/29/2003 38 Toisto virheestä eli Paluu n:ään ( Go back n ) virheellisen sanoman havaittuaan vastaanottaja hylkää kaikkia sen jälkeiset sanomat eikä lähetä niistä kuittauksia => sanomat hyväksytään vain oikeassa järjestyksessä kun lähettäjä ei saa kuittauksia, sen lähetysikkuna täyttyy eikä se voi enää lähettää lähettäjän ajastimet laukeavat aikanaan ja virheellinen sanoma sekä kaikki sen jälkeen lähetetyt sanomat lähetetään uudelleen tehoton, jos paljon virheitä ja iso ikkuna Valikoiva toisto vastaanottaja hyväksyy kaikki kelvolliset sanomat se kuittaa sanomat puskuroi ne ja toimittaa eteenpäin oikeassa järjestyksessä» tarvitaan puskuritilaa lähettäjä ei saa kuittausta virheellisestä sanomasta ajastin laukeaa ja sanoma lähetetään uudelleen lähettää uudelleen vain virheellisen sanoman ikkuna liukuu nytkin tasaisesti» yksi puuttuva kuittaus voi pysäyttää lähetyksen Kuittaukset kumulatiivinen tähän saakka kaikki ok! Go-Back N yksittäinen vain tämä ok! Valikoiva toisto NAK-kuittaus sanoma virheellinen tai puuttuu 1/29/2003 41 Negatiiviset kuittaukset NAK-kuittauksilla voidaan nopeuttaa uudelleenlähettämistä vastaanottaja ilmoittaa heti virheellisestä tai puuttuvasta kehyksestä ei ole tarpeen odottaa ajastimen laukeamista hyödyllinen, jos kuittausten saapumisaika vaihtelee paljon ajastinta vaikea asettaa oikein 1/29/2003 42

NAK-kuittaukset voivat aiheuttaa turhia uudelleenlähetyksiä lähetys ja kuittaus menevät ristiin NAK-kuittauksen katoaminen ei haittaa implisiittinen uudelleenlähetys ei NAK-kuittauksia explisiittinen uudelleenlähetys käytetään NAK-kuittauksia Ikkunankoko Kun käytetty numeroavaruus on 0, 1,.. n ja eri numeroita siis käytettävissä n+1 yleensä jokin kakkosen potenssi» koska numerokentän koko k bittiä => käytössä 2**k numeroa ikkunan koko go back n :ssä voi olla korkeintaan n eli oltava ainakin yhtä pienempi kuin numeroavaruus ikkunan koko valikoivassa toistossa voi olla korkeintaan (n+1)/2 saa olla korkeintaan puolet numeroavaruudesta 1/29/2003 43 1/29/2003 44 Miksi? Valikoiva toisto: ikkuna 5, numeroavaruus 8 Miksi? Valikoiva toisto: ikkuna 4, numeroavaruus 8 0-3 0-4 Kuittauksia voi kadota! 5-7, 0,1 0-4 0 ja 1 uutta vai uudelleenlähetystä? Kuittauksia voi kadota! 4, 5, 1, 2 0-3 4, 5, 6ja7:täytyyolla uusi 0, 1, 2, 3: täytyy olla kaksoiskappaleita 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 1/29/2003 45 1/29/2003 46 Kaksisuuntainen liikenne datakehys ja kuittauskehys kehyksessä sekä data että kuittaus piggypacking tehostaa lähetystä ongelma: kauanko kuittaaja odottaa dataa ennen pelkän kuittauksen lähettämistä? 3.5. TCP-protokolla yhteyden muodostus ja purku luotettavan tavuvirran toteuttaminen vuonvalvonta siirron optimointi TCP-segmentti ruuhkan valvonta TCP-palvelun käyttö 1/29/2003 47 1/29/2003 48

Yhteyden muodostus ja purku TCP:ssä TCP käyttää yhteyden muodostamiseen ja purkuun ns. kolminkertaista kättelyä (threeway handshake) välissä oleva verkko tekee yhteyden muodostamisen ja purun hankalaksi viivästyneet sanomat => sanomille elinaika (max 3 minuuttia) sanomien numeroinnista sopiminen Kahden armeijan ongelma (two-army problem) hyökkään, jos olen varma, että sinäkin hyökkäät symmetrinen yhteyden purku = molemmat osapuolet tietävät, että toinenkin on varmasti purkanut yhteyden Yhteyden muodostus ruuhkaisessa verkossa Jokainen paketti lähetetään kahteen kertaan Kun yhteys on purettu, viivästyneet kaksoiskappaleet saapuvat Ne tulkitaan uudeksi yhteydeksi, ja data otetaan vastaan kahteen kertaan! 1/29/2003 49 1/29/2003 50 SYN = tahdistussanoma SYN, Seqnro=x SYN,,Seqnro= y, ack=x+1,seqnro=x+1, ack=y+1 Yhteyden muodostus Kolminkertainen kättely yhteyspyynnössä pyytäjän nro x vahvistuksessa sekä pyytäjän että suostujan järj.numero ensimmäisessä datalähetyksessä molemmat numerot #2 hyökkää vain, jos tietää minun saaneen vastaussanoman. #1 Hyökätään aamulla #2 kello 5! OK, siis kello 5! OK! Loogisesti ratkeamaton ongelma. Kaikki riippuu aina viimeisestä sanomasta, jonka perillemenoa ei voida taata! Entä, jos vastaus ei mene perille? Silloin #1 ei hyökkää! Kahden armeijan ongelma (two-army problem) 1/29/2003 51 1/29/2003 52 Kone 1 Kone 2 CA connection request CA connection accepted disconnect request Kuinka kauan odotettava mahdollista dataa kone 1:ltä? Entä jos kone 1 ei purakaan yhteyttä? Sama ongelma: Symmetrinen yhteyden purku 1/29/2003 53 Yhteyden purku molemmat suunnat puretaan erikseen TCP-segmentti FIN = 1 ei enää dataa lähetettävä kun saadaan kuittaus => yhteys tähän suuntaan purettu yhteys kokonaan purettu, kun molemmat suunnat purettu purussa käytetään ajastimia 2 * paketin maksimaalinen elinikä 1/29/2003 54

FIN-lippu päällä Kone 1 Kone 2 lähetä (=lopetuspyyntö) ja aseta ajastin pura yhteys lähetä FIN FIN, lähetä ja aseta ajastin pura yhteys Yhteyden purku kolminkertaista kättelyä käyttäen TCP: Virheettömyys ja järjestys Järjestysnumerot tavuvirta => tavunumerointi segmentin 1. tavun järjestysnumero yhteyden alussa satunnaiset numerot kuittaukset kumulatiivinen, ei NAK-kuittausta kuittauksessa seuraavaksi odotettava tavu kuitataan tiheästi vähintään joka toinen 1/29/2003 55 1/29/2003 56 Go Back N -tyyppinen virheellisiä tai väärässä järjestyksessä tulleita ei hyväksytä ne voidaan myös tallettaa mutta ei välttämättä lähetä kaikkia virheellisestä lähtien uudestaan Myös ehdotettu valikoivan toiston tyyppistä kuittaamista S-kuitaus, joka kertoo, mitkä segmentit on vastaanotettu ok Toistokuittaukset Ensikuittaus ensimmäinen vastaanotettu sanoman kuittaus (i): sanomaan i saakka kaikki OK! toistokuittaus (duplicate ) väärässä järjestyksessä saatu segmentti tai virheellinen segmentti => toistetaan uudestaan jo annettu kuittaus NAK-kuittauksen korvike 3 toistokuittausta => segmentti kadonnut tai virheellinen 1/29/2003 57 1/29/2003 58 TCP:n vuonvalvonta joustava liukuva ikkuna (sliding window) ( credit-vuonvalvonta ) vastaanottaja kertoo, kuinka paljon suostuu vastaanottamaan => kuittaus irroitettu vuonvalvonnasta puhtaassa liukuvassa ikkunassa kuittaus siirtää ikkunaa AdvertisedWindow-kenttä paljonko saa lähettää = paljonko vastaanottajan puskureihin mahtuu myös ruuhkan valvonta rajoittaa lähettämistä A puskurit käytetty, A joutuu lopettamaan Esimerkki <ehdottaa 8 puskuria > <ack =0, buf = 4> <seq = 0, data = m0 > <seq = 1, data = m1 > <seq = 2, data = m2 > <ack = 1, buf = 3> <seq = 3, data = m3 > <seq = 4, data = m4> B lupa vain sanomille 0-3 kuittaus sanomista 0 ja 1, lupa sanomille 2-4, 1/29/2003 59 1/29/2003 60