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

Samankaltaiset tiedostot
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

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

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

Monimutkaisempi stop and wait -protokolla

Monimutkaisempi stop and wait -protokolla

Monimutkaisempi stop and wait -protokolla

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/

11/20/ Siirron optimointi

Siirron optimointi. Optimointi on usein tarpeen: Silly window syndrome

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

6. Kuljetuskerros 6.1. Kuljetuspalvelu End- to- end

6. Kuljetuskerros 6.1. Kuljetuspalvelu

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

3. Kuljetuskerros 3.1. Kuljetuspalvelu End- to- end

3. Kuljetuskerros 3.1.

3. Kuljetuskerros 3.1. Kuljetuspalvelu

3. Kuljetuskerros 3.1. Kuljetuspalvelu

peittää verkkokerroksen puutteet

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

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ä

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

3. Kuljetuskerros 3.1. Kuljetuspalvelu

3. Kuljetuskerros 3.1.

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

Miten selain muodostaa TCP- tai UDP-yhteyden? TCP-osoite = IP-osoite + porttinumero ( tässä 80) SOCKET BIND (80) LISTEN ACCEPT. Connection Request

kynnysarvo (threshold)

kynnysarvo (threshold)

Asiakkaan toimenpiteet

Miten selain muodostaa TCP- tai UDP-yhteyden? TCP-osoite = IP-osoite + porttinumero ( tässä 80) SOCKET BIND (80) LISTEN ACCEPT. Connection Request

3. Kuljetuskerros 3.1. Kuljetuspalvelu

Kuljetuskerros. Tietokoneverkot. Matti Siekkinen Pasi Sarolahti

ELEC-C7241 Tietokoneverkot Kuljetuskerros

3. Kuljetuskerros 3.1. Kuljetuspalvelu End- to- end

Tietoliikenne II (2 ov)

Tietoliikenne II (2 ov)

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

3. Kuljetuskerros 3.1. Kuljetuspalvelu

Kuljetuskerros. Kirja sivut: ,

OSI ja Protokollapino

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

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

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

Tietoliikenteen perusteet

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

Tietoliikenne II Kurssikoe

Ongelma 1: Ei saada kolmea toistokuittausta

Nopea uudelleenlähetys (Fast retransmit)

Nopea uudelleenlähetys (Fast retransmit)

Tietoliikenne II (2 ov)

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

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

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/IP-protokollapino. Kuljetuskerros. Tämän luennon jälkeen. Sisältö. Matti Siekkinen. Ymmärrätte:

TCP:n vuonohjaus (flow control)

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

Ruuhkanvalvonta on hankalaa!

Ruuhkanvalvonta on hankalaa!

Ruuhkanvalvonta on hankalaa!

Tehtävä 2: Tietoliikenneprotokolla

Selektiiviset kuittaukset (RFC 2018, RFC 3517)

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

Luento 6: Kuljetuskerros UDP & TCP TCP:n ruuhkanhallinta

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

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

Luento 6: Kuljetuskerros UDP & TCP TCP:n ruuhkanhallinta

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

Tietoliikenteen perusteet. Kuljetuskerros

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

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

Tietoliikenteen perusteet. Kuljetuskerros

Tietoliikenteen perusteet. Kuljetuskerros

Luento 5: Kuljetuskerros

Tietoliikenteen perusteet

Tietoliikenteen perusteet

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

Kuljetuskerroksen protokollat

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

Kuljetuskerroksen protokollat

Tietoliikenteen perusteet. Kuljetuskerros

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

Tietoliikenteen perusteet. Kuljetuskerros

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

Tietoliikenteen perusteet. Kuljetuskerros

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

3. IP-kerroksen muita protokollia ja

Vuonohjaus: ikkunamekanismi

Tietoliikenne II (2 ov) Syksy 2004 Liisa Marttinen

Tietoliikenne II (2 ov)

S Teletekniikan perusteet

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

Internet ja tietoverkot 2015 Harjoitus 5: (ISO/OSI-malli: Verkkokerros, TCP/IP-malli: internet-kerros)

Tietoliikenne II (2 ov)

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

Tietoliikenne II (2 ov) Syksy 2003 Liisa Marttinen

Turvallisuus verkkokerroksella

Transkriptio:

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 ainakin yhtä pienempi kuin numeroavaruus ikkunan koko valikoivassa toistossa voi olla korkeintaan (n+1)/2 korkeintaan puolet numeroavaruudesta Miksi? Valikoiva toisto: ikkuna 5, numeroavaruus 8 0-4 Kuittauksia voi kadota! 5-7, 0,1 0-4 0 ja 1 uutta vai uudelleenlähetystä? 4.2.2002 43 4.2.2002 44 Miksi? Valikoiva toisto: ikkuna 4, numeroavaruus 8 0-3 Kuittauksia voi kadota! 4, 5, 1, 2 0-3 4, 5, 6 ja 7: täytyy olla uusi 0, 1, 2, 3: täytyy olla uudelleenlähetys 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ä? 4.2.2002 45 4.2.2002 46 3.5. TCP-protokolla yhteyden muodostus ja purku luotettavan tavuvirran toteuttaminen vuonvalvonta siirron optimointi TCP-segmentti ruuhkan valvonta TCP-palvelun käyttö 6.2.2. Yhteyden muodostus ja purku TCP:ssä TCP käyttää yhteyden muodostamiseen ja purkuun ns. kolminkertaista kättelyä (three-way handshake) välissä oleva verkko tekee yhteyden muodostamisen ja purun hankalaksi viivästyneet sanomat => sanomille elinaika sanomien numeroinnista sopiminen Bysanttilainen 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 4.2.2002 47 4.2.2002 48

CR CR CLOSE CLOSE CR CLOSE 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! 4.2.2002 49 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 4.2.2002 50 #2 hyökkää vain, jos tietää minun saaneen vastaussanoman. #1 #2 Hyökätään aamulla kello 5! OK, siis kello 5! OK! Entä, jos vastaus ei mene perille? Silloin #1 ei hyökkää! Kone 1 Kone 2 CR CA CR connection request CA connection accepted disconnect request Loogisesti ratkeamaton ongelma. Kaikki riippuu aina viimeisestä sanomasta, jonka perillemenoa ei voida taata! Bysanttilainen ongelma (two-army problem) Symmetrinen yhteyden purku Kuinka kauan odotettava mahdollista dataa kone 1:ltä? Entä jos kone 1 ei purakaan yhteyttä? 4.2.2002 51 4.2.2002 52 Yhteyden purku molemmat suunnat puretaan erikseen TCP-segmentti FIN = 1 ei enää dataa lähetettävä kun saadan kuittaus => yhteys tähän suuntaan purettu yhteys kokonaan purettu, kun molemmat suunnat purettu purussa käytetään ajastimia 2 * paketin maksimaalinen elinikä 4.2.2002 53 Kone 1 FIN-lippu Kone 2 päällä lähetä (=lopetuspyyntö) ja aseta ajastin pura yhteys lähetä lähetä ja aseta ajastin pura yhteys Yhteyden purku kolminkertaista kättelyä käyttäen 4.2.2002 54

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 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 4.2.2002 55 4.2.2002 56 Toistokuittaukset Ensikuittaus tähän saakka kaikki OK! ensimmäisen kerran saatava 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 4.2.2002 57 TCP:n vuonvalvonta joustava liukuva ikkuna (sliding window) (credit-vuonvalvonta) vastaanottaja kertoo, kuinka paljon suostuu vastaanottamaan => kuittaus irroitettu vuonvalvonnasta AdvertisedWindow-kenttä paljonko saa lähettää = paljonko vastaanottajan puskureihin mahtuu myös ruuhkan valvonta rajoittaa lähettämistä 4.2.2002 58 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, A ajastin laukeaa, uudelleen sanoma 2 lähettää sanoman 5 lähettää sanoman 6 jos lupa katoaa, jää odottamaan! ==> lukkiutumistilanne Esimerkki jatkuu <seq = 2, data = m2> <ack = 4, buf = 0> <ack = 4, buf = 1> <ack = 4, buf = 2> <seq = 5, data = m5> <seq = 6, data = m6> <ack = 6, buf = 0> <ack = 6, buf = 4> B kuittaa kaikki, mutta ei anna lupaa lähettää lupa lähettää yksi sanoma (= 5) lupa lähettää kaksi sanomaa (= 5 ja 6) kuittaa, mutta ei anna lähetyslupaa lähetyslupa sanomille 7-10 4.2.2002 59 4.2.2002 60

jos ilmoitus lisäpuskureista katoaa, lähettäjä lukkiutuu odotustilaan vastaanottaja voi luulla, ettei ole lähetettävää lukkiutumisen estämiseksi kun ikkunankoko = 0 lähettäjä ei saa lähettää, paitsi erityistä pikadataa (URG) yhden tavun kyselyn, jonka vastaanottaja kuittaa ja samalla ilmoittaa ikkunan koon => estää turhat lukkiutumiset Siirron optimointi TCP saa optimoida lähettämisiään ei tarvitse lähettää heti kun data on tullut dataa kerätään puskuriin ja lähetetään sopivassa tilanteessa PUSH-lipun avulla sovellus ilmoittaa, että data on lähetettävä heti 4.2.2002 61 4.2.2002 62 Optimointi on usein tarpeen: Interaktiivinen editori => merkki lähetetään heti 21 tavun TCP-segmentti => 41 tavun IP-paketti joka kuitataan 40 tavun IP-paketilla ilmoitus uudesta ikkunan koosta 40 tavun IPpaketilla kaiutetaan merkki vielä 41 tavun IP-paketilla yhden merkin käsittely => 162 tavun siirtäminen ja neljän segmentin lähettäminen Ratkaisu: Naglen algoritmi jos data tulee tavuttain lähetä 1. tavu kerää sitä seuraavat tavut puskuriin ja lähetä vasta kun edellinen lähetys on kuitattu paitsi jos lähetettävää on suurimman segmentin verran tai puolet ikkunan koosta hankala, jos hiirtä liikutellaan Internetin kautta! 4.2.2002 63 4.2.2002 64 Silly window syndrome Tilanteessa, jossa lähettäjältä dataa TCP:lle suurina lohkoina vastaanottajalle mahtuu vain tavu kerrallaan voi tuhota TCP:n suorituskyvyn koko data lähetetään tavu kerrallaan joka tavun välissä ilmoitus ikkunan koon kasvattamisesta yhdellä Siis: ei ilmoitusta yhdestä tavusta, lähettäjä ei lähetä yhtä tavua koko segmentti puolet puskurin koosta 4.2.2002 65 Silly winwow syndrome otsake otsake 1 tavu vastaanottaja puskuri täynnä sovellus lukee yhden tavun puskuriin mahtuu 1 tavu ilmoitetaan uusi ikkunan koko uusi tavu saapuu vastaanottaja puskuri täynnä 4.2.2002 66

segmentti TCP-segmentti 20 tavun otsake + optionaalinen osa dataosa voi puuttua segmentin kokoa rajoittaa MTU (Maximum transfer unit) verkon rajoitus maksimikoolle (muutama tuhat tavua) IP-paketin dataosa korkeintaan 65535 tavua liian isot segmentit paloitellaan joka palalle IP-otsake => yleisrasite kasvaa 4.2.2002 67 Source port TCP head. length Checksum Checksum TCPv4- otsakkeen kentät Sequence number Destination port Acknowledgement number U A P R S F R C S S Y I Window size G K H T N N Urgent pointer Options (0 or more 32 bit words) Data (optional) 4.2.2002 68 TPC-segmentin otsakekentät Lähde- ja kohdeportit (Source port, Destination port) yhteyden päätepisteet portti + koneen IP-osoite => 48 bittinen TSAP Järjestysnumero (Sequence number) tavut numeroidaan => 32 bittiä segmentin ensimmäisen tavun numero Kuittausnumero (Acknowledgement number) seuraavaksi odotettu tavu TCP-otsakkeen pituus (TCP header length) mahdollisten optiokenttien takia 6 bitin käyttämätön kenttä 4.2.2002 69 6 lippubittiä URG onko pikadataa pikadatan sijainnin ilmoittaa pikadatakenttä (Urgent pointer) onko kuittauskenttä käytössä PSH onko hetilähetettävää (pushed) dataa RST yhteyden uudelleenalustuspyyntö (reset), yleensä ongelmatilanne SYN käytetään yhteyttä muodostettaessa SYN =1, = 0 connection request SYN =1, = 1 connection accepted FIN käytetään yhteyden purkuun FIN =1 ei enää lähetettävää 4.2.2002 70 Ikkunan koko (window size) vaihteleva ikkunankoko kuittaus irroitettu lähetysluvasta Tarkistussumma (Checksum) lasketaan otsakkeelle, datalle ja ns. pseudootsakkeelle pseudo-otsake Source IP address Destination IP address 00000000 Protocol = 6 TCP/UDP segmentin pituus Auttaa havaitsemaan väärään osoitteeseen toimitetut paketit. Sisältää IP-otsakkeen tietoja! 4.2.2002 71 4.2.2002 72

Optiokenttä (options) voidaan lisätä piirteitä, joita ei ole varsinaisessa otsakkeessa suurin hyväksyttävä datakenttä ikkunan koon moninkertaistaminen (window scale) nopeille ja pitkän viipeen linjoille 64 ktavun ikkunan koko on liian pieni valikoivan toiston käyttö go back N :n tilalla vähentää turhia uudelleenlähetyksiä 3.6. TCP:n ruuhkan valvonta Liikaa kuormitusta => verkko ruuhkautuu => hidastetaan lähettämistä Ruuhkan havaitseminen nykyisin siirtovirheet harvinaisia poikkeuksena langattomat verkot => uudelleenlähetykset johtuvat ruuhkasta uudelleenlähetysajastimen laukeaminen on merkki ruuhkasta 4.2.2002 73 4.2.2002 74 ruuhkaikkuna paljonko tavuja (segmenttejä) lähettäjällä saa korkeintaan olla verkossa liikkeellä kuittaus => ko. tavut jo poistuneet verkosta tavuja kuittaukset 4.2.2002 75 Ruuhkaikkunan koko? Lähettäjän on itse pääteltävä ja arvioitava sopiva ruuhkaikkunan koko kukaan muu ei sitä kerro! timeout => on ruuhkaa kuittaukset tulevat tasaisesti => ei ole ruuhkaa Dynaaminen ruuhkaikkunan koko: ruuhkaikkunaa kasvatetaan kunnes törmätään ruuhkaan sen jälkeen ruuhkaikkunaa pienennetään reilusti ja aletaan uudestaan kasvattaa ruuhkaikkunaa 4.2.2002 76 Hitaan aloituksen algoritmi (slow start) lähettäjä datasegmentti vastaanottaja Algoritmi pyrkii löytämään sopivan ikkunan koon yhteyden alussa tai ruuhkatilanteen jälkeen mahdollisimman nopeasti ei ole niin kovin hidas, vaan alussa eksponentiaalinen! alussa ruuhkaikkuna = yksi segmentti kuitattu ruuhkaikkunallinen kasvattaa ruuhkaikkunan kaksinkertaiseksi 4.2.2002 77 4.2.2002 78