Tehtävä 2: Tietoliikenneprotokolla

Samankaltaiset tiedostot
Tehtävä 1: Aineistotehtävä - ICT-trendit 2015

Tehtävä 1: Aineistotehtävä - ICT-trendit 2015

1. Johdanto. Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki

Monimutkaisempi stop and wait -protokolla

3. Kuljetuskerros 3.1. Kuljetuspalvelu

3. Kuljetuskerros 3.1. Kuljetuspalvelu

Monimutkaisempi stop and wait -protokolla

Monimutkaisempi stop and wait -protokolla

Vuonohjaus: ikkunamekanismi

3. Kuljetuskerros 3.1. Kuljetuspalvelu End- to- end

Tietoliikenteen perusteet: Kokeeseen tulevista asioista

Tietoliikenteen perusteet

3. Yhteistilaverkko. Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki

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

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

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

Jaetun muistin muuntaminen viestin välitykseksi. 15. lokakuuta 2007

Kuljetuskerros. Tietokoneverkot. Matti Siekkinen Pasi Sarolahti

ELEC-C7241 Tietokoneverkot Kuljetuskerros

S Teletekniikan perusteet

Netemul -ohjelma Tietojenkäsittelyn koulutusohjelma

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

Kuva maailmasta Pakettiverkot (Luento 1)

kynnysarvo (threshold)

kynnysarvo (threshold)

Johdanto. Tiedonsiirtoverkkojen perusteista

Konsensusongelma hajautetuissa järjestelmissä. Niko Välimäki Hajautetut algoritmit -seminaari

3. Kuljetuskerros 3.1.

Tehtävä 1: Aineistotehtävä - Vastausten luonnehdintaa

Protokollien yleiset toiminnot

OSI ja Protokollapino

Formalisoimme nyt edellä kuvatun laskennan.

Paavo Räisänen. Ohjelmoijan binaarialgebra ja heksaluvut.

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

OHJ-1010 Tietotekniikan perusteet 4 op Syksy 2012

5.3 Ensimmäisen asteen polynomifunktio

Lisää reititystä. Tietokoneverkot 2009 (4 op) Syksy Futurice Oy. Lisää reititystä. Jaakko Kangasharju

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

Lisää reititystä. Tietokoneverkot 2008 (4 op) Syksy Teknillinen korkeakoulu. Lisää reititystä. Jaakko Kangasharju

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

Infrapunavalikko. Infrapunapuskuri. PCL-työn tunnis. PS-työn tunnist. Infrapunaportti. Siirtoviive. Työn puskurointi. Suurin mahd. nop.

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

ITKP104 Tietoverkot - Teoria 3

TIES530 TIES530. Moniprosessorijärjestelmät. Moniprosessorijärjestelmät. Miksi moniprosessorijärjestelmä?

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

Verkon värittämistä hajautetuilla algoritmeilla

Onko kuvaukset injektioita? Ovatko ne surjektioita? Bijektioita?

5. Siirtoyhteyskerros linkkikerros (Data Link Layer)

Ohjelmoijan binaarialgebra ja heksaluvut

5. Siirtoyhteyskerros linkkikerros (Data Link Layer)

Kenguru 2013 Cadet (8. ja 9. luokka)

Kuittaukset verkkolaskutuksessa (sanoman välityksessä) Pohjustus VLFn Kuittaus-työryhmälle V-M Sahlberg / Apix Messaging Oy Versio: 27.1.

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

Numeeriset menetelmät Pekka Vienonen

Maarit Pirttijärvi Pohjois-Suomen sosiaalialan osaamiskeskus Lapin toimintayksikkö/uula- hanke

Tampereen iltarastit Tapahtuman järjestelyohjeet Tulospalvelu. Muutoshistoria

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

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

Palvelukuvaus. Maksupääte

IPTV:n asettamat vaatimukset verkolle ja palvelun toteutus. Lauri Suleva TI07 Opinnäytetyö 2011

763105P JOHDATUS SUHTEELLISUUSTEORIAAN 1 Ratkaisut 4 Kevät 2016

Sanomaliikenneopas asiakkaille EMCS-järjestelmä

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

» multiaccess channel» random access channel LAN (Ethernet) langaton. ongelma: käyttövuoron jakelu Yhteiskäyttöisen kanavan käyttö

4. MAC-alikerros. yleislähetys (broadcast) ongelma: käyttövuoron jakelu. » multiaccess channel» random access channel LAN (Ethernet) langaton

KServer Etäohjaus Spesifikaatio asiakaspuolen toteutuksille

n! k!(n k)! n = Binomikerroin voidaan laskea pelkästään yhteenlaskun avulla käyttäen allaolevia ns. palautuskaavoja.

Laskennan teoria (kevät 2006) Harjoitus 3, ratkaisuja

Itsestabiloivabysanttilainen yhteisymmärrys. Timo Virkkala

Ongelma(t): Miten tietokoneen komponentteja voi ohjata siten, että ne tekevät yhdessä jotakin järkevää? Voiko tietokonetta ohjata (ohjelmoida) siten,

1. FRAME RELAY: RUUHKANHALLINTA

JHS 180 Paikkatiedon sisältöpalvelut Liite 4 INSPIRE-palvelujen laadun testaus

Kysely APERAK -kuittaussanomien käytöstä

Vaatimusmäärittely Ohjelma-ajanvälitys komponentti

Tekninen dokumentti. TEKNINEN DOKUMENTTI Versio (24) Versio ja pvm Laatinut Tarkastanut Hyväksynyt.

Selektiiviset kuittaukset (RFC 2018, RFC 3517)

Uolevin reitti. Kuvaus. Syöte (stdin) Tuloste (stdout) Esimerkki 1. Esimerkki 2

Esimerkki: Tietoliikennekytkin

3. Esimerkkejä. Sisältö. Klassinen puhelinliikenteen malli (1) Klassinen puhelinliikenteen malli (2)

1. Tietokoneverkot ja Internet

3. Esimerkkejä luento03.ppt S Liikenneteorian perusteet - Kevät

Julkinen sanomarajapinta ja

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

Digitaalitekniikan matematiikka Luku 13 Sivu 1 (10) Virheen havaitseminen ja korjaus

Ongelma 1: Onko datassa tai informaatiossa päällekkäisyyttä?

Älypuhelinverkkojen 5G. Otto Reinikainen & Hermanni Rautiainen

Kela Kanta-palvelut Terveydenhuollon todistusten välitys Toiminnalliset prosessit

Siirron optimointi. Optimointi on usein tarpeen: Silly window syndrome

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Å Ä Ö

Toinen harjoitustyö. ASCII-grafiikkaa

763105P JOHDATUS SUHTEELLISUUSTEORIAAN 1 Ratkaisut 4 Kevät 2012

11/20/ Siirron optimointi

Avaruuden R n aliavaruus

Tietokone. Tietokone ja ylläpito. Tietokone. Tietokone. Tietokone. Tietokone

VIP Softphone. Opas asennukseen ja tärkeimpien toimintojen käyttöön

Kuluttajat mukaan verkkolaskujen vastaanottajiksi

Integrointi ja sovellukset

Matematiikan tukikurssi

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

5. Siirtoyhteyskerros linkkikerros (Data Link Layer) 5.1. Kaksipisteyhteydet. Kehysten kuljetus. Missä virhe hoidetaan? Virheet.

Transkriptio:

Tehtävä 2: Tietoliikenneprotokolla Johdanto Tarkastellaan tilannetta, jossa tietokone A lähettää datapaketteja tietokoneelle tiedonsiirtovirheille alttiin kanavan kautta. Datapaketit ovat biteistä eli nollista ja ykkösistä koostuvia jonoja. Tiedonsiirtovirheitä on kahdenlaisia: joko paketti katoaa kokonaan tai paketin bittejä on muuttunut (nolla ykköseksi tai ykkönen nollaksi), jolloin puhutaan paketin vääristymisestä. Normaali tilanne on sellainen, että tiedonsiirtovirheitä tapahtuu harvakseltaan. Tiedonsiirtoon liittyy kaksi nopeutta. Ensinnäkin tietokone voi syöttää kanavaan korkeintaan tietyllä maksimaalisella nopeudella. Tämä nopeus, kanavan kapasiteetti (yksikkönä bittejä sekunnissa), riippuu kanavan ominaisuuksista (ja osittain myös tietokoneen rakenteesta, joskin yleensä kanavan ominaisuus on ratkaiseva). Toinen nopeus liittyy bittien etenemiseen kanavassa. Tämä nopeus on yleensä sama kuin valon nopeus väliaineessa (km/s). Jos paketteja siirretään hyvin pitkiä matkoja (tuhansia kilometrejä), niin matkan aiheuttama viive alkaa olla sellainen, että se joissakin tilanteissa täytyy ottaa huomioon. Näiden nopeuksien avulla voidaan laskea, kuinka kauan kestää paketin lähettäminen ja vastaanottaminen. Vuorottelevan bitin protokolla Tiedonsiirtoon tietokoneet käyttävät seuraavaa algoritmia eli protokollaa (ns. vuorottelevan bitin protokolla). Protokolla toimii lähettäjän puolella siten, että se ottaa vastaan datapaketteja sovellukselta ja lähettää niitä sen jälkeen kanavaan. Vastaanottajan puolella protokolla ottaa vastaan paketteja kanavasta ja luovuttaa ne sovellukselle. Käytännössä lähettävä sovellus sijoittaa paketteja varatulle muistialueelle eli puskuriin, josta protokolla käy niitä noutamassa. Samoin vastaanottajan puolella protokolla sijoittaa vastaanotetut paketit puskuriin, josta sovellus käy ne noutamassa. Oletetaan seuraavassa, että lähettävä kone on A ja vastaanottava kone. Kun A:n lähettämä paketti saapuu virheettömänä :lle, kuittaa paketin vastaanotetuksi lähettämällä kuittaussanoman A:lle. Vasta kun kuittaus on saapunut A:lle, A voi ottaa puskurista uuden paketin ja lähettää sen. Jotta kuittaussanoma kohdistuisi aina oikeaan pakettiin, paketit ja kuittaukset numeroidaan. Osoittautuu, että vain numeroita 0 ja 1 tarvitsee käyttää. Seuraava kaavio näyttää protokollan toiminnan, kun tiedonsiirtovirheitä ei tapahdu. 1

A d1 a1 Eli A ottaa ensin -sanomalla datapaketin puskurista ja lähettää datapaketin d varustettuna numerolla 0 ja jää odottamaan kuittausta. saa datapaketin virheettömänä, luovuttaa sen -sanomalla sovellukselle eli puskuriin ja lähettää kuittauksen a varustettuna myös numerolla 0 jääden odottamaan seuraavaa pakettia. A vastaanottaa virheettömän kuittauksen oikealla numerolla 0, ottaa uuden paketin puskurista ja lähettää tämän jälkeen uuden datapaketin varustettuna nyt numerolla 1. vastaanottaa tämän paketin, tunnistaa sen uudeksi paketiksi numeron perusteella, luovuttaa paketin sovellukselle ja lähettää paketin kuittauksen uudella numerolla 1. Tämäkin kuittaus tulee virheettömänä perille. A tunnistaa sen numeron perusteella edellisen paketin kuittaukseksi, ottaa taas uuden paketin puskurista ja lähettää tämän uuden datapaketin, johon tulee taas numero 0. vastaanottaa, luovuttaa eteenpäin ja kuittaa. Jatkossa tällaista kaaviota, joka esittää jotain tilannetta tiedonsiirrossa, kutsutaan skenaarioksi. Tämän protokollan skenaarioissa siis aika kulkee vasemmalta oikealle. Vaakasuorien viivojen väliin jäävä alue kuvaa tilanetta, kun sanomat tai kuittaukset ovat kanavassa. Put- ja -sanomat hakevat tai luovuttavat sanomia puskuriin. Skenaarioon ei ole piirretty puskureita erikseen. Protokollan toiminta, kun kanava kadottaa tai vääristää sanomia Edellisessä skenaariossa tiedonsiirtokanava toimi virheettömästi. Protokollan täytyy kuitenkin varautua myös virheisiin. Tavallisia virheitä ovat tilanteet, joissa paketti katoaa tai vääristyy, tai kuittaus katoaa tai vääristyy. Oletetaan, että tiedonsiirtokanava voi myös monistaa paketteja. Tämä tarkoittaa, että kun lähetetään paketti, kanava toimittaakin perille kaksi tai useampia kopioita samasta paketista. Eri kopioiden välillä voi olla mielivaltaisen pitkiä taukoja. Tiedonsiirtokanavasta oletetaan lisäksi, että kanavassa voi olla useita paketteja samaan aikaan, mutta pakettien järjestys kanavassa ei voi muuttua. Toisin sanoen jos kanavaan lähetetään paketit m 1 ja m 2, niin paketit tulevat perille myös samassa järjestyksessä. Tämä koskee myös monistumista: Jos kanava 2

monistaa sanoman m sanomiksi m 1 ja m 2, niin ne saapuvat perille samassa järjestyksessä. Mikään toinen paketti ei voi saapua perillem 1 :n jam 2 :n välissä. Jotta protokolla toipuisi tiedonsiirtovirheistä, otetaan käyttöön ajastin. Ajastin on lähettäjän A puolella. Mikäli A ei saa kuittausta kohtuullisessa ajassa, ajastin laukeaa eli protokolla saa timeout-sanoman (tai t-out -sanoman) ja A lähettää edellisen datapaketin uudestaan. Vääristyneet datasanomat ja kuittaukset tulkitaan kadonneiksi paketeiksi, toisin sanoen vääristyneisiin paketteihin ei reagoida. Protokollan täytyy toimia siten, ettei se luovuta eteenpäin jo aikaisemmin tullutta ja eteenpäin luovutettua pakettia. (Tällainen protokolla on osa laajempaa ohjelmistokokonaisuutta. Muut ohjelmiston osat ottavat datapaketit tarkempaan käsittelyyn ja protokollamme tehtävänä on vain ottaa vastaan lähetettäviä paketteja muilta ohjelmistomoduuleilta, välittää paketit tiedonsiirtokanavan yli ja luovuttaa vastaanottopäässä paketit edelleen muille moduuleille.) Katsotaan seuraavaksi skenaarion avulla, miten protokolla toipuu, jos datapaketti katoaa. Tässä ja seuraavissa skenaarioissa jätetään - ja -sanomat kirjoittamatta selvyyden vuoksi. Muistettakoon kuitenkin, että aina kun uusi paketti lähetetään, se on ensin otettava lähetyspuskurista -operaatiolla. Samoin kun uusi paketti otetaan vastaan, se luovutetaan ensin -sanomalla sovellukselle ja vasta sen jälkeen lähetetään kuittaus. Jos tulee kaksi kertaa peräkkäin samalla numerolla varustettu sanoma, niin toinen on uusintalähetys, eikä sitä luovuteta enää sovellukselle toistamiseen. A timeout Skenaariossa ensimmäinen datapaketti katoaa. Vastaanottaja jatkaa odottamistaan, mutta jossain vaiheessa A:n ajastin laukeaa, koska kuittausta ei kuulu. A lähettää saman paketin uudestaan ja nyt se menee perille :lle. kuittaa, kuittaus menee perille vääristymättä ja nyt ollaan taas normaalissa tilanteessa ja A voi jatkaa lähettämällä uuden datapaketin numerolla 1. Tilanne, jossa kuittaus katoaa, on täysin vastaava. A odottaa kuittausta, jota ei tule, ja sen johdosta A:n ajastin laukeaa. A lähettää edellisen datapaketin uudestaan. Jos se menee nyt vääristymättä perille :lle, huomaa numerosta, että se on vanha paketti, eikä luovuta sitä enää eteenpäin. Sen sijaan lähettää uudestaan kuittauksen. Jos se menee vääristymättä perille, tilanne jatkuu taas normaalisti seuraavan datapaketin lähetyksellä. Katsotaan vielä skenaario, jossa datapaketti katoaa ja heti sen jälkeen kuittauskin katoaa. Protokolla toipuu tästäkin tilanteesta ajastimen avulla: 3

A t-out d1 t-out Skenaariossa ensimmäinen datapaketti katoaa, joten kuittausta ei kuulu ja A:n ajastin laukeaa. A lähettää datapaketin uudestaan ja tällä kertaa se menee perille. Kuitenkin pakettiin liittyvä kuittaus katoaa. Täten A:n ajastin laukeaa taas ja datapaketti lähetetään uudestaan. Tämäkin datapaketti menee virheettömänä perille. huomaa saman paketin saapuneen uudelleen, ei luovuta sitä eteenpäin, mutta lähettää kuittauksen. Nyt kuittaus menee virheettömänä perille ja protokolla jatkuu normaalisti seuraavan paketin lähetyksellä. Kysymykset Kysymys 2.1. Näytä skenaarion avulla, miten protokolla käsittelee tilanteen, jossa kuittaus vääristyy. Piirrä tähän ja seuraaviin skenaarioihin myös - ja -sanomat. (maksimipistemäärä 2) Kysymys 2.2. Näytä skenaarion ja siihen liittyvän sanallisen selostuksen avulla, ettei protokolla toimi oikein, jos sanomia ei numeroida. (maksimipistemäärä 3) Kysymys 2.3. Oletetaan, että ajastin laukeaa, vaikka kuittaus onkin tulossa virheettömänä A:lle. Näytä skenaarion avulla, että protokolla toipuu tästäkin tilanteesta. (maksimipistemäärä 4) Kysymys 2.4. Osoita skenaarion avulla, ettei protokolla toimi oikein, jos kanava voi kadottaa ja monistaa sanomia sekä lisäksi vaihtaa sanomien järjestystä kanavassa. (maksimipistemäärä 4) Käännä! 4

Kysymys 2.5. Oletetaan, että protokollaa käytetään siirtämään 10 megatavun tiedostoa koneelta A koneelle. Koneiden välimatka on 4000 km ja signaalin nopeus kanavassa (yksinkertaisuuden vuoksi) 200 000 km/s. Kanavaan voi lähettää nopeudella 10 megabittiä sekunnissa. Kuinka kauan tiedoston lähettäminen kestää, kun käytetään vuorottelevan bitin protokollaa ja tiedosto pilkotaan 1000 tavun kokoisiksi paketeiksi, jotka lähetetään erikseen. Kuittausten koko on 1000 bittiä. Kanava toimii virheettömästi. Tavu on 8 bittiä, kilotavu on (yksinkertaisuuden vuoksi) 1000 tavua, megatavu on 1000 kilotavua. (maksimipistemäärä 5) Kysymys 2.6. Kuten edellinen kysymys, mutta nyt kanava kadottaa 10% sanomista, joista puolet on datasanomia, puolet kuittauksia. Ajastin laukeaa 5 sekunnin kuluttua, jos kuittausta ei ole saapunut. (maksimipistemäärä 5) Kysymys 2.7. Selitä, mitä tekijöitä täytyy ottaa huomioon ajastimen ajan asetuksessa, kun tavoitteena on tehokas ajastin, joka ei laukea liian aikaisin, mutta joka ei myöskään jätä odottamaan turhan kauan. (maksimipistemäärä 2) 5