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

Koko: px
Aloita esitys sivulta:

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

Transkriptio

1 811338A 3 Kuljetusprotokollat Luotettava ja epäluotettava tiedonsiirto Oulun yliopisto Tietojenkäsittelytieteiden laitos

2 Luento pohjautuu kirjan James F. Kurose, Keith W. Ross, Computer Networking, A Top-Down Approach, 6th (International) ed., Pearson Education Limited, 2013, ISBN 10: , ISBN 13: kolmanteen lukuun (sivut ). 2

3 Mitä käsitellään? 0. Johdanto 1. Kuljetuskerroksen palvelut 2. Monikanavointi ja kanavoinnin purkaminen 3. Yhteydetön tiedonsiirto: UDP 4. Luotettavan tiedonsiirron periaatteet 5. Yhteyspohjainen tiedonsiirto: TCP 6. Ruuhkakontrollin periaatteet 7. TCP:n ruuhkakontrolli 3

4 Mitä käsitellään? (2) 0. Johdanto 1. Kuljetuskerroksen palvelut 1.1 Kuljetuskerroksen ja verkkokerroksen suhde 1.2 Internetin kuljetuskerroksesta 2. Monikanavointi ja kanavoinnin purkaminen 2.1 Taustaa 2.2 Yhteydetön kanavointi 2.3 Yhteyspohjainen kanavointi 3. Yhteydetön tiedonsiirto: UDP 3.1 Taustaa 3.2 UDP:n segmentin rakenne 3.3 UDP:n tarkistussumma 4

5 Mitä käsitellään? (3) 4. Luotettavan tiedonsiirron periaatteet 4.1 Taustaa 4.2 Luotettavan tiedonsiirtoprotokollan rakentaminen 4.3 Luotettavat tideonsiirtoprotokollat ja putkikuljetus 4.4 Go-Back-N (GBN) 4.5 Valikoiva toisto (Selective Repeat, SR) 5. Yhteyspohjainen tiedonsiirto: TCP 5.1 Taustaa 5.2 TCP yhteys 5.3 TCP segmentin rakenne 5.4 Kiertoviiveen arviointi ja aikamerkki 5.5 Luotettava tiedonsiirto 5

6 Mitä käsitellään? (4) 5. Yhteyspohjainen tiedonsiirto: TCP (jatkuu) 5.6 Vuonohjaus 5.7 TCP yhteyden hallinta 6. Ruuhkakontrollin periaatteet 6.1 Taustaa 6.2 Ruuhkakontrolliin syyt ja kustannukset 6.3 Ruuhkakontrolli: eri lähestymistapoja 6.4 Esimerkki verkkopohjaisesta ruuhkakontrollista: ATM ABR ruuhkakontrolli 7. TCP:n ruuhkakontrolli 7.1 Taustaa ja mekanismeja 7.2 Reiluus 6

7 0. Johdanto kuljetuskerros tarjoaa loogisen kommunikoinnin isäntäkoneilla ajettavien prosessien välille kuljetuskerroksen protokollia sovelletaan päätelaitteissa, ei Internetin reitittimissä lähteessä kuljetuskerros muuttaa saamansa sovellusdatan segmenteiksi, kohteessa päinvastoin Internetin reitittimet ohjaavat IP-paketteja niissä olevan osoitteen mukaan 7

8 Kuva 1. tuottaa loogisen yhteyden 8

9 1. Kuljetuskerroksen palvelut 1.1 Kuljetuskerroksen ja verkkokerroksen suhde 1.2 Internetin kuljetuskerroksesta 9

10 1.1 Kuljetuskerroksen ja verkkokerroksen suhde verkkokerros tarjoaa loogisen kommunikoinnin isäntäkoneiden välillä eri sovellukset voivat käyttää eri kuljetusprotokollien palveluja suuri osa kuljetuskerroksen protokollan palveluista riippuvaisia verkkokerroksen protokollan palveluista (viive, kaistanleveys) kuljetusprotokolla voi tarjota sovellukselle luotettavan tiedonsiirron, vaikka verkkokerroksen protokolla olisi epäluotettava 10

11 1.2 Internetin kuljetuskerroksesta TCP/IP-tietoverkoissa (esim. Internet) kaksi kuljetusprotokollaa: UDP: epäluotettava, yhteydetön tiedonsiirto; ja TCP: luotettava yhteyspohjainen tiedonsiirto. kuljetuskerroksen PDU (Protocol Data Unit, protokollatietoyksikkö) on segmentti IP (Internet Protocol, verkkokeroksen protokolla) tarjoaa parhaan yrityksen (tiedonvälitys)palvelun: se ei takaa datan perillemenoa, järjestystä eikä eheyttä IP on epäluotettava protokolla 11

12 Internetin kuljetuskerroksesta (2) UDP:n ja TCP:n tärkein tehtävä: laajentaa IP:n tarjoama isäntäkoneiden välinen tiedonsiirto isäntäkoneilla ajettavien prosessien väliseksi tiedonsiirroksi kyseessä on kuljetuskerroksen kanavointi ja kanavoinnin purku (multiplexing / demultiplexing) UDP ja TCP: prosessikohtainen datan jakelu ja datan eheys TCP lisäksi: luotettava tiedonsiirto (tekniikat: vuonohjaus, järjestysnrot, kuittaukset, ajastimet) ja ruuhkanhallinta 12

13 2. Monikanavointi ja kanavoinnin purkaminen 2.1 Taustaa 2.2 Yhteydetön kanavointi 2.3 Yhteyspohjainen kanavointi 13

14 2.1 Taustaa kullakin prosessilla (osana verkkosovellusta) on (ainakin yksi) liitos (eli soketti): ovi, jota kautta data virtaa verkosta prosessiin ja takaisin jokaisellla soketilla yksikäsitteinen tunnistin, jonka muoto riippuu siitä, onko protokollana UDP vai TCP kanavointi: datalohkot kerätään eri liitoksista, segmentoidaan, varustetaan otsikolla ja välitetään verkkokerrokseen kanavoinnin purku: datasegmentit puretaan, otsikot poistetaan ja datalohkot ohjataan oikeaan liitokseen 14

15 Taustaa (2) liitos määrittyy lähdeportin ja kohdeportin avulla, jotka ilmoitetaan datasegmentissä porttinumero on 16-bittinen luku: ovat ns. tunnettuja (eli kiinteitä) porttinumeroita, jotka on varattu tietyille sovellusprotokollille; (sovelluksen) palvelinpuoli kuuntelee yhteydenottoa tässä porttinumerossa numeroita >1023 voi käyttää itse rakennettuihin soveluksiin tunnetut porttinumerot: RFC

16 Kuva 2. Monikanavointi ja kanavoinnin purkaminen 16

17 2.2 Yhteydetön kanavointi asiakassovellus luo soketin, jonka kautta prosessi lähettää ja vastaanottaa dataa palvelinprosessilta kuljetuskerros lisää UDP-liittimeen porttinumeron joko automaattisesti tai prosessin toimesta mikäli kyseessä on sovellus, jolla on (tavall. palvelinpuolella) kiinteä porttinumero, sitä käytetään asiakaspuolella kulj.kerros tavallisesti liittää porttinron kohteen IP-osoite ja kohdeportin numero [pari (kohteen IPosoite,kohdeportti)], määrittää kohteen UDP-liittimen yksikäsitteisesti lähdeportin numero kertoo vastaanottajalle sen, mihin porttiin vastataan 17

18 Kuva 3. Lähde- ja kohdeportien vaihtuminen 18

19 2.3 Yhteyspohjainen kanavointi TCP-soketin määrittää nelikkö (lähteen IP-osoite, lähdeportti, kohdeportti, kohteen IP-osoite) asiakassovellus luo soketin, jonka kautta prosessi lähettää ja vastaanottaa dataa palvelinprosessilta TCP-serverisovelluksella on tervetuliaisportti, joka odottaa yhteydenperustamispyyntöjä TCPasiakassovelluksilta yhteydenperustamispyyntö on TCP-segmentti, jossa on kohdeporttinro ja TCP-otsikon yhteydenperustamisbitin (SYN-bitin) arvo yksi 19

20 Yhteyspohjainen kanavointi (2) kun palvelin vastaanottaa yo. segmentin, se tunnistaa prosessin, joka odottaa ko. ja välittää yhteyspyynnön prosessille serveriprosessi hyväksyy yhteyden ja luo liitoksen (yhteysliitos) kommunikointia varten serveri huomioi yhteydenperustamissegmentistä soketin määrittävän nelikön 20

21 Kuva 4. Kaksi asiakasta käyttää samaa palvelinsovellusta 21

22 3. Yhteydetön tiedonsiirto: UDP 3.1 Taustaa 3.2 UDP:n segmentin rakenne 3.3 UDP:n tarkistussumma 22

23 3.1 Taustaa pelkistetty kuljetusprotokolla (RFC 768), kanavoinnin ja kevyen virheentarkastuksen lisäksi ei muita palveluja sovellus keskustelee lähes suoraan IP:n kanssa UDP ottaa viestin sovellusprosessilta, jakaa segmentteihin, lisää lähde- ja kohdeportin numerot (kanavointia ja sen purkua varten), lisää pari muuuta kenttää ja toimittaa tuotteen verkkokerrokselle IP kaplesloi segmentin IP-paketiksi ja tekeee parhaansa toimittaakseen tietosähkeen määränpäähänsä kohteessa UDP lukee kohdeportin numeron, riisuu osoitetiedot ja toimitaa datan oikealle sovellukselle 23

24 Taustaa (2) ei kädenpuristusta: UDP on yhteydetön Miksi UDP ei yhteydenperustamista ei yhteyden tilatietoja ei pitkiä otsikoita sovellus kontrolloi mitä dataa lähetetään ja milloin, sovellus voi jopa vastata luotettavasta tiedonsiirrosta sopii yksinkertaisiin ja reaaliaikasovelluksiin, jotka sietävät jonkin verran datahävikkiä sopii (periodisiin) päivitys ja verkonhallintasovelluksiin 24

25 Kuva 5. Internet-sovelluksia ja niiden kuljetusprotokollia TCP TCP 25

26 3.2 UDP-segmentin rakenne UDP-segmentin kentät lähdeportin numero (source port number), 16 bittiä kohdeportin numero (destination port number), 16 bittiä pituus (length), 16 bittiä ilmoittaa UDP-segmentin pituuden tavuina (otsikko mukaanlukien) tarkistussumma (check sum), 16 bittiä; vastaanottaja tarkistaa, onko data turmeltunut 26

27 Kuva 6. UDP-segmentti 27

28 3.3 UDP:n tarkistussumma Tarkistussumman määrittäminen lähteen UDP 1. laskee yhteen kaikki UDP-segmentin 16-bittiset sanat (tarkistussummakenttää lukuunottamatta), ylivuoto edessä kiertää loppuun 2. ottaa summasta bittikohtaisen komplementin 3. kirjoittaa tuloksen UDP-otsikon tarkistussummakenttään 28

29 UDP:n tarkistussumma (2) kohteen UDP 1. suorittaa saman laskutoimituksen kuin lähde yllä 1. kohdassa 2. laskee tuloksen bittikohtaisesti yhteen tarkistussumma-kentässä olevan arvon kanssa 3. mikäli tuloksena on pelkkiä ykkösiä, virhettä ei ole tapahtunut UDP ei virheen sattuessa suorita korjaustoimenpiteitä; tavallisesti korruptoitunut segmentti hylätään, joissakin tapauksissa virheelliset segmentit toimitetaan sovellukselle varoituksella varustettuna 29

30 4. Luotettavan tiedonsiirron periaatteet 4.1 Taustaa 4.2 Luotettavan tiedonsiirtoprotokollan rakentaminen 4.3 Luotettavat tideonsiirtoprotokollat ja putkikuljetus 4.4 Go-Back-N (GBN) 4.5 Valikoiva toisto (Selective Repeat, SR) 30

31 4.1. Taustaa luotettava tiedonsiirto tietoverkkojen tärkein ongelma luotettava tiedonsiirto: dataa ei turmellu eikä häviä ja se toimitetaan perille oikeassa järjestyksessä tarkastellaan yksisuuntaista (unidirectional) tiedonsiirtoa lähettäjältä vastaanottajalle; kaksisuuntainen tiedonsiirto (bidirectional) vaikeampi mallintaa käytetään asteittain tarkentuvaa tilatransitiomallia protokollan ominaisuuksien kuvaamiseen puhutaan (tieto)paketista segmentin sijasta; tarkastelu on yleisellä tasolla ja sitä voidaan soveltaa kaikkiin tietoverkkoihin 31

32 Kuva 7. Luotettava tiedonsiirto 32

33 4.2 Luotettavan tiedonsiirtoprotokollan rakentaminen Oletetaan aluksi, että tiedonsiirtokanava on täysin luotettava: pakettihävikkiä ei ole, pakettien sisältö ei muutu, ei tarvita vuonohjausta eikä ruuhkakontrollia (protokolla rdt1.0) Kumpaakin osapuolta (lähettäjä, vastaanottaja) voidaan kuvata yksitilaisella tilataransitiomallilla eli äärellisellä automaatilla (Finite State Machine, FSM). FSM koostuu äärellisestä määrästä tiloja ja transitioita (tilanmuutoksia). Tiloja kuvataan ympyröillä ja transitioita nuolilla. Transitio muodostuu syötteestä (merkkijono, joka voidaan tulkita viestiksi, pyynnöksi, toimenpiteeksi jne...) ja tulosteesta (merkkijono, joka voidaan tulkita kuten syötekin, vistiksi, pyynnöksi toimenpiteeksi, jne...) 33

34 Äärellinen automaatti: FSM FSM on koko toimintansa ajan jossakin tilassa kun FSM, jossakin tilassa ollessaan, saa (hyväksyttävää muotoa olevan) syötteen, se vaihtaa tilaa tai pysyy samassa tilassa (kuvataan nuolella) tulostaa jotakin (voi olla esim tyhjä sana ) transitio (tilanmuutos) kuvataan nuolella, joka nimetään syötteellä (viivan yläpuolella oleva merkkijono) ja tulosteeella (viivan alapuolella oleva merkkijono) tulkinta: tietyssä tilassa tuleva syöte aiheuttaa tilanmuutoksen ja tulostuksen; uusi tila ja tuloste riippuu siten FSM:n aikaisemmasta tilasta ja syötteestä FSM:n alkutilaa merkitään katkonuolella 34

35 Kuva 8 Täysin luotettava kanava (rdt1.0) 35

36 rdt_send(data) packet = make_pkt(data) udt_send(packet) rdt_rcv(rcvpkt) extrack(packet,data) deliver_data(data) Odota kutsua ylhäältä Odota kutsua alhaalta rdt1.0: lähettäjä rdt1.0: vastaanottaja 36

37 Luotettava tiedonsiirtoprotokolla: pakettien sisältö voi muuttua Realistisemmassa mallissa (protokolla rdt2.0) oletetaan, että pakettien sisältö voi muuttua (bitit voivat korruptoitua). Tarvitaan vastaanottajan kuittauksia (positiivisia ja /tai negatiivisia), jotta lähde voi lähettää korruptoituneen paketin uudelleen. Protokolla on ARQ-tyyppinen (Automatic Repeat request). ARQ-protokollan toimintoja virhekontrolli (tarkistussumma, lähettäjä muodostaa, vastaanottaja tarkastaa) vastaanottajan palaute: positiivinen kuittaus (ACK, ACKnowledgment), negatiivinen kuittaus (NAK, Negative AcKnowledgment); kuittaus voi olla vain yhden bitin mittainen pakettien uudelleenlähetys: negatiivisen kuittauksen saatuaan lähettäjä toimittaa paketin uudelleen vastaanottajalle 37

38 Kuva 9 Kanava, jossa data voi korruptoitua (rdt2.0) 38

39 rdt_send(data) sndpkt=make_pkt(data,checksum) udt_send(sndpkt) Odota kutsua yläpuolelta Odota ACK- tai NACKviestiä rdt2.0: lähettäjä rdt_rcv(rcvpkt) && isack(rcvpkt) rdt_rcv(rcvpkt) && isnack(rcvpkt) udt_send(sndpkt) 39

40 rdt_rcv(rcvpkt) && corrupt(rcvpkt) udt_send(nak) Odota kutsua alhaalta rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) extrackt(rcvpkt,data) deliver_data(data) udt_send(ack) rdt2.0: vastaanottaja 40

41 Luotettava tiedonsiirtoprotokolla: kuittauspaketit voivat korruptoitua Protokolla, joka odottaa kuittausta ennen seuraavan paketin lähettämistä (kuten rdt2.0) on pysähdy-ja-odota protokolla (stop-and-wait protocol). Entä jos kuittauspaketti korruptoituu? Tällöin lähettäjä ei tiedä, onko vastaanottaja saanut datan asianmukaisesti. Kuittauspaketin ollessa turmeltunut lähettäjä voi pyytää toistoa (voi aiheuttaa rajattoman pyyntöketjun) lisätä pakettiin redundanssia ja käyttää virheenkorjaavaa koodausta lähettää automaattisesti datapaketin uudestaan; tarvitaan järjestysnumerointi, josta vastaanottaja tietää että kyse on uusinnasta. 41

42 Luotettava tiedonsiirtoprotokolla: kuittauspaketit voivat korruptoitua Valitaan kolmas ratkaisu: lähetetään paketti automaattisesti uudelleen, jos kuittauspaketti on korruptoitunut. Ratkaisu vaatii sen, että jokaisessa datapaketissa on järjestysnumero, jotta vastaanottaja tietää, onko kyseessä on uudelleenlähetys vai uusi paketti. Lisätään pakettiin uusi kenttä, johon lähettäjä kirjoittaa paketin järjestysnumeron. Koska kyseessä pysähdy-ja-odota protokolla, on yhden bitin järjestysnumero riittävä. Koska paketteja ei katoa, kuittauspaketeihin ei tarvitse lisätä datapaketin järjestysnumeroa. (protokolla rdt2.1) 42

43 Kuva 10 Kanava, jossa mikä tahansa paketti voi korruptoitua: lähettäjä (rdt2.1) 43

44 Kuva 11 Kanava, jossa mikä tahansa paketti voi korruptoitua: vastaanottaja (rdt2.1) 44

45 rdt_send(data) sndpkt=make_pkt(0, data,checksum) udt_send(sndpkt) rdt_rcv(rcvpkt) && [corrupt(rcvpkt) isnak(rcvpkt)] udt_send(sndpkt) rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && isack(rcvpkt)] Odota kutsua 0 ylhäältä Odota ACK- tai NAKviestiä 0 rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && isack(rcvpkt)] rdt_rcv(rcvpkt) && [corrupt(rcvpkt) isnak(rcvpkt)] udt_send(sndpkt) rdt2.1: lähettäjä Odota ACK- tai NAKviestiä 1 Odota kutsua 1 ylhäältä rdt_send(data) sndpkt=make_pkt(1, data,checksum) udt_send(sndpkt) 45

46 rdt_rcv(rcvpkt) && corrupt(rcvpkt) sndpkt=make_pkt(nak,checksum) udt_send(sndpkt) rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && has_seq0(rcvpkt) extract(rcvpkt,data) deliver_data(data) sndpkt = make_pkt(ack,checksum) udt_send(sndpkt) Odota viestiä 0 alhaalta Odota viestiä 1 alhaalta rdt_rcv(rcvpkt) && corrupt(rcvpkt) sndpkt=make_pkt(nak,checksum) udt_send(sndpkt) rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && has_seq1(rcvpkt) sndpkt=make_pkt(ack,checksum) udt_send(sndpkt) rdt2.1: vastaanottaja rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && has_seq1(rcvpkt) extract(rcvpkt,data) deliver_data(data) sndpkt = make_pkt(ack,checksum) udt_send(sndpkt) rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && has_seq0(rcvpkt) sndpkt=make_pkt(ack,checksum) udt_send(sndpkt) 46

47 Luotettava tiedonsiirtoprotokolla: käytetään vain ACK - kuittausta Jos kuittauspakettiin lisätään hyväksymiskenttä, tarvitsee käyttää vain ACK-tyyppisiä kuittauspaketteja; NAK-paketin sijasta vastaanottaja lähettää ACK-paketin, jossa hyväksymiskentässä on viimeisen vahingoittumattomana vastaanotetun datapaketin järjestysnumero. (protokolla rdt2.2) Saadessaan kaksi samaa pakettia koskevaa kuittausta lähettäjä tietää, että vastaanottaja ei ole saanut asianmukaisesti sitä paketttia, joka seurasi kahdesti kuitattua pakettia. 47

48 Kuva 12 Kanava, jossa mikä tahansa paketti voi turmeltua, kaksinkertainen ACK-viesti: lähettäjä (rdt2.2) 48

49 Kuva 13 Kanava, jossa mikä tahansa paketti voi turmeltua, kaksinkertainen ACK-viesti: vastaanottaja (rdt2.2) 49

50 rdt_send(data) sndpkt=make_pkt(0, data,checksum) udt_send(sndpkt) rdt_rcv(rcvpkt) && [corrupt(rcvpkt) isack(rcvpkt,1)] udt_send(sndpkt) Odota kutsua 0 ylhäältä Odota ACKviestiä 0 rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && isack(rcvpkt,1)] rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && isack(rcvpkt,0)] rdt_rcv(rcvpkt) && [corrupt(rcvpkt) isack(rcvpkt,0)] udt_send(sndpkt) Odota ACKviestiä 1 Odota kutsua 1 ylhäältä rdt_send(data) sndpkt=make_pkt(1, data,checksum) udt_send(sndpkt) rdt2.2: lähettäjä 50

51 rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && has_seq0(rcvpkt) extract(rcvpkt,data) deliver_data(data) sndpkt = make_pkt(ack, 0,checksum) udt_send(sndpkt) rdt_rcv(rcvpkt) && [corrupt(rcvpkt) has_seq0(rcvpkt)] udt_send(sndpkt) Odota viestiä 0 alhaalta Odota viestiä 1 alhaalta rdt_rcv(rcvpkt) &&[ corrupt(rcvpkt) has_seq1(rcvpkt)] udt_send(sndpkt) rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && has_seq1(rcvpkt) extract(rcvpkt,data) deliver_data(data) sndpkt = make_pkt(ack, 1,checksum) udt_send(sndpkt) rdt2.2: vastaanottaja 51

52 Luotettava tiedonsiirtoprotokolla: paketit voivat sekä kourruptoitua että kadota Oletetaan lopulta, että paketit voivat sekä korruptoitua että niitä myös voi kadota. Herää kaksi kysymystä: miten pakettihävikki havaitaan; ja pakettihävikistä toivutaan. Jälkimmäiseen kysymykseen löytyy ratkaisu jo esillä olleilla tekniikoilla: tarkistussummat, järjestysnumerot, ACK paketit ja uudelleenlähetykset. Ensimmäisen kysymyksen ratkaisemiseksi tarvitsemme protokollaan uusia mekanismeja. Teemme seuraavan valinnan: vastuu pakettihävikin havaitsemisesta ja siitä toipumisesta on lähettäjällä. 52

53 Luotettava tiedonsiirtoprotokolla: paketit voivat sekä kourruptoitua että kadota (2) Jos joko datapaketti tai sen kuittauspaketti häviää, lähettäjä ei saa tietoa datapaketin perillemenosta. Datapaketti täytyy lähettää uudelleen. Kuinka kauan pitää odottaa? Odotusaikaa vaikea arvioida, sen täytyy olla ainakin yhden RTT:n suuruinen (Round Trip Time, RTT on se aika, joka paketilta kuluu siirtyä lähettäjältä vastaanottajalle ja takaisin lähettäjälle). Käytännössä lähettäjä valitsee järkevän odotusajan: jos kuittausta ei kuulu sen kuluessa, paketin lähetys uusitaan. On mahdollista, että vastaanottajalle saapuu sama paketti kahteen kertaan; järjestysnumero auttaa tunnistuksessa. 53

54 Luotettava tiedonsiirtoprotokolla: paketit voivat sekä kourruptoitua että kadota (3) Lähettäjän kannalta uudelleenlähetys on ratkaisu kaikkiin ongelmiin, data- tai kuittauspaketin katoamiseen tai myöhästymiseen. Tarvitaan ajastin ilmoittamaan uudelleenlähetyksestä. Lähettäjän on kyettävä (i) käynnistämään ajastin; (ii) reagoimaan hälytykseen; ja (iii) pysäyttämään ajastin. Miten lähettäjälle välittyy tieto siitä, koskeeko kuittaus viimeksi lähetettyä datapakettia vai jotain aikaisempaa? Vastaus: kuittauspaketin hyväksymiskentässä olevan (viimeiseksi vahingoittumattomana vastaanotetun) datapaketin järjestysnumeron avulla; sen sisältö kertoo lähettäjälle mitä datapakettia kuittaus koskee. (protokolla rdt3.0). 54

55 Kuva 14 Kanava, jossa mikä tahansa paketti voi korruptoitua tai hävitä : lähettäjä (rdt3.0) 55

56 rdt_rcv(rcvpkt) rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && isack(rcvpkt,1)] stop timer rdt_send(data) sndpkt=make_pkt(0, data,checksum) udt_send(sndpkt) start timer Odota kutsua 0 ylhäältä Odota ACKviestiä 0 rdt_rcv(rcvpkt) && [corrupt(rcvpkt) isack(rcvpkt,1)] timeout udt_send(sndpkt) start timer rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && isack(rcvpkt,0)] stop timer timeout udt_send(sndpkt) start timer Odota ACKviestiä 1 Odota kutsua 1 ylhäältä rdt_rcv(rcvpkt) && [corrupt(rcvpkt) isack(rcvpkt,0)] rdt3.0: lähettäjä rdt_send(data) sndpkt=make_pkt(1, data,checksum) udt_send(sndpkt) rdt_rcv(rcvpkt) 56

57 rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && has_seq0(rcvpkt) extract(rcvpkt,data) deliver_data(data) sndpkt = make_pkt(ack, 0,checksum) udt_send(sndpkt) rdt_rcv(rcvpkt) && [corrupt(rcvpkt) has_seq0(rcvpkt)] udt_send(sndpkt) Odota viestiä 0 alhaalta Odota viestiä 1 alhaalta rdt_rcv(rcvpkt) &&[ corrupt(rcvpkt) has_seq1(rcvpkt)] udt_send(sndpkt) rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && has_seq1(rcvpkt) extract(rcvpkt,data) deliver_data(data) sndpkt = make_pkt(ack, 1,checksum) udt_send(sndpkt) rdt3.0: vastaanottaja 57

58 Kuva 15 Protokollan rdt3.0 toiminta 58

59 4.3 Putkikuljetus Ongelma: Pysähdy-ja-odota protokolla on käytännössä liian hidas; kanavan käyttöaste (lähettäjän puolelta) jää pieneksi. Ratkaisu: putkikuljetus (pipelining), kanavaan voidaan lähettää useita datapaketteja odottamatta kuittausta. Putkikuljetus asettaa uusia vaatimuksia protokollallle: järjestysnumeroiden lukumäärää lisättävä; kaksi ei enää riitä, kuittaamattomia paketteja on enemmän kuin yksi sekä lähettäjän että vastaanottajan täytyy puskuroida paketteja; lähettäjän ainakin se määrä, joka on lähetetty, mutta ei vielä kuitattu 59

60 Kuva 16 Pysähdy ja odota versus putkikuljetusprotokolla 60

61 Kuva 17 Pysähdy ja odota versus putkikuljetuslähetys 61

62 Lähettäjän kanavan käyttöaste L = paketin pituus bitteinä R = kanavan välitysaste välitysviive d trans = L / R U sender = lähettäjän kanavan käyttöaste U L/ R sender RTT L/ R 62

63 Putkikuljetuksen toteuttaminen Järjestysnumerojen määrä ja puskurikoko riippuu tavasta, jolla turmeltuneita, kadonneita tai myöhästyneitä paketteja käsitellään. Kaksi periatteellista tapaa toteuttaa putkikuljetus: GBN (Go-Back-N) SR (Selective Repeat, valikoiva toisto) 63

64 4.4 Go-Back-N lähettäjä voi toimittaa verkkoon korkeintaan N pakettia kuittausta odottamatta; N on ikkunakoko, GBN on liukuvan ikkunan protokolla (liukuvaa ikkunaa käytetään myös vuonohjauksessa ja ruuhkakontrollissa) järjestysnumerot ovat välillä [0,N-1]; järjestysnumerokenttä paketin otsikossa GBN-lähettäjän täytyy vastata kolmenlaisiin tapahtumiin. Yläkerroksen datan vastaanotto. Lähettäjä tarkastaa, onko ikkuna täysi eli onko kuittaamattomia paketteja N kpl jos ikkuna ei ole täysi, paketti luodaan ja lähetetään; ja jos ikkuna on täysi, paketti palautetaan yläkerrokseen. ACK-viestin vastaanotto. GBN käyttää kumulatiivista kuittausta; lähettäjä tietää, että saadessaan kuittauksen paketista n, kaikki paketit numeroon n saakka, paketti n mukaanlukien, on asianmukaisesti vastaanotettu. 64

65 Go-Back-N (2) GBN-lähettäjän täytyy vastata... (jatkuu): Aikamerkki (timeout). GBN käyttää ajastinta pakettihävikistä toipumiseen. Ajastimen hälyttäessä lähettäjä lähettää uudelleen kaikki aikaisemmin toimitetut paketit, joita ei vielä ole kuitattu ja käynnistää ajastimen uudelleen. Ajastin käy vanhimmalle lähetetylle, mutta kuittaamattomalle paketille. Vastaanotettuaan ACK paketin, lähettäjä käynnistää ajastimen uudestaan, jos puskurissa on lähetettyjä, mutta kuittaamattomia paketteja; ja pysäyttää ajastimen, jos kuittaamattomia paketteja ei ole Huom. GBN-lähettäjän ikkuna liukuu eteenpäin, kun joku ikkunassa oleva lähetetyksi merkitty paketti tulee kuitatuksi. 65

66 Kuva 18 GBN: lähettäjän puskuri 66

67 Go-Back-N (3) Vastaanottajan toiminta GBN-protokollassa on yksinkertainen jos vastaanottaja saa paketin n turmeltumattomana ja oikeassa järjestyksessä (edellinen hyväksytty paketti oli järjestysnumeroltaan n-1), vastaanottaja kuittaa paketin n viestillä ACK ja luovuttaa sen ylemmälle kerrokselle; vastaanottaja ei puskuroi paketteja kaikissa muissa tapauksissa vastaanottaja hylkää paketin ja lähettää ACK-kuittauksen viimeisimmästä asiallisesti (turmeltumattomana ja järjestyksessä) perilletulleesta paketista GBN:ssä vastaanottaja hylkää epäjärjestyksessä tulevat paketit; jos paketti n katoaa (ja n +1 saapuu perille ja hylätään), sekä paketti n että n +1 lähetetään myöhemmin uudelleen GBN:ssä lähettäjä ylläpitää kolmea ikkunaparametria (mitkä ne ovat?) ja vastaanottaja yhtä (mitä?) 67

68 Kuva 19 GBN toiminnassa (N = 4) 68

69 4.5 Valikoiva toisto (Selective Repeat, SR) GBN:n toiminnan heikkous: joskus lähetetään uudelleen paljon paketteja, osa turhaan SR-protokollan lähettäjä toimittaa paketin uudelleen vain jos arvelee sen joko turmeltuneen tai hävinneen vastaanottajan tiedottaa yksilöllisesti jokaisesta oikein vastaanotetuista paketeista lähettäjä voi toimittaa korkeintaan N pakettia kuittausta odottamattta, N on ikkunakoko, se rajoittaa kuittaamattomien ja epäjärjestyksessä olevien pakettien lukumäärää vastaanottaja kuittaa turmeltumattomana perille tulleen paketin olipa se järjestyksessä tai ei 69

70 Kuva 20 SR - puskurit 70

71 Valikoiva toisto (2) epäjärjestyksessä tulevat paketit puskuroidaan, puskuria päivitetään ja järjestykseen saadut paketit toimitetaan ylempään kerrokseen SR-protokollassa lähettäjällä ja vastaanottajalla ei aina ole sama kuva siitä, mitkä paketit on oikein vastaanotettu: ikkunat voivat olla erilaiset SR-lähettäjän tapahtumat ja toiminnot: yläkerroksen datan vastaanotto aikamerkki: jokaisella paketilla oma ajastin ACK-kuittauksen vastaanotto: jos paketti, jota kuittaus koskee, kuuluu ikkunaan, ikkunaa päivitetään ja tarvittaessa liu utetaan eteenpäin; ikkunaan mahdollisesti tulevat välittämistä odottavat paketit lähetetään 71

72 Kuva 22 SR - lähettäjän tapahtumat ja toiminnot 72

73 Valikoiva toisto (3) SR-vastaanottajan tapahtumat ja toiminnot: ikkunaan kuuluva paketti vastaanotetaan turmeltumattomana: lähetetään ACK-kuittaus; jos paketti ei ole uusinta, se puskuroidaan; puskuria päivitetään siirtämällä ikkunaa ja luovuttamalla dataa yläkerrokseen silloin kun se on mahdollista vastaanotetaan paketti, jonka järjestysnumero on välillä [ikkunan alalaita N, ikkunan alalaita -1]: lähetetään ACK-kuittaus (vaikka paketti on jo aikaisemmin kuitattu) muissa tapauksissa: hylätään paketti 73

74 Kuva 23 SR - vastaanottajan tapahtumat ja toiminnot 74

75 Kuva 21 SR-toiminnot (N = 4) 75

76 Liian suuri ikkuna SR:ssä: Onko 2. pkt0:n lähetys uusi paketti vai vanhan uusinta? Kohdan a ja b tapahtumat näkyvät vastaanottajalle samanlaisina. Ikkunakoko saa olla korkeintaan puolet järjestysnumeroavaruuden koosta. 76

77 Luotettava tiedonsiirto: yhteenveto mekanismeista ja niiden käytöstä mekanismi tarkistussumma ajastin järjestysnumero kuittaus negatiivinen kuittaus ikkuna, putkikuljetus käyttö ja kommentit virheiden havaitseminen paketeissa aikamerkki ja pakettien uudelleenlähetys; datapaketti tai sen kuittaus katosi kanavassa; vastaanottaja voi saada useita kopioita samasta datapaketista lähteestä kohteseen virtaavien datapakettien järjestyksen määrääminen; vastaanottaja havaitsee puuttuvat ja toistuvat paketit kohde ilmoittaa lähteelle, että datapaketti on asianmukaisesti saapunut perille; sisältää datapaketin järjestysnumeron kohde kertoo lähteelle, että datapakettia ei ole vastaanotettu kunnolla; sisältää tavalliseti sen paketin järjestysluvun, jota ei ole vastaanotettu asianmukaisesti lähde lähettää vain paketteja, joiden järjestysluku kuuluu ikkunaan; sallimalla useiden datapakettien lähettämisen ilman kuittauksen vastaanottoa voidaan lähteen hyötyastetta nostaa 77

78 5. Yhteyspohjainen tiedonsiirto: TCP 5.1 Taustaa 5.2 TCP yhteys 5.3 TCP segmentin rakenne 5.4 Kiertoviiveen arviointi ja aikamerkki 5.5 Luotettava tiedonsiirto 5.6 Vuonohjaus 5.7 TCP yhteyden hallinta 78

79 5.1. Taustaa Transmission Control Prorocol (TCP) Internetin kuljetuskerroksen yhteyspohjainen, luotettava tiedonsiirtoprotokolla perustuu turvallisen tiedonsiirron periaatteisiin: virheenkorjaukseen uudelleenlähetykseen (kumuloituviin) kuittauksiin ajastimiin vuonohjaukseen ruuhkakontrolliin määritelty RFC-dokumenteissa RFC 793, RFC 1122, RFC 1323, RFC 2018 ja RFC

80 5.2 TCP-yhteys TCP on yhteyspohjainen: kolminkertainen kädenpuristus tilatietoja yhteydestä ylläpidetään tilamuuttujien avulla kaksisuuntainen (full duplex) tiedonsiirto; dataa virtaa lähteestä kohteeseen ja kohteesta lähteeseen yhtä aikaa pisteestä pisteeseen yhteys (point-to-point); ryhmälähetys (multicasting) ei mahdollinen TCP-yhteys perustetaan kolminkertaisella kädenpuristuksella; kun yhteys on perustettu, datan lähetys voi alkaa lähteessä prosessi lähettää dataa liitoksen (soketin) kautta lähetyspuskuriin 80

81 TCP-yhteys (2) lähetyspuskurin data segmentoidaan, MSS (Maximum Segment Size) ilmoittaa suurimman mahdollisen segmenttikoon tavuina (1460, 536 ja 512 tavua yleisimmät) kukin segmentti varustetaan otsikolla ja toimitetaan verkkokerrokseen kohteen kuljetuskerroksessa segmenttien otsikot riisutaan ja data sijoitetaan yhteyden vastaanottopuskuriin, josta prosessi sen lukee sekä asiakas- että palvelinprosessilla on oma lähetys- ja vastaanottopuskurinsa TCP-yhteys koostuu puskureista, muuttujista ja liittimistä yhteyden kummassakin päässä, isäntien välillä olevissa verkon osissa näitä elementtejä ei ole 81

82 Kuva 24 TCP:n lähetys- ja vastaanottopuskurit 82

83 5.3 TCP-segmentin rakenne TCP-segmentti koostuu otsikkokentistä ja datakentästä datakenttä sisältää lohkon sovellusdataa MSS rajoittaa segmentin kokoa suurta tiedostoa siirrettäessä segmentit (viimeistä lukuunottamatta) MSS:n kokoisia interaktiivisissa sovelluksissa (esim. Telnet) segmenttikoko usein pienempi kuin MSS (voi olla esim. yksi tavu) TCP-segmentin otsikkokenttä tyypillisesti 20 tavua (Telnetin segmentti voi siis olla vain 21 tavua) UDP- ja TCP-segmenteissä samoja kenttiä: lähdeportti, kohdeportti ja tarkistussumma 83

84 Kuva 25 TCP-segmentti 84

85 TCP-segmentin kentät Source port #: lähdeportin numero, yhteyden ottava portti; identifioi segmentin lähteen sovelluskerroksen prosessin (16 bittiä) Destination port #: kohdeportin numero, portti, johon yhteys otetaan; identifioi segmentin kohteen sovelluskerroksen prosessin (16 bittiä) Sequence number: järjestysnumero, jota käytetään varmistamaan saapuvan datan oikea järjestys; segmentin datakentän ensimmäisen tavun järjestysnumero (32 bittiä) Acknowledgement number: hyväksymis- eli kuittausnumero; lähettäjän seuraavana saapuvaksi odottaman TCP-tavun järjestysnumero (32 bittiä) Header length: otsikon pituus 32-bittisinä sanoina (4 bittiä) Unused: ei käytössä, asetettu arvoon 0 (6 bittiä) 85

86 TCP-segmentin kentät (2) Flag field: lippukenttä (6 bittiä) URG ilmoittaa, että segmentti sisältää dataa, jonka ylempi kerros on määritellyt kiireelliseksi ACK ilmoittaa, että hyväksymiskenttä sisältää sallitun hyväksymisnumeron; segmentti sisältää kuittauksen asianmukaisesti vastaanotetusta segmentistä PSH kehottaa kohdetta toimittamaan datan ylemmälle kerrokselle välittömästi RST hälyttää yhteyden ongelmista; vastaanottaja joutuu luomaan yhteyden uudestaan alusta SYN pyytää kohdettaa synkronoimaan järjestysnumerot FIN ilmoittaa kohteelle, että lähde on lopettanut tietojen lähettämisen 86

87 TCP-segmentin kentät (3) Receive window: vastaanottoikkuna; niiden tavujen lukumäärä, jotka lähettäjä suostuu hyväksymään, käytetään vuonohjauksessa (16 bittiä) Internet checksum: Internet tarkistussumma; otsikosta ja datakentästä laskettu tiiviste (16 bittiä) Urgent data pointer: pikaosoitin; kiireellisen datan viimeisen tavun sijainnin kertova luku (16 bittiä) Options: optiot; käytetään, kun lähettäjä ja vastaanottaja neuvottelevat MSS:n koosta; myös aikaleimaoptio on määritelty (vaihtelevanpituinen) Data: sovelluksen data (vaihtelevanpituinen) 87

88 Järjestys- ja kuittausnumerot tärkeimmät TCP-otsikon kentät TCP käsittelee dataa rakenteettomana, vaikkakin järjestettynä tavuvirtana (0,1,2,..., ) järjestysnumero ilmoittaa segmentin ensimmäisen tavun paikan tavuvirrassa TCP-yhteys on kaksisuuntainen: A lähettää dataa B:lle ja odottaa dataa B:ltä saman TCP-yhteyden aikana hyväksymisnumero A:n TCP-segmentissä ilmoittaa sen tavun järjestysnumeron, jota A seuraavaksi odottaa B:ltä TCP soveltaa kumulatiivista kuittausta: hyväksymisnumero on B:n ensimmäinen tavu, joka ei vielä ole saapunut A:lle 88

89 Kuva 26 Datan jako TCP-segmenteiksi (MSS = 1000) 89

90 Kuva 27 Yksinkertaisen Telnet sovelluksen järjestys- ja kuittausnumerot 90

91 5.4 Kiertoviiveen arviointi ja aikamerkki Round-Trip Time (RTT) = kiertoviive, timeout = aikamerkki TCP käyttää aikamerkki- ja uudelleenlähetysmekanismia luotettavaan tiedonsiirtoon miten RTT määritetään? kuinka pian tulee segmentti lähettää uudelleen? kiertoviivettä arvioidaan kaavalla ArvioRTT := (1 α) ArvioRTT + α OtosRTT missä 0 < α < 1 on painokerroin ja OtosRTT on tietyin aikavälein mitattu otossegmentin RTT arvo kertoimen α suositusarvo on (RFC 2988) 91

92 Kiertoviiveen arviointi ja aikamerkki (2) ArvioRTT on OtosRTT-arvojen painotettu keskiarvo, jossa viimeisimmät otosarvot korostuvat: kyseessä on eksponentiaalinen painotettu liikkuva keskiarvo (exponential weighted moving average, EWMA) ArvioRTT n = (1 α) ArvioRTT n 1 + α OtosRTT n = (1 α) 2 ArvioRTT n 2 + (1 α) α OtosRTT n 1 + α OtosRTT n =... = (1 α) n ArvioRTT 0 + (1 α) n 1 α OtosRTT 1 + (1 α) n 2 α OtosRTT (1 α) α OtosRTT n 1 + α OtosRTT n 92

93 Kuva 28 Kiertoviiveotokset ja arviot 93

94 Kiertoviiveen hajonnan arviointi kiertoviiveen hajontaa arvioidaan kaavalla HajontaRTT n = (1 β) HajontaRTT n-1 + β OtosRTT n ArvioRTT n HajontaRTT n on pieni mikäli OtosRTT n :n ja ArvioRTT n :n ero on pieni kertoimen β suositusarvo on 0.25 (RFC 2988) segmentin uudelleenlähettämisaika saadaan kaavasta AikaVäli n = ArvioRTT n + 4 HajontaRTT n 94

95 5.5 Luotettava tiedonsiirto TCP rakentaa luotettavan tiedonsiirtopalvelun IP:n epäluotettavan parhaan yrityksen palvelun päälle TCP käyttää yhtä ajastinta lähetettyjen, mutta kuittaamattomien segmenttien uudelleenlähetykseen (RFC 2988) tarkastellaan yksinkertaistettua tilannetta, jossa A lähettää ison tiedoston B:lle seur. kalvo esittää yksinkertaista TCP-lähettäjää, jossa on kolme tärkeää datan (uudelleen)lähettämistä koskevaa tapahtumaa: sovelluksen datan vastaanotto, ajastimen aikamerkki ja ACK-viestin vastaanotto 95

96 Kuva 29 Yksinkertainen TCP-lähettäjä 96

97 Luotettava tiedonsiirto (2) edellä oletetaan, että vuonohjausta ei tarvitse ottaa huomioon ruuhkakontrollia ei tarvitse ottaa huomioon sovellusdatan koko < MSS tietoa siirretään vain yhteen suuntaan: lähteestä A kohteeseen B seur. kalvoilla kolme erilaista tilannetta hävinneen ACK-viestin aiheuttama uudelleenlähetys segmenttiä 100 ei lähetetä uudelleen kumulatiivinen kuittaus välttää 1. segmentin uudelleenlähetyksen 97

98 Kuva 30 Kadonneen ACK-viestin aiheuttama uudelleenlähetys 98

99 Kuva 31 Segmenttiä 100 ei lähetetä uudelleen 99

100 Kuva 32 Kumulatiivinen kuittaus: 1. segmenttiä ei lähetetä uudelleen 100

101 Aikavälin kaksinkertaistaminen muunnos tavanomaiseen TCP:n implementointiin kun ajastin hälyttää ja segmentti uudelleenlähetetään, AikaVäli-muuttujan arvo kaksinkertaistetaan kun ajastin käynnistetään joko saataessa dataa sovelluskerroksesta tai vastaanotettaessa ACK-viesti, AikaVäli-muuttujan arvo lasketaan kaavalla AikaVäli = ArvioRTT + 4 HajontaRTT aikavälin kaksinkertaistaminen mahdollistaa rajoitetun ruuhkakontrollin 101

102 Nopea uudelleenlähetys aikamerkin laukaiseman uudelleenlähetyksen ongelma: AikaVäli arvoltaan usein suuri ratkaisu: kaksinkertainen ACK-viesti kaksinkertainen ACK-viesti: hyväksymisviesti, joka kuittaa uudelleen jo vastaanotetun paketin lähettäjälle kaksinkertainen ACK-viesti kertoo, että vastaanottaja on saanut segmentin, jonka järjestysnumero on suurempi kuin sen segmentin, jota hän odottaa; vastaanottajan saamassa datavirrassa on aukko saatuaan kolme kaksinkertaista ACK-viestiä, lähettäjä toimittaa nopeutetussa tahdissa puuttuvat segmentit 102

103 Nopea uudelleenlähetys: paketti lähetetään uudelleen ennekuin ajastin hälyttää 103

104 TCP:n ACK-viestien generointi [RFC 1122, RFC 2581] Event at Receiver Arrival of in-order segment with expected seq #. All data up to expected seq # already ACKed Arrival of in-order segment with expected seq #. One other segment has ACK pending Arrival of out-of-order segment higher-than-expect seq. #. Gap detected Arrival of segment that partially or completely fills gap TCP Receiver action Delayed ACK. Wait up to 500ms for next segment. If no next segment, send ACK Immediately send single cumulative ACK, ACKing both in-order segments Immediately send duplicate ACK, indicating seq. # of next expected byte Immediate send ACK, provided that segment starts at lower end of gap 104

105 Onko TCP tyypiltään GBN vai SR protokolla? TCP kuittaukset kumulatiivisia, epäjärjestyksessä tulevaa dataa ei segmenttikohtaisesti kuitata; TCP-lähettäjän tarvitsee muistaa viimeisimmäksi lähetetyn, vielä kuittaamattoman tavun järjestysnumero; ja lähetysvuorossa oleva tavun järjestysnumero TCP muistuttaa GBN-protokollaa useat TCP implementaatiot puskuroivat epäjärjestyksessä tulevat, asianmukaisesti vastaanotetut segmentit; TCP ei liioin uudelleenlähetä useita segmenttejä kerrallaan TCP muistuttaa SR protokollaa johtopäätös: TCP on sekoitus GBN:stä ja SR:stä (hybridi) 105

106 5.6 Vuonohjaus estää lähettäjää aiheuttamasta vastaanottajalle puskuriylivuotoa huom. vuonohjaus ja ruuhkakontrolli ovat eri asioita TCP on kaksisuuntainen, joten molemmat osapuolet ylläpitävät (periaatteessa) samoja tilamuuttujia yksinkertaisuuden vuoksi oletetaan seuraavassa, että lähde A lähettää suuren tiedoston kohteelle B kohde B hylkää epäjärjestyksessä saapuvat paketit vastaanottajalle tärkeitä tilamuuttujia RcvBuffer RcvWindow LastByteRead ja LastByteRcvd RcvBuffer vastaanottopuskurin koko 106

107 Vuonohjaus (2) LastByteRead sen tavun järjestysnumero, jonka sovellus on viimeksi lukenut vastaanottopuskurista LastByteRcvd sen tavun järjestysnumero, joka viimeksi on saapunut ja joka on asetettu vastaanottopuskuriin RcvWindow = RcvBuffer (LastByteReceived LastByteRead) RcvWindow muuttuu dynaamisesti lähettäjälle tärkeitä tilamuuttujia LastByteSent viimeiseksi lähetetyn tavun järj. nro LastByteAcked viimeiseksi hyväksytyn tavun järj. nro LastByteSent LastByteAcked RcvWindow lähettäjä ylläpitää tietoa vastaanottajan RcvWindow -muuttujan arvostaa; tieto kulkee TCP-segmentin Receive windowkentässä 107

108 Kuva 33 Vastaanottoikkuna ja vastaaanottopuskuri LastByteReceived LastByteRead 108

109 5.7 TCP yhteyden ylläpito TCP yhteys perustetaan seuraavasti 1. Asiakas lähettää palvelimelle TCP SYN viestin, segmentin, jossa ei ole sovellusdataa SYN bitti on asetettu ykköseksi järjestysnumerokentässä on asiakkaan valitsema alkujärjestysnumero (client_isn) 2. Palvelin, saatuaan TCP SYN viestin, alustaa puskurit sekä yhteysmuuttujat ja lähettää asiakkaalle TCP SYNACK viestin, segmentin, jossa ei ole sovellusdataa SYN bitti on asetettu ykköseksi 109

110 TCP yhteyden ylläpito (2) järjestysnumerokentässä on palvelimen valitsema alkujärjestysnumero (server_isn) hyväksymiskentässä on luku client_isn Asiakas, vastaanotettuaan TCP SYNACK viestin, alustaa puskurit sekä yhteysmuuttujat ja lähettää palvelimelle TCP ACKviestin, segmentin, jossa voi sisältää sovellusdataa SYN bitti on asetettu nollaksi järjestysnumerokentässä on luku client_isn + 1 hyväksymiskentässä on luku server_isn + 1 Askeleessa 1 asiakas suorittaa yhteyden synkronoinnin, askeleessa 2 palvelin hyväksyy yhteyden ja synkronoi sen omasta puolestaan, askeleessa kolme asiakas vielä kuittaa perustetun yhteyden. 110

111 TCP yhteyden ylläpito (3) TCP yhteyttä perustettaessa suoritetaan n.s. kolminkertainen kättely myöhemmissä yhteyden dataa sisältävissä segmenteissä on SYN bitti asetettu nollaksi 111

112 Kuva 34 TCP yhteyden perustaminen 112

113 TCP yhteyden ylläpito (4) Kun TCP yhteys lopetetaan, puskurit ja datamuuttujat deallokoidaan. Olet., että asiakas haluaa lopettaa yhteyden. 1. Asiakas lähettää palvelimelle FIN viestin, segmentin, jossa ei ole sovellusdataa FIN bitti on asetettu ykköseksi 2. Palvelin lähettää asiakkaalle hyväksymisviestin FIN ACK 3. Palvelin lähettää asiakkaalle oman FIN viestinsä, segmentin, jossa ei ole sovellusdataa FIN bitti on asetettu ykköseksi 4. Asiakas lähettää palvelimelle hyväksymisviestin FIN ACK 113

114 Kuva 35 TCP yhteyden lopettaminen 114

115 Kuva 36 TCP asiakkaan toiminta tilakoneena 115

116 Kuva 37 TCP palvelimen toiminta tilakoneena 116

117 6. Ruuhkakontrollin periaatteet 6.1 Taustaa 6.2 Ruuhkakontrolliin syyt ja kustannukset 6.3 Ruuhkakontrolli: eri lähestymistapoja 6.4 Esimerkki verkkopohjaisesta ruuhkakontrollista: ATM ABR ruuhkakontrolli 117

118 6.1 Taustaa ruuhkakontrolli on kuljetuskerroksen ja sen protokollan palvelu koko tietoverkolle ruuhkaa syntyy, kun suuri määrä dataa täytyy kuljettaa yli kapasiteetiltaan rajoitetun verkon ruuhka johtaa puskuriylivuotoihin reitittimissä tarkastellaan ruuhkakontrollin yleisiä periaatteita esimerkkejä ruuhkan syntymisestä eri lähestymistapoja ruuhkanhallintaan 118

119 6.2 Ruuhkakontrollin syyt ja kustannukset seuraavassa tarkastellaan kolmea ruuhkakontrolliesimerkkiä esimerkit ovat kompleksisuudeltaan nousevassa suuruusjätjestyksessä kussakin esimerkissä pyritään analysoimaan sitä miksi ruuhka alunperin syntyy ja mitkä ovat sen kustannukset (resursseja jää käyttämättä, huono palvelu loppukäyttäjille) 119

120 Ruuhkan syntyminen. Esim. 1 Isäntäkone A lähettää dataa C:lle ja isäntäkone B lähettää dataa D:lle, välissä reititin, jossa äärettömät puskurit. Oletetaan että A:lla ja B:llä (vastaavasti C.llä ja D:llä) yhteinen linkki reitittimeen A:n ja B:n prosessit tarjoavat molemmat liittymänsä kautta kuljetuskerrokselleen dataa nopeudella λ in tavua sekunnissa, molempien kuljetuskerrokset välittävät dataa verkkokerrokseen samalla nopeudella λ in tavua/sek. linkkien kapasiteetit ovat R tavua/sek. reititin puskuroi kaiken datan, jota ei kykene lähettämään 120

121 Kuva 38 Ruuhkan syntyminen. Esim 1 121

122 Ruuhkan syntyminen. Esim. 1 (2) C:n ja D:n kuljetuskerrokset ottavat vastaan dataa verkkokerroksiltaan samalla nopeudella (merk. λ out ) kuin välittävät sitä prosesseilleen λ out on yhteyskohtainen (datan) läpivirtausnopeus Tässä tilanteessa yhteyskohtainen datan läpivirtausnopeus ei koskaan ole enempää kuin R/2 tavua/sek. λ out = λ in (0 λ in R/2); λ out = R/2 (λ in > R/2) keskim. viive kasvaa voimakkaasti, kun λ in R/2 Fakta 1. Jonotusviiveet kasvavat, kun pakettien tulonopeus lähestyy linkin kapasiteettia. 122

123 Kuva 39 Läpivirtausnopeus ja viive lähetysnopeuden funktiona. Esim

124 Ruuhkan syntyminen. Esim. 2 Isäntäkone A lähettää dataa C:lle, isäntäkone B lähettää dataa D:lle, välissä reititin, jossa äärelliset puskurit. Oletetaan, että reititin hylkää paketin mikäli puskuri on täynnä jokainen yhteys on luotettava: jos paketti hylätään, se lähetetään uudelleen A:n ja B:n prosessit tarjoavat liittymänsä kautta kuljetuskerroksilleen dataa nopeudella λ in tavua sekunnissa, molempien kuljetuskerrokset välittävät dataa verkkokerrokseen nopeudella λ in tavua/sek. C:n ja D:n kuljetuskerrokset ottavat vastaan dataa verkkokerroksiltaan samalla nopeudella (merk. λ out ) kuin välittävät sitä prosesseilleen; yhteyskohtainen datan läpivirtausnopeus on λ out tavua/sek. 124

125 Kuva 40 Ruuhkan syntyminen. Esim

126 Ruuhkan syntyminen. Esim. 2 (2) Olet. aluksi (epärealistisesti), että A tietää etukäteen onko reitittimen puskureissa tilaa. Tällöin (Kuva 41a, ylempi käyrä) λ in = λ in yhteyskohtainen datan läpivirtausnopeus ei koskaan ole enempää kuin R/2 tavua/sek. λ out = λ in, kun 0 λ in R/2; λ in > R/2 ei mahdollinen Olet. sitten (edell. epärealistisesti), että paketti uudelleenlähetetään vain, kun se varmasti tiedetään kadonneeksi. Kuvan 41 käyrä b kuvaa tätä tilannetta. Fakta 2. Ruuhkaisessa verkossa lähettäjän täytyy suorittaa uudelleenlähetyksiä korvatakseen pakettihävikin, joka johtuu puskuriylivuodoista. 126

127 Ruuhkan syntyminen. Esim. 2 (3) Oletetaan vielä, että lähettäjällä on ajastin, joka hälyttää paketeista, jotka ovat viivästyneet, mutta eivät välttämättä kadonneet. Fakta 3. Reititin käyttää linkkikapasiteetia hyödyttömästi turhien pakettien lähettämiseen. Tilannetta luonnehtii Kuvan 41a alempi käyrä. 127

128 Kuva 41 Läpivirtausnopeus ja viive lähetysnopeuden funktiona eri tapauksissa. Esim

129 Ruuhkan syntyminen. Esim 3 Isäntäkoneet A ja C lähettävät dataa toisilleen, samoin isäntäkoneet B ja D. Oletetaan, että kaikilla isäntäkoneilla on ajastin- ja uudelleenlähetysjärjestelmä luotettavan tiedonsiirron toteuttamiseen linkkien kapasiteetit ovat R tavua sekunnissa reititin hylkää paketin mikäli puskuri on täynnä ja välittää paketteja periaatteella ensin tullutta palvellaan ensin (first-come-first-served, FCFS) jokainen yhteys on luotettava: jos paketti hylätään, se lähetetään uudelleen 129

130 Ruuhkan syntyminen. Esim 3 (2) isäntien prosessit tarjoavat liittymänsä kautta kuljetuskerroksilleen dataa samalla nopeudella λ in tavua/sek. ja isäntien kuljetuskerrokset välittävät dataa verkkokerroksilleen samalla nopeudella λ in tavua/sek. isäntien kuljetuskerrokset ottavat vastaan dataa verkkokerroksiltaan samalla nopeudella (merk. λ out ) kuin välittävät sitä prosesseilleen; yhteyskohtainen datan läpivirtausnopeus on λ out tavua/sek. Kuva 42 luonnehtii tätä tilannetta. 130

131 Kuva 42 Ruuhkan syntyminen. Esim

132 Ruuhkan syntyminen. Esim 3 (3) Seuraavassa XY-yhteys tarkoittaa liikennettä isännältä X isännälle Y aina, kun X,Y {A,B,C,D} ja X Y. Selvästi AC-yhteys jakaa reitittimen R1 yhteyden DB kanssa ja reitittimen R2 yhteyden BD kanssa. Pienillä parametrin λ in arvoilla ei puskuriylivuotoja juurikaan tapahdu, läpivirtausnopeus λ out on suunnilleen λ in :n suuruinen; lisäys λ in :ssä johtaa lisäykseen λ out :ssa. Oletetaan, että λ in (ja siis myös λ in ) on suuri. Tarkastellaan reititintä R2. Isännän A dataa voi tulla reitittimeen R2 korkeintaan nopeudella R tavua/sek. 132

133 Ruuhkan syntyminen. Esim 3 (4) Pidetään mielessä, että reititin R2 välittää paketteja ensin tullutta palvellaan ensin periaatteella. Koska λ in on hyvin suuri kaikilla yhteyksillä, BD-yhteyden osuus R2:een tulevasta liikennevirrasta kasvaa suhteessa AC-yhteyden osuuteen. Rajalla, siis kun λ in, ACyhteydessä λ out 0. Fakta 4. Kun paketti hylätään jossakin polun reitittimessä, kaikki polun aikaisemmat reitittimet ovat tehneet turhaa työtä. 133

134 Kuva 43 Äärelliset puskurit, monta linkkiä Esim

135 6.3. Ruuhkakontrolli: eri lähestymistapoja Kaksi käytännön lähestymistapaa päästä-päähän ruuhkakontrolli verkkokerros ei tue ruuhkakontrollia kuljetuskerros kontrolloi ruuhkan syntymistä ja päättelee sen olemassaolon tarkkailemalla verkkotoimintaa TCP:n soveltama verkkopohjainen ruuhkakontrolli verkkokerroksen komponentit (esim. reitittimet) välittävät lähettäjälle tietoa verkon ruuhkatilanteesta Verkkopohjaisessa ruuhkakontrollissa on kaksi tapaa välittää ruuhkaa koskevaa tieto lähettäjälle (kuva 44). 135

136 Kuva 44 Verkkokerros tiedottaa ruuhkasta; kaksi reittiä 136

137 7. TCP:n ruuhkakontrolli 7.1 Taustaa ja mekanismeja 7.2 Reiluus 137

138 7.1 Taustaa ja mekanismeja TCP:n ruuhkakontrollimekanismi on päästä-päähän tyyppiä vähentää datan lähetysastetta ruuhkamäärän funktiona Herää kolme kysymystä miten TCP saa selville sen, että lähteen ja kohteen välillä on ruuhkaa miten TCP rajoittaa datan lähetysastetta mitä algoritmia TCP käyttää lähetysasteen muuntamisessa Seuraavassa oletetaan, että lähettäjä toimittaa vastanottajalle suuren tiedoston. 138

139 Lähetysasteen rajoittaminen Aikaisemmin todettiin, että TCP-yhteyden molemmissa päissä on vastaanotto- ja lähetyspuskuri ja ne pitävät yllä useita tilamuuttujia (RcvBuffer, RcvWindow, LastByteRead, LastByteRcvd, LastByteSent ja LastByteAcked). Näiden lisäksi molemmat päät ylläpitävät ruuhkaikkunaa (CongWin), joka rajoittaa astetta, jolla dataa voidaan verkkoon toimittaa. Kuittaamattoman datan määrä ei voi olla suurempi kuin pienempi luvuista CongWin, RcvWin : LastByteSent LastByteAcked min{congwin, RcvWin}. Olet. seur. että aina CongWin RcvWin. Datan lähetysaste on karkeasti CongWin/RTT tavua sekunnissa. 139

140 Ruuhkan selvillesaanti Hävikkitapahtuma on (lähettäjän) ajastimen hälytys kolmen kaksinkertaisen ACK-viestin vastaanotto Kun verkossa on ruuhkaa, reitittimissä tapahtuu puskuriylivuotoja ja paketteja häviää (hylätään). Hävinneet paketit aiheuttavat hävikkitapahtumia lähetyspäässä. Lähettäjä ymmärtää, että verkossa on ruuhkaa. Kun verkossa ei ole ruuhkaa, kuittaukset tulevat ajallaan ja hävikkitapahtumia ei satu, TCP kasvattaa ruuhkaikkunan kokoa. Ruuhkaikkunan koon kasvunopeus riippuu kuittausviestien saapumisnopeudesta, TCP on itsekellottuva. 140

141 TCP:n ruuhkakontrollialgoritmi Algoritmi koostuu kolmesta pääkomponentista additiivisesta lisäämisestä, multiplikatiivisesta vähentämisestä ; hitaasta alusta ; ja hävikkitapahtumiin reagoinnista Additiivinen lisääminen, multiplikatiivinen vähentäminen TCP kontrolloi ruuhkaa vähentämällä ruuhkaikkunan CongWin kokoa. TCP soveltaa multiplikatiivista vähentämistä: CongWin muuttujan arvo puolitetaan hävikkitapahtuman sattuessa. Muuttujan CongWin arvo ei saa mennä alle yhden MSS:n (segmentin maksimikoko). 141

142 TCP:n ruuhkakontrollialgoritmi (2) TCP lisää lähetysastetta ruuhkan helpottaesa: muuttujan CongWin arvoa lisätään yhdellä MSS:llä RTT:ssä jos hävikkitapahtumia ei satu. TCP soveltaa additiivista lisäämistä. TCP:n ruuhkankontrolli käyttää AIMD-algoritmia (Additive Increase Multiplicative Decrease). Lineaarinen lähetysasteen lisäys heijastaa ruuhkan välttämistä. 142

143 Kuva 45 AIMD algoritmin toiminta Muuttujan CongWin arvo kasvaa lineaarisesti (kun kuittauksia saapuu) ja putoaa yhtäkkiä puoleen (kun hävikkitapahuma sattuu); toiminta on syklistä. 143

144 TCP:n ruuhkankontrollialgoritmi (3) Hidas alku (nopea kiihdytys) TCP-yhteyden alkaessa muuttujan CongWin arvo on yksi MSS. Yhteyden alussa TCP lisää lähetysastetta kaksinkertaistamalla CongWin muuttujan arvon yhdessä RTT:ssä kunnes hävikkitapahtuma sattuu. TCP lähettää ensimmäisen segmentin verkkoon ja odottaa sen kuittausta. Kuittauksen tultua TCP kasvattaa ruuhkaikkunaa kahdeksi MSS:ksi ja lähettää kaksi maksimikokoista segmenttiä verkkoon. Jos nämä kuitataan, TCP kasvattaa ruuhkaikkunan koon 4 MSS:ksi, lähettää neljä segmenttiä verkkoon jne

145 Kuva 46 TCP:n hidas aloitus 145

146 TCP:n ruuhkankontrollialgoritmi (4) Aikamerkkitapahtumiin reagointi Todellisuudessa TCP:n ruuhkakontrolli reagoi eri tavalla (1) ajastimen hälytykseen ja (2) kolmen kaksinkertaisen ACKviestin vastaanottoon. Vastaanottaessaan kolme kaksinkertaista ACK-viestiä TCP käyttäytyy kuten edellä kuvattiin; ruuhkaikkuna puolitetaan ja sen kokoa kasvatetaan vähitellen. Ajastimen hälyttäessä TCP asettaa ruuhkaikkunan arvoksi yhden MSS:n ja sen jälkeen kasvattaa sen kokoa eksponentiaalisesti kunnes CongWin muuttujan arvo on puolet siitä mitä se oli ennen ajastimen hälyttämistä. Tämän jälkeen CongWin kasvaa lineaarisesti kuten on edellä on kuvattu. 146

147 TCP congestion control FSM: overview hävikki: aikamerkki hidas aloitus cwnd > ssthresh hävikki: aikamerkki ruuhkan välttäminen hävikki: 3dupACK hävikki: aikamerkki uusi ACK hävikki: 3dupACK nopea toipuminen 147

148 TCP ruuhkanhallinta FSM: yksityiskohdat L cwnd = 1 MSS ssthresh = 64 KB dupackcount = 0 aikamerkki ssthresh = cwnd/2 cwnd = 1 MSS dupackcount = 0 lähetä puuttuva segmentti duplicate ACK dupackcount++ hidas aloitus dupackcount == 3 ssthresh= cwnd/2 cwnd = ssthresh + 3 lähetä puuttuva segmentti uusi ACK cwnd = cwnd+mss dupackcount = 0 lähetä uudet segmentit sallit. rajoissa cwnd > ssthresh L aikamerkki ssthresh = cwnd/2 cwnd = 1 MSS dupackcount = 0 lähetä puuttuva segmentti timeout ssthresh = cwnd/2 cwnd = 1 dupackcount = 0 lähetä puuttuva segmentti nopea toipuminen New ACK cwnd = ssthresh dupackcount = 0 new ACK cwnd = cwnd + MSS (MSS/cwnd) dupackcount = 0 lähetä uudet segmentit sallit. rajoissa ruuhkan välttäminen. duplicate ACK dupackcount++ dupackcount == 3 ssthresh= cwnd/2 cwnd = ssthresh + 3 lähetä puuttuva segmentti duplicate ACK cwnd = cwnd + MSS lähetä uudet segmentit sallit. rajoissa 148

Monimutkaisempi stop and wait -protokolla

Monimutkaisempi stop and wait -protokolla 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

Lisätiedot

Chapter 3 Transport Layer. Kuljetuskerros

Chapter 3 Transport Layer. Kuljetuskerros Chapter 3 Transport ayer A note on the use of these ppt slides: We re making these slides freely available to all (faculty, students, readers). They re in PowerPoint form so you can add, modify, and delete

Lisätiedot

Kuljetuskerros. Tietokoneverkot. Matti Siekkinen Pasi Sarolahti

Kuljetuskerros. Tietokoneverkot. Matti Siekkinen Pasi Sarolahti Kuljetuskerros Tietokoneverkot Matti Siekkinen Pasi Sarolahti Osa sisällöstä adaptoitu seuraavista lähteistä: J.F. Kurose and K.W. Ross: Computer Networking: A Top-Down Approach 6th ed. -kirjan lisämateriaali

Lisätiedot

ELEC-C7241 Tietokoneverkot Kuljetuskerros

ELEC-C7241 Tietokoneverkot Kuljetuskerros ELEC-C7241 Tietokoneverkot Kuljetuskerros Pasi Sarolahti (kalvoja Matti Siekkiseltä) 23.1.2018 Laskareista Lisävuoro ke 16-18 U8 Edelleen myös ke 14-16 ja pe 12-14 Ke 14 16 tällä viikolla poikkeuksellisesti

Lisätiedot

3. Kuljetuskerros 3.1. Kuljetuspalvelu

3. Kuljetuskerros 3.1. Kuljetuspalvelu End- to- end 3. Kuljetuskerros 3.1. Kuljetuspalvelu prosessilta prosessille looginen yhteys portti verkkokerros koneelta koneelle IP-osoite peittää verkkokerroksen puutteet jos verkkopalvelu ei ole riittävän

Lisätiedot

Internet ja tietoverkot Loppukoe 18. huhtikuuta 2005

Internet ja tietoverkot Loppukoe 18. huhtikuuta 2005 Internet ja tietoverkot Loppukoe 18. huhtikuuta 2005 1. Vertaile piiri- ja pakettiväliteisten tietoverkkoja. 2. Esittele HTTP-protokollan toiminta. 3. Miten tapahtuu kanavointi kuljetuskerroksessa? Entä

Lisätiedot

Monimutkaisempi stop and wait -protokolla

Monimutkaisempi stop and wait -protokolla Monimutkaisempi stop and wait -protokolla ajastin lähettäjälle jos kuittausta ei kuulu, sanoma lähetetään automaattisesti uudelleen kuittaus: ACK = ok, lähetä seuraava uudelleenlähetys synnyttää kaksoiskappaleita!

Lisätiedot

Chapter 3 Transport Layer. Kuljetuskerros

Chapter 3 Transport Layer. Kuljetuskerros Chapter 3 Transport Layer A note on the use of these ppt slides: We re making these slides freely available to all (faculty, students, readers). They re in PowerPoint form so you can add, modify, and delete

Lisätiedot

Monimutkaisempi stop and wait -protokolla

Monimutkaisempi stop and wait -protokolla Monimutkaisempi stop and wait -protokolla ajastin lähettäjälle jos kuittausta ei kuulu, sanoma lähetetään automaattisesti uudelleen kuittaus: ACK = ok, lähetä seuraava uudelleenlähetys synnyttää kaksoiskappaleita!

Lisätiedot

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

Kuljetuskerros. Matti Siekkinen. T-110.2100 Johdatus tietoliikenteeseen kevät 2011 Kuljetuskerros Matti Siekkinen T-110.2100 Johdatus tietoliikenteeseen kevät 2011 TCP/IP-protokollapino Sovelluskerros Middleware: HTTP, SSL, XML... Kuljetuskerros: TCP, UDP,... Verkkokerros: IPv4, IPv6

Lisätiedot

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

kynnysarvo (threshold) varoitusarvo = tästä lähtien syytä varoa ruuhkaa aluksi 64 K RTT kynnysarvo (threshold) varoitusarvo = tästä lähtien syytä varoa ruuhkaa aluksi 64 K kynnysarvoon saakka voidaan kasvattaa ruuhkaikkunaa eksponentiaalisesti kynnysarvon saavuttamisen jälkeen kasvatetaan

Lisätiedot

Tehtävä 2: Tietoliikenneprotokolla

Tehtävä 2: Tietoliikenneprotokolla Tehtävä 2: Tietoliikenneprotokolla Johdanto Tarkastellaan tilannetta, jossa tietokone A lähettää datapaketteja tietokoneelle tiedonsiirtovirheille alttiin kanavan kautta. Datapaketit ovat biteistä eli

Lisätiedot

kynnysarvo (threshold)

kynnysarvo (threshold) kynnysarvo (threshold) varoitusarvo = tästä lähtien syytä varoa ruuhkaa aluksi 64 K kynnysarvoon saakka voidaan kasvattaa ruuhkaikkunaa eksponentiaalisesti kynnysarvon saavuttamisen jälkeen kasvatetaan

Lisätiedot

kynnysarvo (threshold)

kynnysarvo (threshold) kynnysarvo (threshold) varoitusarvo = tästä lähtien syytä varoa ruuhkaa aluksi 64 K kynnysarvoon saakka voidaan kasvattaa ruuhkaikkunaa eksponentiaalisesti kynnysarvon saavuttamisen jälkeen kasvatetaan

Lisätiedot

Luento 5: Kuljetuskerros

Luento 5: Kuljetuskerros : Kuljetuskerros luotettavan tiedonsiirron periaatteet Ma 11.11.2013 Tiina Niklander Kurose&Ross Ch3 Pääasiallisesti kuvien J.F Kurose and K.W. Ross, All Rights Reserved 1 segmentti paketti kehys message,

Lisätiedot

Tietoliikenteen perusteet

Tietoliikenteen perusteet 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

Lisätiedot

3. Kuljetuskerros 3.1. Kuljetuspalvelu End- to- end

3. Kuljetuskerros 3.1. Kuljetuspalvelu End- to- end 3. Kuljetuskerros 3.1. Kuljetuspalvelu End- to- end lta lle looginen yhteys portti verkkokerros koneelta koneelle IP-osoite peittää verkkokerroksen puutteet jos verkkopalvelu ei ole riittävän hyvä, sitä

Lisätiedot

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

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 yleensä jokin kakkosen potenssi» koska numerokentän koko k bittiä => käytössä 2**k numeroa ikkunan koko go back

Lisätiedot

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

Kuljetuspalvelu. Tietoliikenteen perusteet. Sisältöä. Kuljetuskerros. Kuljetuskerros. Kuljetuskerros. Internetin kuljetusprotokollat Tietoliikenteen perusteet Kurose, Ross: Ch 3 Sisältöä Kuljetuspalvelut Yhteydetön kuljetuspalvelu, UDP Luotettavan kuljetuspalvelun periaatteet Yhteydellinen kuljetuspalvelu, TCP Ruuhkanhallinta TCP:ssä

Lisätiedot

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

Luento 5: Kuljetuskerros luotettavan tiedonsiirron periaatteet. Syksy 2014, Tiina Niklander Tietoliikenteen perusteet Luento 5: Kuljetuskerros luotettavan tiedonsiirron periaatteet Syksy 2014, Tiina Niklander Kurose&Ross: Ch3 Pääasiallisesti kuvien J.F Kurose and K.W. Ross, All Rights Reserved

Lisätiedot

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

TCP/IP-protokollapino. Kuljetuskerros. Tämän luennon jälkeen. Sisältö. Matti Siekkinen. Ymmärrätte: TCP/IP-protokollapino Kuljetuskerros Matti Siekkinen T-110.2100 Johdatus tietoliikenteeseen kevät 2010 kerros Middleware: HTTP, SSL, XML... Kuljetuskerros: TCP, UDP,... Verkkokerros: IPv4, IPv6 Linkkikerros:

Lisätiedot

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

Tietoliikenne II. Syksy 2005 Markku Kojo. Tietoliikenne II (2 ov,, 4 op) Page1. Markku Kojo Helsingin yliopisto Tietojenkäsittelytieteen laitos Tietoliikenne II Syksy 2005 Markku Kojo 1 Syksy 2005 Tietoliikenne II (2 ov,, 4 op) Markku Kojo Helsingin yliopisto Tietojenkäsittelytieteen laitos 2 Page1 1 Kirjallisuus ja muuta materiaalia Kurssikirja:

Lisätiedot

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

Lisätiedot

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

Lisätiedot

3. Kuljetuskerros 3.1.

3. Kuljetuskerros 3.1. End- to- end 3. Kuljetuskerros 3.1. Kuljetuspalvelu prosessilta prosessille looginen yhteys portti verkkokerros koneelta koneelle IP-osoite peittää verkkokerroksen puutteet jos verkkopalvelu ei ole riittävän

Lisätiedot

3. Kuljetuskerros 3.1. Kuljetuspalvelu

3. Kuljetuskerros 3.1. Kuljetuspalvelu 3. Kuljetuskerros 3.1. Kuljetuspalvelu End- to- end lta lle looginen yhteys portti verkkokerros koneelta koneelle I-osoite peittää verkkokerroksen puutteet jos verkkopalvelu ei ole riittävän hyvä, sitä

Lisätiedot

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

Kuljetuskerros. Chapter 3 Transport Layer. Kuljetuskerros. Kuljetuspalvelut ja -protokollat. Kuljetuskerros vs. verkkokerros Chapter 3 Transport ayer A note on the use of these ppt slides: We re making these slides freely available to all (faculty, students, readers). They re in PowerPoint form so you can add, modify, and delete

Lisätiedot

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

Kuljetuskerroksen protokollat. Luotettava vai epäluotettava? Kuljetuskerroksen tarkoitus. Tietosähkeen kapselointi. Portit ja (de)multipleksaus do what I mean Kuljetuskerroksen protokollat Sovelluskerros Sovelluskerros User Datagram Protocol (UDP) Transmission Control Protocol (TCP) Kuljetuskerros Verkkokerros Linkkikerros TCP, UDP Kuljetuskerros

Lisätiedot

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

TCP. TCP-optiot. Erilaisia suorituskykyongelmia. Aikaleima (timestamp) TCP:n peruspiirteiden toiminta tarkemmin. TCP:n uusia piirteitä. TCP TCP:n peruspiirteiden toiminta tarkemmin osin vain harjoitustehtävissä TCP:n uusia piirteitä S Window scaling time stamping RED (Random Early Detection) ECN (Explicit Congestion Notification) Source

Lisätiedot

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

TCP. TCP:n peruspiirteiden toiminta tarkemmin. TCP:n uusia piirteitä. osin vain harjoitustehtävissä TCP TCP:n peruspiirteiden toiminta tarkemmin osin vain harjoitustehtävissä TCP:n uusia piirteitä SACK Window scaling time stamping RED (Random Early Detection) ECN (Explicit Congestion Notification) TCP-otsakkeen

Lisätiedot

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

TCP:n peruspiirteiden toiminta tarkemmin. osin vain harjoitustehtävissä. TCP:n uusia piirteitä TCP TCP:n peruspiirteiden toiminta tarkemmin osin vain harjoitustehtävissä TCP:n uusia piirteitä SACK Window scaling time stamping RED (Random Early Detection) ECN (Explicit Congestion Notification) TCP-otsakkeen

Lisätiedot

Chapter 3 Transport Layer. Kuljetuskerros

Chapter 3 Transport Layer. Kuljetuskerros Chapter 3 Transport Layer A note on the use of these ppt slides: We re making these slides freely available to all (faculty, students, readers). They re in PowerPoint form so you can add, modify, and delete

Lisätiedot

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

Kuljetuskerros. Matti Siekkinen. T Johdatus tietoliikenteeseen kevät 2013 Kuljetuskerros Matti Siekkinen T-110.2100 Johdatus tietoliikenteeseen kevät 2013 TCP/IP-protokollapino Sovelluskerros Middleware: HTTP, SSL, XML... Kuljetuskerros: TCP, UDP,... Verkkokerros: IPv4, IPv6

Lisätiedot

Kuljetuskerros. Kirja sivut: 280-301, 326-330

Kuljetuskerros. Kirja sivut: 280-301, 326-330 Kuljetuskerros Kirja sivut: 280-301, 326-330 Kuljetuskerroksen tehtävä Kuljetuskerros yhdistää sovelluksia Verkkokerros välittää viestejä koneelta toiselle Kuljetuskerros lisää tarkemman osoitteen koneen

Lisätiedot

Tietoliikenteen perusteet. Kuljetuskerros

Tietoliikenteen perusteet. Kuljetuskerros Tietoliikenteen perusteet Kuljetuskerros Kurose, Ross: Ch 3 Tietoliikenteen perusteet /2009/ Liisa Marttinen 1 Sisältöä Kuljetuspalvelut Yhteydetön kuljetuspalvelu, UDP Luotettavan kuljetuspalvelun periaatteet

Lisätiedot

Tietoliikenne II Kurssikoe

Tietoliikenne II Kurssikoe 581363-2 Tietoliikenne II Kurssikoe 20.10. 2005 Kirjoita jokaisen vastauspaperisi alkuun kurssin nimi ja kokeen päivämäärä sekä nimesi, syntymäaikasi tai opiskelijanumerosi ja allekirjoituksesi. Kokeessa

Lisätiedot

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

Kuittaukset ACK. NAK-kuittaus. kumulatiivinen ACK. yksittäinen ACK. sanoma virheellinen tai puuttuu. tähän saakka kaikki ok! ACK Kuittaukset kumulatiivinen ACK tähän saakka kaikki ok! Go-Back N yksittäinen ACK vain tämä ok! Valikoiva toisto NAK-kuittaus sanoma virheellinen tai puuttuu 5.10.2001 40 Negatiiviset kuittaukset NAK-kuittauksilla

Lisätiedot

TCP:n vuonohjaus (flow control)

TCP:n vuonohjaus (flow control) J. Virtamo 38.3141 Teleliikenneteoria / TCP:n vuonohjaus 1 TCP:n vuonohjaus (flow control) W. Stallings, High-Speed Networks, TCP/IP and ATM Design Principles, Prentice-Hall, 1998, Sections 10.1-10.2 Ikkunointipohjainen

Lisätiedot

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

Kuittaukset. Miksi? Miksi? Negatiiviset kuittaukset NAK-kuittauksilla voidaan nopeuttaa uudelleenlähettämistä. Ikkunankoko ACK ACK Kuittaukset kumulatiivinen ACK tähän saakka kaikki ok! Go-Back N yksittäinen ACK vain tämä ok! Valikoiva toisto NAK-kuittaus sanoma virheellinen tai puuttuu Negatiiviset kuittaukset NAK-kuittauksilla

Lisätiedot

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

Kuittaukset. tähän saakka kaikki ok! Go-Back N. sanoma virheellinen tai puuttuu ACK Kuittaukset kumulatiivinen ACK tähän saakka kaikki ok! Go-Back N yksittäinen ACK vain tämä ok! Valikoiva toisto NAK-kuittaus sanoma virheellinen tai puuttuu 5.10.2001 40 Negatiiviset kuittaukset NAK-kuittauksilla

Lisätiedot

Tietoliikenteen perusteet. Kuljetuskerros

Tietoliikenteen perusteet. Kuljetuskerros Tietoliikenteen perusteet Kuljetuskerros Kurose, Ross: Ch 3 Tietoliikenteen perusteet /2008/ Liisa Marttinen 1 Sisältöä Kuljetuspalvelut Yhteydetön kuljetuspalvelu, UDP Luotettavan kuljetuspalvelun periaatteet

Lisätiedot

Tietoliikenteen perusteet. Kuljetuskerros

Tietoliikenteen perusteet. Kuljetuskerros Tietoliikenteen perusteet Kuljetuskerros Kurose, Ross: Ch 3 Tietoliikenteen perusteet /2009/ Liisa Marttinen 1 Sisältöä Kuljetuspalvelut Yhteydetön kuljetuspalvelu, UDP Luotettavan kuljetuspalvelun periaatteet

Lisätiedot

Siirron optimointi. Optimointi on usein tarpeen: Silly window syndrome

Siirron optimointi. Optimointi on usein tarpeen: Silly window syndrome Siirron optimointi 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

Lisätiedot

11/20/ Siirron optimointi

11/20/ Siirron optimointi 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ä

Lisätiedot

Tietoliikenteen perusteet. Kuljetuskerros

Tietoliikenteen perusteet. Kuljetuskerros Tietoliikenteen perusteet Kuljetuskerros Kurose, Ross: Ch 3 Tietoliikenteen perusteet /2007/ Liisa Marttinen 1 Sisältöä Kuljetuspalvelut Yhteydetön kuljetuspalvelu, UDP Luotettavan kuljetuspalvelun periaatteet

Lisätiedot

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 3.2.2014 (osa 1) 10.2.2014 (osa 2) Matti Siekkinen Tietokoneverkot 2014 Osa sisällöstä adaptoitu seuraavista lähteistä: J.F. Kurose and K.W. Ross: Computer Networking:

Lisätiedot

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

Kuljetuskerros. Chapter 3 Transport Layer. Kuljetuspalvelut ja -protokollat. Kuljetuskerros. Kuljetuskerros vs. verkkokerros Chapter 3 Transport ayer A note on the use of these ppt slides: We re making these slides freely available to all (faculty, students, readers). They re in PowerPoint form so you can add, modify, and delete

Lisätiedot

Tietoliikenteen perusteet. Kuljetuskerros

Tietoliikenteen perusteet. Kuljetuskerros Tietoliikenteen perusteet Kuljetuskerros Kurose, Ross: Ch 3 Tietoliikenteen perusteet /2007/ Liisa Marttinen 1 Sisältöä Kuljetuspalvelut Yhteydetön kuljetuspalvelu, UDP Luotettavan kuljetuspalvelun periaatteet

Lisätiedot

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

Siirron optimointi. Optimointi on usein tarpeen: Silly window syndrome. Esimerkki jatkuu A Esimerkki jatkuu B ajastin laukeaa, uudelleen sanoma 2 lähettää sanoman 5 lähettää sanoman 6 jos lupa katoaa, jää odottamaan! ==> lukkiutumistilanne

Lisätiedot

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/

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/ A ajastin laukeaa, uudelleen sanoma 2 lähettää sanoman 5 lähettää sanoman 6 jos lupa katoaa, jää odottamaan! ==> lukkiutumistilanne Esimerkki jatkuu

Lisätiedot

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

Internet ja tietoverkot 2015 Harjoitus 5: (ISO/OSI-malli: Verkkokerros, TCP/IP-malli: internet-kerros) Internet ja tietoverkot 2015 Harjoitus 5: (ISO/OSI-malli: Verkkokerros, TCP/IP-malli: internet-kerros) Tämän harjoituksen tarkoituksena on tutustua IP-protokollaan. Kertausta - Harjoitus 4: Erään sovelluksen

Lisätiedot

Tietoliikenteen perusteet. Kuljetuskerros

Tietoliikenteen perusteet. Kuljetuskerros Tietoliikenteen perusteet Kuljetuskerros Kurose, Ross: Ch 3 Tietoliikenteen perusteet /2010 1 Sisältöä Kuljetuspalvelut Yhteydetön kuljetuspalvelu, UDP Luotettavan kuljetuspalvelun periaatteet Yhteydellinen

Lisätiedot

Internet ja tietoverkot 2015 Harjoitus 7: Kertaus

Internet ja tietoverkot 2015 Harjoitus 7: Kertaus Internet ja tietoverkot 2015 Harjoitus 7: Kertaus Tämän harjoituksen tarkoituksena on hieman kerrata TCP/IP-kerrosmallin sovelluskerroksen, kuljetuskerroksen, internet-kerroksen ja siirtoyhteyskerroksen

Lisätiedot

OSI ja Protokollapino

OSI ja Protokollapino TCP/IP OSI ja Protokollapino OSI: Open Systems Interconnection OSI Malli TCP/IP hierarkia Protokollat 7 Sovelluskerros 6 Esitystapakerros Sovellus 5 Istuntokerros 4 Kuljetuskerros 3 Verkkokerros Linkkikerros

Lisätiedot

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

Kuljetuspalvelu. Tietoliikenteen perusteet. Sisältöä. Kuljetuskerros. Kuljetuskerros. Kuljetuskerros. Internetin kuljetusprotokollat Tietoliikenteen perusteet Kurose, Ross: Ch 3 Sisältöä Kuljetuspalvelut Yhteydetön kuljetuspalvelu, UDP Luotettavan kuljetuspalvelun periaatteet Yhteydellinen kuljetuspalvelu, TCP Ruuhkanhallinta TCP:ssä

Lisätiedot

Kappale 3, Siirto Taso. Luento-osuus 1 Käännös Mirja Hosionaho 100% Tietoverkot: ylhäältä alas lähestyminen

Kappale 3, Siirto Taso. Luento-osuus 1 Käännös Mirja Hosionaho 100% Tietoverkot: ylhäältä alas lähestyminen Kappale 3 Siirto Taso Kappale 3, Luento-osuus 1 Käännös Mirja Hosionaho 100% Tietoverkot: ylhäältä alas lähestyminen 6 painos Jim Kurose, Keith Ross Addison-Wesley Maaliskuu 2012 Transport Layer 3-1 Kappale

Lisätiedot

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

on yksi keskeisimpiä toimintoja Internetin toiminnan varmistamiseksi Internetin ruuhkanhallinta pitkälti TCP-ruuhkanvalvonta (RFC 2581) TCP-ruuhkanvalvonta on yksi keskeisimpiä toimintoja Internetin toiminnan varmistamiseksi Internetin ruuhkanhallinta pitkälti TCP:n varassa Pääsääntöisesti muut protokollat

Lisätiedot

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

Esimerkki jatkuu. ajastin laukeaa, uudelleen sanoma 2. <seq = 6, data = m6> A ajastin laukeaa, uudelleen sanoma 2 lähettää sanoman 5 lähettää sanoman 6 jos lupa katoaa, jää odottamaan! ==> lukkiutumistilanne Esimerkki jatkuu

Lisätiedot

Kuljetuskerroksen protokollat

Kuljetuskerroksen protokollat Kuljetuskerroksen protokollat User Datagram Protocol (UDP) Transmission Control Protocol (TCP) 1 Sovelluskerros Kuljetuskerros Verkkokerros Linkkikerros Fyysinen kerros TCP, UDP Internet Sovelluskerros

Lisätiedot

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 28.1.2014 (osa 1) 4.2.2014 (osa 2) Matti Siekkinen Tietokoneverkot 2014 Osa sisällöstä adaptoitu seuraavista lähteistä: J.F. Kurose and K.W. Ross: Computer Networking:

Lisätiedot

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

Kuljetuskerroksen protokollat. Kuljetuskerroksen tarkoitus. Luotettava vai epäluotettava? Kuljetuskerroksen protokollat Sovelluskerros Sovelluskerros User Datagram Protocol (UDP) Transmission Control Protocol (TCP) Kuljetuskerros Verkkokerros Linkkikerros TCP, UDP Kuljetuskerros Verkkokerros

Lisätiedot

Kuljetuskerroksen protokollat

Kuljetuskerroksen protokollat Kuljetuskerroksen protokollat User Datagram Protocol (UDP) Transmission Control Protocol (TCP) 1 Sovelluskerros Kuljetuskerros Verkkokerros Linkkikerros Fyysinen kerros TCP, UDP Internet Sovelluskerros

Lisätiedot

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

Kuljetuskerroksen tehtävä. Kuljetuskerros UDP. UDP-kaappaus (DNS) DNS-haku, Ethernet-kehys <#> Kuljetuskerroksen tehtävä Kuljetuskerros Kirja sivut: 280-301, 326-330 Kuljetuskerros yhdistää sovelluksia Verkkokerros välittää viestejä koneelta toiselle Kuljetuskerros lisää tarkemman osoitteen koneen

Lisätiedot

Vuonohjaus: ikkunamekanismi

Vuonohjaus: ikkunamekanismi J. Virtamo 38.3141 Teleliikenneteoria / Ikkunointiin perustuva vuonohjaus 1 Vuonohjaus: ikkunamekanismi Kuittaamattomina liikkeellä olevien segmenttien (data unit) lkm W (ikkuna) Lähetyslupien kokonaismäärä

Lisätiedot

Protokollien yleiset toiminnot

Protokollien yleiset toiminnot CT30A2003 Tietoliikennetekniikan perusteet Protokollien yleiset toiminnot 1 Järjestelmä ja olio Eri järjestelmissä sijaitsevat oliot kommunikoivat keskenään - Jotta se olisi mahdollista, täytyy niiden

Lisätiedot

S-38.118 Teletekniikan perusteet

S-38.118 Teletekniikan perusteet S-38.118 Teletekniikan perusteet Laskuharjoitus 3 Paketoinnin hyötysuhde 1 Harjoitus 3 koostuu: Demoluento (45 min) Datan siirtäminen Internetissä yleensä Laskuesimerkki datan siirtämisestä Äänen siirtäminen

Lisätiedot

Kuljetuskerroksen protokollat

Kuljetuskerroksen protokollat Kuljetuskerroksen protokollat Sovelluskerros Sovelluskerros User Datagram Protocol (UDP) Transmission Control Protocol (TCP) Kuljetuskerros Verkkokerros Linkkikerros TCP, UDP Kuljetuskerros Verkkokerros

Lisätiedot

Luento 6: Kuljetuskerros UDP & TCP TCP:n ruuhkanhallinta

Luento 6: Kuljetuskerros UDP & TCP TCP:n ruuhkanhallinta : Kuljetuskerros UDP & TCP TCP:n ruuhkanhallinta Tiina Niklander Kurose&Ross Ch3 Pääasiallisesti kuvien J.F Kurose and K.W. Ross, All Rights Reserved 1 Lähettäjä (sender) Luennon sisältöä segmentti paketti

Lisätiedot

Selektiiviset kuittaukset (RFC 2018, RFC 3517)

Selektiiviset kuittaukset (RFC 2018, RFC 3517) Selektiiviset kuittaukset (RFC 2018, RFC 3517) Toistokuittaus ilmaisee vain yhden puuttuvan segmentin Vastaavasti kumulatiivinen kuittaus toipumisen aikana kertoo vain seuraavaksi haluttavan eli ilmaiseen

Lisätiedot

Luento 6: Kuljetuskerros UDP & TCP TCP:n ruuhkanhallinta

Luento 6: Kuljetuskerros UDP & TCP TCP:n ruuhkanhallinta : Kuljetuskerros UDP & TCP TCP:n ruuhkanhallinta To Tiina Niklander Kurose&Ross Ch3 Pääasiallisesti kuvien J.F Kurose and K.W. Ross, All Rights Reserved 1 segmentti paketti kehys message, segment datagram

Lisätiedot

Tietoliikenne II (2 ov)

Tietoliikenne II (2 ov) Tietoliikenne II (2 ov) Syksy 2001 Liisa Marttinen Kurssikirja: Kurose & Ross, Computer Networking Lisämateriaalia: Aiheeseen liittyvät RFC:t 28.10.2001 1 Tietoliikenne II Täydennystä Tietoliikenne I -kurssin

Lisätiedot

Tietoliikenne II (2 ov)

Tietoliikenne II (2 ov) Tietoliikenne II (2 ov) Syksy 2001 Liisa Marttinen Kurssikirja: Kurose & Ross, Computer Networking Lisämateriaalia: Aiheeseen liittyvät RFC:t 28.10.2001 1 Tietoliikenne II Täydennystä Tietoliikenne I -kurssin

Lisätiedot

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

Luento 6: Kuljetuskerros UDP & TCP TCP:n ruuhkanhallinta. Syksy 2014, Tiina Niklander Kurose&Ross: Ch3 Tietoliikenteen perusteet Luento 6: Kuljetuskerros UDP & TCP TCP:n ruuhkanhallinta Syksy 2014, Tiina Niklander Kurose&Ross: Ch3 Pääasiallisesti kuvien J.F Kurose and K.W. Ross, All Rights Reserved Tietoliikenteen

Lisätiedot

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

Miten selain muodostaa TCP- tai UDP-yhteyden? TCP-osoite = IP-osoite + porttinumero ( tässä 80) SOCKET BIND (80) LISTEN ACCEPT. Connection Request Miten selain muodostaa TCP- tai UDP-yhteyden? Käytetään pistokeprimitiivejä Selain SOCKET TCP-osoite = IP-osoite + porttinumero ( tässä 80) SOCKET BIND (80) LISTEN ACCEPT www-palvelin 128.214.4.29 kuuntelee

Lisätiedot

Tietoliikenteen perusteet

Tietoliikenteen perusteet Tietoliikenteen perusteet Luento 6: Kuljetuskerros UDP & TCP TCP:n ruuhkanhallinta ja turvallisuus Kurose&Ross: Ch3 Syksy 2017, Timo Karvi Pääasiallisesti kuvien J.F Kurose and K.W. Ross, All Rights Reserved

Lisätiedot

Tietoliikenteen perusteet

Tietoliikenteen perusteet Tietoliikenteen perusteet Luento 6: Kuljetuskerros UDP & TCP TCP:n ruuhkanhallinta ja turvallisuus Kurose&Ross: Ch3 Syksy 2015, Timo Karvi Pääasiallisesti kuvien J.F Kurose and K.W. Ross, All Rights Reserved

Lisätiedot

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

Siltojen haitat. Yleisesti edut selvästi suuremmat kuin haitat 2/19/2003 79. Kytkin (switch) Erittäin suorituskykyisiä, moniporttisia siltoja Siltojen haitat sillat puskuroivat ja aiheuttavat viivettä ei vuonsäätelyä => sillan kapasiteetti voi ylittyä kehysrakenteen muuttaminen => virheitä jää havaitsematta Yleisesti edut selvästi suuremmat

Lisätiedot

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

S 38.1105 Tietoliikennetekniikan perusteet. Pakettikytkentäiset verkot. Helsinki University of Technology Networking Laboratory S 38.1105 Tietoliikennetekniikan perusteet Pakettikytkentäiset verkot Kertausta: Verkkojen OSI kerrosmalli Sovelluskerros Esitystapakerros Istuntokerros Kuljetuskerros Verkkokerros Linkkikerros Fyysinen

Lisätiedot

Ongelma 1: Ei saada kolmea toistokuittausta

Ongelma 1: Ei saada kolmea toistokuittausta Nopea uudelleenlähetys (Fast retransmit) ensikuittaus Kun lähettäjä vastaanottaa 3 toistokuittausta samalle segmentille, se lähettää heti puuttuvan segmentin uudestaan eikä odota segmentin ajastimen laukeamista

Lisätiedot

Nopea uudelleenlähetys (Fast retransmit)

Nopea uudelleenlähetys (Fast retransmit) Nopea uudelleenlähetys (Fast retransmit) Kun lähettäjä vastaanottaa 3 toistokuittausta samalle segmentille, se lähettää heti puuttuvan segmentin uudestaan eikä odota segmentin ajastimen laukeamista Seq

Lisätiedot

Nopea uudelleenlähetys (Fast retransmit)

Nopea uudelleenlähetys (Fast retransmit) Nopea uudelleenlähetys (Fast retransmit) Kun lähettäjä vastaanottaa 3 toistokuittausta samalle segmentille, se lähettää heti puuttuvan segmentin uudestaan eikä odota segmentin ajastimen laukeamista Seq

Lisätiedot

Chapter 3: Transport Layer

Chapter 3: Transport Layer Chapter 3: Transport Layer our goals: understand principles behind transport layer services: multiplexing, demultiplexing reliable data transfer flow control congestion control learn about Internet transport

Lisätiedot

Tietoliikenne II (2 ov)

Tietoliikenne II (2 ov) Tietoliikenne II (2 ov) Syksy 2002 Liisa Marttinen Kurssikirja: Kurose & Ross, Computer Networking (2. edition) (kyllä 1. painoskin kelpaa, mutta siitä puuttuu mm. mobiiliverkot kokonaan) Lisämateriaalia:

Lisätiedot

Internet Protocol version 6. IPv6

Internet Protocol version 6. IPv6 Internet Protocol version 6 IPv6 IPv6 Osoiteavaruus 32-bittisestä 128-bittiseksi Otsikkokentässä vähemmän kenttiä Lisäominaisuuksien määritteleminen mahdollista Pakettien salaus ja autentikointi mahdollista

Lisätiedot

ITKP104 Tietoverkot - Teoria 3

ITKP104 Tietoverkot - Teoria 3 ITKP104 Tietoverkot - Teoria 3 Ari Viinikainen Jyväskylän yliopisto 5.6.2014 Teoria 3 osuuden tärkeimmät asiat kuljetuskerroksella TCP yhteyden muodostus ja lopetus ymmärtää tilakaavion suhde protokollan

Lisätiedot

Kappale 3 Kuljetustaso

Kappale 3 Kuljetustaso Kappale 3 Kuljetustaso Patrik Tikka 2-16 Antti Sinkkonen 17-27 Esko Mäkelä 54-85 Meri Ovaska 86-103 Saku Käsnänen 104-120 Markus Leppioja 121-142 Henri Takki 143-178 Computer Networking: A Top Down Approach

Lisätiedot

100 % Kaisu Keskinen 3-1

100 % Kaisu Keskinen 3-1 100 % Kaisu Keskinen 3-1 Chapter 3 Transport Layer A note on the use of these ppt slides: We re making these slides freely available to all (faculty, students, readers). They re in PowerPoint form so you

Lisätiedot

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

Tietoliikenne II (2 ov) Sisällysluettelo jatkuu. Tietoliikenne II. Alustava sisällysluettelo. Suoritus Tietoliikenne II ( ov) Syksy 00 Liisa Marttinen Kurssikirja: Kurose & Ross, Computer Networking (. edition) (kyllä 1. painoskin kelpaa, mutta siitä puuttuu mm. mobiiliverkot kokonaan) Lisämateriaalia:

Lisätiedot

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

Salausmenetelmät (ei käsitellä tällä kurssilla) 6. Internetin turvattomuus ja palomuuri Internetin turvaongelmia Tietojen keruu turva-aukkojen löytämiseksi ja koneen valtaaminen Internetissä kulkevan tiedon tutkiminen IP-osoitteen väärentäminen Palvelunestohyökkäykset

Lisätiedot

6. Kuljetuskerros 6.1. Kuljetuspalvelu End- to- end

6. Kuljetuskerros 6.1. Kuljetuspalvelu End- to- end 6. Kuljetuskerros 6.1. Kuljetuspalvelu End- to- end prosessilta prosessille portti verkkokerros koneelta koneelle IP-osoite peittää verkkokerroksen puutteet jos verkkopalvelu ei ole riittävän hyvä, sitä

Lisätiedot

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

Tietoliikenne II (2 ov) Tietoliikenne II. Sisällysluettelo jatkuu. Alustava sisällysluettelo. Suoritus. Täydennystä Tietoliikenne I -kurssin asioihin Tietoliikenne II ( ov) Syksy 001 Liisa Marttinen Kurssikirja: Kurose & Ross, Computer Networking Lisämateriaalia: Aiheeseen liittyvät RFC:t 4.10.001 1 Tietoliikenne II Täydennystä Tietoliikenne I -kurssin

Lisätiedot

6. Kuljetuskerros 6.1. Kuljetuspalvelu

6. Kuljetuskerros 6.1. Kuljetuspalvelu End- to- end 6. Kuljetuskerros 6.1. Kuljetuspalvelu prosessilta prosessille portti verkkokerros koneelta koneelle IP-osoite peittää verkkokerroksen puutteet jos verkkopalvelu ei ole riittävän hyvä, sitä

Lisätiedot

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

6. Kuljetuskerros 6.1. Kuljetuspalvelu End- to- end. kuljetuspalvelut parantavat verkkopalveluja Kuljetuskerroksen toiminta 6. Kuljetuskerros 6.1. Kuljetuspalvelu End- to- end prosessilta prosessille portti verkkokerros koneelta koneelle IP-osoite peittää verkkokerroksen puutteet jos verkkopalvelu ei ole riittävän hyvä, sitä

Lisätiedot

Siltojen haitat Yleisesti edut selvästi suuremmat kuin haitat

Siltojen haitat Yleisesti edut selvästi suuremmat kuin haitat Siltojen haitat sillat puskuroivat ja aiheuttavat viivettä ei vuonsäätelyä => sillan kapasiteetti voi ylittyä kehysrakenteen muuttaminen => virheitä jää havaitsematta Yleisesti edut selvästi suuremmat

Lisätiedot

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

TCP. TCP-optiot. Erilaisia suorituskykyongelmia. Aikaleima (timestamp) TCP:n peruspiirteiden toiminta tarkemmin. TCP:n uusia piirteitä. TCP TCP:n peruspiirteiden toiminta tarkemmin osin vain harjoitustehtävissä TCP:n uusia piirteitä SACK Window scaling time stamping RED (Random Early Detection) ECN (Explicit Congestion Notification) Source

Lisätiedot

3. Kuljetuskerros 3.1. Kuljetuspalvelu

3. Kuljetuskerros 3.1. Kuljetuspalvelu 3. Kuljetuskerros 3.1. Kuljetuspalvelu End- to- end prosessilta prosessille looginen yhteys portti verkkokerros koneelta koneelle IP-osoite peittää verkkokerroksen puutteet jos verkkopalvelu ei ole riittävän

Lisätiedot

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

3. Kuljetuskerros 3.1. Kuljetuspalvelu. Internetin kuljetuskerros. kuljetuspalvelut parantavat verkkopalveluja 3. Kuljetuskerros 3.1. Kuljetuspalvelu End- to- end prosessilta prosessille looginen yhteys portti verkkokerros koneelta koneelle IP-osoite peittää verkkokerroksen puutteet jos verkkopalvelu ei ole riittävän

Lisätiedot

Ruuhkanvalvonta on hankalaa!

Ruuhkanvalvonta on hankalaa! Ruuhkanvalvonta on hankalaa! Sitä varten on koko ajan kehitetty yhä parempia menetelmiä uudelleenlähetysajastimen arvo» RTT:n varianssin arviointi» Karnin algoritmi» exponential retransmission timer backoff

Lisätiedot

Ruuhkanvalvonta on hankalaa!

Ruuhkanvalvonta on hankalaa! Ruuhkanvalvonta on hankalaa! Sitä varten on koko ajan kehitetty yhä parempia menetelmiä uudelleenlähetysajastimen arvo» RTT:n varianssin arviointi» Karnin algoritmi» exponential retransmission timer backoff

Lisätiedot

Ruuhkanvalvonta on hankalaa!

Ruuhkanvalvonta on hankalaa! Ruuhkanvalvonta on hankalaa! Sitä varten on koko ajan kehitetty yhä parempia menetelmiä uudelleenlähetysajastimen arvo» RTT:n varianssin arviointi» Karnin algoritmi» exponential retransmission timer backoff

Lisätiedot