83501 Tietoliikenneprotokollat Luentomoniste osa 1 syksy Jarmo Harju

Koko: px
Aloita esitys sivulta:

Download "83501 Tietoliikenneprotokollat Luentomoniste osa 1 syksy 2000. Jarmo Harju"

Transkriptio

1 83501 Tietoliikenneprotokollat Luentomoniste osa 1 syksy 2000 Jarmo Harju

2 TIETOLIIKENNEPROTOKOLLAT OSA 1 1. Johdanto OSI -viitemalli ja standardointi Tausta ja standardien ryhmittely Viitemallin yleiset periaatteet Johdanto OSI -mallin kerroksiin Protokollien määrittely ja mallintaminen Historiaa Määritelmiä ja ominaisuuksia Mallinnusmenetelmät Yksinkertainen äärellinen automaatti (FSA, Finite State Automaton) Mealyn tilakone Yleistetty äärellinen automaatti (EFSA, Extended FSA) Automaattien välinen kommunikointi Kanavat Järjestelmäarkkitehtuuri Siirtokerroksen protokollille tyypillisiä mekanismeja Virhekontrolli Virhetodennäköisyydet Virhetyypit ja virheiden korjaus Virheenkorjaavat koodit Sykliseen varmenteeseen (CRC) perustuvat koodit Vuonvalvonta ja virhetoipuminen: johdanto Yksinkertainen stop-and-wait -mekanismi vuonvalvontaan Sanomia kadottavan kanavan ongelma Sanomia vääristävä ja kadottava kanava: lisää ongelmia Pitkän siirtoviiveen ja kanavan käyttöasteen ongelmat Vuonvalvonta ja virhetoipuminen: liukuvan ikkunan mekanismit Yleistä Toipuminen PDU:iden katoamisesta - Go-Back-N ARQ Toipuminen PDU:iden katoamisesta - Selective Repeat Toipuminen PDU:iden katoamisesta - Negative Acknowledgement Verkkokerros Verkkokerroksen tehtävät Verkkopalvelu Yhteyspohjainen palvelu Yhteydetön palvelu Verkkoprotokollat Verkkokerroksen sisäinen rakenne Yhteydetön verkkoprotokolla ISO IP Kuljetuskerros Kuljetuskerroksen tehtävät ja protokollaluokat Kuljetuspalvelu ja kerroksen tärkeimmät protokollamekanismit Kuljetuspalvelu Yhteydenmuodostus kuljetusprotokollan luokka 4:ssa Yhteyden purku kuljetuskerroksella Luottomenetelmä vuonvalvonnassa Viitteet...57 Liite

3 Luvut 1-3 puuttuvat tarkoituksellisesti

4 4. Protokollien määrittely ja mallintaminen 4.1 Historiaa Protokollilla on tietoliikenteessä pitkä historia. Ennen puhelinta ja sähköisiä lennätinjärjestelmiä televiestintä perustui pääasiassa näköhavaintoihin: savumerkit, tulet, soihturyhmät, suuret puiset konstruktiot (semaforit), joiden asentoa voitiin muuttaa, ym. Näiden järjestelmien tiedonsiirtokapasiteetti oli luonnollisesti varsin vaatimaton. On arvioitu, että luvulla käytettyjen näköhavaintoon perustuvien järjestelmien kapasiteetti on ollut luokkaa 1 bit/s. Vastaavissa protokollissa kuvattiin, mitkä semaforien asennot tai millaiset soihturyhmät vastasivat mitäkin merkkejä tai sanomia. Poikkeuksellisten tilanteiden kuvaamiseen järjestelmät eivät olleet riittävän hyvin varustautuneita tai ohjeet saattoivat olla puutteelliset, jolloin eri henkilöt tulkitsivat tilanteet eri tavoin. Tästä on lukuisia esimerkkejä mm. junaonnettomuuksien historiassa junaliikenteen alkuvaiheista nykypäivään asti. Sähköisen tiedonsiirron kehittyessä 1800-luvun puolivälin jälkeen tiedonsiirron nopeus kohosi n. 30:een bit/s reikänauhaa käyttävän automaattisen lennättimen ansiosta. Siitä kehitetty järjestelmä sai lopullisen muotonsa luvulla, jolloin käyttöön otettiin Baudot'n 5-bittinen koodi ja automaattiseen vastaanottoon kykenevät kirjoittimet, siis telex -järjestelmä. Puhelinliikenteessä protokollien merkitys oli pitkään vähäinen, koska välitysjärjestelmät perustuivat yksinkertaiseen ja varmatoimiseen tekniikkaan tai hankalammissa tilanteissa keskusoperaattoreiden kanssa käytävään ihmisten väliseen keskusteluun. Protokollien kannalta seuraavat merkittävät tapahtumat ajoittuvat luvulle, jolloin automaattisen tietojenkäsittelyn aika alkoi. Silloin alkanut ATK:n kehityskulku on merkinnyt myös jatkuvaa protokollien kehitystä. Keskitettyjen järjestelmien aikana tietoliikenteen ongelmana oli yhdistää oheislaitteet (päätteet, kirjoittimet, nauhanlukijat) keskuskoneeseen. Luonteva tapa ratkaista hallinnan ja synkronoinnin ongelmat oli antaa yhdelle kommunikointiosapuolelle määräysvalta muihin nähden. Näin syntyivät ns. master - slave -protokollat, joissa master vastasi toimintojen käynnistämisestä, virhevalvonnasta, vuonvalvonnasta (poll -kyselyt), ym luvulla alkoi syntyä keskuskoneita yhdistäviä verkkoja, joissa master - slave -suhteet eivät välttämättä olleet käyttökelpoisia. Myös verkkojen tiedonsiirtonopeus oli kasvanut. Pakettikytkentäisten dataverkkojen myötä kehittyivät uudentyyppiset protokollat, nk. peer-to-peer -protokollat. Viime vuosikymmenten aikana nämä protokollat ovat kehittyneet ja standardisoituneet, ja niitä on sovellettu merkitykseltään yhä monipuolisempien ja monimutkaisempien kommunikointitilanteiden hallintaan. Viimeisimpänä kehitysvaiheena on nähtävissä suurinopeuksisten (luokkaa Gbit/s) verkkojen protokollille asettamat vaatimukset.

5 4.2 Määritelmiä ja ominaisuuksia OSI:n kerrosrakenteisessa mallissa protokollan tehtävät rajoitetaan sopiviin, helposti ymmärrettäviin osiin sallimalla keskustelu vain samalla kerroksella olevien vertaisolioiden välillä. Nämä kerrosprotokollat liittyvät ympäristöönsä palvelurajapintojen kautta. Kerroksen (N) protokollan siirtämä, sen itsensä kannalta merkityksetön tavujono jäsentyy ja saa merkityksellisen sisällön siirtyessään palvelurajapinnan kautta ylemmälle kerrokselle, jossa (N+1) -protokolla tulkitsee sen (tai osan siitä) omaan sanomajoukkoonsa kuuluvaksi. Kun halutaan katsoa kerrosmallia palvelujen näkökulmasta (ja ajatella palvelu hyvin määritellyksi käsitteeksi), voidaan kerrosprotokolla määritellä yksinkertaisesti: (N) -protokolla sovittaa (N) -palvelun (N-1) -palveluun. (4.1) Tämä määritelmä korostaa protokollalle asetettavia tavoitteita; siitä voidaan johtaa ne asiat, joista protokollan tulee huolehtia. Tarkastellaan esimerkkinä tilannetta, jossa palvelurajapintojen laadussa on suuri ero: Korkeatasoinen palvelu pitkät PDU:t yhteyspohjainen palvelu useita rinnakkaisia yhteyksiä luotettava kuljetus tietoturva (N)-olio (N)-palvelu (N)-protokolla Vaatimaton palvelutaso lyhyet paketit yhteydetön palvelu epäluotettava kuljetus tietovarkaita... (N-1)-palvelu Kuva 4.1 Protokolla palvelurajapintojen ominaisuuksien sovittajana Kuvan tapauksessa (N) -protokollalla on paljon tekemistä! Kerrosprotokollien tehtävät näyttäisivät näin olevan sangen riippuvaisia kerroksesta. Näin tietysti onkin, mutta on myös useita sellaisia tehtäviä, jotka esiintyvät useamman kuin yhden kerroksen protokollissa: - yhteydenmuodostus, - PDU:iden pilkkominen ja kokoaminen, - vuonvalvonta, - virhevalvonta ja virheistä toipuminen,

6 - yhteyksien limitys, - erityispalvelut: kiirehditty data, yhteyspyyntöjen törmäysten hallinta, parametreista neuvottelu, tietoturva, ym. Määritelmä (4.1) ei anna minkäänlaista viitettä siitä, miten protokolla voisi hoitaa esim. edellä mainitut tehtävät. Protokollassa on aina kysymys sanomien avulla toteutettavasta keskustelusta, jolloin konstruktiivisemmassa määrittelyssä voidaan ajatella karkeaa analogiaa kielen määrittelyn kanssa. Protokollaan kuuluu: - yhteys toimintaympäristöön (semantiikka), - sanomajoukon määrittely (sanasto), - sanomien rakentuminen biteistä ja kentistä (syntaksi), - toimintalogiikka (kielioppi). Edellä on jo nähty, että OSI-mallissa palvelun käsite liittää protokollan toimintaympäristöönsä. Protokollan sanomajoukko koostuu PDU:ista, joilla on oltava tarkkaan määritelty esitys binaarimuodossa. On kuitenkin selvää, että oleellisilta osiltaan vastaus kysymykseen, miten protokolla suorittaa sille asetetut tehtävät, sisältyy kohtaan toimintalogiikka. Toimintalogiikan tulee taata keskustelun järkevä kulku ja asianmukaiset toimenpiteet paitsi normaaleissa, myös kaikissa muissa ajateltavissa olevissa tilanteissa. Tämä tekee toimintalogiikasta väistämättä mutkikkaan jo varsin yksinkertaisiakin tehtäviä suoritettaessa, ja erityisten mallinnusmenetelmien käyttö on tarpeellista sekä protokollien toiminnan analysoinnissa että niiden toteuttamisessa. 4.3 Mallinnusmenetelmät Toimintalogiikka ohjaa keskustelun kulkua määrittelemällä sopivat vasteet toiselta osapuolelta saapuneisiin sanomiin. Tarkempaa tietoa välitetään sanomien parametreissa, joista osa on tarkoitettu protokollan ohjaukseen, osa taas välitettäväksi palvelurajapinnan kautta ympäristöön (OSI -mallissa ylemmälle kerrokselle). Sanomat ja parametrit ovat siis syötteitä toimintalogiikalle sen suorittaessa tehtäviään. Tällaiseen tilanteeseen ovat sopiviksi mallinnusmenetelmiksi osoittautuneet tila-automaatteihin pohjautuvat menetelmät, joita seuraavassa tarkastellaan lähemmin Yksinkertainen äärellinen automaatti (FSA, Finite State Automaton) Yksinkertainen äärellinen automaatti eli tilakone M on viisikko: missä M = (S, I, t, s o, F), 1) S on äärellinen tilojen joukko, 2) I on äärellinen syötteiden joukko, 3) t on tilasiirtymäfunktio t:sxi -> S,

7 4) s o S on alkutila, 5) F on lopputilojen joukko, F S. Aluksi M on tilassa s o odottaen syötejonoa j Ι *, missä Ι * on syötejonojen joukko: Ι * = {a 1 a 2...a n a i I, i = 1,...n, n N }. Kun jono j on käyty läpi, M pysähtyy. Olkoon lopputila r S. Jos r F, niin M hyväksyy j:n, muuten M hylkää j:n. M:n hyväksymien syötejonojen joukko L(M) (joka on Ι * :n osajoukko) on M:n määrittelemä kieli. Tarkastellaan esimerkkinä pariteetin laskentaa. Olkoon M = (S, I, t, s o, F), missä S = {even, odd}, I = {0, 1}, s o = even, F = {even}. Määritellään tilasiirtymäfunktio t seuraavasti t: even odd S I 0 1 even odd odd even Sama graafisena kuvauksena: 1 0 even odd 0 Kuva 4.2 Pariteetin laskennan automaatti 1 M:n hyväksymien syötejonojen joukko L(M) koostuu sellaisista 0:n ja 1:n jonoista, joissa on parillinen määrä ykkösiä Mealyn tilakone Mealyn tilakone on automaatti, jossa on määritelty myös tulostus (output): M = (S, I, O, t, σ, s o ),

8 missä S, I, t ja s o ovat kuten edellä, lisäksi O on äärellinen tulosteiden joukko, σ on tulostusfunktio σ: S x I -> O (tulostus riippuu tilasta ja syötteestä). Mealyn tilakoneessa ei ole loputilojen joukkoa. Tilannetta, jolloin M tilassa s 1 saa syötteen a I ja siirtyy tilaan s 2 lähettäen tulosteen o O, kuvataan yleensä graafisesti seuraavasti: a o s 1 s 2 Kuva 4.3 Graafinen merkintä tilasiirtymälle Mealyn tilakoneessa Mealyn tilakone M tuottaa syötejonoista tulostejonoja. Kutakin alkutilaa s o kohti se määrittelee kuvauksen Ms o : Ι * -> Ο *, missä Ο * on tulostejonojen joukko samalla tavalla kuin Ι * on syötejonojen joukko. Mealyn tilakoneen toimintaa voidaan tutkia syöttämällä sille ns. testisekvenssejä ja analysoimalla tulossekvenssejä Yleistetty äärellinen automaatti (EFSA, Extended FSA) Mealyn tilakonetta voidaan yleistää lukuisilla eri tavoilla. Pääasiallisena syynä yleistyksille on, että FSA:ta käytettäessä syntyy yleensä suuri määrä tiloja jo yksinkertaisia tapauksia mallitettaessa. Tyypilliset muutokset: 1) otetaan käyttöön tulostejonot: σ: S x I -> Ο *, 2) muuttujien käyttö: olkoon M:llä k kpl kokonaislukumuuttujia eli muuttujavektori V Z k. Funktiot t ja σ voivat myös käyttää muuttujavektoria: t : S x I x Z k -> S, σ: S x I x Z k -> Ο * x Z k (σ voi myös muuttaa muuttujien arvoja). EFSA:lla kuvaus saadaan kompaktiksi, toisaalta analysoituvuus heikkenee. CVOPS-kehitysympäristössä on käytössä EFSA:an pohjautuva protokollien mallinnusmenetelmä, jossa kokonaislukujen lisäksi voidaan käyttää hyväksi rakenteisia muuttujia.

9 4.3.4 Automaattien välinen kommunikointi Mealyn tilakoneet ja yleistetyt äärelliset automaatit voivat kommunikoida toistensa kanssa: toisen output voi olla toisen input, jne. Malliin voidaan tällöin luontevasti ottaa mukaan aika, jolloin lähestytään rinnakkaisten järjestelmien toiminnan perusteita. Ajan liittäminen malliin mahdollistaa myös monissa protokollissa tärkeiden ajastimien mallintamisen. Aikaa kuluttaa luonnollisesti input-elementtien odottaminen. Myös automaatin siirtymä- ja tulostusfunktiot kuluttavat suorituksessaan vaihtelevan määrän aikaa, ja tänä aikana automaatti ei voi ottaa vastaan syötteitä. Useista automaateista yhdistetyn automaatin käyttäytyminen tulee näin riippuvaiseksi siitä, milloin tilasiirtymät katsotaan loppuunsuoritetuksi, eli milloin automaatti on valmis ottamaan vastaan uusia syötteitä. Tarkastellaan seuraavassa tähän liittyvää ilmeistä tulkintaongelmaa: Automaatti S (sender) suorittaa saamaansa syötteeseen a liittyvää tulostusfunktiota σ, johon sisältyy tulosteen b lähettäminen automaatin R (receiver) syötteeksi. Milloin tulkitaan funktio σ loppuunsuoritetuksi, silloinko kun b on saatu tulostettua vaiko silloin kun R ottaa syötteen b vastaan? Edellisessä tapauksessa S:n valmius ottaa vastaan seuraava syöte ei riipu R:n käyttäytymisestä, jälkimmäisessä S ei voi ottaa seuraavaa syötettä ennen kuin R on edennyt tilanteeseen, jossa se voi ottaa b:n vastaan. Edellistä tulkintaa kutsutaan asynkroniseksi lähetyskäytännöksi. Sen havainnollistamisessa voidaan ottaa käyttöön apukäsite puskuri B, jossa tuloste/syöte voi kuluttaa aikaa. S B R Send Aika } Wait Receive Tilasiirtymät laukeavat toisistaan riippumatta Kuva 4.4 Asynkroninen lähetyskäytäntö Esim. CVOPS ja formaali kuvauskieli SDL käyttävät asynkronista lähetyskäytäntöä. Jälkimmäistä tulkintaa kutsutaan synkroniseksi lähetyskäytännöksi.

10 S R Aika Send } Wait Receive Tilasiirtymät laukeavat yhtä aikaa Kanavat Kuva 4.5 Synkroninen lähetyskäytäntö Esim. ADA, Occam ja LOTOS -kielet käyttävät synkronista lähetyskäytäntöä. Mallintamisen kannalta asynkronisen lähetyskäytännön yhteydessä käytetty puskuri -käsite ei toistaiseksi ole tyydyttävällä tavalla määritelty. Kommunikoivien automaattien kannalta se on parempi korvata kanavan käsitteellä, jolloin asynkronisuus ja synkronisuus voidaan siirtää kanavan ominaisuuksiksi. Lähettävän automaatin S ja vastaanottavan automaatin R kohtaamisen voidaan sanoa tapahtuvan kanavassa, joka voi olla asynkroninen tai synkroninen. Synkroninen kanava sitoo S:n ja R:n tilasiirtymät samanaikaisiksi. S voi ottaa vastaan uusia syötteitä vasta kun R on ottanut S:n lähettämän tulostuselementin (sanoman) syötteekseen. Asynkroninen kanava sallii S:n tilasiirtymän loppuunsuorituksen heti kun tilasiirtymään liittyvä sanoma on tullut kanavaan. Tämä sanoma on käytettävissä R:n syötteeksi heti kun R on valmis vastaanottamaan syötteitä kanavasta. Asynkronisessa kanavassa elementit etenevät lähettäjältä vastaanottajalle FIFO (first in first out) -periaatteella. Tällainen FIFO -puskuri voidaan tulkita ääretöntilaiseksi automaatiksi α, jolloin puskurissa olevien sanomien lukumäärä määrää α:n tilan. Asynkroninen kanava FIFO-puskuri S α R Synkroniset kanavat Kuva 4.6 Asynkroninen kanava esitettynä FIFO-puskurin ja synkronisten kanavien avulla.

11 Kuvan 4.6 mukaisesti voidaan sanoa, että asynkroninen kanava on itse asiassa FIFO -automaatti α, joka liittyy S:ään ja R:ään synkronisilla kanavilla. Jos α on äärellistilainen, niin S:n ja R:n välinen kanava ei määritelmän mukaan ole synkroninen eikä asynkroninen, vaan välimuoto. Tällöinhän lähettäjä voi joutua odottamaan, että kanavasta vapautuu tilaa, mikä on vastoin asynkronisen lähetyskäytännön periaatetta. Käytännössä tietenkin kanavat ovat äärellistilaisia, ja mikäli halutaan pitää kiinni lähetyksen täydellisestä asynkronisuudesta tapauksessa, jolloin kanavan FIFO on täynnä, on kanavan ominaisuudeksi lisättävä epäluotettavuus: kanava voi hukata sanomat, jotka eivät mahdu puskuriin Järjestelmäarkkitehtuuri Kanavat ovat olioita, joiden avulla toteutetaan automaattien välisiä liitäntöjä. Syntyvää kokonaisuutta kutsutaan järjestelmän arkkitehtuuriksi tai konfiguraatioksi. Automaatti M ja siihen liittyvä kanava α määrittelevät portin p. Ottamalla portti peruselementiksi, voidaan toisaalta kanavat määritellä porttipareina: α = (p 1, p 2 ). M 1 M p 2 1 p 2 α = (p, p ) α = (p, p ) M 3 p p Kuva 4.7 Yksinkertainen järjestelmäarkkitehtuuri CVOPSissa arkkitehtuuri määritellään automaattien (virtuaalitaskien) ja porttien (interface) avulla.

12 5. Siirtokerroksen protokollille tyypillisiä mekanismeja 5.1 Virhekontrolli Virhetodennäköisyydet Tiedonsiirtokanavan laatua voidaan kuvan kanavan bittivirhesuhteella (BER), joka ilmaisee todennäköisyyden sille, että kanavassa kulkeva bitti kääntyy, eli lähetetty nollabitti vastaanotetaan ykkösenä tai päinvastoin. Laatu on suurissa verkoissa yleensä varsin suuresti vaihteleva, riippuen lähinnä siitä, miten vanhaa tekniikkaa verkon vanhimmissa osissa on käytetty. Parhaissa optisissa kuiduissa BER on luokkaa , kun taas puhelinverkon huonokuntoisimmissa osissa BER voi olla niinkin suuri kuin 10-4, ja langattomalla yhteydellä jopa Optisissa kuiduissakin virhesuhde on silti vielä paljon suurempi kuin laitteistojen sisäisissä väylissä ja muisteissa, joissa BER on tyypillisesti pienempi kuin Kanavien virheet eivät yleensä ole tasajakautuneita, vaan impulssikohina, kosketushäiriöt tai esim. inhimilliset virheet tuottavat ns. ryöppyvirheitä. Ollakseen luotettava, BER onkin syytä mitata pitkän ajan keskiarvona. Joskus keskiarvon lisäksi myös hajontaominaisuudet voivat olla tärkeitä. Kanavan laatua voidaan tällöin mitata esim. virheettömien sekuntien (tai muun sopivan aikayksikön) prosenttiosuutena. Yksinkertaisimmassa kanavamallissa virheet ajatellaan tasajakautuneiksi: kunkin bitin virhetodennäköisyys on BER = b (discrete memoryless channel). Tällöin todennäköisyys n:lle perättäiselle virheettömälle bitille on P(EFI n) = (1 - b) n (EFI = Error Free Interval). Niin ollen todennäköisyys sille, että n:n bitin sarjassa on vähintään yksi virhe on 1 - P(EFI n) = 1 - (1 - b) n. Puhelinverkon virhetodennäköisyyksiä mittaamalla on kokeellisesti havaittu, että P(EFI n) e -b(n-1) Näin virheen syntyminen n:n bitin sarjaan on lähinnä Poisson-prosessi, johon päädytään diskreetistä binomijakautumasta pienillä b:n ja suurilla n:n arvoilla Virhetyypit ja virheiden korjaus Kanavan tiedonsiirtoon aiheuttamat virheet voidaan luokitella seuraaviin tyyppeihin: - kehykset, joissa on bittivirheitä, - kehykset, joissa on ylimääräisiä bittejä,

13 - kadonneet kehykset, - ylimääräiset kehykset (yleensä duplikaatit), - väärään järjestykseen joutuneet kehykset. Tässä luvussa tarkastellaan menetelmiä, joilla voidaan vaikuttaa kahteen ensimmäiseen virhetyyppiin, ns. bittivirheisiin. Kolmeen jälkimmäiseen virhetyyppiin soveltuvia menetelmiä käsitellään luvussa 5.2. Virhekontrolli voidaan jakaa kahteen vaiheeseen: virheiden havaitsemiseen ja virheiden korjaukseen. Bittivirheiden havaitseminen perustuu redundanssin lisäämiseen, jolloin kehyksessä kulkee oleellisen informaation lisäksi informaatiota, jota voidaan käyttää sen asian tarkistamiseen, onko informaatio tullut halutussa muodossa perille. Jos redundanssi on tarpeeksi suuri, pystytään vääristynyt informaatio ehkä palauttamaan alkuperäiseen muotoonsa. Mikäli tämä ei ole mahdollista tai kannattavaa, on käytettävä uudelleenlähetystä. Virheenkorjausmenetelmät jakaantuvat näin kahteen luokkaan: - virheenkorjaavien koodien käyttö (forward error control), - uudelleenlähetysten käyttö (feedback error control). Mikään redundanssi ei pysty havaitsemaan kaikkia virheitä. Olkoon f menetelmän havaitsemien virheiden suhteellinen osuus kaikista mahdollisista virheistä, jolloin f < 1. Tällöin havaitsematta jääneiden virheiden todennäköisyys, jäännösvirhesuhde RER (Residual Error Rate) on bittivirhesuhteen BER = b avulla lausuttuna: RER = (1 - f)b. Redundanssin käyttöä varten virheiden havaitsemiseen tarkoitetut koodit ryhmittelevät bitit koodisanoiksi, joissa on databittejä ja koodibittejä. Joissain koodeissa tämä suhde on kiinteä, databittejä d kpl ja koodibittejä e kpl, jolloin koodin hyötysuhde = d/(d + e). Mikäli suhde voi vaihdella, voidaan koodille laskea keskimääräinen hyötysuhde. Jäännösvirhesuhteen pienentäminen pienentää yleensä myös koodin hyötysuhdetta. Virheenkorjaavilla koodeilla hyötysuhde voi olla luokkaa 0.5 tai paljon sitäkin huonompi. Tarkastellaan esimerkkinä virheitä havaitsevasta koodausmenetelmästä pariteettitarkistukseen perustuvaa menetelmää. Siinä koodisana muodostetaan databiteistä d 1,...,d n ja yhdestä koodibitistä, ns. pariteettibitistä p, joka lasketaan kaavalla (parillinen pariteetti): p = (Σ i n= 1 d i ) % 2. Näin taataan, että koodisanassa on aina parillinen määrä ykkösbittejä. Mikäli kanavan bittivirhesuhde on BER = b, niin virheettömänä saapuvan koodisanan todennäköisyys on P(EFI n+1) = (1 - b) n+1. Pariteettitarkistuksella selvästikin havaitaan virheet, joissa pariton määrä bittejä on kääntynyt. Binomijakautuman mukaan täsmälleen k:n virheen todennäköisyys on

14 P(täsm. k kpl virheitä) = [(n+1)!/k!(n - k + 1)!]b k (1 - b) n-k+1. Jäännösvirheiden todennäköisyys on tällöin eli RER = P(väh. 1 virhe) - P(havaitut virheet) RER = 1 - (1 - b) n Σ k n= 1, 3, 5,... P(täsm. k virhettä), Allaoleva kuva havainnollistaa RER:n riippuvuutta bittivirhesuhteesta b tapauksessa, jossa n = 15. On syytä huomata, että kuvassa korostuvat suuret BER:n arvot. Kuva 5.1 Pariteettitarkistukseen perustuva RER BER:n funktiona Virheenkorjaavat koodit Virheiden havaitsemisen lisäksi virheenkorjaavat koodit osaavat paikallistaa koodisanassa olevia virheellisiä bittejä. Koska redundanssin tarve on tällöin suurempi ja koodin hyötysuhde niin ollen pienempi kuin virheitä havaitsevilla koodeilla, virheenkorjaavia koodeja käytetään lähinnä erikoistapauksissa. Tällaisia voivat olla esim. seuraavat tilanteet: - siirtotiellä pitkä viive, - kanava on yksisuuntainen (ei feed-back -mahdollisuutta), - kanavassa suuri BER (uudelleenlähetyksenkin epäonnistuminen todennäköistä). Tarkastellaan esimerkkinä pariteeteista koottua virheenkorjaavaa koodia: 7 bitin ASCII + pariteetti (LRC) + neljän oktetin pystysuora pariteetti (VRC) D = A = T = A = LRC VRC

15 Tämä koodi havaitsee ja korjaa koodisanaan tulleen yhden virheen: ero vastaanotetussa ja lasketussa LRC:ssä identifioi virheellisen rivin ja vastaavasti VRC:n avulla tunnistetaan virheellinen sarake. Koodisanassa on 40 bittiä, joista 28 on databittejä ja 12 koodibittejä, eli hyötysuhde on 28/40 = 0.7. Virheenkorjauksen teoriaa voidaan tutkia ns. Hammingin etäisyyden avulla. Koodisanojen välinen etäisyys voidaan määritellä yksinkertaisesti niiden bittien lukumääräksi, jotka ovat erilaisia ko. sanoissa. Hammingin etäisyys määritellään nyt seuraavasti: Koodin Hammingin etäisyys on pienin etäisyys koodin kuuluvien kahden eri koodisanan välillä. Helposti voidaan todeta, että jos koodin Hammingin etäisyys on n, niin kaikki enintään n - 1 bittivirheen kombinaatiot voidaan havaita koodisanassa, kaikki enintään (n - 1)/2 bittivirheen kombinaatiot voidaan korjata tulkitsemalla virheellinen koodisana lähimmäksi kelvolliseksi koodisanaksi. Yksinkertaisen pariteettitarkistuksen Hammingin etäisyys on 2, kun taas kahdesta pariteetista koostuvassa yllä esitetyssä koodissa Hammingin etäisyys on 4 (tarkista) Sykliseen varmenteeseen (CRC) perustuvat koodit Edellisessä luvussa esitettyjä erityistilanteita lukuunottamatta pääasiallinen menetelmä tietoliikenteessä on virheenhavaitsevien koodien käyttö. Tärkein näistä menetelmistä on sykliseen varmenteeseen (cyclic redundancy check) perustuva menetelmä. Menetelmässä binaarikehyksillä suoritetaan laskutoimituksia, jotka määritellään kuvaamalla kehykset polynomeille. Näiden polynomien kertoimina voivat olla vain luvut nolla ja yksi, joten polynomien laskutoimituksissa noudatetaan modulo 2 -aritmetiikkaa. Perussäännöt ovat siis seuraavat: = 0-0 = = 0-1 = = 1-0 = = 1-1 = 0 Kehysten kuvaaminen polynomeiksi tapahtuu luonnollisella tavalla, esimerkiksi: P = = x 7 + x 6 + x 4 + x 3 + x 2 G = = x 5 + x (x 0 = 1) Polynomeilla ja modulo 2 -aritmetiikalla voidaan suorittaa jakolaskuja, esim.

16 Tässä jakojäännös R = x. Jakolasku P G = x2 + x + x G P - R G = x2 + x menee tasan. Olkoon tehtävänä siirtää bittijono P epäluotettavan kanavan läpi siten, että generoituneet virheet voitaisiin suurella todennäköisyydellä havaita. Syklisen varmenteen idea on seuraava: Valitaan generoiva polynomi G, ja yhdistetään P ja jakolaskun P/G jakojäännös R sanomaksi T siten, että T/G menee tasan. Vastaanottaja voi todeta sanoman virheettömäksi, jos myös hänen laskujensa mukaan T/G menee tasan. Valitsemalla T = P - R saadaan jako T/G menemään tasan, mutta valitettavasti vastaanottaja ei pysty purkamaan sanomasta T varsinaista dataa eli P:tä. Ratkaisu tähän ongelmaan on seuraava: Tehdään tilaa R:lle siirtämällä P r bittiä vasemmalle (r on G:n asteluku), ja määrätään R siten, että R on jakojäännös jakolaskusta Pxr G Asetetaan sitten T = Px r - R. Esimerkissämme on tällöin Px 5 G = x7 + x 6 + x + x3 + x G joten R = x 3 + x = (R:n asteluku on G:n asteluku miinus yksi) ja T =

17 Vastaanottaja pystyy nyt tarkistamaan vastaanotetun T:n jakamalla sen G:llä. Kun virheettömyys on todettu irrotetaan tarkistusosan viisi bittiä, jolloin jäljelle jää varsinainen data: P = Virhe sanomassa T voidaan tulkita polynomiksi E, joka on lisätty sanomaan: vastaanotettu sanoma T' = T + E. Vastaanottaja testaa: T + E G = G T + G E ja huomaa virheen, jos ja vain jos E/G ei mene tasan. Generaattoripolynomin valinnalla voidaan jonkin verran vaikuttaa siihen, millaisia virheitä havaitaan. Tarkastellaan paria esimerkkiä. Esimerkki 1. Jos E koostuu purskeesta, jossa bittivirheet rajoittuvat r:n peräkkäisen bitin alueelle, niin virhe havaitaan aina, mikäli G ei ole tiettyä muotoa. Tällöin nimittäin löytyy luku s ja polynomi E' siten, että E = x s E', missä E':n asteluku on pienempi kuin r. Nyt jakolasku E G = xs E' G voi mennä tasan vain jos G = x r, ja s on r:n monikerta. Valitsemalla G x r voidaan siis taata, että em. jakolasku ei mene tasan. Esimerkki 2. Jos generoiva polynomi G sisältää tekijänä polynomin (x + 1), niin kaikki sellaiset virhepolynomit E, joissa on pariton määrä nollasta poikkeavia kertoimia (ts. T':ssa pariton määrä bitin kääntymisiä) havaitaan. Tämä johtuu siitä, että mielivaltaiselle polynomille P pätee: polynomissa (x + 1)P on parillinen määrä nollasta poikkeavia kertoimia. Tämä väite on helppo todeta paikkansapitäväksi, kun P:n asteluku on 0 tai 1. Induktiolla voidaan suorittaa yleinen todistus, mutta todistus sivuutetaan tässä. Jos nyt siis G = (x + 1)G', ja E/G menee tasan eli virhettä ei havaita, niin myös jako E/(x + 1) menee tasan. Merkitään H = E/(x + 1), jolloin E = (x + 1)H. Mutta tällöin E:ssä täytyy olla parillinen määrä nollasta poikkeavia kertoimia. Yleisesti käytettyjä generoivia polynomeja ovat mm. seuraavat: CRC - 12: x 12 + x 11 + x 3 + x 2 + 1, CRC - CCITT: x 16 + x 12 + x = (x + 1)(x 15 + x 14 + x 13 + x 12 + x 4 + x 3 + x 2 + x + 1), CRC - 16 (IBM): x 16 + x 15 + x 2 + 1, CRC - 32: x 32 + x 26 + x 23 + x 22 + x 16 + x 12 + x 11 + x 10 + x 8 + x x 5 + x 4 + x 2 + x + 1. Voidaan yleisesti osoittaa, että jos tarkistussumma on r bittiä, niin todennäköisyys havaitsematta jääneille virheille on luokkaa 2 -r. Kun r = 16, tämä vastaa todennäköisyyttä 10-5 eli näin voidaan parantaa esim. kanava, jossa BER = 10-4 kanavaksi, jossa jäännösvirhesuhde RER on 10-9.

18 5.2 Vuonvalvonta ja virhetoipuminen: johdanto Yksinkertainen stop-and-wait -mekanismi vuonvalvontaan Lähdetään tarkastelemaan siirtoon liittyviä ongelmatilanteita yksi kerrallaan, asteittain. Vuonvalvonnan perustilanne voidaan karakterisoida seuraavasti: 1) siirtotie on täysin virheetön, 2) kanava on kaksisuuntainen, mutta tiedonsiirto tapahtuu vain yhteen suuntaan, 3) vastaanottajan puskuritila on äärellinen, ja siltä menee aikaa saapuvan datan prosessointiin. Oletuksesta 3 seuraa ongelma: miten estetään lähettäjä lähettämästä liian nopeasti? Ratkaisu on kuittaussanomien käyttö: vastaanottaessaan datasanoman eli DATA -PDU:n vastaanottaja lähettää kuittaussanoman eli ACK -PDU:n. DATA -PDU:n lähettäjä joutuu odottamaan ACK -PDU:ta ennenkuin voi lähettää uuden DATA -PDU:n. Protokollamekanismia kutsutaan stop-and-wait -mekanismiksi ja sitä tai sen kehittyneempiä muunnelmia tarvitaan siirtotien laadusta riippumatta yleensä aina kun halutaan varmistautua datan perillemenosta. Vain järjestelmissä, joissa lähettäjä ja vastaanottaja on nopeudeltaan tarkasti sovitettu toisiinsa, tai joissa datan vähäinen katoaminen ei aiheuta ongelmia, kuittauksiin perustuvaa vuonvalvontaa ei tarvita Sanomia kadottavan kanavan ongelma Oletetaan nyt, että edellisen oletuksen 1) sijasta onkin voimassa 1 ) siirtotiellä voi kadota sanomia. Yleensä katoaminen tosin ei ole kovin todennäköistä itse linjalla, vaan katoamiset tapahtuvat prosessoivissa solmuissa esim. juuri vuonvalvonnan laiminlyönnin johdosta. On selvää, että yksinkertainen stop-and-wait ei voi selviytyä tilanteista, joissa esim. DATA -PDU katoaa, koska tällöin protokolla joutuu deadlock -tilanteeseen: lähettäjä ei voi jatkaa, koska ei saa kuittausta, ja vastaanottaja ei voi kuitata, koska ei saa DATA -PDU:ta. Ainoa mahdollinen ratkaisu tähän ongelmaan on ajastimen käyttö. Yksinkertaisinta on, että DATA -PDU:n lähettäjä käynnistää lähetyksen yhteydessä ajastimen, ja ellei kuittausta ole tullut ajastimen säätelemän ajan kuluessa, lähettäjä lähettää edellisen DATA -PDU:n uudelleen.

19 LÄHETTÄJÄ VASTAANOTTAJA DATA ACK DATA ylemmälle kerrokselle TIMEOUT DATA ACK DATA ylemmälle kerrokselle VIRHE! Vastaanottaja luulee saaneensa uuden DATAn, vaikka kyseessä onkin edellisen kopio. Kuva 5.2 Kuittaussanoman katoamisen aiheuttama ongelma Tapaus, jossa kuittaussanoma katoaa, johtaa hiukan monimutkaisempaan tilanteeseen, jota voidaan analysoida kuvan 5.2 sanomakaavion avulla. Ongelman ratkaisu edellyttää selvästi, että vastaanottajan on pystyttävä erottamaan uudelleenlähetykset alkuperäisistä lähetyksistä, jotta se osaisi hylätä jo kertaalleen saamansa sanomat. Yksinkertainen ratkaisu tässä tilanteessa on käyttää erillistä RDATA -PDU:ta uudelleenlähetyksissä. Jatkossa tulemme tarkastelemaan myös toisentyyppistä, PDU:iden järjestysnumerointiin perustuvaa keinoa Sanomia vääristävä ja kadottava kanava: lisää ongelmia Tapaus 1: Esimerkki huonosta spesifikaatiosta Korvataan nyt oletus mahdollisesta sanomien katoamisesta kanavassa mahdollisuudella sanomien vääristymiseen, ts. kanavan BER ei enää ole nolla. Yksinkertaisuuden vuoksi oletetaan kuitenkin aluksi, että sanomat eivät voi kadota. Edelleen oletetaan, että käytössä on virheiden havaitsemiseen kykenevä koodaus, joka leimaa virheellisiksi havaitsemansa sanomat ERR -sanomiksi. Tilanne on nyt aiempaa selvästi mutkikkaampi, ja protokollan suunnitteluun tulee kiinnittää huomiota. Protokollan on kyettävä reagoimaan virheellisiin sanomiin jollakin tavalla; eräs luonnollinen tapa on kuitata ne eri tavalla kuin virheettömät sanomat: käytetään niille NAK -kuittaussanomaa (negative acknowledgement). Järkevä tapa reagoida NAK -PDU:hun on puolestaan lähettää edellinen PDU uudelleen. Edellisen luvun esimerkistä on kuitenkin syytä ottaa oppia sen verran, että uudelleenlähetystä ei suoriteta samalla PDU:lla kuin alkuperäisen lähetystä.

20 Tässä nimittäin kuittauksen katoamista vastaava tilanne on kuittauksen vääristyminen ERR -PDU:ksi. Valitaan käyttöön RDATA -PDU uudelleenlähetyksille. Koska protokolla ei enää ole triviaali, se on syytä spesifioida mallin avulla; käytetään laajennettua äärellistä automaattia toiminnan kuvaamiseen. Tilanteen havainnollistamiseksi asetetaan tehtäväksi seuraavan konkreettisen esimerkin mallintaminen. start dti... b a Buffer CLIENT C C -> S READY ACK NAK ERR PDU:t S -> C DATA RDATA CLOSE ERR next SERVER S Kuva 5.3 Client - Server -järjestelmä Client C hakee joukon tietoyksiköitä Server S:ltä. Tietoyksiköt a,b,c,... ovat valmiina S:n puskurissa, josta ne voidaan siirtää linjalle järjestyksessä. Aiemmat oletukset ovat voimassa, siis 1) sanomia ei katoa, mutta ne voivat vääristyä, 2) DATA -PDU:ita siirretään vain yhteen suuntaan, serveriltä clientille, 3) oikein saapuneet DATA -PDU:t kuitataan ACK -PDU:lla, 4) virheellisinä saapuneet DATA -PDU:t kuitataan NAK -PDU:lla, 5) server vastaa NAK -PDU:hun RDATA -PDU:lla ja 6) server vastaa ERR -PDU:hun RDATA -PDU:lla. Kuvassa 5.3 on esitetty järjestelmän primitiivit ja PDU:t, sekä puskuri ja hakuoperaatio next. Kuvissa 5.4 ja 5.5 on esitetty tila-automaatit graafisina kuvauksina. DATA ACK dti idle start READY open ERR NAK err ERR NAK CLOSE RDATA ACK dti RDATA ACK Kuva 5.4 Clientin tila-automaatti

21 READY ACK & BuffNotEmpty next DATA next DATA idle open NAK RDATA ACK & BuffEmpty CLOSE ERR RDATA Kuva 5.5 Serverin tila-automaatti Myös aloitus- ja lopetustilanteet on otettu mukaan, mutta yksinkertaisuuden vuoksi protokollassa ei ole varauduttu READY ja CLOSE -PDU:iden vääristymisiin. Kohdat 1-6 spesifioivat protokollan varsin hyvin: tila-automaatit on helppo rakentaa. Tämä protokolla vaikuttaa päällisin puolin yksinkertaiselta ja toimivalta ratkaisulta kuvattuun tiedonsiirtotehtävään. Toimintalogiikka on (mukailtuna) peräisin klassisesta esimerkistä [Hol89, s.25-26], joka on ollut aidossa tuotantokäytössä. Järkevyydestään huolimatta protokolla sisältää suunnitteluvirheen, joka eräissä tilanteissa johtaa siihen, että client saa huomaamattaan saman datan kahteen kertaa. Automaattiset välineet protokollien toiminnan validoimiseksi (sen takaamiseksi, että protokolla toimii kaikissa tilanteissa halutulla tavalla ja loogisesti oikein esim. ilman deadlockeja), ovat viime aikoina kehittyneet formaalien spesifikaatioiden yleistymisen myötä. Esimerkki osoittaa, miten helpoiltakin näyttävissä tilanteissa suunnittelijan huomiokyky joutuu kovalle koetuksella, ja näin esimerkin tarkoitus onkin motivoida lukijaa ymmärtämään kehittyneiden suunnittelumenetelmien käytön tarpeellisuus. Tapahtumasarja, joka johtaa virheelliseen toimintaan on kuvattu oheisessa sanomakaaviossa:

22 ACK ERR start C S READY dti(a) DATA (a) ERR RDATA (a) NAK dti(a) RDATA (a) VIRHE! Client ei tiedä saavansa saman datan, jonka on jo kerran saanut. Kuva 5.6 Sanomasekvenssi, joka paljastaa edellä kuvatussa protokollassa olevan virheen Edellä kuvattua virhetilannetta ei ole helppo paikata. Järkevin parannuskeino on luopua erillisen RDATA-PDU:n käytöstä ja pyrkiä datan identifiointiin täsmällisemmin keinoin, esimerkiksi järjestysnumeroinnin avulla. Tähän palataan ikkunoivia mekanismeja käsittelevässä luvussa 5.3. Tapaus 2: Kuittausten sekoittuminen Tarkastellaan jälleen tapausta, jossa sanomat voivat kadota kanavassa. Yllä esitettyyn ja luvussa tarkasteltuun tapaukseen viitaten oletetaan nyt, että DATA- PDU:issa on mukana järjestysnumero, jonka avulla vastaanottaja voi erottaa duplikaatit toisistaan ja havaita kadonneet DATA-PDU:t. Vaikka tilanne vastaanottajan kannalta alkaakin olla tyydyttävässä kunnossa, voidaan vielä helposti kuvitella tapahtumasarja, jossa lähettäjä ja vastaanottaja ajautuvat peruuttamattomalla tavalla erilaiseen näkemykseen tilanteesta. Alla oleva esimerkki kuvaa samaa yksinkertaista perustilannetta kuin kuva 5.2, eikä se liity suoranaisesti yllä kuvattuun client -server -protokollaan. Ongelmiin johtava tapahtumaketju alkaa nyt liian lyhyestä uudelleenlähetysajastimesta, joka ehtii laueta ennen kuin kuittaus ehtii perille. Lähettäjä liittää kuittauksen uudelleenlähettämäänsä DATA(a) -PDU:hun, eikä osaa suhtautua oikealla tavalla seuraavaan kuittaukseen, joka sekin koskee DATA(a):ta, vaan luulee sen

23 tarkoittavan kuittausta DATA(b):hen. Näin lähettäjä lähettää matkaan DATA(c):n, eikä voi ymmärtää DATA(b):n jääneen tulematta perille. Vastaanottaja odottaa kuitenkin DATA(b):tä, jota ei koskaan tule. DATA (a) dti(a) timeout ACK DATA (a) Luulee kuittauksen olevan DATA(b):hen DATA (b) ACK DATA (c) Hylkää datan duplikaattina, lähettää kuittauksen. Hylkää datan, koska huomaa yhden datan puuttuvan välistä. Osapuolilla on täysin erilainen käsitys tilanteesta, toipuminen ei ole mahdollista. Kuva 5.7 Kuittausten sekoittuminen Tämän esimerkin virhetilanne on korjattavissa käyttämällä järjestysnumeroita myös kuittauksissa. Samalla on tärkeä huomata uudelleenlähetysajastimen oikea kesto: liian lyhyt ajastin johtaa tarpeettomiin uudelleenlähetyksiin kuten edellä, liian pitkä ajastin taas hidastaa tarpeettomasti datasiirtoa virhetilanteen sattuessa. Minimiaika koostuu seuraavien vaiheiden yhteenlasketusta kestosta: - DATA -PDU:n siirtoaika vastaanottajalle, - DATA -PDU:n prosessointiaika vastaanottajalla, - kuittauksen siirtoaika lähettäjälle. Koska etenkin pakettikytkentäisissä verkoissa siirtoajat voivat vaihdella huomattavasti verkon kuormituksesta riippuen, uudelleenlähetysajastimien keston määrittäminen on usein vaikeaa. Etenkin nopeissa verkoissa suuriin virhearvioihin ei ole varaa (puskuritilojen täyttyminen lähettäjällä, ym.), jolloin ajastimien arvoista tulee suorituskyvyn kannalta kriittisiä tekijöitä.

24 5.2.3 Pitkän siirtoviiveen ja kanavan käyttöasteen ongelmat Jos siirtoviive on pitkä, tavallinen stop-and-wait -mekanismi hukkaa kanavan kapasiteettia. Tarkastellaan esimerkkinä satelliittikanavaa Suomesta USA:aan: - tiedonsiirtonopeus 64 kbit/s, - käytetään 1000 bitin kehyksiä, - etäisyys n km (satelliitti geostationaarisella radalla), - signaalin nopeus sama kuin valon nopeus, - kuittaus tulee äärijärjestelmältä (satelliitti toimii vain signaalin toistimena). Näistä voidaan laskea, että yhden kehyksen lähetysaika on 1000 bit / bit/s = 15.6 ms, signaalin etenemisviive äärijärjestelmästä toiseen 72000/ s = 240 ms, joten jos kehyksen lähetys aloitetaan hetkellä t = 0, niin kehys on kokonaisuudessaan vastaanotettu hetkellä ms ja lähettäjä saa kuittauksen aikaisintaan hetkellä ms. Tällöin lähettäjä on toimettomana 480/495.6 = 96.8 % ajasta, ja kanavan kapasiteetista vain n. 3 % on hyötykäytössä. Ratkaisuna tähän on sallia lähettäjän lähettää matkaan useampia kehyksiä ennen ensimmäisen kuittauksen tulemista. Myös myöhemmin matkalla olisi aina tietty joukko kehyksiä, joiden kuittaus ei ole vielä saapunut lähettäjälle. Näistä lähetetyistä, mutta kuittaamattomista kehyksistä käytetään nimitystä lähetysikkuna. Optimaalinen lähetysikkunan koko saadaan laskemalla, montako kehystä lähettäjä ehtii lähettää, ennen kuin ensimmäinen kuittaus ehtii perille: W = ms / 15.6 ms/kehys = 31 kehystä. On myös selvää, että kuittausten siirtoon liittyy tehokkuusongelmia, kuittauksethan eivät sisällä hyötydataa. Niiden generointi, lähetys ja vastaanotto ovat protokollan toimintalogiikan kannalta välttämättömiä, mutta käytännössä niiden vaatima kanavakapasiteetti ja käsittelyn overhead olisi minimoitava. Usein etenkin siirtokerroksella datan lähetystarve molempiin suuntiin on ilmeinen, ts. osapuolet ovat toisiinsa nähden enemmän tai vähemmän symmetrisessä suhteessa. Esimerkiksi pitkissä yhteen suuntaan tapahtuvissa tiedostonsiirroissa joutuu kuljetuskerros kuittaamaan saapuneita tiedoston osasia tietyin välein, ja siirtokerroksella tämä näkyy säännöllisin välein vastavirtaan lähetettävänä datana. Kuittausmekanismin yksinkertaistamiseksi voidaan käyttää hyväksi näitä vastavirtaan kulkevia DATA-PDU:ita ja upottaa kuittaukset niihin parametreiksi. Tätä mekanismia kutsutaan nimellä piggybacking eli ratsastus. On kuitenkin selvää, että datan siirtotarve molempiin suuntiin harvoin on täsmälleen saman suuruista, joten tämä mekanismi sopii huonosti stop-and-wait -mekanismiin, koska silloin DATA- PDU:iden pitäisi kulkea puolelta toiselle täsmälleen vuorotahtia. Suurempi joustavuus on siis tarpeen, ja tässäkin ikkunamekanismi osoittautuu joustavaksi ratkaisuksi. Lisäksi kuittausmekanismia voi helposti modifioida siten, että kuitataan useampi sanoma kerralla, jolloin kuittauksia voi lähettää harvemmin. Tällöin tietyn järjestysnumeron sisältävä kuittaus kuittaa myös kaikki sitä aikaisemmin lähetetyt

25 kehykset. On kuitenkin selvää, että kuittausta ei pidä viivästyttää liikaa, koska lähettäjän uudelleenlähetysmekanismi käynnistyy ja idean hyöty menetetään. Jos vastavirtaan kulkevia DATA-PDU:ita, joissa kuittaus voi ratsastaa, ei ilmaannu, on tällöin käytettävä erillistä kuittaus-pdu:ta. 5.3 Vuonvalvonta ja virhetoipuminen: liukuvan ikkunan mekanismit Yleistä Liukuvan ikkunan mekanismi on kehitetty siirtokerroksen vuonvalvonnan ja virhetilanteista toipumisen tarpeisiin. Siinä on pyritty ottamaan huomioon kaikki edellä esitetyt ongelmatilanteet. Lisäksi siinä on varaa tapauskohtaiseen räätälöintiin. Mekanismi perustuu DATA-PDU:iden järjestysnumerointiin. Numeroinnin ei yleensä tarvitse olla yksikäsitteinen, vaan riittää, että käytössä on tietty määrä eri numeroita, esim. 0,1,2,..., MAXSEQ, jolloin numeron MAXSEQ jälkeen aloitetaan jälleen 0:sta. Sanotaan, että kyseessä on tällöin numerointi modulo MAXSEQ+1. Riippuen MAXSEQ:n arvosta järjestysnumero vaatii tietyn määrän bittejä DATA-PDU:n otsikkokentässä. Tyypillisesti MAXSEQ:n arvoksi asetetaankin 2 n - 1 jollekin luvulle n, joista käytetyimpiä ovat arvot n = 3, 5, 8, 16 ja 32. Viimeisin arvo tarkoittaa käytännössä yksikäsitteistä numerointia, sillä MAXSEQ on tällöin yli 4 miljardia. Mekanismin oleelliset käsitteet ovat lähetysikkuna ja vastaanottoikkuna. Lähetysikkuna : lähettäjällä oleva lista lähetetyistä, mutta kuittaamattomista DATA-PDU:ista Vastaanottoikkuna : vastaanottajalla oleva lista järjestysnumeroista, jotka se on valmis hyväksymään. Liukuvan ikkunan mekanismi määrittelee lähetysikkunalle maksimikoon MAX S. Normaalissa toiminnassa lähetysikkuna kasvaa aluksi maksimiarvoonsa, sitten saapuvat kuittauksen pudottavat DATA-PDU:ita pois ikkunan alarajalta mahdollistaen uusien DATA-PDU:iden lähetyksen ikkunan maksimikoon puitteissa, jolloin ikkunan yläraja siirtyy vastaavasti. Tästä nimi liukuva ikkuna. Koska järjestysnumerot kiertävät ympäri, ikkunaa havainnollistetaan usein seuraavanlaisella kuviolla Kuva 5.8 Liukuvassa ikkunassa olevat kehysnumerot

26 Tässä esimerkissä lähetysikkunassa ovat järjestysnumerot 2, 3 ja 4. Lähettäjän on pidettävä kuittaamattomat DATA-PDU:t puskurissaan mahdollista uudelleenlähetystä varten. Puskuritilaa tarvitaan enimmillään MAX S DATA-PDU:ta varten. Vastaanottoikkuna edustaa järjestysnumeroita, jotka vastaanottaja on valmis hyväksymään, muilla numeroilla varustetut PDU:t se hylkää. Vastaanottoikkunan koko voidaan tietyissä rajoissa asettaa lähetysikkunan koosta riippumattomasti. Puskuritilaa vastaanottaja tarvitsee enimmillään vastaanottoikkunan koon MAX R verran, sillä saapuvat PDU:t on annettava ylöspäin käyttäjälle numerojärjestyksessä. Väärässä järjestyksessä tulleet PDU:t on niin ollen puskuroitava, kunnes puuttuvat numerot ovat tulleet. Mikäli lähetysikkunan maksimikoko ja vastaanottoikkuna yhteensä ovat niin suuret, että ne voivat kattaa suuremman alueen kuin mitä erilaisia kehysnumeroita on olemassa, voi seurauksena olla vaikeasti havaittavia virhetilanteita. Yleissääntönä voidaan pitää : Lähetysikkunan maksimikoko + vastaanottoikkunan koko MAXSEQ + 1 Sanomakaaviot, jotka valaisevat yllä olevan säännön tärkeyttä, on esitetty liitteessä 1. Tarkastellaan seuraavassa PDU:n katoamisen tai vääristymisen aiheuttamia toipumismekanismeja. Oletetaan, että lähetysikkunan maksimikoko MAX S = W. Toipumismekanismit voidaan jaotella sen mukaan, onko vastaanottoikkunan koko yksi vai suurempi kuin yksi Toipuminen PDU:iden katoamisesta - Go-Back-N ARQ Jos vastaanottoikkunan koko on yksi, vastaanottaja ei hyväksy saapuvia PDU:ita elleivät ne tule järjestyksessä. Jos siis yksi DATA-PDU katoaa matkalla, vastaanottaja hylkää kaikki myöhemmin lähetetyt PDU:t, jotka on lähetetty ennen kuin lähetysikkuna on täyttynyt. Vastaanottajalle tämä menetelmä on yksinkertainen, koska puskuritilaa ei tarvita. Lähettäjä tietää myös, että mikäli kuittausta ikkunan alarajalla olevalle PDU:lle ei tule, kaikki sen jälkeen lähetetyt PDU:t on lähetettävä uudelleen. Näin lähettäjälle riittää vain yksi ajastin, joka käynnistetään aina kun ikkunan alaraja siirtyy. Kun ajastin laukeaa, koko ikkunallinen PDU:ita lähetetään uudestaan. Tästä nimi Go-Back-N. Lyhenne ARQ tulee sanoista automatic repeat request. Oheinen kuva havainnollistaa tilannetta

27 DATA (0) DATA (1) DATA (2) ACK (0) ACK (1) DATA (4) DATA (3) DATA (5) DATA (6) DATA (7) timeout DATA (2) DATA (3) DATA (4) DATA (5) DATA (6) ACK (2) ACK (3) ACK (4) ACK (5) Kuva 5.9 Go-back-N Automatic Repeat Reequest (ARQ) Toipuminen PDU:iden katoamisesta - Selective Repeat Jos vastaanottoikkunan koko on suurempi kuin yksi, yhden kehyksen katoaminen ei välttämättä edellytä seuraavien kehysten uudelleenlähetystä. Mikäli ne ovat saapuneet virheettöminä vastaanottajalle, niin vastaanottaja on puskuroinut niistä ne, jotka ovat mahtuneet vastaanottoikkunaan. Kadonnut tai virheellisenä saapunut kehys jää vastaanottoikkunan alarajalle, eikä vastaanottoikkuna enää siirry ennenkuin puuttuva kehys on vastaanotettu. Lähettäjän päässä kadonnut kehys on jäänyt lähetysikkunan alarajalle. Uudelleenlähetysmekanismin käynnistyessä ajastimen lauettua lähettäjän ei tässä tilanteessa kannata lähettää seuraavia uudelleen. Järkevää yleensä onkin odottaa, tulisiko seuraavassa kuittauksessa ilmoitus, että koko ikkunallinen tai ainakin osa siitä on otettu virheettöminä vastaan.

28 Kuva 5.10 Selective repeat Ajastimen oikea ajoitus voi olla pulmallista etenkin, jos siirtoviive on pitkä. Kanavalle tulee nimittäin tyhjäkäyntiä, jos kuitenkin osoittautuu, että seuraavakin kehys pitää lähettää uudelleen. Siksi kompromissina voi olla esim. edellä olevan kuvan 5.10 tilanne, jossa kadonnutta kehystä seuraavakin kehyksen uudelleenlähetysajastin ehtii laueta, ennenkuin kuittaus koko ikkunallisen vastaanotosta saapuu lähettäjälle. Sitten voidaan siirtyä kokonaan uusien kehysten lähetykseen. Aikaa edelliseen Go-Back-N -mekanismiin verrattuna säästyy selvästi Toipuminen PDU:iden katoamisesta - Negative Acknowledgement Liukuvan ikkunan protokollassa voi uudelleenlähetysajastimeen perustuva toipumismekanismi aiheuttaa tarpeetonta viivettä. Näin erityisesti silloin, kun vastaanottaja kuittaa harvakseen, useita kehyksiä kerralla. Tehokkuutta voidaan lisätä ottamalla käyttöön ns. negatiivinen kuittaus NAK, jonka vastaanottaja lähettää havaitessaan virheellisen kehyksen tai yhden järjestysnumeron jääneen välistä pois. NAK varustetaan tällöin sen kehyksen järjestysnumerolla joka oli virheellinen tai ei tullut ajallaan. DATA (1) DATA (2) DATA (4) DATA (5) DATA (0) ACK (0) ACK (1) DATA (3) NAK (2) Vastaanottaja lähettää NAK:n, koska DATA (2) jäi saapumatta. Se voi lähettää uuden NAK:n vasta kun DATA (2) on saapunut. Lähettäjä havaitsee, että DATA (2) on lähetettävä uudelleen. Se jatkaa sitten (optimistisesti) siitä mihin jäikin. DATA (2) DATA (6) DATA (7) NAK (4) NAK (4) kuittaa DATA (3):n ja DATA (2):n saapuneiksi. Nyt lähettäjä tietää, että DATA (4) on myös lähetettävä uudelleen. DATA (4) DATA (0) DATA (1) DATA (2) ACK (7) Vastaanottaja voi nyt kuitata numeroon 7 asti ja tilanne jatkuu normaalin ikkunamekanismin puitteissa. Kuva 5.11 Negative Acknowledgement Jos vastaanottoikkunan koko on yksi, lähettäjän tulee NAK:n saatuaan lähettää uudelleen kaikki kehykset NAK:ssa mainitusta järjestysnumerosta alkaen. Mikäli vastaanottoikkuna on suurempi kuin yksi, lähettäjä voi tyytyä lähettämään vain

29 mainitun kehyksen, ja uudelleenlähetysajastin tai uusi NAK ilmoittaa, mikäli seuraavien kehysten vastaanotossa on ollut häiriöitä. Mikäli pidetään kiinni periaatteesta, että NAK:ssa tullut järjestysnumero N kuittaa kaikki sitä edeltävät kehykset, on vastaanottajan kannalta riskialtista lähettää uutta NAK:ia esim. järjestysnumerolla N+2 ennenkuin kehys N on tullut virheettömänä perille. Mikäli näin tehdään, niin lähettäjä kuvittelee saadessaan NAK:n, jossa on numero N+2, että hänen uudelleenlähettämänsä kehys numero N on mennyt virheettömänä perille, vaikka vastaanottaja ei ole vielä ko. kehystä saanutkaan lähettäessään jälkimmäisen NAK:n. Se, että NAK:eja voi olla kerrallaan liikenteessä vain yksi, tekee uudelleenlähetysajastimeen perustuvista toipumismekanismeista lähes samanarvoisia NAK:iin perustuvien mekanismien kanssa. Ajallinen etu, joka NAK:lla saavutetaan joudutaan maksamaan monimutkaisemman toimintalogiikan muodossa.

30 Luku 6 puuttuu tarkoituksellisesti

31 7. Kuljetuskerros 7.1 Kuljetuskerroksen tehtävät ja protokollaluokat Kuljetusyhteyttä voidaan luonnehtia termeillä päästä - päähän -yhteys sekä bittiputki (bitpipe). Edellinen termi korostaa kuljetuskerroksen roolia kahden äärijärjestelmän yhdistämisessä. Bittiputkeen liitetään lisäksi ominaisuudet luotettava ja läpinäkyvä. Luotettavuudella tarkoitetaan sitä, että viimeistään kuljetuskerros suorittaa tietynasteiset tarkistukset ja toipumistoimet bittivirheiden ja kadonneiden tai epäjärjestykseen joutuneiden sanomien osalta. Luotettavuus ei välttämättä tarkoita sitä, että ylemmillä kerroksilla ei enää tarvita minkäänlaisia virheentarkistus- tai toipumismekanismeja, vaan siellä voidaan joutua huolehtimaan toisentyyppisistä ilmiöistä, esim. siitä, onko sovellusolio onnistunut tallettamaan saamansa tiedot levylle. Tällaiset asiat eivät koske kuljetuskerrosta. Läpinäkyvyydellä puolestaan tarkoitetaan sitä, että kuljetuspalvelun kautta kuljetuskerroksen siirrettäväksi annettu data saa sisältää millaisia bittikuvioita hyvänsä. Tätä ominaisuutta halutaan sen itsestäänselvyydestä huolimatta korostaa, koska eräät vanhemmat järjestelmät, esim. aikaisempi digitaalinen T1 -palvelu USA:ssa, eivät sallineet tiettyjen verkon sisäiseen merkinantoon käytettyjen oktettien esiintymistä datan joukossa. Kuljetuskerroksen tulisi myös toipua verkkokerroksen signaloimista virheistä (Reseteistä) sekä mahdollisuuksien mukaan yrittää avata uudelleen poikki menneet verkkoyhteydet ilman, että kuljetuspalvelun käyttäjä tulee tietoiseksi yhteyskatkoista. Lisäksi kuljetuskerros voi tarjota useiden kuljetusyhteyksien limitystä yhdelle verkkoyhteydelle tai yhteydettömän verkkopalvelun päälle. Jotta kuljetuskerros voisi joustavasti mukautua erilaatuisten verkkoyhteyksien hyväksikäyttöön, standardoijat ovat määritelleet kuljetuskerrokselle useita vaihtoehtoisia toimintokokonaisuuksia, ns. protokollaluokkia. Näin voidaan keventää kuljetuskerroksen protokollaa, mikäli alemmat kerrokset huolehtivat esim. luotettavuudesta tai multipleksauksesta eli limityksestä. Toisaalta tilanteessa, jossa alemmat kerrokset eivät takaa virheetöntä siirtoa, kuljetuskerroksen protokollasta tulee monipuolinen ja myös raskas (ja kallis). Toimintojen tarkastelua varten verkkoyhteydet jaetaan yleensä kolmeen tyyppiin, A, B ja C: tyyppi A tyyppi B tyyppi C luotettavat verkkoyhteydet, joissa bittivirheiden todennäköisyys on erittäin pieni ja joissa verkon toimintahäiriöitä (N-RESET) ei esiinny, virheistä ilmoittavat verkkoyhteydet, joissa paketit ovat perille tullessaan virheettömiä, mutta verkko voi silloin tällöin kaatua, eli N-RESET:tejä esiintyy, epäluotettava verkkoyhteys, jossa paketit voivat kadota, kahdentua ja korruptoitua, ja N-RESET:tejä esiintyy.

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

Digitaalitekniikan matematiikka Luku 13 Sivu 1 (10) Virheen havaitseminen ja korjaus Digitaalitekniikan matematiikka Luku 13 Sivu 1 (10) Digitaalitekniikan matematiikka Luku 13 Sivu 2 (10) Johdanto Tässä luvussa esitetään virheen havaitsevien ja korjaavien koodaustapojen perusteet ja käyttösovelluksia

Lisätiedot

5. Siirtoyhteyskerros linkkikerros (Data Link Layer)

5. Siirtoyhteyskerros linkkikerros (Data Link Layer) 5. Siirtoyhteyskerros linkkikerros (Data Link Layer) yhtenäinen linkki solmusta solmuun bitit sisään => bitit ulos ongelmia: siirtovirheet havaitseminen korjaaminen solmun kapasiteetti vuonvalvonta yhteisen

Lisätiedot

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

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

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

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

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

5. Siirtoyhteyskerros linkkikerros (Data Link Layer) 5.1. Kaksipisteyhteydet. Kehysten kuljetus. Missä virhe hoidetaan? Virheet. 5. Siirtoyhteyskerros linkkikerros (Data Link Layer) yhtenäinen linkki solmusta solmuun bitit sisään => bitit ulos ongelmia: siirtovirheet havaitseminen korjaaminen solmun kapasiteetti vuonvalvonta yhteisen

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

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

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

Hahmon etsiminen syotteesta (johdatteleva esimerkki) Hahmon etsiminen syotteesta (johdatteleva esimerkki) Unix-komennolla grep hahmo [ tiedosto ] voidaan etsia hahmon esiintymia tiedostosta (tai syotevirrasta): $ grep Kisaveikot SM-tulokset.txt $ ps aux

Lisätiedot

Testaa: Vertaa pinon merkkijono syötteeseen merkki kerrallaan. Jos löytyy ero, hylkää. Jos pino tyhjenee samaan aikaan, kun syöte loppuu, niin

Testaa: Vertaa pinon merkkijono syötteeseen merkki kerrallaan. Jos löytyy ero, hylkää. Jos pino tyhjenee samaan aikaan, kun syöte loppuu, niin Yhteydettömien kielioppien ja pinoautomaattien yhteys [Sipser s. 117 124] Todistamme, että yhteydettömien kielioppien tuottamat kielet ovat tasan samat kuin ne, jotka voidaan tunnistaa pinoautomaatilla.

Lisätiedot

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

3. Siirtoyhteyskerros linkkikerros (Data Link Layer) Virheiden hallinta. Vuonvalvonta. Kuittausviive Suunnitteluperiaatteita 3. Siirtoyhteyskerros linkkikerros (Data Link Layer) yhtenäinen linkki solmusta solmuun bitit sisään => bitit ulos ongelmia: siirtovirheet havaitseminen korjaaminen solmun kapasiteetti vuonvalvonta 01011011

Lisätiedot

3. Siirtoyhteyskerros linkkikerros (Data Link Layer)

3. Siirtoyhteyskerros linkkikerros (Data Link Layer) 3. Siirtoyhteyskerros linkkikerros (Data Link Layer) yhtenäinen linkki solmusta solmuun bitit sisään => bitit ulos ongelmia: siirtovirheet havaitseminen korjaaminen solmun kapasiteetti vuonvalvonta 01011011

Lisätiedot

Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja

Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja 582206 Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja 1. Esitä tilakaaviona NFA N = (Q, Σ, δ, q 0, F ), missä Q = { q 0, q 1, q 2, q 3, q 4, q 5, q 6, q 7 }, Σ = { a, b, c }, F = { q 4 } ja δ on

Lisätiedot

Automaatit. Muodolliset kielet

Automaatit. Muodolliset kielet Automaatit Automaatit ovat teoreettisia koneita, jotka käsittelevät muodollisia sanoja. Automaatti lukee muodollisen sanan kirjain kerrallaan, vasemmalta oikealle, ja joko hyväksyy tai hylkää sanan. Täten

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

1.4. Tietoliikenneohjelmistot eli protokollat

1.4. Tietoliikenneohjelmistot eli protokollat 1.4. Tietoliikenneohjelmistot eli protokollat Protokolla eli yhteyskäytäntö Mitä sanomia lähetetään ja missä järjestyksessä Missä tilanteessa sanoma lähetetään Miten saatuihin sanomiin reagoidaan tietoliikenteessä

Lisätiedot

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

1.4. Tietoliikenneohjelmistot eli protokollat. Protokollien kerrosrakenne. Mitä monimutkaisuutta? 1.4. Tietoliikenneohjelmistot eli protokollat Protokolla eli yhteyskäytäntö Mitä sanomia lähetetään ja missä järjestyksessä Missä tilanteessa sanoma lähetetään Miten saatuihin sanomiin reagoidaan tietoliikenteessä

Lisätiedot

Kielenä ilmaisten Hilbertin kymmenes ongelma on D = { p p on polynomi, jolla on kokonaislukujuuri }

Kielenä ilmaisten Hilbertin kymmenes ongelma on D = { p p on polynomi, jolla on kokonaislukujuuri } 135 4.3 Algoritmeista Churchin ja Turingin formuloinnit laskennalle syntyivät Hilbertin vuonna 1900 esittämän kymmenennen ongelman seurauksena Oleellisesti Hilbert pyysi algoritmia polynomin kokonaislukujuuren

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

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 5. marraskuuta 2015

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 5. marraskuuta 2015 TIEA24 Automaatit ja kieliopit, syksy 205 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 5. marraskuuta 205 Sisällys Käsiteanalyysiä Tarkastellaan koodilukkoa äärellisenä automaattina. Deterministinen äärellinen

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

Netemul -ohjelma Tietojenkäsittelyn koulutusohjelma 31.10.2011

Netemul -ohjelma Tietojenkäsittelyn koulutusohjelma 31.10.2011 Tietojenkäsittelyn koulutusohjelma ICT1TN002 1/6 Tietokone ja tietoverkot 1 ICT1TN002 Harjoitus lähiverkon toiminnasta Tässä harjoituksessa tutustutaan lähiverkon toimintaan Netemul ohjelman avulla. Ohjelmassa

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

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet 2016-2017 2. Lukujen esittäminen ja aritmetiikka 2.1 Kantajärjestelmät ja lukujen esittäminen Käytettävät lukujoukot: Luonnolliset luvut IN = {0,1,2,3,... } Positiiviset kokonaisluvut

Lisätiedot

Todistus: Aiemmin esitetyn mukaan jos A ja A ovat rekursiivisesti lueteltavia, niin A on rekursiivinen.

Todistus: Aiemmin esitetyn mukaan jos A ja A ovat rekursiivisesti lueteltavia, niin A on rekursiivinen. Lause: Tyhjyysongelma ei ole osittain ratkeava; ts. kieli ei ole rekursiivisesti lueteltava. L e = { w { 0, 1 } L(M w ) = } Todistus: Aiemmin esitetyn mukaan jos A ja A ovat rekursiivisesti lueteltavia,

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

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

Matematiikan tukikurssi

Matematiikan tukikurssi Matematiikan tukikurssi Kurssikerta 4 Jatkuvuus Jatkuvan funktion määritelmä Tarkastellaan funktiota f x) jossakin tietyssä pisteessä x 0. Tämä funktio on tässä pisteessä joko jatkuva tai epäjatkuva. Jatkuvuuden

Lisätiedot

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 Å Ä Ö

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 Å Ä Ö -asetuksella voidaan muuttaa tulostimen asetuksia, jotka koskevat sarjaportin (Standardi sarja- tai Sarjaportti -asetukset) kautta tulostimeen lähetettäviä töitä. Lisätietoja saat valitsemalla valikon

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

Kuva maailmasta Pakettiverkot (Luento 1)

Kuva maailmasta Pakettiverkot (Luento 1) M.Sc.(Tech.) Marko Luoma (1/20) M.Sc.(Tech.) Marko Luoma (2/20) Kuva maailmasta Pakettiverkot (Luento 1) WAN Marko Luoma TKK Teletekniikan laboratorio LAN M.Sc.(Tech.) Marko Luoma (3/20) M.Sc.(Tech.) Marko

Lisätiedot

Harjoitustyön testaus. Juha Taina

Harjoitustyön testaus. Juha Taina Harjoitustyön testaus Juha Taina 1. Johdanto Ohjelman teko on muutakin kuin koodausta. Oleellinen osa on selvittää, että ohjelma toimii oikein. Tätä sanotaan ohjelman validoinniksi. Eräs keino validoida

Lisätiedot

AVL-puut. eräs tapa tasapainottaa binäärihakupuu siten, että korkeus on O(log n) kun puussa on n avainta

AVL-puut. eräs tapa tasapainottaa binäärihakupuu siten, että korkeus on O(log n) kun puussa on n avainta AVL-puut eräs tapa tasapainottaa binäärihakupuu siten, että korkeus on O(log n) kun puussa on n avainta pohjana jo esitetyt binäärihakupuiden operaatiot tasapainotus vie pahimmillaan lisäajan lisäys- ja

Lisätiedot

Vektorien pistetulo on aina reaaliluku. Esimerkiksi vektorien v = (3, 2, 0) ja w = (1, 2, 3) pistetulo on

Vektorien pistetulo on aina reaaliluku. Esimerkiksi vektorien v = (3, 2, 0) ja w = (1, 2, 3) pistetulo on 13 Pistetulo Avaruuksissa R 2 ja R 3 on totuttu puhumaan vektorien pituuksista ja vektoreiden välisistä kulmista. Kuten tavallista, näiden käsitteiden yleistäminen korkeampiulotteisiin avaruuksiin ei onnistu

Lisätiedot

Matematiikan johdantokurssi, syksy 2016 Harjoitus 11, ratkaisuista

Matematiikan johdantokurssi, syksy 2016 Harjoitus 11, ratkaisuista Matematiikan johdantokurssi, syksy 06 Harjoitus, ratkaisuista. Valitse seuraaville säännöille mahdollisimman laajat lähtöjoukot ja sopivat maalijoukot niin, että syntyy kahden muuttujan funktiot (ks. monisteen

Lisätiedot

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

TIES530 TIES530. Moniprosessorijärjestelmät. Moniprosessorijärjestelmät. Miksi moniprosessorijärjestelmä? Miksi moniprosessorijärjestelmä? Laskentaa voidaan hajauttaa useammille prosessoreille nopeuden, modulaarisuuden ja luotettavuuden vaatimuksesta tai hajauttaminen voi helpottaa ohjelmointia. Voi olla järkevää

Lisätiedot

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 16. marraskuuta 2015

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 16. marraskuuta 2015 ja ja TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho NFA:ksi TIETOTEKNIIKAN LAITOS 16. marraskuuta 2015 Sisällys ja NFA:ksi NFA:ksi Kohti säännöllisiä lausekkeita ja Nämä tiedetään:

Lisätiedot

5. Siirtoyhteyskerros linkkikerros (Data Link Layer)

5. Siirtoyhteyskerros linkkikerros (Data Link Layer) 5. Siirtoyhteyskerros linkkikerros (Data Link Layer) yhtenäinen linkki solmusta solmuun bitit sisään => bitit ulos ongelmia: siirtovirheet havaitseminen korjaaminen solmun kapasiteetti vuonvalvonta yhteisen

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

isomeerejä yhteensä yhdeksän kappaletta.

isomeerejä yhteensä yhdeksän kappaletta. Tehtävä 2 : 1 Esitetään aluksi eräitä havaintoja. Jokaisella n Z + symbolilla H (n) merkitään kaikkien niiden verkkojen joukkoa, jotka vastaavat jotakin tehtävänannon ehtojen mukaista alkaanin hiiliketjua

Lisätiedot

Kaikki kurssin laskuharjoitukset pidetään Exactumin salissa C123. Malliratkaisut tulevat nettiin kurssisivulle.

Kaikki kurssin laskuharjoitukset pidetään Exactumin salissa C123. Malliratkaisut tulevat nettiin kurssisivulle. Kombinatoriikka, kesä 2010 Harjoitus 1 Ratkaisuehdotuksia (RT (5 sivua Kaikki kurssin laskuharjoitukset pidetään Exactumin salissa C123. Malliratkaisut tulevat nettiin kurssisivulle. 1. Osoita, että vuoden

Lisätiedot

Harjoitus 7: NCSS - Tilastollinen analyysi

Harjoitus 7: NCSS - Tilastollinen analyysi Harjoitus 7: NCSS - Tilastollinen analyysi Mat-2.2107 Sovelletun matematiikan tietokonetyöt Syksy 2006 Mat-2.2107 Sovelletun matematiikan tietokonetyöt 1 Harjoituksen aiheita Tilastollinen testaus Testaukseen

Lisätiedot

1 Määrittelyjä ja aputuloksia

1 Määrittelyjä ja aputuloksia 1 Määrittelyjä ja aputuloksia 1.1 Supremum ja infimum Aluksi kerrataan pienimmän ylärajan (supremum) ja suurimman alarajan (infimum) perusominaisuuksia ja esitetään muutamia myöhemmissä todistuksissa tarvittavia

Lisätiedot

Kiertokysely. Sulautetut järjestelmät Luku 2 Sivu 1 (??)

Kiertokysely. Sulautetut järjestelmät Luku 2 Sivu 1 (??) Sulautetut järjestelmät Luku 2 Sivu 1 (??) Kiertokysely Perinteiset ohjelmointikielet kuten C tukevat hyvin sekventiaalista ohjelmointia, jossa herätteisiin reagointi on helppoa toteuttaa pollauksella

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 2 vastaukset Harjoituksen aiheena on BNF-merkinnän käyttö ja yhteys rekursiivisesti etenevään jäsentäjään. Tehtävä 1. Mitkä ilmaukset seuraava

Lisätiedot

Tarkastelemme ensin konkreettista esimerkkiä ja johdamme sitten yleisen säännön, joilla voidaan tietyissä tapauksissa todeta kielen ei-säännöllisyys.

Tarkastelemme ensin konkreettista esimerkkiä ja johdamme sitten yleisen säännön, joilla voidaan tietyissä tapauksissa todeta kielen ei-säännöllisyys. Ei-säännöllisiä kieliä [Sipser luku 1.4] Osoitamme, että joitain kieliä ei voi tunnistaa äärellisellä automaatilla. Tulos ei sinänsä ole erityisen yllättävä, koska äärellinen automaatti on äärimmäisen

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

Luku 8. Aluekyselyt. 8.1 Summataulukko

Luku 8. Aluekyselyt. 8.1 Summataulukko Luku 8 Aluekyselyt Aluekysely on tiettyä taulukon väliä koskeva kysely. Tyypillisiä aluekyselyitä ovat, mikä on taulukon välin lukujen summa tai pienin luku välillä. Esimerkiksi seuraavassa taulukossa

Lisätiedot

Injektio (1/3) Funktio f on injektio, joss. f (x 1 ) = f (x 2 ) x 1 = x 2 x 1, x 2 D(f )

Injektio (1/3) Funktio f on injektio, joss. f (x 1 ) = f (x 2 ) x 1 = x 2 x 1, x 2 D(f ) Injektio (1/3) Määritelmä Funktio f on injektio, joss f (x 1 ) = f (x 2 ) x 1 = x 2 x 1, x 2 D(f ) Seurauksia: Jatkuva injektio on siis aina joko aidosti kasvava tai aidosti vähenevä Injektiolla on enintään

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

OSI malli. S 38.188 Tietoliikenneverkot S 2000. Luento 2: L1, L2 ja L3 toiminteet

OSI malli. S 38.188 Tietoliikenneverkot S 2000. Luento 2: L1, L2 ja L3 toiminteet M.Sc.(Tech.) Marko Luoma (1/38) S 38.188 Tietoliikenneverkot S 2000 Luento 2: L1, L2 ja L3 toiminteet OSI malli M.Sc.(Tech.) Marko Luoma (2/38) OSI malli kuvaa kommunikaatiota erilaisten protokollien mukaisissa

Lisätiedot

1 + b t (i, j). Olkoon b t (i, j) todennäköisyys, että B t (i, j) = 1. Siis operaation access(j) odotusarvoinen kustannus ajanhetkellä t olisi.

1 + b t (i, j). Olkoon b t (i, j) todennäköisyys, että B t (i, j) = 1. Siis operaation access(j) odotusarvoinen kustannus ajanhetkellä t olisi. Algoritmien DP ja MF vertaileminen tapahtuu suoraviivaisesti kirjoittamalla kummankin leskimääräinen kustannus eksplisiittisesti todennäköisyyksien avulla. Lause T MF ave = 1 + 2 1 i

Lisätiedot

Liikenneteoriaa (vasta-alkajille)

Liikenneteoriaa (vasta-alkajille) Liikenneteoriaa (vasta-alkajille) samuli.aalto@hut.fi liikteor.ppt S-38.8 - Teletekniikan perusteet - Syksy 000 Sisältö Liikenneteorian tehtävä Verkot ja välitysperiaatteet Puhelinliikenteen mallinnus

Lisätiedot

Pysähtymisongelman ratkeavuus [Sipser luku 4.2]

Pysähtymisongelman ratkeavuus [Sipser luku 4.2] Pysähtymisongelman ratkeavuus [Sipser luku 4.2] Osoitamme nyt vihdoin, että jotkin Turing-tunnistettavat kielet ovat ratkeamattomia ja jotkin kielet eivät ole edes Turing-tunnistettavia. Lisäksi toteamme,

Lisätiedot

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 19. tammikuuta 2012

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 19. tammikuuta 2012 TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 19. tammikuuta 2012 Sisällys Sisällys Muistathan A B -konstruktion 0 k 1 i 2 s 3 s 4 a 5 0 k 1 o 2 i 3 r 4

Lisätiedot

SDH. Mikä SDH 0DUNR/XRPD

SDH. Mikä SDH 0DUNR/XRPD SDH 0DUNR/XRPD 1988 TVT I / Marko Luoma & Raimo Kantola 1 Mikä SDH Synkronisen digitaalisen hierarkian (SDH) mukaisessa tiedonsiirrossa kaikki tieto on pakattu kehyksiin, jotka toistuvat 8000 kertaa sekunnissa.

Lisätiedot

M = (Q, Σ, Γ, δ, q 0, q acc, q rej )

M = (Q, Σ, Γ, δ, q 0, q acc, q rej ) 6. LASKETTAVUUSTEORIAA Churchin Turingin teesi: Mielivaltainen (riittävän vahva) laskulaite Turingin kone. Laskettavuusteoria: Tarkastellaan mitä Turingin koneilla voi ja erityisesti mitä ei voi laskea.

Lisätiedot

Vastaus 1. Lasketaan joukkojen alkiot, ja todetaan, että niitä on 3 molemmissa.

Vastaus 1. Lasketaan joukkojen alkiot, ja todetaan, että niitä on 3 molemmissa. Miten perustella, että joukossa A = {a, b, c} on yhtä monta alkiota kuin joukossa B = {d, e, f }? Vastaus 1. Lasketaan joukkojen alkiot, ja todetaan, että niitä on 3 molemmissa. Vastaus 2. Vertaillaan

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

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

esimerkkejä erilaisista lohkokoodeista

esimerkkejä erilaisista lohkokoodeista 6.2.1 Lohkokoodit tehdään bittiryhmälle bittiryhmään lisätään sovitun algoritmin mukaan ylimääräisiä bittejä [k informaatiobittiä => n koodibittiä, joista n-k lisäbittiä], käytetään yleensä merkintää (n,k)-koodi

Lisätiedot

Automaattiteoria diskreetin signaalinkäsittelyn perusmallit ja -menetelmät ( diskreettien I/O-kuvausten yleinen teoria)

Automaattiteoria diskreetin signaalinkäsittelyn perusmallit ja -menetelmät ( diskreettien I/O-kuvausten yleinen teoria) 1.6 Aakkostot, merkkijonot ja kielet Automaattiteoria diskreetin signaalinkäsittelyn perusmallit ja -menetelmät ( diskreettien I/O-kuvausten yleinen teoria) 1011 Input Automaton Output Automaatin käsite

Lisätiedot

3 Raja-arvo ja jatkuvuus

3 Raja-arvo ja jatkuvuus 3 Raja-arvo ja jatkuvuus 3. Raja-arvon käsite Raja-arvo kuvaa funktion kättätmistä jonkin lähtöarvon läheisdessä. Raja-arvoa tarvitaan toisinaan siksi, että funktion arvoa ei voida laskea kseisellä lähtöarvolla

Lisätiedot

Jos sekaannuksen vaaraa ei ole, samastamme säännöllisen lausekkeen ja sen esittämän kielen (eli kirjoitamme R vaikka tarkoitammekin L(R)).

Jos sekaannuksen vaaraa ei ole, samastamme säännöllisen lausekkeen ja sen esittämän kielen (eli kirjoitamme R vaikka tarkoitammekin L(R)). Jos sekaannuksen vaaraa ei ole, samastamme säännöllisen lausekkeen ja sen esittämän kielen (eli kirjoitamme R vaikka tarkoitammekin L(R)). Esimerkkejä: Σ koostuu kaikista aakkoston Σ merkkijonoista ja

Lisätiedot

Königsbergin sillat. Königsberg 1700-luvulla. Leonhard Euler ( )

Königsbergin sillat. Königsberg 1700-luvulla. Leonhard Euler ( ) Königsbergin sillat 1700-luvun Königsbergin (nykyisen Kaliningradin) läpi virtasi joki, jonka ylitti seitsemän siltaa. Sanotaan, että kaupungin asukkaat yrittivät löytää reittiä, joka lähtisi heidän kotoaan,

Lisätiedot

Reaalilukuvälit, leikkaus ja unioni (1/2)

Reaalilukuvälit, leikkaus ja unioni (1/2) Luvut Luonnolliset luvut N = {0, 1, 2, 3,... } Kokonaisluvut Z = {..., 2, 1, 0, 1, 2,... } Rationaaliluvut (jaksolliset desimaaliluvut) Q = {m/n m, n Z, n 0} Irrationaaliluvut eli jaksottomat desimaaliluvut

Lisätiedot

MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä, todistuksia ym., osa I

MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä, todistuksia ym., osa I MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä, todistuksia ym., osa I G. Gripenberg Aalto-yliopisto 3. huhtikuuta 2014 G. Gripenberg (Aalto-yliopisto) MS-A0402 Diskreetin matematiikan perusteetesimerkkejä,

Lisätiedot

Olkoon seuraavaksi G 2 sellainen tasan n solmua sisältävä suunnattu verkko,

Olkoon seuraavaksi G 2 sellainen tasan n solmua sisältävä suunnattu verkko, Tehtävä 1 : 1 a) Olkoon G heikosti yhtenäinen suunnattu verkko, jossa on yhteensä n solmua. Määritelmän nojalla verkko G S on yhtenäinen, jolloin verkoksi T voidaan valita jokin verkon G S virittävä alipuu.

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

S-114.2720 Havaitseminen ja toiminta

S-114.2720 Havaitseminen ja toiminta S-114.2720 Havaitseminen ja toiminta Heikki Hyyti 60451P Harjoitustyö 2 visuaalinen prosessointi Treismanin FIT Kuva 1. Kuvassa on Treismanin kokeen ensimmäinen osio, jossa piti etsiä vihreätä T kirjainta.

Lisätiedot

Opus SMS tekstiviestipalvelu

Opus SMS tekstiviestipalvelu Opus SMS tekstiviestipalvelu Sivu 1 / 17 1. Yleistä toiminnosta Opus SMS tekstiviestipalvelun avulla voidaan Opus Dental potilashallintaohjelmasta Lähettää muistutuksia tekstiviestillä Lähettää tiedusteluita

Lisätiedot

Aineistoista. Laadulliset menetelmät: miksi tarpeen? Haastattelut, fokusryhmät, havainnointi, historiantutkimus, miksei videointikin

Aineistoista. Laadulliset menetelmät: miksi tarpeen? Haastattelut, fokusryhmät, havainnointi, historiantutkimus, miksei videointikin Aineistoista 11.2.09 IK Laadulliset menetelmät: miksi tarpeen? Haastattelut, fokusryhmät, havainnointi, historiantutkimus, miksei videointikin Muotoilussa kehittyneet menetelmät, lähinnä luotaimet Havainnointi:

Lisätiedot

Ohjelmistoradio tehtävät 4. P1: Ekvalisointi ja demodulaatio. OFDM-symbolien generoiminen

Ohjelmistoradio tehtävät 4. P1: Ekvalisointi ja demodulaatio. OFDM-symbolien generoiminen Ohjelmistoradio tehtävät 4 P: Ekvalisointi ja demodulaatio Tässä tehtävässä dekoodata OFDM data joka on sijotetty synknonontisignaalin lälkeen. Synkronointisignaali on sama kuin edellisessä laskutehtävässä.

Lisätiedot

Teema 4. Homomorfismeista Ihanne ja tekijärengas. Teema 4 1 / 32

Teema 4. Homomorfismeista Ihanne ja tekijärengas. Teema 4 1 / 32 1 / 32 Esimerkki 4A.1 Esimerkki 4A.2 Esimerkki 4B.1 Esimerkki 4B.2 Esimerkki 4B.3 Esimerkki 4C.1 Esimerkki 4C.2 Esimerkki 4C.3 2 / 32 Esimerkki 4A.1 Esimerkki 4A.1 Esimerkki 4A.2 Esimerkki 4B.1 Esimerkki

Lisätiedot

Bayesin pelit. Kalle Siukola. MS-E2142 Optimointiopin seminaari: Peliteoria ja tekoäly

Bayesin pelit. Kalle Siukola. MS-E2142 Optimointiopin seminaari: Peliteoria ja tekoäly Bayesin pelit Kalle Siukola MS-E2142 Optimointiopin seminaari: Peliteoria ja tekoäly 12.10.2016 Toistetun pelin esittäminen automaatin avulla Ekstensiivisen muodon puu on tehoton esitystapa, jos peliä

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

= 5! 2 2!3! = = 10. Edelleen tästä joukosta voidaan valita kolme särmää yhteensä = 10! 3 3!7! = = 120

= 5! 2 2!3! = = 10. Edelleen tästä joukosta voidaan valita kolme särmää yhteensä = 10! 3 3!7! = = 120 Tehtävä 1 : 1 Merkitään jatkossa kirjaimella H kaikkien solmujoukon V sellaisten verkkojen kokoelmaa, joissa on tasan kolme särmää. a) Jokainen verkko G H toteuttaa väitteen E(G) [V]. Toisaalta jokainen

Lisätiedot

vaihtoehtoja TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho 13. lokakuuta 2016 TIETOTEKNIIKAN LAITOS

vaihtoehtoja TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho 13. lokakuuta 2016 TIETOTEKNIIKAN LAITOS TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 13. lokakuuta 2016 Sisällys Harjoitustehtävätilastoa Tilanne 13.10.2016 klo 9:42 passed waiting redo submitters

Lisätiedot

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

1. Tietokoneverkot ja Internet. 1. 1.Tietokoneesta tietoverkkoon. Keskuskone ja päätteet (=>-80-luvun alku) Keskuskone ja oheislaitteet 1. Tietokoneverkot ja Internet 1.1. Tietokoneesta tietoverkkoon 1.2. Tietoliikenneverkon rakenne 1.3. Siirtomedia 1.4. Tietoliikenneohjelmisto eli protokolla 1.5. Viitemallit: OSI-malli, TCP/IP-malli 1.6.

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

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2009 1 / 28 Puhelinluettelo, koodi def lue_puhelinnumerot(): print "Anna lisattavat nimet ja numerot." print

Lisätiedot

x j x k Tällöin L j (x k ) = 0, kun k j, ja L j (x j ) = 1. Alkuperäiselle interpolaatio-ongelmalle saadaan nyt ratkaisu

x j x k Tällöin L j (x k ) = 0, kun k j, ja L j (x j ) = 1. Alkuperäiselle interpolaatio-ongelmalle saadaan nyt ratkaisu 2 Interpolointi Olkoon annettuna n+1 eri pistettä x 0, x 1, x n R ja n+1 lukua y 0, y 1,, y n Interpoloinnissa etsitään funktiota P, joka annetuissa pisteissä x 0,, x n saa annetut arvot y 0,, y n, (21)

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

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

Tietokone. Tietokone ja ylläpito. Tietokone. Tietokone. Tietokone. Tietokone ja ylläpito computer = laskija koostuu osista tulostuslaite näyttö, tulostin syöttölaite hiiri, näppäimistö tallennuslaite levy (keskusyksikössä) Keskusyksikkö suoritin prosessori emolevy muisti levy Suoritin

Lisätiedot

jakokulmassa x 4 x 8 x 3x

jakokulmassa x 4 x 8 x 3x Laudatur MAA ratkaisut kertausarjoituksiin. Polynomifunktion nollakodat 6 + 7. Suoritetaan jakolasku jakokulmassa 5 4 + + 4 8 6 6 5 4 + 0 + 0 + 0 + 0+ 6 5 ± 5 5 4 ± 4 4 ± 4 4 ± 4 8 8 ± 8 6 6 + ± 6 Vastaus:

Lisätiedot

S BAB ABA A aas bba B bbs c

S BAB ABA A aas bba B bbs c T-79.148 Kevät 2003 Tietojenkäsittelyteorian perusteet Harjoitus 8 Demonstraatiotehtävien ratkaisut 4. Tehtävä: Laadi algoritmi, joka testaa onko annetun yhteydettömän kieliopin G = V, Σ, P, S) tuottama

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

1. FRAME RELAY: RUUHKANHALLINTA

1. FRAME RELAY: RUUHKANHALLINTA 1. FRAME RELAY: RUUHKANHALLINTA Frame Relay on kehitelty nimenomaan uusille nopeammille, virheettömämmille verkoille. Se on tarkoitettu puhtaasti tehokkaaseen tiedonsiirtoon eikä sinänsä sisällä vuohallintaa

Lisätiedot

4.3. Matemaattinen induktio

4.3. Matemaattinen induktio 4.3. Matemaattinen induktio Matemaattinen induktio: Deduktion laji Soveltuu, kun ominaisuus on osoitettava olevan voimassa luonnollisilla luvuilla. Suppea muoto P(n) : Ominaisuus, joka joka riippuu luvusta

Lisätiedot

1 Kannat ja kannanvaihto

1 Kannat ja kannanvaihto 1 Kannat ja kannanvaihto 1.1 Koordinaattivektori Oletetaan, että V on K-vektoriavaruus, jolla on kanta S = (v 1, v 2,..., v n ). Avaruuden V vektori v voidaan kirjoittaa kannan vektorien lineaarikombinaationa:

Lisätiedot

Tuloperiaate. Oletetaan, että eräs valintaprosessi voidaan jakaa peräkkäisiin vaiheisiin, joita on k kappaletta

Tuloperiaate. Oletetaan, että eräs valintaprosessi voidaan jakaa peräkkäisiin vaiheisiin, joita on k kappaletta Tuloperiaate Oletetaan, että eräs valintaprosessi voidaan jakaa peräkkäisiin vaiheisiin, joita on k kappaletta ja 1. vaiheessa valinta voidaan tehdä n 1 tavalla,. vaiheessa valinta voidaan tehdä n tavalla,

Lisätiedot

SM210 RS485 - JBUS/MODBUS mittarille SM102E. Käyttöohje

SM210 RS485 - JBUS/MODBUS mittarille SM102E. Käyttöohje SM210 RS485 - JBUS/MODBUS mittarille SM102E Käyttöohje Sisällys Alustavat toimet... 1 Yleistiedot... 1 Asennus... 2 Ohjelmointi... 3 Pääsy ohjelmointitilaan (COde= 100)... 3 Tiedonsiirto-osoite... 5 Tiedonsiirtonopeus...

Lisätiedot

D B. Levykön rakenne. pyöriviä levyjä ura. lohko. Hakuvarsi. sektori. luku-/kirjoituspää

D B. Levykön rakenne. pyöriviä levyjä ura. lohko. Hakuvarsi. sektori. luku-/kirjoituspää Levyn rakenne Levykössä (disk drive) on useita samankeskisiä levyjä (disk) Levyissä on magneettinen pinta (disk surface) kummallakin puolella levyä Levyllä on osoitettavissa olevia uria (track), muutamasta

Lisätiedot

Tietorakenteet ja algoritmit - syksy 2015 1

Tietorakenteet ja algoritmit - syksy 2015 1 Tietorakenteet ja algoritmit - syksy 2015 1 Tietorakenteet ja algoritmit - syksy 2015 2 Tietorakenteet ja algoritmit Johdanto Ari Korhonen Tietorakenteet ja algoritmit - syksy 2015 1. JOHDANTO 1.1 Määritelmiä

Lisätiedot

Karteesinen tulo. Olkoot A = {1, 2, 3, 5} ja B = {a, b, c}. Näiden karteesista tuloa A B voidaan havainnollistaa kuvalla 1 / 21

Karteesinen tulo. Olkoot A = {1, 2, 3, 5} ja B = {a, b, c}. Näiden karteesista tuloa A B voidaan havainnollistaa kuvalla 1 / 21 säilyy Olkoot A = {1, 2, 3, 5} ja B = {a, b, c}. Näiden karteesista tuloa A B voidaan havainnollistaa kuvalla c b a 1 2 3 5 1 / 21 säilyy Esimerkkirelaatio R = {(1, b), (3, a), (5, a), (5, c)} c b a 1

Lisätiedot

Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9

Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9 Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9 Tuntitehtävät 9-10 lasketaan alkuviikon harjoituksissa ja tuntitehtävät 13-14 loppuviikon harjoituksissa. Kotitehtävät 11-12 tarkastetaan loppuviikon

Lisätiedot

verkkojen G ja H välinen isomorfismi. Nyt kuvaus f on bijektio, joka säilyttää kyseisissä verkoissa esiintyvät särmät, joten pari

verkkojen G ja H välinen isomorfismi. Nyt kuvaus f on bijektio, joka säilyttää kyseisissä verkoissa esiintyvät särmät, joten pari Tehtävä 9 : 1 Merkitään kirjaimella G tehtäväpaperin kuvan vasemmanpuoleista verkkoa sekä kirjaimella H tehtäväpaperin kuvan oikeanpuoleista verkkoa. Kuvan perusteella voidaan havaita, että verkko G on

Lisätiedot