Tietoliikenteen perusteet

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

Luento 5: Kuljetuskerros

3. Kuljetuskerros 3.1. Kuljetuspalvelu End- to- end

Monimutkaisempi stop and wait -protokolla

Monimutkaisempi stop and wait -protokolla

Monimutkaisempi stop and wait -protokolla

3. Kuljetuskerros 3.1.

3. Kuljetuskerros 3.1. Kuljetuspalvelu

Kuljetuskerros. Tietokoneverkot. Matti Siekkinen Pasi Sarolahti

ELEC-C7241 Tietokoneverkot Kuljetuskerros

3. Kuljetuskerros 3.1. Kuljetuspalvelu

Tehtävä 2: Tietoliikenneprotokolla

Tietoliikenteen perusteet. Kuljetuskerros

Tietoliikenteen perusteet. Kuljetuskerros

Tietoliikenteen perusteet. Kuljetuskerros

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

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

Tietoliikenteen perusteet. Kuljetuskerros

Tietoliikenteen perusteet. Kuljetuskerros

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

OSI ja Protokollapino

kynnysarvo (threshold)

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

kynnysarvo (threshold)

Chapter 3 Transport Layer. Kuljetuskerros

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

S Tietoliikennetekniikan perusteet. Pakettikytkentäiset verkot. Helsinki University of Technology Networking Laboratory

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

Tietoliikenteen perusteet. Kuljetuskerros

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

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ä.

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

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

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

S Teletekniikan perusteet

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

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

Tietoliikenteen perusteet: Kokeeseen tulevista asioista

Luento 6: Kuljetuskerros UDP & TCP TCP:n ruuhkanhallinta

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

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

3. Kuljetuskerros 3.1. Kuljetuspalvelu End- to- end

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

Kuljetuskerros. Kirja sivut: ,

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

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

11/20/ Siirron optimointi

Luento 6: Kuljetuskerros UDP & TCP TCP:n ruuhkanhallinta

Protokollien yleiset toiminnot

Luento 2: Internetin ydin ja protokollapino

Siltojen haitat Yleisesti edut selvästi suuremmat kuin haitat

1.4. Tietoliikenneohjelmistot eli protokollat

1.4. Tietoliikenneohjelmistot eli protokollat

1.4. Tietoliikenneohjelmistot eli protokollat. Protokollien kerrosrakenne. Mitä monimutkaisuutta?

Tietoliikenteen perusteet

Tietoliikenteen perusteet

Luento 7: Verkkokerros verkkokerroksen tehtävät, IP-protokolla, reititin. Syksy 2014, Tiina Niklander

3. Kuljetuskerros 3.1. Kuljetuspalvelu

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

ITKP104 Tietoverkot - Teoria 3

Siirron optimointi. Optimointi on usein tarpeen: Silly window syndrome

Kohina (Noise) Signaalia häiritsee kohina. aina taustalla esiintyvää sähkömagneettista aaltoliikettä terminen kohina. elektronien liikkeestä johtuva,

1. Tietokoneverkot ja Internet

1. Tietokoneverkot ja Internet Tietokoneesta tietoverkkoon. Keskuskone ja päätteet (=>-80-luvun alku) Keskuskone ja oheislaitteet

Kohina (Noise) 1.4. Tietoliikenneohjelmistot eli protokollat. Signaalin vahvistaminen

Luento 7: Verkkokerros

1. Tietokoneverkot ja Internet Tietokoneesta tietoverkkoon. Keskuskone ja oheislaitteet. Keskuskone ja päätteet (=>-80-luvun alku)

Kuljetuskerros. Chapter 3 Transport Layer. Kuljetuskerros. Kuljetuspalvelut ja -protokollat. Kuljetuskerros vs. verkkokerros

peittää verkkokerroksen puutteet

5. Siirtoyhteyskerros linkkikerros (Data Link Layer)

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/

Kuljetuskerroksen protokollat

5. Siirtoyhteyskerros linkkikerros (Data Link Layer)

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

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

Kuljetuskerroksen protokollat

3. Kuljetuskerros 3.1. Kuljetuspalvelu

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

Tietoliikenne II (2 ov)

3. Kuljetuskerros 3.1. Kuljetuspalvelu

Asiakkaan toimenpiteet

1. Tietokoneverkot ja Internet Tietokoneesta tietoverkkoon. Keskuskone ja päätteet (=>-80-luvun alku) Keskuskone ja oheislaitteet

3. Kuljetuskerros 3.1. Kuljetuspalvelu End- to- end

3. Kuljetuskerros 3.1.

Tietoliikenne II (2 ov)

3. Siirtoyhteyskerros linkkikerros (Data Link Layer)

3. Siirtoyhteyskerros

Chapter 3 Transport Layer. Kuljetuskerros

Tietoliikenteen perusteet. Langaton linkki

Tietoliikenteen perusteet. Langaton linkki

Chapter 3 Transport Layer. Kuljetuskerros

Miten Internet toimii?

Kuva maailmasta Pakettiverkot (Luento 1)

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

Transkriptio:

Tietoliikenteen perusteet Luento 5: Kuljetuskerros luotettavan tiedonsiirron periaatteet Syksy 2017, Timo Karvi Kurose&Ross: Ch3 Pääasiallisesti kuvien J.F Kurose and K.W. Ross, All Rights Reserved Tietoliikenteen perusteet, syksy 2016 Tiimo Karvi 16.2.2005

sanoma segmentti datagrammi kehys H l H n H n H t H t H t M M M M Lähettäjä (source) Sovellusk. Kuljetusk. Verkkok. Linkkik. Fyysinen k. Luennon sisältöä linkki fyysinen Kytkin (switch) message segment datagram frame H l Vastaanottaja (destination) H n H n H t H t H t M M M M application transport network link physical H l H n H n H t H t M M network link physical H n H t M Reititin (router) Tietoliikenteen perusteet, syksy 2016 Timo Karvi 2

Sisältöä Kuljetuspalvelut Luotettavan kuljetuspalvelun periaatteet Yhteydetön kuljetuspalvelu, UDP Yhteydellinen kuljetuspalvelu, TCP Ruuhkanhallinta TCP:ssä Oppimistavoitteet: - Tuntee Internetin kuljetusprotokollien (UDP/TCP) toiminnallisuuden ja periaatteet - Osaa kuvata luotettavan kuljetuspalvelun ja vuonvalvonnan periaatteet ja toteutukset - Osata selittää TCPruuhkanhallinnan perusidean Tietoliikenteen perusteet, syksy 2016 Timo Karvi 3

KULJETUSPALVELU Tietoliikenteen perusteet, syksy 2016 Timo Karvi 4

Kuljetuskerros Tarjoaa kuljetuspalvelun prosessien välille Vain isäntäkoneissa Lähetys: Pilko sovelluskerroksen sanoma pienemmiksi segmenteiksi, jotka verkkokerros toimittaa perille. Vastaanotto: Kokoa segmentit sanomaksi, jonka sovellus lukee. Verkkokerros reitittää koneesta koneelle Segmentin koko s.e. verkkokerros pystyisi välittämään sen sellaisenaan application transport network data link physical network data link physical Fig 3.1 [KR12] network data link physical network data link physical network data link physical network data link physical application transport network data link physical Tietoliikenteen perusteet, syksy 2016 Timo Karvi 5

Sovelluksen vaatimukset vs verkon ominaisuudet Sovellus edellyttää kuljetuspalvelulta Virheettömyyttä, luotettavuutta Järjestyksen säilymistä Kaksoiskappaleiden karsimista Mielivaltaisen pitkien sanomien sallimista Vuonvalvonnan mahdollistamista Verkkokerroksen palvelu voi kuitenkin Muuttaa segmentin bittejä tai kadottaa segmenttejä Toimittaa segmentit epäjärjestyksessä kuljetuskerrokselle Viivyttää segmenttejä satunnaisen pitkän ajan Luovuttaa kuljetuskerrokselle useita kopioita samasta segmentistä Rajoittaa segmentin kokoa Sovelluksen vaatimukset Kuljetuskerros pyrkii paikkaamaan verkkokerroksen puutteita Verkkokerroksen palvelut Kuljetuskerros peittää verkkokerroksen puutteita ja parantaa sovelluksen näkemää palvelun laatua Tietoliikenteen perusteet, syksy 2016 Timo Karvi 6

Internetin kuljetusprotokollat TCP: luotettava, järjestyksen säilyttävä tavujen kuljetuspalvelu Virheenvalvonta (error control): Huomaa ja korjaa virheet, hylkää kaksoiskappaleet Vuonvalvonta (flow control): Älä ylikuormita vastaanottajaa Ruuhkanhallinta (congestion control): Älä ylikuormita verkkoa Yhteyden muodostaminen ja purku UDP: Ei-luotettava, ei-järjestyksen säilyttävä sanomien kuljetuspalvelu Välittää vain sanomia, ei pyri mitenkään parantamaan verkkokerroksen tarjoamaa palvelun laatua Luotettavuus jää sovelluskerroksen hoidettavaksi Kumpikaan kuljetuspalvelu ei anna takuita viiveelle tai siirtonopeudelle ( best effort ) Tietoliikenteen perusteet, syksy 2016 Timo Karvi 7

Mikä kone / Mikä prosessi? Kuljetuskerros tarjoaa päästä-päähän yhteyden Prosessilta prosessille ( = pistokkeesta pistokkeeseen) Prosessi lukee ja kirjoittaa sanomia halutessaan Datan lisäksi on välitettävä osoitetietoja Vastaanottajan ja lähettäjän tiedot Eri koneiden prosessit voivat käyttää samaa palvelua Saman koneen prosessit voivat käyttää eri palveluita Kuljetuskerros: mikä prosessi = mikä portti Verkkokerros: mikä kone = mikä IP-osoite Porttinumero 16-bittinen: 0 65535 Portit 0 1024 on varattu kukin tietylle palvelulle (well known ports) Esim. www-palvelulle portti 80, SMTP-postipalvelulle portti 25 Tietoliikenteen perusteet, syksy 2016 Timo Karvi 8

Segmenttien lomitus (multiplexing) ja erottelu (demultiplexing) Lomitus lähettäjällä: Segmenttejä useasta pistokkeesta, liitä kuhunkin kuljetusotsake (käytetään erottelussa myöhemmin) Erottelu vastaanottajalla: Välitä saapuva segmentti oikeaan pistokkeeseen, tieto löytyy otsakkeesta application P3 transport network link application P1 P2 transport network link physical application P4 transport network link socket process physical physical Fig 3.2 [KR12] Tietoliikenteen Tietoliikenteen perusteet, syksy perusteet 2016 2012, Tiina NIklander Timo Karvi 9

Mikä kone / Mikä prosessi? Lähetys (asiakas) Kuljetuskerros Segmentin otsakkeessa lähde- ja kohdeprosessin porttinumero Antaa segmentin verkkokerroksen välitettäväksi TCP: huolehtii myös luotettavuudesta UDP: tarjoaa pelkän välityspalvelun Verkkokerros Paketin otsakkeessa lähde- ja kohdekoneen IP-osoite, reitittimet osaavat ohjata oikealle koneelle Kts Fig 3.3 & 4.13 [KR12] 32 bits source port # dest port # other header fields application data (message) TCP/UDP-segmentti Source IP Destination IP Other IP header fields TCP/UDP-segmentti IP-paketti Tietoliikenteen perusteet, syksy 2016 Timo Karvi 10

Mikä kone / Mikä prosessi? Vastaanotto (palvelija) Verkkokerros Vastaanottaa IP-paketin Poistaa verkkokerroksen otsaketiedot Luovuttaa paketissa olleen segmentin kuljetuskerrokselle Kuljetuskerros Poistaa kuljetuskerroksen otsaketiedot Kokoaa yhteenkuuluvat segmentit sanomiksi (tavuvirraksi) Ohjaa sanoman (tavuvirran) oikealle prosessille (eli oikeaan pistokkeseen) porttinumeron avulla TCP: huolehtii myös luotettavuudesta UDP: tarjoaa pelkän välityspalvelun Kts Fig 3.3 & 4.13 [KR12] 32 bits source port # dest port # other header fields application data (message) TCP/UDP-segmentti Source IP Destination IP Other IP header fields TCP/UDP-segmentti IP-paketti Tietoliikenteen perusteet, syksy 2016 Timo Karvi 11

Kaksi www-asiakasta ja palvelija TCP-yhteys: koneosoite + porttinumero UDP: koneosoite + porttinumero 6789 4567 8769 80 KR12: Fig 3.5 source port dest. port 8769 26145 source IP dest. IP B A Tietoliikenteen perusteet, syksy 2016 Timo Karvi 12

LUOTETTAVAN KULJETUS- PALVELUN PERIAATTEET Tietoliikenteen perusteet, syksy 2016 Timo Karvi 13

Luotettava tiedonsiirto? Lähettävä prosessi Vastaanottava prosessi DATA Sovelluskerros DATA Luotettava kuljetuskanava Kuljetuskerros Tietoliikenteen perusteet, syksy 2016 Timo Karvi 14

Luotettava tiedonsiirto? Sovelluskerros Data Data Luotettava tiedonsiirtoprotokolla Miten saadaan luotettavaksi? Luotettava tiedonsiirtoprotokolla Segmentti Kuljetuskerros Segmentti Epäluotettava kanava Verkkokerros Bittivirheitä, segmenttejä katoaa, segmentit väärässä järjestyksessä Tietoliikenteen perusteet, syksy 2016 Timo Karvi 15

Yksinkertainen siirtoprotokolla Aloitamme luotettavan tiedonsiirron tarkastelemalla yksinkertaista protokollaa, ns. vaihtuvan bitin protokollaa eli AB-protokollaa. Siinä jokaisen sanoman jälkeen odotetaan kuittausta, jonka jälkeen vasta voidaan lähettää. Sanomat ja kuittaukset on numeroitu 0:lla tai 1:llä. Seuraava kuvio näyttää, miten protokolla toimii virheettömän kanavan yhteydessä. d:t ovat datasanomia, a:t kuittauksia, A lähettäjä, B vastaanottaja. Tietoliikenteen perusteet, syksy 2016 Timo Karvi 16

AB-protokolla, virheetön kanava Tietoliikenteen perusteet, syksy 2016 Timo Karvi 17

AB-protokolla, kadottava kanava Pakettien numerointi tulee käyttöön, jos kanava kadottaa tai vääristää sanomia. Lisäksi tarvitaan myös ajastin lähettäjän puolella. Seuraava kuvio näyttää, miten protokolla käsittelee tilanteen, kun datapaketti katoaa. Tässä tilanteessa ei tarvita vielä pakettien numerointia, vaan pelkkä ajastin riittää. Tietoliikenteen perusteet, syksy 2016 Timo Karvi 18

Sanoma katoaa Tietoliikenteen perusteet, syksy 2016 Timo Karvi 19

Kuittaus katoaa Seuraavassa skenaariossa kuittaus katoaa. Tällöin ajastin laukeaa lähettäjän puolella ja samoin kuin edellisessä skenaariossa lähettäjä lähettää edellisen datapaketin uudestaan. Nyt vastaanottaja huomaa, että sama datapaketti tulee toisen kerran, eikä lähetä sitä edelleen ylemmälle kerrokselle. Tässä siis numerointi tulee käyttöön. Sen sijaan vastaanottaja lähettää vain kuittauksen uudestaan. Tietoliikenteen perusteet, syksy 2016 Timo Karvi 20

Kuittaus katoaa Tietoliikenteen perusteet, syksy 2016 Timo Karvi 21

Tila-automaattiesitys Tällaisia protokollia on helppo kuvata automaateilla. Automaatti koostuu tiloista ja tilojen välisistä siirtymistä. Protokollien tapauksessa siirtymiin liittyy lähetettävä sanoma. Tila määrää, mikä sanoma lähetetään tai otetaan vastaan. Seuraava kuvio näyttää AB-protokollan lähettäjän automaattina. Tietoliikenteen perusteet, syksy 2016 Timo Karvi 22

AB-protokollan lähettäjän tilaautomaatti Tietoliikenteen perusteet, syksy 2016 Timo Karvi 23

Tila-automaatti, jatkoa Kuviossa get-sanoma tarkoittaa, seuraava datasanoma haetaan ylemmältä kerrokselta. Ajastinta ei ole määritelty erikseen, vaan se on kiinteästi osa lähettäjää. Huomattakoon, että tässä spesifioinnissa ajastin voi laueta turhan aikaisin, kun kuittaus on vielä matkalla. Tälläkin ajastimella protokolla toipuu sekä virheistä että turhan nopeasta ajastuksesta. Tietoliikenteen perusteet, syksy 2016 Timo Karvi 24

rdt3.0: Tehokkuus? Esim: 1 Gbps linkki, 15 ms päästä-päähän etenemisviive eli RTT = 30 ms, 1 KB:n paketti T transmit = L (packet length in bits) R (transmission rate, bps) = 8kb/pkt 10**9 b/sec = 8 microsec U sender = L / R RTT + L / R =.008 30.008 = 0.00027 microsec Käyttöaste (utilization): se osa kokonaisajasta, jolloin lähettäjä lähettää (RTT+L/R on kokonaisaika lähetyksessä kun odotetaan ACK) 1KB paketti 30 ms:n välein -> 33kB/s nopeus 1 Gbps linkillä. Stop-and-wait-protokolla rajoittaa, ei linkin kyky siirtää dataa (linkin siirtonopeus) Tietoliikenteen perusteet, syksy 2016 Timo Karvi 25

rdt3.0: stop-and-wait tehokkuus 1. bitti lähetetty t = t L = / R 0 Viim. bitti lähetetty sender receiver Fig 3.18a [KR12] RTT 1. bitti saapuu Viim. bitti saapuu, lähetä ACK ACK saapuu, lähetä seur. paketin, t = RTT + L / R U sender = L / R RTT + L / R =.008 30.008 = 0.00027 microsec Tietoliikenteen perusteet, syksy 2016 Timo Karvi 26

rdtx.x: Liukuhihnaprotokollat Lähettäjä saa lähettää useita paketteja, vaikka ei ole saanut kuittauksia edeltäviin Numerointi (0,1) ei enää riitä, lisää numeroita tarvitaan Tarvitaan puskurointia molemmissa päissä Fig 3.17 [KR12] Tietoliikenteen perusteet, syksy 2016 Timo Karvi 27

Liukuhihnoitus: käyttöasteen kasvattaminen sender Paketin ensimmäinen bitti, t = 0 Viimeinen bitti, t = L / R receiver Fig 3.18b [KR12] RTT ACK saapuu, lähetä seur. paketti, t = RTT + L / R 1. paketin 1. bitti saapuu 1.paketin viim. bitti saapuu, lähetä ACK 2. paketin viim. bitti saapuu,lähetä ACK 3. paketin viim. bitti saapuu, lähetä ACK Käyttöaste kasvaa kolminkertaiseksi, koska 3 pakettia hihnalla U sender = 3 * L / R RTT + L / R =.024 30.008 = 0.0008 microsecon ilman liukuhihnaa: 0.00027 Tietoliikenteen perusteet, syksy 2016 Timo Karvi 28

Liukuva ikkuna (sliding window) Säätelee pakettien lähettämistä ja vastaanottoa, kertoo millä pakettinumeroilla on lähetetty/vastaanotettu, mistä saatu/lähetetty kuittaukset ja millä numeroilla voi vielä lähettää/vastaanottaa paketteja Ikkunan koko riippuu yhteyden tyypistä ja puskurien koosta 7 0 6 1 5 2 4 3 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24. Tietoliikenteen perusteet, syksy 2016 Timo Karvi 29

Liukuva ikkuna Lähetysikkuna (sender window) Ikkunan koko = montako pakettia saa olla kuittaamatta Mitkä pakettinumerot on käytetty, mutta kuittaamatta Mitä pakettinumeroita voi vielä käyttää Lähettäjän on odotettava, jos kaikki ikkunan numerot on käytetty Kun kuittaus saapuu, ikkuna liukuu Seuraavat numerot tulevat luvallisiksi Vastaanottoikkuna (receiver window) Mitkä pakettinumerot otettu vastaan, mutta kuittaamatta Mitä pakettinumeroita lähettäjä saa vielä käyttää eli mitkä hyväksytään Jos saadussa paketissa on ikkunan viimeinen numero Ikkuna pysäyttää pakettien lähetyksen vastapäästä Ikkuna estää uusien pakettien vastaanoton Paketin kuittaus liu uttaa myös vastaanottajan ikkunaa Hyväksytään uusia pakettinumeroita Tietoliikenteen perusteet, syksy 2016 Timo Karvi 30

Kun ikkunan koko on 1 Vain yksi paketti kuittaamattomana One Bit Sliding Window protokolla = AB protokolla Pakettinumerot 0 ja 1 riittävät ACK ilmoittaa Joko seuraavaksi odotetun paketin numeron (esim.tcp) tai viimeksi vastaanotetun virheettömän paketin numeron ACK sisältää paketin numeron Kuittausduplikaatti ei voi kuitata väärää paketteja Tietoliikenteen perusteet, syksy 2016 Timo Karvi 31

Virhetilanteen käsittely Entä, kun huomataan virhe? Monta muuta pakettia jo matkalla! Pakettiin ei tule kuittausta Paketti katosi tai virheellinen Kuittaus katosi tai virheellinen => Ajastin laukeaa aikanaan Go-Back-N (paluu N:ään) Paketit uudelleenlähetetään virheellisestä lähtien Selective Repeat (Valikoiva toisto) Lähetetään vain virheelliset paketit Tietoliikenteen perusteet, syksy 2016 Timo Karvi 32

Go-Back-N Vastaanottaja hyväksyy paketit vain järjestyksessä Kuittaa järjestyksessä tulleen virheettömän paketin Hylkää kaikki puuttuvan tai virheellisen paketin jälkeiset paketit eikä lähetä niistä kuittauksia Kun lähettäjä ei saa pakettiin kuittausta Lähetysikkuna täyttyy ja estää uusien pakettien lähettämisen Lähettäjän ajastimet laukeavat Lähettäjä lähettää uudestaan kaikki viimeisen kuittauksen jälkeiset paketit Näiden kuittaukset siirtävät taas lähetysikkunaa Tehoton, jos paljon virheitä ja iso ikkuna Tietoliikenteen perusteet, syksy 2016 Timo Karvi 33

Go-Back-N Kumulatiivinen ACK Lähetä ACK, jossa korkein järjestyksessä saadun kelvollisen paketin numero Tämä kuittaa kaikki pienemmällä numerolla lähetetyt paketit Jos välistä puuttuu paketti Lähetä uudestaan ACK, jossa korkein järjestyksessä saadun paketin numero (~ NAK) Tuplakuittaus (duplicate ACK) Parannus: => nopeampi reagointi puuttuvaan Fig 3.19 [KR12] Tietoliikenteen perusteet, syksy 2016 Timo Karvi 34

Go-Back-N: Esimerkki Fig 3.22 [KR12] Kumulatiivinen kuittaus Ikkunankoko = 4 Väärä numero! Kuittaa viimeisen kunnollisen ja järjestyksessä saadun paketin. tuplakuitttaus Tietoliikenteen perusteet, syksy 2016 Timo Karvi 35

Valikoiva toisto (Selective Repeat) Valikoiva uudelleenlähetys Lähetä uudelleen vain virheellinen /puuttuva paketti Kuittaus jokaiselle kelvolliselle paketille Paketit sovellukselle oikeassa järjestyksessä Vastaanottajalla oltava puskuritilaa pakettien järjestämiseen Jos lähettäjä ei saa kuittausta paketista Lähetysikkunan täyttyminen pysäyttää lähettämisen Aikanaan ajastin laukeaa ja aiheuttaa uudelleenlähetyksen Jokaisella paketilla on oma ajastin Ikkuna liukuu nytkin tasaisesti Yksi puuttuva kuittaus voi pysäyttää lähetyksen Kun puuttuva paketti saatu, ikkuna liukuu kaikkien kuitattujen yli Tietoliikenteen perusteet, syksy 2016 Timo Karvi 36

Valikoiva toisto Fig 3.23 [KR12] Tietoliikenteen perusteet, syksy 2016 Timo Karvi 37

Esimerkki: Valikoiva toisto Jokainen sanoma kuitattava erikseen Paketin 2 katoaminen estää ikkunaa liikkumasta Fig 3.23 [KR12] Tietoliikenteen perusteet, syksy 2016 Timo Karvi 38

Ikkunankoko n+1 kpl Pakettinumeroille varatun kentän koko vaikuttaa myös ikkunankokoon Yleensä jokin kakkosen potenssi Kentän koko k bittiä => käytössä 2**k pakettinumeroa Kun paketit numeroidaan 0, 1,, n, niin ikkunan koko saa olla korkeintaan: Go-Back-n: n (k bit sekvenssinumeroilla < 2 k -1) MIKSI NÄIN? Harjoitustehtävinä! Valikoiva toisto: (n+1)/2 (k bit sekv.num. < 2 k-1 ) Vastaanottajan pitää tietää onko kyse uusista paketeista vai uudelleenlähetyksistä Tietoliikenteen perusteet, syksy 2016 Timo Karvi 39

Yhteenveto menetelmistä Tarkistussumma Ajastin Järjestysnumero Uudelleenlähetys vai uusi paketti Kuittaukset Positiiviset ACK, tuplakuittaukset Negatiiviset NAK Ikkunat, liukuhihnoitus Kts Table 3.1 [KR12] Tietoliikenteen perusteet, syksy 2016 Timo Karvi 40

ACK vai NAK ACK ja NAK signaaleja voidaan yhdistellä TCP perustuu vain ACKiin TCP: Kumulatiivinen ACK Tupla ACK X = NAK X+1 Selektiivinen ACK Parempi toteuttaa oma NAK signaali, tehokkaampi Ei välttämättä tarvita NAKia Pelkkä NAK Tietoliikenteen perusteet, syksy 2016 Timo Karvi 41