ITKP104 Tietoverkot - 2018

Löydät listan ITKP104 Tietoverkot kurssin eri vuosien kurssitoteumista osoitteesta https://tim.jyu.fi/view/kurssit/tie/itkp104/koti.

  • Tämä on vuoden 2018 luentomateriaali ja tehtävät sivulla kerryttävät pisteitä vuoden 2018 kurssille.

Esipuhe

Tämä materiaali rakentuu ITKP104 Tietoverkot kurssille. Materiaali on aloitettu kevään 2017 kurssin Teoria 1 luentokalvoista, Teoria 2 luentokalvoista sekä Teoria 3 luentokalvoista ja sitä täydennetään jatkuvasti. Materiaalin yhteyteen on lisätty linkit keväiden 2017 sekä 2018 luentovideoiden kohtiin, joissa aiheita käsitellään. Teoria osioihin on täydennetty tekstiä ja aiheiden järjestystä on hieman muutettu kevään 2017 kurssiin verrattuna.

Materiaaliin on lisätty interaktiivisia tehtäviä. Osassa interaktiivisista tehtävistä on automaattinen tarkistin. Tällaisten tarkistimen sisältävien tehtävien tehtävänanto alkaa vahvennetulla suluin ympäröidyllä kirjaimella väliltä (a) - (j). Tällä tavoin merkitystä automaattisesti tarkistettavista tehtävistä saa kustakin maksimissaan 0.1 pistettä kevään 2018 kurssille, kun vastaus on oikein. Tällaiset tehtävät on linkitetään teoriatehtävien sivuille.

Materiaali sisältää myös interaktiivisia tehtäviä, joista ei saa pisteitä. Tällöin tehtävänannosta puuttuu vahvennettu suluilla ympäröity kirjain.

Materiaalia päivitetään jatkuvasti vuoden 2018 aikana. Kurssin TIM-järjestelmässä olevat kevään 2017 luentokalvot säilyvät siinä muodossa kuin ne luennoilla esitettiin. Kevään 2018 luentokalvoja päivitetään materiaalia päivitettäessä. Kevään 2019 kurssille materiaali siityy toiseen osoitteeseen. Tämä materiaali sopii vain kevään 2018 kurssille tai aiemmille.

Kurssista annetusta palautteesta olen osan koonnut palautesivulle, jossa myös vastineitani palautteisiin.

TIM-järjestelmän käyttöohjeita löytyy esimerkiksi Ohjelmointi 1 kurssin monisteesta.

Kurssin esitiedoista

Kurssin opiskeleminen ei vaadi esitietoja, paitsi ohjelmointityöosio, joka vaatii jonkin verran ohjelmointiosaamista. Tarvittavan ohjelmointiosaamiseen riittää opiskella Ohjelmointi 1 kurssia samanaikaisesti tämän kurssin kanssa. Kurssimateriaalissa on joitain interaktiivisia osioita, joissa muokataan tai toteutetaan pieniä ohjelmakoodeja.

Kurssin kotisivut lukuvuosittain

# video2018Luento1

Kurssin opiskeluun liittyviä yleisiä asioita ja ohjeita löydät

sekä sen lukuvuoden kurssin kotisivulta, jolle olet korpissa ilmoittautunut.

Alla on linkit Korppi-järjestelmässä sijaitseviin eri vuoden kursseihin.

Kurssin osioiden oppimisen tukemiseksi kannattaa tehdä tarjolla olevia käytännön tehtäviä.

# v2018L1_1

Kurssin osioiden osaamistavoitteet

ITKP104 Tietoverkot kurssi on jaettu viiteen yhden opintopisteen osioon. Osiot voi suorittaa ajallisesti toisistaan riippumatta, tosin osioiden välillä on jonkin verran esitietoriippuvuuksia.

  • Teoria 1
    • Opiskelija ymmärtää perusteet Internetin rakenteesta, palveluista, arkkitehtuureista sekä yleisimmistä sovellusprotokollista
  • Teoria 2
    • Opiskelija ymmärtää tietoverkkojen toteutuksen haasteet sovellus-, kuljetus-, verkko- ja linkkikerroksilla sekä Internetissä toteutetut ratkaisut haasteisiin.
  • Teoria 3
    • Opiskelija ymmärtää luotettavaan tiedonsiirtoon, reititykseen sekä kanavan jakamiseen liittyvät haasteet sekä niiden toteutukseen valitut ratkaisut Internetin eri kerrosten protokollissa.
  • Analysaattorityö
    • Opiskelija oppii käyttämään yksinkertaisia protokollia sekä analysoimaan niiden generoimaa verkkoliikennettä.
  • Ohjelmointityö
    • Opiskelija oppii alkeet soketti- ja verkko-ohjelmoinnista käyttäen UDP ja TCP protokollia sekä toteuttaa yksinkertaisen protokollan.
# v2018L1_2
# videoJohdanto2

Kurssin aikataulua

Kurssiin sisältyy luentoja teoria osioihin sekä ohjaustilaisuuksia käytännön osioihin. Kurssin teoriaosioiden osaaminen voidaan osoittaa joko välikokeilla, loppukokeilla tai eTenteillä vapaasti. Esimerkiksi teoria 1 osion voi suorittaa toisessa välikokeessa, teoria 2 osion eTentillä ja teoria 3 osion loppukokeessa tai useamman osion yhdellä kertaa. Alla on kuva kurssin kevään 2018 aikataulusta.

# v2018L1_3
# videoJohdanto3

Kurssin opiskelusta

  • Merkitse korppiin tavoittelemasi opintopistemäärä ja kerää vaaditut pisteet.
# videoJohdanto1
# videoJohdanto37
# v2018L2_2

Osoitetaan opittu tenttimällä

# v2018L1_4
# v2018L2_1
# videoJohdanto5
# videoJohdanto11
# videoJohdanto17

Opitaan tietoverkoista

# v2018L1_5

Kurssilla opiskellaan tietoverkkojen toiminta. Yksi tapa on etsiä vastauksia kysymyksiin tai oikeastaan yhteen laajaan kysymykseen: "Kuinka Internet toimii?". Jakamalla edellinen pienempiin osiin, opitaan pikku hiljaa Internetin toiminta. Kurssilla on vuosittain wiki-sivusto, jolle opiskelija voi kirjoittaa omia vastauksiaan kurssin aiheisiin liittyviin kysymyksiin. Kurssille saa lisäpisteitä wiki-sivun ohjeiden mukaan.

Kurssilla on keväästä 2015 alkaen ollut TIM-järjestelmässä demotehtäviä, joita tekemällä voi saada lisäpisteitä kurssin kokonaispisteisiin. Hyvityspisteitä saa kullekin kurssille sen kurssin demosivujen ohjeiden mukaan.

Kevään 2014 tai aiempaa kurssia vielä opiskeleva voi saada hyvityspisteitä tekemällä uudempia tehtäviä ja ilmoittaa luennoitsijalle sen minkä vuoden tehtäviä on tehnyt ja sen minkä vuoden kurssille on korpissa ilmoittautunut.

# videoJohdanto4
# videoJohdanto28

Teoria 1

Internet

# v2018L1_6

Tietoverkkoja käytetään nykyään suurimpaan osaan tiedonsiirrosta. Tämän materiaalin avulla opitaan tietoverkkojen toiminnasta ja toteutuksesta käyttämällä esimerkkinä Internet-verkkoa. Tietoverkko koostuu laitteista, jotka kommunikoivat toistensa kanssa. Internet puolestaan koostuu tietoverkoista, joissa sijaitsevat laitteet kykenevät kommunikoimaan toisten laitteiden kanssa, vaikka ne sijaitsevat toisessa verkossa, riippumatta siitä kuinka monen verkon kautta kommunikaatio kulkee.

Tässä materiaalissa Internet kirjoitetaan isolla alkukirjaimella, kun tarkoitetaan maapallon kattavaa Internettiä. Suomen kielessä suositus on että Internet voidaan nykyään kirjoittaa pienellä tai isolla alkukirjaimella, kun aiemmin suositus oli kirjoittaa Internet isolla alkukirjaimella. Internet kirjoitettiin isolla alkukirjaimella alkujaan sen vuoksi, että voitiin erottaa toisistaan maailmanlaajuinen verkko (Internet) sekä mikä tahansa yhteenkytketty verkko (interconnected network - internet) tai oman verkon (intranet) ulkopuolinen verkko (internet). Internetin kehittämisestä vastanneet henkilöt ja organisaatiot ovat pääosin käyttäneet isoa alkukirjainta Internettiin liittyvässä dokumentaatiossa. Tänä päivänä, aiemmin pienellä kirjoitetuille, internetin määritteille ei juuri ole tarvetta ja pienellä kirjoitettu internet tarkoittaa aina käytännössä maailmanlaajuista Internettiä. Maailmanlaajuisesti pientä ja isoa kirjainta käytetään suurinpiirtein saman verran, kuitenkin englannin kielisissä teksteissä amerikassa käytetään pääasiassa isolla kirjoitettua versiota Internet ja Isossa Britanniassa pääasiassa pienellä kirjoitettua versiota internet.

# videoJohdanto13

Internet - tekninen näkökulma

Eräs esimerkki tietoverkosta on lähiverkko (eng. Local Area Network - LAN). Lähiverkko voidaan muodostaa yhdistämällä useampi laite siten että ne pystyvät kommunikoimaan toistensa kanssa. Käytännössä yhdistäminen tehdään kytkemällä laitteet Ethernet kaapelilla kytkimeen. Kytkin on siis laite jolla voidaan yhdistää useampi kuin kaksi laitetta samaan verkkoon. Langattomissa lähiverkoissa laitteet yhdistetään tukiasemaan ja 'yhdistäminen' tapahtuu käyttämällä samaa radiotaajuutta sekä verkon tunnuksen avulla.

Sen lisäksi että laitteilla on joko langallinen tai langaton yhteys toisiinsa ja verkkoon, täytyy niiden ymmärtää toisiaan, jotta ne voivat kommunikoida. Tämä ymmärrys laitteiden välillä toteutetaan protokollilla, jotka määrittelevät säännöt kommunikaatiolle. Säännöt määrittelevät esim. käytetyt viestit, niiden tarkoituksen ja sisällön sekä kuinka kommunikaatio aloitetaan ja miten viesteihin vastataan.

Isompia verkkoja voidaan muodostaa yhdistämällä lähiverkkoja toisiinsa. Kahden tai useamman lähiverkon yhdistäminen toteutetaan reitittimellä. Reititin on laite joka osaa välittää kommunikaatiota verkkojen välillä.

Kommunikaatiota varten verkon laitteet tarvitsevat osoitteen, joka kertoo laitteiden sijainnin verkossa sekä yksilöi laitteen (omassa) verkossaan. Lähiverkossa sijaitseva laite kykenee selvittämään samassa lähiverkossa sijaitsevien laitteiden osoitteet. Kun osoite sijaitsee jossain toisessa verkossa, niin laitteeseen pitää olla määritetty oletusreitti (oletusreititin), jonka kautta voidaan kommunikoida muissa verkoissa olevien laitteiden kanssa. Reititin tietää tarkasti joidenkin osoitteiden sijainnin ja lisäksi reitittimellä on oletusreitti, jonka kautta saavutetaan toisia reitittimiä, jotka sitten tietävät sijainteja osoitteille, joista kyseisellä reitittimellä ei ole tarkkaa sijaintitietoa.

Tietoverkko ja sen osat

Tietoverkko koostuu yhdistetyistä laitteista. Tietoverkkojen alkuaikoina verkkoon kytketyt laitteet olivat pääasiassa keskustietokoneita ja niihin yhteydessä olevia yksinkertaisia päätelaitteita sekä myöhemmin palvelinkoneita ja niiltä palveluita pyytäviä tietokoneita. Tämän vuoksi tietoverkosta käytetään englannin kielessä nimitystä computer network, eli tietokoneverkko. Nykyään tietoverkkoon on kytketty paljon muitakin laitteita kuin tietokoneita. Tietoverkossa on myös verkon rakenteen toteuttavia ja verkossa palveluita tarjoavia laitteita. Oheisessa kuvatehtävässä on kuvattuna muutamia verkon osia. Nykyään monia verkontoimintoja voi olla yhdistettynä yhteen fyysiseen laitteeseen tai yksi verkon palvelu voi olla hajautettuna usean fyysisen laitteen ylläpidettäväksi.

# v2018L1_7
# itkp104TietoverkonOsat
# videoJohdanto6

Palvelin ja asiakas tietoverkossa

# v2018L1_8

Palvelimeksi kutsutaan tietokoneen ohjelmistoa joka odottaa asiakkaan palvelupyyntöjä. Palvelin vastaa asiakkaan pyyntöihin tarjoten palveluita tai resursseja. Palvelinten ja asiakkaiden täytyy käyttää yhteistä protokollaa, jotta ne ymmärtävät toisiaan, eli pyynnöt ja vastaukset. Esimerkiksi WWW-palvelimet vastaavat verkkoselainten pyyntöihin molempien käyttäessä HTTP-protokollaa.

# AsiakasPalvelin

Esimerkkejä tietoverkoissa sijaitsevista palvelimista:

  • WWW-palvelin
    • palvelee asiakkaita HTTP protokollalla
  • Sähköpostipalvelin
    • palvelee asiakkaita sähköpostiprotokollilla (SMTP, POP3, IMAP4)
  • Nimipalvelin, eli DNS-palvelin
    • palvelee asiakkaita DNS protokollalla
  • Tiedostopalvelin
    • Internet-tiedostopalvelin: esim. FTP
      • Tiedostojen ja ohjelmistojen lataaminen
    • Paikallisen verkon tiedostopalvelin: esim. NFS
      • verkkolevyt, hajautetut tiedostot
      • varmuuskopiointi
  • Tietokantapalvelin
    • Tietokantakohtaisia (esim. MySQL protocol) sekä yleisiä (ODBC) protokollia
  • Tulostuspalvelin
    • Valmistajakohtaisia protokollia
  • Välityspalvelin, eli proxy server
    • Välittää liikennettä todellisen palvelimen ja asiakkaan välillä
    • Yleisimmin välittää HTTP-liikennettä, mutta myös muitakin protokollia
  • Pelipalvelin
    • Sovelluskohtaisia protokollia
# videoJohdanto7

Hieman liian monta W-kirjainta =)

04 Apr 18

Tietoverkoissa asiakkaaksi kutsutaan ohjelmistoa tai laitetta joka pyytää palveluja tai resursseja palvelimelta. Yleisesti asiakkaaksi kutsutaan sitä kommunikaation osapuolta, joka aloittaa yhteydenpidon. Yleisin tietoverkoissa käytössä oleva asiakas on verkkoselain. Verkkoselain, jatkossa tässä materiaalissa usein pelkästään selain, on asiakasohjelmisto, jolla pyydetään sisältöä WWW-palvelimilta. Käyttäjä antaa selaimelle osoitteen pyydettävään resurssiin sekä menetelmän, jolla resurssi siirretään. Käytännössä asiakkaan pyyntö toteutetaan URL (Uniform Resource Locator) -viitteellä, joka määrittelee haettavan resurssin sijainnin tietoverkossa sekä mekanismin resurssin hakemiseen. URL on alkujaan määritelty dokumentissa Uniform Resource Locators (URL) - RFC 1738 ja se on yhden tyyppinen URI (Uniform Resource Identifier). Uniform Resource Identifier (URI) - RFC 3986. Koska edellisessä dokumentissa määritellyt lyhenteet ovat menneet usein sekaisin on tehty erillinen dokumentti URI, URL ja URN - RFC 3305, joka pyrkii selventämään määritelmiä. Kun URI kertoo jonkin resurssin sijainnin Internetissä, on se käytännössä myös URL. URN puolestaan määrittelee digitaalisen resurssin pysyvän nimen, ilman tietoa sen sijainnista. Digitaalisen resurssin URN säilyy eikä vaihdu, vaikka resurssia ei olisi enää olemassa.

Kiitoksia typon kommentoinnista :). Typoista voi jättää kommentteja, korjatessani typot poistan samalla kommentin.

05 Apr 18
# v2018L1_9

Esimerkiksi RFC 3305 dokumentille on yksi URN

  • urn:ietf:rfc:3305

ja toisaalta samalle RFC 3305 dokumentille voi olla useita URL:eja

  • https://tools.ietf.org/html/rfc3305
  • https://www.ietf.org/rfc/rfc3305.txt
# videoJohdanto8

Esimerkiksi eräs URL on

http://users.jyu.fi/~arjuvi/opetus/itkp104/2018/index.html

missä http on URL-skeema (protokolla), users.jyu.fi on palvelin, missä users on palvelimen nimi ja jyu.fi on verkkotunnus (englanniksi domain), joka DNS-palvelun avulla kertoo laitteen sijainnin verkossa ja ~arjuvi/opetus/itkp104/2018/index.html on pyydetty resurssi, eli sen hakemistopolku ja lopuksi tiedostonimi. Tiedostonimessä ei välttämättä ole päätettä, eli pistettä ja sen jälkeistä osaa, kuten esimerkiksi tämän materiaalin URL:ssa. tai tiedoston nimi voi puuttua, eli yllä index.html voidaan jättää pois, jolloin palvelin lähettää palvelimeen määritellyn oletusresurssin nimisen tiedoston, jos sellainen on olemassa viitatussa hakemistossa.

# urlt1

Sovellusten, joissa toinen kommunikaation osapuoli toimii palvelimena ja toinen asiakkaana, sanotaan toimivan asiakas-palvelin -arkkitehtuurin tai -mallin mukaan. Vertaisverkkomalli tai -arkkitehtuuri on sellainen missä molemmat kommunikoivat osapuolet toimivat sekä asiakkaana että palvelimena.

# v2018L2_3

Reititin tietoverkoissa

# video2018Luento2

Reitittimeksi kutsutaan tämän päivän Internetissä laitteita, jotka ovat tietoverkkojen solmukohdissa. Reititin mahdollistaa eri verkkojen yhdistämisen, eli käytännössä tiedon siirtämisen eri verkkojen välillä. Internet perustuu pakettikytkettyyn verkkoteknologiaan, missä siirrettävä tieto jaetaan pienemmiksi paloiksi, joita kutsutaan paketeiksi. Paketit välitetään verkon läpi yksitellen lähettäjältä vastaanottajalle. Reitittimien tehtävä on määritellä reitit verkkojen läpi ja välittää vastaanottamansa paketit oikeille reiteille. Reitittimet muodostavat itselleen välitystaulun, englanniksi forwarding table, johon päivitetään tietyin väliajoin reitit muihin verkkoihin. Kun reititin vastaanottaa paketin, välittää se sen uudelle reitille välitystaulun informaation mukaan. Reitit eivät ole kiinteitä ja voivat olla erilaisia pilkotun datan eri paketeille. Reititin toimii siis kahden tai useamman verkon solmukohdassa.

# v2018L2_4
# v2018L2_5
# itkp104reititys

Reitittimen on yleensä yhdistetty muitakin verkon toimintoja, kuten esimerkiksi kytkin, tukiasema tai palomuuri. Kytkimen avulla reititinlaitteeseen voidaan suoraan yhdistää useita verkon yksittäisiä laitteita. Tukiasema puolestaan toimii langattomana kytkimenä, mahdollistaen langattomien laitteiden yhdistämisen reititinlaitteeseen. Palomuuri on tietoturvajärjestelmä haitallisen verkkoliikenteen estämiseksi. Palomuuriin voidaan asettaa säännöt siitä miten kontrolloidaan sisääntulevaa ja uloslähtevää liikennettä.

# videoJohdanto9

Paketit Internetissä

# v2018L2_6
  • Mikä on paketti?
    • Tiedonsiirrossa paketti on pieni määrä dataa joka siirretään verkkolaitteiden välillä.
    • Esim. kuva pilkotaan pieniin osiin,
      • jotka paketoidaan
        • laitetaan pieneen pakettiin ja siihen osoite
    • ja lähetetään jokainen paketti
      • erikseen verkon läpi.
    • Paketti koostuu digitalisoidusta informaatiosta
      • Digitalisoinnissa informaatio muunnetaan biteiksi

Tietoverkkojen tiedonsiirtolinkit

Tietoverkossa laitteiden välinen tiedon siirtäminen tapahtuu tiedonsiirtolinkkien avulla. Tiedonsiirtolinkki voi olla joko langaton tai langallinen. Tiedonsiirtolinkeillä siirrettävät paketit sisältävät verkkosovellusten lähettämää digitaalista tietoa. Käytännössä paketit koostuvat biteistä, jotka ryhmitellään yleensä kahdeksan bitin joukoiksi, tavuiksi.

Tiedonsiirtolinkillä on tiedonsiirtonopeus, bittinopeus, josta usein käytetään nimitystä kaistanleveys, tai puhekielessä kaista. Tiedonsiirtonopeus kuvaa linkin kapasiteettia siirtää bittejä aikayksikköä kohden. Tiedonsiirtonopeuden yksiköksi on määritelty bittiä sekunnissa, bit/s. Myös kaistanleveyden yksikkönä on bit/s, kun sillä tarkoitetaan tiedonsiirtonopeutta. Kaistanleveyden määritys riippuu siitä, missä yhteydessä se on määritelty, esimerkkinä digitaalinen tiedonsiirto, radiotaajuinen tiedonsiirto tai elektroniikka.

Bitit ja tavut

# v2018L2_7
# videoJohdanto26

Binäärijärjestelmässä, eli 2-järjestelmässä, on kaksi eri arvoa, näiden merkintöinä käytetään merkkejä 0 ja 1, eli kaksi ensimmäistä merkkiä 10-lukujärjestelmän ei-negatiivisista kokonaisluvuista. Merkit 0 ja 1 ovat binäärijärjestelmän numeroita, englanniksi binary digits, ja niitä kutsutaan lyhyesti termillä bitti, englanniksi bit. Kun biteistä muodostetaan useamman bitin kokonaisuuksia, niitä kutsutaan binääriluvuiksi. Kahdeksan bitin binääriluvulle on määritelty oma termi ja kahdeksan bitin binäärilukua kutsutaan tavuksi, englanniksi byte. Jotta mitä tahansa informaatiota voidaan tallentaa 2-järjestelmän lukuna, on sovittava säännöt informaation muuttamiseksi binäärijärjestelmään.

# video2017TRA12

Koska 2-järjestelmässä on vain kaksi erilaista vaihtoehtoa symboliksi, täytyy esimerkiksi numeroiden ja kirjainten esittämiseen varata useita bittejä. Kun laitetaan kaksi bittiä peräkkäin, saadaan niistä neljä eri kombinaatiota 00, 01, 10 ja 11. Eli kahdella bitillä voidaan esittää neljä eri vaihtoehtoa. Yleisesti :llä bitillä voidaan esittää erilaista binäärilukua. Täten esimerkiksi kahdeksalla bitillä voidaan esittää eri kombinaatiota, ja jos niillä esitetään ei-negatiivisia kokonaislukuja, voidaan kahdeksalla bitillä esittää numerot välillä 0 - 255.

# video2017TRA13

Esimerkki. Kuinka monta bittiä tarvitaan kaikkien välillä 0 - 999 olevien kokonaislukujen esittämiseen?

Kyseessä on siis binäärilukujärjestelmän kantaluvun 2 korottaminen potenssiin , eli potenssifunktio. Potenssifunktion käänteisfunktio on logaritmifunktio, tässä tapauksessa siis 2-kantainen logaritmifunktio. Jotta saadaan ratkaistua, otetaan yhtälön molemmista puolista 2-kantainen logaritmi

Vastaukseksi ei saatu kokonaislukua, nyt vastausta lähimmät kokonaisluvut antavat , mikä ei riitä lukujen 0 - 999 esittämiseen, ja , mikä puolestaan riittää. Eli lukujen 0 - 999 esittämiseen tarvitaan kymmenen bittiä, mutta osa bittikombinaatioista jää käyttämättä.

Yleisesti, jos meillä on erilaista elementtiä, niiden esittämiseen tarvittava minimi bittien lukumäärä on pienin kokonaisluku , siten että .

Tietokonejärjestelmissä tiedon esityksen perusyksikkö on bitti, binäärinen numero. Tavallinen nimitys 8 bitin ryhmälle on tavu, englanniksi byte, joskus käytetään myös termiä oktetti, englanniksi octet. Muun kokoisille bittiryhmille on myös nimityksiä, mutta ne eivät ole vakiintuneet ja esimerkiksi termiä sana käytetään ja on käytetty usean eri kokoisen bittiryhmän nimityksenä. Neljän bitin ryhmää kutsutaan puolitavuksi, englannin kielessä käytetään termiä nibble tai harvemmin nybble, missä y-kirjainta on käytetty linkittämään termi tavun englannin kieliseen sanaan byte.

Tietokoneiden käyttäessä tiedon esittämiseen bittejä, käytetään niiden yhteydessä mittayksikkönä usein 2:n potensseja ja nimenomaan sellaisia 2:n potensseja, jotka ovat lähellä jotain 10:n potenssia, kuten esimerkiksi

Value SI Value IEC
1000 k kilo 1024 Ki kibi
10002 M mega 1 0242 Mi mebi
10003 G giga 1 0243 Gi gibi
10004 T tera 1 0244 Ti tebi
10005 P peta 1 0245 Pi pebi
10006 E exa 1 0246 Ei exbi
10007 Z zetta 1 0247 Zi zebi
10008 Y yotta 1 0248 Yi yobi
# video2017TRA20

Tiedonsiirrossa käytetään yksikkönä bittiä sekunnissa, bit/s tai bps, sekä etuliitteinä SI-järjestelmän mukaisia etuliitteitä. Esimerkiksi 1 Gbit/s nopeudella toimiva Ethernet verkkokortti siirtää siis 1 000 000 000 bittiä sekunnissa. Huomioitavaa on se, että yleensä tietoliikenteessä tiedonsiirtonopeus ilmaistaan bittien tiedonsiirtonopeutena, kun taas siirrettävä data yleensä ilmaistaan tavuina. Toisaalta esimerkiksi kiintolevylle kirjoituksen ja lukemisen tiedonsiirtonopeus ilmaistaan esimerkiksi Windows käyttöjärjestelmässä tavuina sekunnissa. Koska 1 tavu on 8 bittiä, on esimerkiksi 1 Gbit/s = 125 MB/s = 125 000 000 tavua sekunnissa. Kun tiedonsiirtonopeuden yksikkönä on tavua sekunnissa, niin tavun lyhenteenä käytetään isoa B kirjainta. Pientä b kirjainta ei tulisi käyttää kuvaamaan bittiä, tosin joskus näkee käytettävän esim. termiä Mb/s, joka ei ole virallinen termi ja voi aiheuttaa sekaannusta siitä onko kyseessä Mbit/s vai MB/s.

Moi Ari, mielenkiinnosta konvertoin gigabitit megatavuiksi oheisen ilmaisen sivun kautta (https://convertlive.com/fi/u/muuntaa/gigabitti%C3%A4/muunna/megatavua#1) ja mietin, että miksiköhän laskee 1 Gbit 128 Megatavuksi?

av: oletan, että jokin virhe toteutuksessa, ehkä mennyt sekaisin eri yksiköt

21 Dec 21 (edited 22 Dec 21)
# video2017TRA23
# t1g
# t1h

Eikös 1024 Megabittiä ole täysin sama asia kuin 1 Gigabitti?

09 Aug 18

Tiedonsiirtonopeuksissa käytetään SI-järjestelmän mukaisia määrityksiä, jolloin 1 Gigabittiä sekunnissa (Gbit/s) == 1000 Megabittiä sekunnissa (Mbit/s)

14 Aug 18

Tietoverkkojen tekninen näkökulma visuaalisesti

Kartta Internetistä
Kartta Internetistä
# v2018L2_8
# videoJohdanto21

Internet - hallintanäkökulma

Internetin hallinta ei ole millään yksittäisellä organisaatiolla tai valtiolla. Internet koostuu sadoistatuhansista verkoista, joita hallitsevat verkkojen omistajat. Kuitenkin, jotta eri verkkojen välinen kommunikaatio olisi mahdollista, on täytynyt sopia yhteisistä säännöistä, kuten esimerkiksi se miten eri verkoissa sijaitsevat laitteet ymmärtävät kommunikoidessa toisiaan ja miten laitteet löytävät toisensa kommunikaatiota varten. Internetin alkuaikoina sen hallinta oli lähinnä yhdysvaltalaisilla organisaatioilla sekä yksittäisillä henkilöillä, koska yhdysvalloissa olivat ensimmäiset verkot, joista Internet on kehittynyt. Ajanmyötä hallintaa on siirretty kansainvälisille organisaatioille.

Internetin organisaatioissa ei ole tarkkaan määritettyä hierarkiaa. Organisaatioiden välillä on jonkinlaista hierarkiaa, lähinnä siten että jokin organisaatio ohjaa tai valtuuttaa jonkin toisen organisaation toimintaa. Esimerkiksi ICANN ohjaa IANA:n toimintaa ja antaa sille valtuudet jakaa IP osoitteita alueellisille rekistereille, englanniksi Regional Internet Registries (RIR). Englannin kielessä käytetään verbiä charter, jonka olen tässä tulkinnut suomen kieleen käsitteiksi ohjata ja valtuuttaa. Materiaalissa alla käytetään ohjata-verbiä kuvaamaan englannin kielistä charter-verbiä.

# v2018L2_9

Alla on listattu joitain Internetin hallintaan liittyviä organisaatioita, sekä lyhyesti niiden tärkeimpiä tehtäviä.

  • ICANN (Internet Corporation for Assigned Names and Numbers)
    • Ohjaa IANA (Internet Assigned Numbers Authority):ta
    • IANA on ICANNin edeltäjä, joka tänä päivänä käytännössä hallinnoi ICANN:in vastuulla olevia tehtäviä
    • IANA hallinnoi sitä miten Internetin laitteet löytävät toisensa
      • Internetin osoitteet (IP)
        • jakaa Internetosoitelohkoja aluellisille Internet rekistereille (RIR)
          • RIR:it jakaa osoitteita eteenpäin internetoperaattoreille
          • RIR:it muodostavat ICANN:in alaisen Address Supporting Organization (ASO):n
      • Hallinnoi Internetin ylätason verkkotunnukset, kuten .fi tai .helsinki
      • Hallinnoi ASN numeroita
      • Hallinnoi protokollanumeroita
  • IAB (Internet Architecture Board)
    • Kattojärjestö organisaatioille, jotka hallinnoivat Internetin teknistä kehitystä sekä dokumentointia ja standardointia, eli sitä miten Internetissä kommunikoidaan
  • IGF (Internet Governance Forum)
    • Keskustelufoorumi Internetin hallintaan liittyviin asioihin
  • ISOC (Internet Society)
    • Tavoitteena taata Internetin avoimuus, niin kehityksen, evoluution kuin käytön osalta
  • W3C (World Wide Web Consortium)
    • Internetin WWW-osan standardointiorganisaatio
Kuka hallitsee Internettiä?
Kuka hallitsee Internettiä?
"Fortunately, nobody owns the Internet, there is no centralized control, and nobody can turn it off. Its evolution depends on rough consensus about technical proposals, and on running code. Engineering feed-back from real implementations is more important than any architectural principles."

— B.Carpenter, RFC 1958, page 3

# videoJohdanto16

Request for Comments (RFC)

# v2018L2_10

RFC:t saivat alkunsa 1969, kun Internetin edeltäjän ARPANET:in toteutuksesta ja kehityksestä aloitettiin ylläpitämään muistioita. Muistioissa käsitellään tietoverkoissa tapahtuvaa tiedonsiirtoa useista näkökulmista. RFC:t keskittyvät pääosin tietoverkkojen teknisiin ominaisuuksiin, protokolliin ja ohjelmiin, niiden toimintaan ja toteutukseen. RFC:t sisältävät myös Internetin kehitykseen liittyviä muistioita tapaamisista, mielipiteitä sekä humoristisia dokumentteja.

  • Teknisiä ja muunlaisia muistioita Internetistä
    • Protokollien määrityksiä
    • Verkkosovellusten toteutuksesta
    • Mielipiteitä ja huumoria
  • Kaikki RFC:t eivät ole standardeja! RFC 1796
  • Internet standardien standardointi prosessi on kuvattu RFC 2026 dokumentissa.
  • Kuka tahansa voi ehdottaa muistiota RFC dokumentiksi - RFC 2223
  • Lista RFC-dokumenteista
# videoJohdanto18
Request for Comments (RFC) - Status
# v2018L2_11
# videoJohdanto20
Request for Comments (RFC) - Esimerkkejä
  • Internet Standard - RFC 3629
    • UTF-8, merkistökoodaus jota Internetissä tulisi käyttää
  • Proposed Standard - RFC 5246
    • TLS 1.2, jolla salataan esim. WWW-liikennettä
  • Draft Standard - RFC 4271
    • BGP, operaattoreiden välinen Internetin reittien selvittämiseksi
  • Best Current Practice - RFC 2119
    • RFC dokumenteissa käytettävät avainsanat
  • Informational - RFC 2324
    • Hyper Text Coffee Pot Control Protocol (HTCPCP/1.0)
  • Informational - RFC 2468
    • "A long time ago, in a network, far far away, a great adventure took place!"
  • Experimental - RFC 1149
    • Standard for the transmission of IP datagrams on avian carriers
  • Historic - RFC 5000
    • Internet Official Protocol Standards
# t1i

“Etsi RFC” -tehtävien tarkistin ei tällä hetkellä hyväksy sitä, että vastaus sisältää tyhjiä rivejä.

19 Sep 18 (edited 19 Sep 18)
# t1j

Internet - palvelunäkökulma

# videoJohdanto14

Tietoverkko, eli tietoliikenneinfrastruktuuri, mahdollistaa hajautetut palvelut. Palveluntarjoaja sekä palvelua käyttävä asiakas voivat sijaita missä vaan Internetissä. Lisäksi Internet on mahdollistanut sen että periaatteessa kuka vaan voi toimia palveluntarjoajana, ja toisaalta sen ettei palvelun tarjoajaa välttämättä tunneta.

Suuri osa Internetin palveluista voidaan lokeroida tiedon tuottamiseksi ja tiedon jakamiseksi. Aiemmin tiedon tuottaminen ja jakaminen oli harvojen toimijoiden käsissä, kuten myös Internetin alkuaikoina, ja tietoa tuottivat lähinnä toimijat, jotka siirsivät aiemmin tuottamaansa informaatiota digitaaliseksi verkon kautta saatavaksi. Tänä päivänä Internetissä on lukuisia palveluita, jotka mahdollistavat yksittäisen ihmisen tuottaman tiedon jakamisen hyvin laajalle vastaanottajajoukolle.

# v2018L2_12

Alla joitan Internetin palveluita, visualisoituna Kartta Internetin palveluista:

  • World Wide Web (WWW)
  • Sähköposti
  • Reaaliaikaset viestintäpalvelut
  • Sosiaaliset verkostot
  • Kartta-, reitti- ja ruuhkapalvelut
  • Tallennetun sekä suoran musiikin ja videokuvan striimaus
  • Ääni- ja videopuhelut
  • Moninpelit verkossa
  • Telnet

Internetin palvelut ovat hajautettuja ja ne sijaitsevat verkon reunalla, eli asiakas- ja palvelinlaitteet ovat verkon reunoilla ja itse verkon muodostavat reitittimet ja kytkimet, jotka välittävät hajautettujen sovellusten dataa, mutta eivät ole kiinnostuneita sovellusten datan sisällöistä. Reititinten yhteydessä mahdollisesti sijaitsevat tietoturvaa parantavat ohjelmistot ja laitteet voivat tutkia myös sovellusten lähettämää dataa.

Kuinka hajautetut sovellukset sitten voivat kommunikoida mielivaltaisen verkon läpi? Internetin runko tarjoaa palvelun, jolla se kuljettaa sovellusten lähettämää dataa ja päätelaitteet verkon reunalla tarjoavat rajapinnan, jonka avulla Internettiä voi käyttää. Tämän rajapinnan nimi on sokettirajapinta, jonka päätelaitteen käyttöjärjestelmä tarjoaa. Verkkosovelluksen tekijän täytyy opetella sokettirajapinnan käyttö, jotta viestien vaihto Internetin yli on mahdollista. Käytännössä sokettirajapintaa käytetään jollain ohjelmointikielellä, mutta ensin täytyy ymmärtää sokettirajapinnan kautta saavutettavat palvelut, eli Internetin runkoverkon tarjoamat palvelut, päätelaitteissa sijaitsevat kuljetuspalvelut ja niiden toteutus.

# video2018Luento3

Hajautetun sovelluksen, eli kahdessa tai useammassa eri laitteessa toimivan sovelluksen, voi toteuttaa erilaisilla arkkitehtuureilla tai malleilla. Alla on listattu Internetin erilaisia malleja tai arkkitehtuureita sekä infrastruktuureja, joilla palveluita tarjotaan.

# v2018L3_1

Asiakas-palvelin -malli

Asiakas-palvelin -malli oli ensimmäinen palvelumalli Internetin kehittyessä, jossa yksi laite tarjoaa palvelua (palvelin) ja toinen laite (asiakas) pyytää palvelua. Yhden palvelimen palveluita voi käyttää useat eri asiakkaat, myös samaan aikaan. Esimerkkejä asiakas-palvelin -mallin mukaisista hajautetuista sovelluksista ovat esimerkiksi WWW, sähköposti, verkkolevy tai verkkotulostus. Nykyään palvelu voi lisäksi olla hajautettu useammalle fyysiselle tai virtuaaliselle palvelimelle.

Vertaisverkkomalli

Vertaisverkkomallissa hajautettua sovellusta käyttävät laitteet eivät ole jaoteltu palvelun tarjoajiin ja palvelun käyttäjiin, vaan kaikki vertaisverkon laitteet sekä tarjoavat että käyttävät hajautetun sovelluksen palveluita. Laitteilla ei siis ole vastaavia palvelimen ja asiakkaan rooleja, kuten asiakas-palvelin -mallissa, vaan laitteet ovat vertaisia, jokaisen toimiessa sekä palvelimena että asiakkaan. Vertaisverkkomallia käytettään esimerkiksi tiedostojen, laskentakapasiteetin sekä kaistanleveyden jakamisessa. Vertaisverkkomallin etuna perinteiseen asiakas-palvelin -malliin on esimerkiksi nopeus tiedoston lataamisessa. Asiakas-palvelin -mallissa tiedoston lataamisnopeutta palvelimelta rajoittaa muut samanaikaiset lataajat ja palvelimen resurssit tai palvelimen verkkoyhteys voi ruuhkautua. Vertaisverkossa kaikki tiedostoa itselleen lataavat laitteet, toimivat toisille laitteille lähteenä, josta muut voivat ladata tiedostoa. Tiedoston lataaminen voidaan käytännössä tehdä rinnakkain koko verkossa samanaikaisesti, sen sijaan että verkon laitteet omalla vuorollaan käyvät lataamassa tiedoston.

# v2018L3_2

Pilvilaskenta

# v2018L3_3

Pilvilaskenta, englanniksi cloud computing, ei varsinaisesti ole sinällään palvelumalli. Pilvilaskennassa päätelaitteessa toimivan sovelluksen tarvitsemat resurssit ja laskentateho eivät ole päätelaitteessa vaan verkossa sijaitsevassa palvelimessa. Pilvi-termiä alettiin käyttämään jo Internetin edeltäjän, ARPANET:in, alkuaikoina kuvaamaan verkossa sijaitsevia laskentaa suorittavaa laitetta sekä myöhemmin Internettiä tai sen osaa. Pilvilaskenta on siis verkossa tapahtuvaa laskentaa ja pilvipalvelut ovat palveluita, joiden toteutus on siirretty verkkoon. Oikeastaan asiakas-palvelin -malli on yksi pilvipalvelun muoto, esimerkiksi sähköpostisovelluksessa suuri osa sovelluksen toiminnasta, kuten sähköpostit ja niiden välitys, hallitaan verkossa sijaitsevalla sähköpostipalvelimella.

Pilvipalvelut ovat laajentuneet perinteisistä hajautetuista sovelluksista, kuten WWW, käsittämään myös aiemmin vain paikallisissa laitteissa ajettuja sovelluksia. Nykyään suurinta osaa toimistosovelluksia, kuten tekstinkäsittely tai taulukkolaskenta, on mahdollista käyttää pilvipalveluna. Pilvipalvelusovellus, on sellainen, jossa itse sovellus toimii pilvipalvelun tarjoajan verkossa ja sitä käytetään verkon yli erilaisista päätelaitteista, yleensä verkkoselaimella.

Pilvipalveluiden hyötynä palvelun käyttäjille on se, että sovellusten ja laitteiden ylläpidon voi ulkoistaa jolloin itse voi keskittyä palveluiden käyttöön. Esimerkiksi yrityksen ei tarvitse käyttää aikaa ohjelmistojen ja laitteiden päivitykseen ja tietoturvasta huolehtimiseen, kun pilvipalveluntarjoaja tekee sen osana tarjoamaansa palvelua.

Pilvipalvelujen huonona puolena voidaan pitää esimerkiksi sitä että, kun valitsee jonkin pilvipalvelun, voi olla hankala siirtyä toisen pilvipalvelun käyttäjäksi, koska siirtyminen erilaisten palveluiden välillä voi vaatia suuria muutoksia vanhalla palvelulla toteutettuun työhön. Tietoturva ja tiedon yksityisyys saattavat olla jonkin asteisen epäluottamuksen kohde, kun kaikki oma tieto on pilvipalvelun tarjoajan verkossa. Esimerkiksi pilvipalvelun palvelimien sijainti eri valtioissa määrittelee sen minkälaista lainsäädäntöä noudatetaan.

# v2018L3_5

Pilvipalvelut luokitellaan sen mukaan minkälaista palvelua ne tarjoavat. Luokkia on useita, ja osa pilvipalveluista tarjoaa useaan eri luokkaan kuuluvia palveluita. Yleisimmät pilvipalveluluokat ovat kolme pääluokkaa:

  • SaaS (Software as a Service), ohjelmisto palveluna
    • Voidaan käyttää verkossa sijaitsevia sovelluksia
    • Ilmaisia tai maksetaan käytön mukaan
    • Käytettävissä
      • miltä tahansa Internettiin yhteydessä olevalta laitteelta
      • verkkoselaimella, mobiilisovelluksella, pääteyhteydellä, …
    • Toimistosovelluksia, sähköposti, pelejä, yhteistyösovelluksia, …
    • Esim. Google docs, Office 365, Slack, Overleaf, GitHub, Dropbox, Amazon AWS, …
  • PaaS (Platform as a Service), palvelinalusta palveluna
# videoJohdanto15

Sumulaskenta

# v2018L3_4

Sumulaskenta, englanniksi Fog computing tai Fog networking on uusi tutkimus- ja kehityssuunta, jossa verkossa, eli pilvessä, sijaitseva laskenta tuodaan lähemmäksi päätelaitteita ja käyttäjiä. Terminä sumu on keksitty siitä että aiemmin pilvessä, eli 'taivaalla', sijaitseva laskenta tuodaan lähemmäksi käyttäjiä, eli 'maanpintaa', ja näin pilvi muuttuu sumuksi. Sumulaskennan ideana on ottaa hyötykäyttöön miljardit Internettiin yhdistetyt laitteet, jotka ovat lähellä käyttäjiä, mutta käyttöä vailla. Hyötynä olisi laitteiden fyysinen läheisyys, jolloin tiedonsiirto laitteiden välillä olisi nopeampaa, eikä kärsisi Intenetin muun liikenteen aiheuttamasta ruuhkasta. Sumulaskennassa esimerkiksi tabletilla toimistosovellusta käyttettäessä, sovellus ei olisikaan hajautettu pilvipalveluun, vaan lähistöllä sijaitseviin, usein samaanaikaan käyttämättömiin, laitteisiin, kuten esimerkiksi puhelin, tietokone, televisio tai jääkaappi. Ongelmana tällä hetkellä on löytää toimiva malli esimerkiksi sille, kuinka järjestelmää ylläpidetään ja laskutetaan sekä miten laitteiden omistajille korvataan tarjottu laskentateho, talletuskapasiteetti tai verkonkäyttö. Sumulaskenta tukisi esineiden Internettiä, eli kun yhä useampaan laitteesiin lisätään nykyään yhteys Internettiin sekä laskentakapasiteettia, niin ne saataisiin parempaan hyötykäyttöön.

Esineiden Internet

Esineiden Internetiksi, englanniksi Internet of Things (IoT), kutsutaan Internet-verkon osaa, jonka laitteet eivät ole perinteisiä Internettiin kytkettyjä laitteita. IoT-laitteet ovat mitä tahansa laitteita, joihin on liitetty verkkoyhteys Internettiin, elektroniikkaa sekä ohjelmistoa. Tosin IoT-laitteelle ei ole yhtä ainoaa vakiintunutta määritelmää. Yleensä IoT-laitteen Internettiin yhteydessä olevat osat ovat lisäksi kooltaan ja virrankulutukseltaan pieniä. Yhteys Internetin välityksellä toisiin laitteisiin mahdollistaa tiedon lähettämisen tai vastaanottamisen IoT-laitteiden ja Internettiin kytkettyjen muiden laitteiden välillä. IoT-laitteet tarjoavat yleensä jonkinlaista palvelua, esimerkiksi välittävät sensoreidensa avulla tietoa lämpötilasta tai mahdollistavat valojen etäohjauksen Internetin yli. IoT-laitteiden yhdistämiseksi Internettiin on useita eri tekniikoita, monet niistä langattomia teknologioita. Jotta IoT-laite voi olla yhteydessä Internettiin, täytyy laitteeseen olla toteutettu myös Internet Protokolla (IP). Joissain tapauksissa IoT-laitteeksi kutsutaan myös sellaisia laitteita, jotka eivät kykene itse kommunikoimaan Internttiin kytkettyjen laitteiden kanssa. Silloinkin laitteen tulee verkottua ja kommunikoida jonkin toisen laitteen kanssa, joka hoitaa kommunikoinnin Internettiin yhdistettyjen laitteiden kanssa.

Protokollat tietoverkoissa

# v2018L3_6

Tietoverkon laitteet eivät kykenisi ymmärtämään toisiaan ilman tietoverkoissa käytettäviä protokollia, tietoliikenneprotokollia. Englanniksi niistä käytetään termiä (computer) network protocol, eli verkkoprotokolla, tai communication protocol, eli protokolla kommunikaatioon, erityisesti tietoverkkojen tapauksessa verkkoon yhdistettyjen laitteiden väliseen kommunikaatioon.

Mihin protokollia tarvitaan? Otetaan esimerkki ihmisten välisestä kommunikaatiosta, joka usein perustuu jonkinlaiseen protokollaan. Kun esimkerkiksi luentosalissa opiskelijalla on jonkin kysymys opettajalle, täytyy hänen kiinnittää opettajan huomio itseensä jollakin tavalla. Ensimmäisenä tulee mieleen esimerkiksi seuraavat vaihtoehdot: (i) opiskelija nostaa kätensä pystyyn, (ii) opiskelija pyytää luvan sanallisesti: "Saanko esittää kysymyksen?" tai (iii) opiskelija kysyy kysymyksensä suoraan. Varmasti muitakin tapoja on, mutta huomattavaa on se että kysymyksen esittämiseen on jonkinlainen tapa aloittaa kommunikaatio. Ihmisten kesken kommunikaation sääntöjen ei aina tarvitse olla tarkkaan määritelty, koska ihminen kykenee tulkitsemaan viestintää tilanteen ja esimerkiksi aiemman kokemuksen mukaan. Kommunikaation aloitusmekanismin lisäksi myös kommunikaatioon käytetyt viestejä voi olla useita erilaisia, esimerkiksi "voinko esittää kysymyksen", "saako kysyä" tai "minulla olisi kysymys tai pari" ja silti opettaja ymmärtää viestin.

# videoJohdanto45

Kun kaksi laitetta kommunikoi, ei ole järkevää määritellä kommunikaatiolle esimerkiksi useita erilaisia viestejä, jotka tarkoittavat samaa asiaa. Jos esimerkiksi verkkoselain kysyy WWW-palvelimelta, että "onko tietty WWW-sivu muuttunut sen jälkeen kuin viimeksi kysyin", niin tehokkaasti toteutettu kommunikaatio vaatinee sen että kysymyksen esittäminen on tarkkaan määritelty. Pitää olla protokolla, jota noudatetaan laitteiden tai niissä ajettavien ohjelmistojen kommunikoidessa keskenään. Protokollat siis määrittelevät säännöt tietoverkoissa tapahtuvaan kommunikaatioon.

# videoJohdanto46
# v2018L3_7

Protokollan määritelmä, eli säännöt, sisältävät

  • syntaksin
    • symbolien yhdistelmät, jotka ovat sallittuja kommunikaatiossa
      • eli 'sanat protokollan käyttämässä kielessä'
    • symboliyhdistelmien järjestys, jotka ovat sallittuja kommunikaatiossa
      • eli 'kielioppi protokollan käyttämässä kielessä'
    • Esimerkiksi
      • GET sivu HTTP/1.1
      • välilyönnillä erotellaan sallitut symbolien yhdistelmät
      • myös symboliyhdistelmien paikat on määritelty, eli järjestyksellä on väliä
  • semantiikan
    • symboliyhdistelmien tarkoituksen kommunikaatiossa
      • eli 'sanojen merkityksen protokollan käyttämässä kielessä'
      • Esimerkiksi
        • GET tarkoittaa "lähetä minulle"
        • sivu on sen WWW-sivun nimi jota pyydetään lähettämään
        • HTTP/1.1 on protokolla, jota kommunikaatioon käytetään
    • Kuinka symboliyhdistelmiin reagoidaan
      • Esimerkiksi sivunlähetys-pyyntöön reagoidaan
        • lähettämällä pyydetty sivu
        • tai syy, miksi sivua ei lähetetty
  • ajoituksen
    • sallitun järjestyksen viesteille kommunikaatiossa
    • Esimerkiksi sähköpostiprotokollassa ennen sähköpostin tekstiosaa pitää määritellä lähettäjä ja vastaanottaja
  • virheistä toipumisen
    • mahdolliset mekanismit virheistä toipumiseen
    • jos kommunikaatio ei ole määritysten mukaista, ei osapuolet ymmärrä toisiaan
# videoJohdanto10

Sokettirajapinta

# v2018L3_8

Sokettirajapinta on käyttöjärjestelmän tarjoama palvelu, jonka avulla sovellusten käyttämät protokollat, sovellusprotokollat, voivat kommunikoida Internet-verkossa sijaitsevien laitteiden kanssa. Sokettirajapinnan avulla voidaan esimerkiksi hakea WWW-sivu WWW-palvelimelta, kun tiedetään palvelimen ja sen tarjoaman palvelun osoitteet, internetosoite ja porttinumero. Lisäksi täytyy tuntea käytetty sovellusprotokolla, joka WWW-palvelun osalta on HTTP.

Vuoden 2017 luentokalvoilla on käytetty PHP-ohjelmointikieltä visualisoimaan sokettirajapinnan käyttöä.

# videoJohdanto12

Sokettirajapintaan ja HTTP protokollaan tutustutaan myöhemmin, mutta voit kokeilla alla olevaa esimerkkiä, jossa sokettirajapinnan kautta heataan WWW-palvelimelta WWW-sivu. Alla oleva ohjelma toimii asiakkaana, joka tekee pyynnön WWW-palvelimen oletusresurssin hakemiseksi. Ohjelma tulostaa tekstinä HTTP-protokollan mukaiset viestit, sekä HTML-sivun, jonka se saa palvelimelta.

# wwwexamplecom

Ohjelma on toteutettu Python-ohjelmointikielellä, tosin koodi on piilotettu lukuunottamatta WWW-palvelimen nimen määritystä. Tietoverkossa hajautetun sovelluksen kommunikoivat osapuolet voidaan toteuttaa millä tahansa ohjelmointikielellä, kunhan kommunikoinnissa käytetään ja noudatetaan yhteistä protokollaa.

# t2b
# t2c

Internetin rakenne

# v2018L3_9

Internet on maailmanlaajuinen tietoverkko, joka koostuu sadoista tuhansista erikokoisista verkoista. Internetin rungon muodostavat suurten internetoperaattoreiden verkot, jotka yhdessä muodostavat maapallon kattavan alueen. Käytännössä runkoverkkoja pitkin tietoa voi siirtää mihin tahansa maapallolle.

Internetoperaattorit

Internetoperaattorit jaotellaan eri tasoisiksi ja Internetin runkoverkon muodostavien operaattoreiden sanotaan kuuluvan Tier 1 -verkkojen kategoriaan. Määritelmä Tier 1 -verkkojen kategoriaan kuulumisesta ei ole tarkka. Tier 1 -verkkojen kategoriaan sanotaan kuuluvan internetoperaattorit, jotka eivät maksa siitä että ne välittävät toistensa yhdysliikennettä. Englannniksi yhdysliikenteen välitykselle on termi peering, jota myös suomenkielessä käytetään. Tier 1 -operaattoreilla on peering-sopimukset kaikkien muiden Tier 1 -operaattoreiden kanssa siitä että niiden, ja niiden asiakkaiden, peering-liikenne on ilmaista. Asiakkaat, eli pienemmät internetoperaattorit, maksavat siis liikenteensä välityksestä Tier 1 operaattoreiden kautta, mutta Tier 1 -verkkojen välillä asiakkaiden liikenne siirretään ilman että Tier 1 -operaattorit maksavat toisilleen.

Jos internetoperaattori joutuu maksamaan toiselle internetoperaattorille, siitä että liikenne kulkee toisen operaattorin verkon kautta, niin maksava internetoperaattori ei kuulu Tier 1 -verkkoihin. Koska internetoperaattorien väliset sopimukset eivät ole aina julkisia, ei voida täydellä varmuudella sanoa mitkä ovat Tier 1 -internetoperaattoreita. Internetyhteisö arvioi Tier 1 -verkkoihin kuuluvan tällä hetkellä noin 15 internetoperaattoria.

Tier 2 -verkko on erään määritelmän mukaan sellainen internetoperaattori, joka joutuu maksamaan Tier 1 -operaattoreille, mutta joka kykenee tekemään ei-maksullisia peering-sopimuksia pienempien internetoperaattoreiden kanssa. Eli johonkin osaan verkkoa liikenteen välitys on Tier 2 -operaattoreille maksutonta ja muualle Internettiin maksullista. Liikennettä, joka kulkee eri tasoilla sijaitsevien internetoperaattorien verkkojen välillä, kutsutaan välitysliikenteeksi tai usein englannin kielisen termin mukaan transit-liikenteeksi. Peering-liikennettä on sellainen internetoperaattorien liikenne, joka on samantasoisten (peer tarkoittaa vertaista) operaattoreiden välistä liikennettä. Yleisesti transit-liikenne on maksullista ja peering-liikenne on maksutonta.

Tier 3 -verkko on erään määritelmän mukaan sellaisen internetoperaattorin verkko, joka joutuu aina maksamaan liikenteen välityksestä oman verkon ulkopuolelle. Käytännössä näin on silloin kun verkolla ei ole fyysisiä yhteyksiä toisiin saman tason verkkoihin, jotta se voisi tehdä niiden kanssa peering-sopimuksia. Käytännössä Tier 3 -verkkojen kategoria voi jakautua vielä useampaan osaan. Liityntäverkoksi, englanniksi access network, kutsutaan verkkoa, joka tarjoaa internetyhteyksiä henkilö- tai yritysasiakkailleen. Liityntäverkon ei tarvitse olla internetoperaattori.

# videoJohdanto22

Jyväskylän yliopiston liittyminen Internettiin

# v2018L3_10

Jyväskylän yliopisto tarjoaa internetyhteyden henkilöstölleen sekä opiskelijoille. Jyväskylän yliopiston tietoverkko on yhdistetty FUNET (Finnish University and Research Network) -runkoverkkoon, joka on suomen korkeakoulujen ja tutkimuslaitosten tietoverkko. FUNET-verkkoa hallinnoi opetusministeriön alainen CSC - Tieteen tietotekniikan keskus ja joissain yhteyksissä FUNET-verkkoa kutsutaan CSC-verkoksi. Se, onko Jyväskylän yliopiston tietoverkko vai FUNET -verkko vai ei kumpikaan Tier 3 -verkko, riippunee Tier 3 -verkkokategorian määrityksestä. FUNET-verkko on yhdistetty Internettiin NORDUnet- verkon kautta, joka on pohjoismaisten tutkimus- ja koulutusverkkojen yhteisorganisaatio. NORDUnet-verkko kytkeytyy muuhun Internettiin Telian siirtoverkon kautta. NORDUnet on osa Eurooppalaista tutkimus- ja koulutusorganisaatioiden GÉANT-verkkoa, joka tarjoaa yhteydet eurooppalaisten korkeakoulujen ja tutkimuslaitosten välille.

FUNET NORDUNET GEANT
FUNET-runkoverkko NORDUNET GEANT
# v2018L3_11

Kun FUNET-verkosta kommunikoidaan suomessa sijaitsevien verkkojen kanssa, ei ole tarvetta välittää liikennettä NORDUnet verkkoon. Suomessa sijaitsevat verkot voivat välittää liikennettä toisilleen Suomessa sijaitsevien Internet-liikenteen solmupisteiden, englanniksi Internet exchange point (IXP), kautta. IXP-solmupisteet välittävät peering-liikennettä niihin liittyneiden verkkojen välillä, verkkojen välisten peering-sopimusten mukaisesti. IXP-solmupisteet laskuttavat pienen summan jäseniltään, eli solmupisteen kautta liikennöiviltä operaattoreilta, laitteiden ylläpitoa varten. Suomessa on keväällä 2018 kaksi IXP-solmupisteiden tarjoajaa FICIX ja TREX. FICIX:in solmupisteet sijaitsevat Espoossa, Helsingissä sekä Oulussa ja TREX:in ainoa solmupiste sijaitsee Tampereella. Alla on interaktiivinen kartta, joka näyttää maailman IXP-solmupisteiden sijainnin. Kartalta löytyy mm. uusia IXP-solmupisteen tarjoajia, jotka ovat aloittaneet palvelun pääkaupunkiseudulla.

Silloin kun internetoperaattorit yhdistävät verkkonsa ilman IXP-solmupisteitä, muodostetaan yhteys PoP (Point of Presense) -liityntöjen kautta. PoP on solmukohta internetoperaattorin verkon reunalla, jonka kautta liikennettä voidaan välittää sisään ja ulos verkosta. Kun kahden operaattorin välillä on suora fyysinen yhteys, on kyseessä yksityinen liikenteenvälitys, englanniksi private peering. IXP-solmupisteiden kautta toteutettava liikenteenvaihto on julkista, englanniksi public peering.

# itkp104Tier

Onko tässä mahdollista saada täysiä pisteitä? Omasta mielestäni vastaus on oikein mutta saan 0.8 pistettä. Ymmärrän että Peering on sitä, että liikenne menee operaattoreiden välillä ilmaiseksi: siten vaakatasossa oleviin “pilviin” tulee tier 2 verkko. Ongelma vaan on, että tier 3 verkot (sijoittuvat pohjois-eteläsuuntaan) ovat transitin takana vain osittain. Miten nämä tulisi sijoittaa, että saa täydet pisteet?

18 Sep 18

Verkkojen sijoittelussa näyttääkin olevan vaihtoehtoja, oikeaan sijoitteluun pääsee oletuksella että Tier 2 verkot ovat molemmat yhteydessä Tier 1 verkkoon.

18 Sep 18

Esimerkkejä Tier operaattoreista

Image Image Image

  • Karkea luennoitsijan esimerkki kolmen operaattorin sijoittumisesta eri renkaisiin:
    • Tier 1: TeliaSonera
    • Tier 2: Nordunet
    • Tier 3: Funet

Edellisissä kuvissa oli selvitetty reitti operaattoreiden verkkoihin. Kuvissa näkyy myös millisekuntiluokkaa oleva viive, joka Internetin pakettikytkentäisessä verkossa riippuu mm. etäisyydestä sekä muusta internet-liikenteestä. Kun haluaa selvittää viiveen johonkin tiettyyn palvelimeen, voi käyttää käyttöjärjestelmien komentoriviltä ajettavaa ping-ohjelmaa. Kaikki kohteet eivät välttämättä vastaa ping-ohjelman käyttämiin viesteihin, jos esimerkiksi palomuurin säännöt estävät vastaamisen. Palvelin tim.jyu.fi ei esimerkiksi vastaa yliopiston verkkoalueen ulkopuolisiin kyselyihin.

# t1ping

tim.jyu.fi ei vastaa yliopiston verkkoalueen ulkopuolisiin kyselyihin, tarkistin hyväksyy nyt myös epäonnistuneet ping-pyynnöt tim.jyu.fi palvelimeen. Annoin 22.8.2018 klo 14:41 pisteet opiskelijoille jotka eivät olleet saaneet pisteitä epäonnistuneista pyynnöistä. Vastauksessa tulee näkyä rivit, joissa on palvelimen nimi tai IP osoite.

22 Aug 18 (edited 22 Aug 18)

en saa tästäkään pisteitä. teen kyselyä Helsingissä

18 Sep 18

18.9.2018 Muokattu tarkistinta, jotta huomioi useamman eri tyyppisen tulosteen, siinä tapauksessa ettei ping onnistu. Annettu pisteet niille, jotka eivät olleet saaneet, kun tarkistin ei huomioinut kaikkia vaihtoehtoja.

18 Sep 18

En saa tästä pisteitä.

04 Dec 18

Päivitetty tukemaan suomenkielistä Ping-isäntä tulostetta. Lisätty ohjeistusta.

05 Dec 18

Käyttöjärjestelmistä löytyy traceroute-ohjelma, jolla voi selvittää reitin johonkin verkkotunnukseen tai IP osoitteeseen. Ohjelma selvittää reitillä sijaitsevat reitittimet, jotkin reitittimet eivät tosin reagoi traceroute-ohjelman viesteihin.

# t2h

Tarviiko tähän jonkun tietyn reitin, kun ei anna pisteitä minun koneen antamasta reitistä?

05 Apr 18

Traceroute tehtäviin tarvitsee kopioida kaikki ohjelman tuottamat tekstit. Esim. alla Windows, samalla periaatteella Linux ja Mac, vaikka tulosteet on erilaisia, niin regexp-tarkistimeni pitäisi ne hyväksyä

Tracing route to tim.jyu.fi [130.234.173.8]
over a maximum of 30 hops:

  1     1 ms    <1 ms    <1 ms  10.96.128.3
  ... (tässä voi olla mikä tahansa reitti)
  6     3 ms     1 ms     1 ms  tim01.it.jyu.fi [130.234.173.8]
06 Apr 18

Päivitetty 23.8.2018, jotta hyväksyy myös epäonnistuneet traceroute:t, kun tim.jyu.fi ei vastaa, jos kysely tulee yliopiston verkkoalueen ulkopuolelta. Lisätty tuki myös suomenkieliselle traceroute tulosteelle. Annettu pisteet niille, jotka eivät pisteitä olleet saaneet yo. tapauksissa.

22 Aug 18 (edited 23 Aug 18)

En saa tästä pisteitä. Reitti päättyy ficix1:een ja sen saan vaan request timed out.

18 Sep 18

Traceroute kopioitu, ei pisteitä.

21 Mar 19

Tarkistin päivitetty, nyt pitäisi toimia.

21 Mar 19
# t2i

ei saa pisteitä vaikka kopioi samalla tavalla kuin edellisessä (h)-kohdassa?

22 Mar 18

Tarkistin ei tukenut IPv6 protokollaa! Nyt example.com tarkistin pitäisi toimia myös IPv6 protokollalla. Näköjään DNA:lta on Telian verkon kautta IPv6 tuki example.com palvelimelle asti :)

06 Apr 18 (edited 06 Apr 18)

Ei taida pelata vieläkään

10 Apr 18

Ei toiminut jos teki trace:n example.com eikä www.example.com osoitteeseen. Poistin nyt tuon www vaatimuksen. Lisäänpä vielä että voi tehdä trace:n myös (www).example.org palvelimeen. Annoin 22.8.2018 pisteitä niille, joiden kohdalta huomasin ettei ollut pisteitä ennen edellä kuvattuja muutoksia.

11 Apr 18 (edited 22 Aug 18)

Jos et saanut pisteitä, huomaa sana kokonaisuudessaan, eli kopioi kaikki mitä ohjelma tulostaa. Ota yhteyttä, jos on ongelmia.

22 Aug 18 (edited 22 Aug 18)

En saa pisteitä vaikka kopion kaiken, jonka ohjelma tulostaa.

18 Sep 18

Tarkistin vaihdettu (g)-kohtaan 14.2.2019. Psteet annettu manuaalisesti niille, joidenvastaus menisi uudesta tarkistimesta läpi.

Tarkistin on nyt toteutettu pythonilla ja antaa palautetta virheistä, joita se havaitsee vastauksessa. Aiemmin tarkistin perustui regex-tarkastukseeen.

Voit tallentaa vastauksen uudelleen halutessasi. Kommentti tai sähköpostia opettajalle, jos havaitsette jotain toimimattomuutta.

14 Feb 19

Alla olevaan kuvaan on piirretty muutamia reittejä internetoperaattoreiden verkkoihin. Reitit on selvitetty traceroute-ohjelman avulla.

Jyu liittyminen Internettiin
Jyu liittyminen Internettiin
# v2018L3_12
# videoJohdanto23

Alla on Tier 1 -verkoksi lukeutuvan Telian siirtoverkon (AS1299) IP osoitteiden jakautuminen maantieteellisesti.

Yhteys Internettiin

# videoJohdanto24

Fyysinen tiedonsiirtotekniikka

# v2018L3_13

Fyysisen tiedonsiirtotekniikan tehtävänä on muuntaa digitaalinen informaatio, eli bitit, fyysiseksi signaaliksi, joka lähetetään joko langattomasti tai langallisesti toiselle laitteelle. Fyysisiä tiedonsiirtotekniikoita on kehitetty useita erilaisiin tarpeisiin ja tekniikoiden kehitys jatkuu pääpainona tiedonsiirtonopeuksien kasvattaminen. Tekniikan tiedonsiirtonopeus ilmaistaan yleensä ns. teoreettisena maksiminopeutena, joka kuvaa fyysisen signaalin kykyä siirtää digitaalista informaatiota, ilman virheitä. Käytännössä, tiedonsiirtonopeuden ja -etäisyyden kasvattaminen lisää virheitä fyysisen signaalin tulkinnassa. Virheiden korjaaminen on yksi tekijä, mikä pienentää tiedonsiirtonopeutta ja monesti, varsinkin langattomissa tekniikoissa, käytännön tiedonsiirtonopeuksissa ei päästä kovinkaan lähelle teoreettista maksiminopeutta.

  • Valokuitukaapeli
    • Tiedonsiirtonopeus 15-20 Terabittiä sekunnissa
      • lähiaikoina nelinkertaistunee, ennuste satoja Terabittejä sekunnissa
      • Parannukset lisäämällä kanavien määriä (eri aallonpituuksia samaan kaapeliin)
      • sekä kasvattamalla yksittäisen kanavan kapasiteettia
  • Ethernet parikaapeli, IEEE 802.3
    • 'normaali' on 10 Mbit/s - 1 Gbit/s
      • parannukset kaapelitekniikkaa parantamalla
    • 10 Gbit/s kuparikaapelilla vain fullduplex
      • vanhoja kytkimiä ja kaapeleita ei voi käyttää
    • 10+ Gbit/s sasavutettavissa valokuitu-Ethernetillä
  • Kaapelimodeemi vs. ADSL
    • Kaapelimodeemi
      • jaettu tiedonsiirtomedia
      • siirto kaapeli-TV:n koaksiaalikaapelissa
      • teoreettinen maksimi 100+ Mbit/s
    • ADSL
      • dedikoitu tiedonsiirtomedia
      • käyttää puhelinkaapeleita eli parikaapelia
      • ADSL2+ teoreettinen maksimi 24 Mbit/s
# video2018Luento4
# v2018L4_1
  • Langaton tiedonsiirtotekniikka
    • Nopeuteen vaikuttaa mm.
      • etäisyys
        • radiotaajuisen signaalin voimakkuus kääntäen verrannollinen etäisyyden neliöön
      • muut käyttäjät
        • radioresurssien jakaminen
      • esteet
        • radioaallot vaimenee esteen läpäistessään
      • liike
        • käyttäjän oma liike
          • Doppler siirtymä
        • muu liike käyttäjän ympärillä
      • monitie-eteneminen
        • signaali heijastuu ympäristöstä
        • eri aikoihin saapuu kopioita signaalista
      • radiotaajuinen häiriö muista laitteista tai järjestelmistä
      • ...
  • Langattomat lähiverkot, WLAN (WiFi), IEEE 802.11
    • 802.11 (legacy), vuonna 1997: 1-2 Mbit/s, taajuusalueella 2.4 Ghz
    • 802.11b, vuonna 1999: 11 Mbit/s, taajuusalueella 2.4 Ghz
    • 802.11a, vuonna 1999: 54 Mbit/s, taajuusalueella 5 Ghz
    • 802.11g, vuonna 2003: 54 Mbit/s, taajuusalueella 2.4 Ghz
    • 802.11n, vuonna 2009: 600 Mbit/s, taajuusalueella 2.4 ja 5 Ghz
    • 802.11ac, vuonna 2013: 1300 Mbit/s, taajuusalueella 5 Ghz
    • 802.11ad, vuonna 2013: 7 Gbit/s, taajuusalueella 60 Ghz
    • Vuonna 2018 yleisesti käytössä 802.11ac tai 802.11n
  • Langattomat pitkän kantaman yhteydet IoT-laitteille
    • Pienen tehon ja pienen siirtonopeuden verkkoja pitkälle kantamalle
      • Low-Power Wide-Area Network (LPWAN)
    • Esimerkiksi:
# videoJohdanto27
# v2018L4_2

Alla on virtuaalinen oskilloskooppi, joka näyttää esimerkiksi tietokoneen mikrofoonin kuulemaa ääntä, valitse Input lähteeksi Live Input. Live Input toimii ainakin uusimmissa Chrome selaimissa, muissa se ei näy Input-valikossa, katso tarkempia tietoja linkistä, joka löytyy oskilloskoopista. Jos Live Input ei toimi TIM-sivulla, kokeile linkin takana olevaa sivua, selain pyytää luvan käytää tietokoneen mikrofonia. Oskilloskooppi visualisoi äänen näytöllään analogisena.

# t1ieee802_3
# t1ieee802_11

Ethernet-tekniikka

# v2018L4_3
Bitit Ethernet kaapelin jännitevaihteluina
Bitit Ethernet kaapelin jännitevaihteluina
# videoJohdanto25

Verkkotopologiat

# v2018L4_4

# videoJohdanto29
# itkp104topologiatest

Verkon ydin

Internet-verkon ydin muodostuu yhteenkytketyistä internetoperaattoreiden verkoista, jotka puolestaan muodostuvat yhteenkytketyistä laitteista, jotka välittävät internetliikennettä. Yksittäiset linkit kytkevät kaksi laitetta toisiinsa, mutta miten kytketään koko verkon läpi reitti, jota pitkin digitaalinen informaatio viedään perille?

Yleinen lankapuhelinverkko on esimerkki verkosta, jossa reitti verkon läpi kytketään, eli muodostetaan, ennen kuin puhelinyhteydellä voi kommunikoida. Puhelinverkossa puhelu ohjautuu puhelinkeskukseen, josta se ohjataan soitetun numeron perusteella eteenpäin. Eli puhelinkeskukseen ohjautuu puhelunaloituspyyntö puhelinjohtoa pitkin ja keskuksessa soittajan puhelinjohto kytketään yhteen sellaisen johdon kanssa, jota kautta saadaan yhteys muodostettua vastaanottajaan. Kun yhteys on muodostettu, on kommunikaatiokumppaneiden välille muodostettu dedikoitu tiedonsiirtokanava, josta käytetään nimitystä piiri, englanniksi circuit. Tällaisesta verkosta käytetään nimitystä piirikytketty verkko, englanniksi circuit switched network. Reitti siis kytketään ennen kommunikaation alkua ja kommunikaation alettua reitin muodostavat johtimet ja kytkennät säilyvät kommunikaation päättymiseen asti. Piirikytkentäisessä verkossa ei ole reitittimiä, koska kytkennän jälkeen reitti on selvä, eikä ole mitään reititettävää. Piirikytkentäisessä verkossa linkkien solmukohdissa sijaitsevat laitteet ovat kytkimiä, eli esimerkiksi puhelinkeskus on kytkin, eikä reititin.

Piirikytkentä

# v2018L4_5
  • Täytyy varata resurssit (jokaiselta linkiltä kapasiteettia, muodostetaan piirikytkentä)
  • Varattuja resursseja ei voi muut käyttää
  • Huono purskeiselle liikenteelle (perinteinen web sivujen selaus)
  • Hyvä puheliikenteelle... ja olisi hyvä multimedian suoratoistolle
  • Verkon muu liikenne ei vaikuta omaan tiedonsiirtonopeuteen
# videoJohdanto33
Piirikytkentää 1940 luvulla
Piirikytkentää 1940 luvulla

Pakettikytkentä

# v2018L4_6
  • Ei erikseen varata resursseja
  • Pystytään palvelemaan enemmän käyttäjiä
  • Paljon parempi purskeiselle liikenteelle
  • Verkon muu liikenne vaikuttaa omaan tiedonsiirtonopeuteen
  • Visualisoinnissa linkkien D ja E kapasiteetti on puolet piirikytkentäisen visualisoinnin tapauksesta
# v2018L4_9
# videoJohdanto34

Viive ja hävikki pakettivälitteisissä verkoissa

# v2018L4_7
  • Pakettien viiveen neljä syytä
    • Laskenta solmuissa
    • Jonotus reitittimissä eli ruuhka
    • Lähetysviive on paketin koko bitteinä jaettuna tiedonsiirtonopeudella - \(\frac{L}{R}\)
    • Etenemisviive on etäisyys jaettuna etenemisnopeudella - \(\frac{d}{s}\)
# videoJohdanto35

Visualisointeja viiveestä ja pakettien putoamisesta

# v2018L4_8
# videoJohdanto36

Pakettikytkentä vs. piirikytkentä

  • Esimerkki molemmista (GSM runkoverkko)

# videoJohdanto32

Pakettikytketyn verkon lähetysviive

Internetin laitteet kommunikoivat toistensa kanssa viestien välityksellä. Viestit voivat olla mitä vaan ja riippuvat laitteiden, sovellusten ja protokollien suunnittelijoista. Pakettikytketyssä verkossa viestin lähettäjä yleensä pilkkoo viestin pienempiin osiin, joita kutsutaan paketeiksi. Verkossa paketit kuljetetaan tiedonsiirtolinkkien ja reitittimien välityksellä. Reitittimien tehtävänä on välittää paketti oikealle reitille tiedonsiirtolinkkejä pitkin ja tiedonsiirtolinkit yhdistävät verkossa sijaitsevat laitteet toisiinsa. Paketti lähetetään tiedonsiirtolinkeillä kyseisen linkin täydellä tiedonsiirtonopeudella. Viestit ja paketit koostuvat biteistä ja linkin tiedonsiirtonopeus on linkkiteknologiasta riippuva fyysinen suure sille, kuinka paljon dataa voidaan lähettää tietyssä aikayksikössä. Yleensä tiedonsiirtonopeus ilmaistaan siten, että määritellään kuinka monta bittiä linkillä voidaan siirtää yhdessä sekunnissa. Jos siirrettävän datan, esimerkiksi paketin, koko on \(L\) bittiä ja linkin tiedonsiirtonopeus on \(R\) bittiä sekunnissa [bit/s], niin viive kaikkien L bitin siirtämiseksi linkin yli on \(L/R\) sekuntia.

Oletetaan seuraavaksi, että verkossa on vain linkin kapasiteetista syntyvä siirtoviive. Esimerkiksi fyysisen signaalin etenemisviive, bittien käsittelystä johtuvat viiveet sekä muusta tiedonsiirrosta johtuvat viiveet oletetaan nyt nollaksi, jotta saadaan ymmärrys siirtoviiveestä useiden erilaisten linkkien verkossa lähetettäessä useita paketteja. Muut viiveet käsitellään myöhemmin materiaalissa.

Talleta ja lähetä -tiedonsiirtotekniikka

Pakettikytkentäisessä verkossa, paketin reitti verkon läpi ei ole ennalta määritelty, vaan jokainen verkossa oleva reititin päättää seuraavan linkin pakettikohtaisesti ja sitä varten täytyy koko paketti, eli kaikki pakettiin kuuluvat bitit, vastaanottaa, ennen kuin paketissa sijaitsevista osoitetiedoista voidaan päätellä seuraava kohde verkossa ja linkki, jota pitkin sinne päästään. Eli ensin pitää vastaanottaa kaikki paketin bitit, ennen kuin paketin ensimmäisiä bittejä voidaan alkaa lähettää seuraavalle linkille. Kyseistä lähetystekniikkaa kutsutaan tallenna ja lähetä tiedonsiirroksi, englanniksi store-and-forward transmission. Piirikytketyssä verkossa sen sijaan reitti määritellään ennen ensimmäisen bitin lähettämistä, ja verkon kytkimiin kytketään reitti valmiiksi, jolloin bittejä voidaan välittää eteenpäin heti niiden saavuttua kytkimelle. Piirikytketyn verkon tapauksessa käytetään termiä kytkin reittimen sijaan, koska verkon laitteet eivät tee tiedonsiirronaikaista reitin valintaa.

# v2018L4_10
# delayt1a

Ilmaisevet vs ilmaisevat

20 Mar 19

Lyhyt ohje \(\LaTeX\) symboleihin

Kirjoita seuraavaksi lauseke tiedonsiirtoviiveelle tehtävänannon mukaisesti. LaTeX-lausekkeiden tarkastamiseen käytetään opettajan kehittämää tarkistinta.

# v2018L4_11
# delayt1b

Seuraavaksi tehdään lauseke, johon tulee sijoittaa tehtävänannossa annetut arvot lausekkeen muuttujien paikoille.

# v2018L4_12
# delayt1c

Tähän kohtaan tulee antaa vastaukseksi laskutoimituksen lopputulos, eli ei muuttujia sisältävää lauseketta tai lauseketta, johon on sijoitettu muuttujien arvot.

# v2018L4_13
# delayt1d

Edellä käsiteltiin yhden paketin siirtämistä yhden linkin yli. Yleistetään kaava nyt useammalle paketille.

# delayt1e

Onko tässä e) tehtävässä joku pugi, kun se herjaa seuraavaa: " vastauksesi (1000/10)*3 ei sisällä kaikkia muuttujia.

07 May 18

Tehtävässä kysytään muuttujia sisältävää lauseketta, eli sen sijaan että sijoittaa arvot muuttujien L, P ja R tilalle, tulee muuttujat jättää paikalleen.

08 May 18

Seuraavaksi tutkitaan yhden paketin siirtämistä kahden samanlaisen linkin yli. Kun paketti pitää siirtää useamman linkin yli, täytyy se ensin vastaanottaa kokonaan, jotta se voidaan lähettää eteenpäin. Jos paketin reitillä on esimerkiksi kaksi linkkiä, joiden tiedonsiirtonopeus on sama, niin kokonaisviive kaksinkertaistuu.

Raahaa alla muuttujat ja arvot paikoilleen, kun paketin tulee kulkea kahden linkin yli.

# delayt1f

Yleisesti, jos yksi paketti välitetään \(N\):n linkin yli ja kaikilla linkeillä on sama tiedonsiirtonopeus, voidaan kokonaissiirtoviive määritellä linkkien määrän, paketin koon ja tiedonsiirtonpeuksien funktiona.

# delayt1g

Kun useampi paketti lähetetään usean linkin yli, niin viivettä määrittäessä tulee ottaa huomioon se että eri paketit voivat liikkua samaan aikaan eri linkeillä. Esimerkiksi, kun toista pakettia ollaan lähettämässä ensimmäiselle linkille, niin samaan aikaan ensimmäistä pakettia lähetetään toiselle linkille.

Olkoon lähetettävänä viisi kappaletta 200 bitin kokoista pakettia kahden linkin yli. Vertaa siirtoon kuluvaa viivettä tapaukseen, jossa lähetetään yksi 1000 bitin paketti kahden linkin yli.

Seuraavaksi muodostetaan kuvia esimerkkiverkon pakettien sijainneista eri ajanhetkillä. Raahaa paketit oikeisiin kohtiin tehtävänannoissa mainituilla ajan hetkillä. Ensimmäisen paketin lähetyksen aloitus määritellään ajan nolla-hetkeksi. Paketit liikkuvat jonoissa, ilman viivettä, vasemmalta oikealle ja reitittimen jonossa aina oikeanpuolimmaiseen vapaaseen paikkaan asti.

# v2018L4_14
# delayt1h
# delayt1i
# delayt1j

Kun kaikki paketit ovat saman kokoisia, voidaan niiden pituutta merkitä samalla muuttujalla, olkoon se \(L\). Lähetettävän datan pilkkominen pienempiin osiin pienentää siirtoviivettä, kun paketit kulkevat useamman linkin läpi. Viive on suhteessa pakettien lukumäärään ja linkkien lukumäärään. Voidaan ajatella että ensin lasketaan ensimmäisen paketin viive kaikkien linkkien yli. Sitten lisätään tulokseen se viive mikä aiheutuu jäljellä olevien pakettien lähettämisestä vuorollaan viimeisen linkin yli, koska paketit voivat kulkea aiempia linkkejä samanaikaisesti.

# v2018L4_15
# delayt2a

Tutkitaan vielä kahdella eri ajan hetkellä tapausta, jossa on kolme linkkiä ja muodostetaan sitten yleinen lauseke siirtoviiveelle, kun useita paketteja lähetetään usean linkin yli.

# delayt2b
# delayt2c

Tutkimalla edellisten kuvaajien pakettien sijaintia erilaisilla ajan hetkillä, voidaan päätellä siirtoviiveen riippuminen linkkien ja pakettien määrästä, kun linkeillä on saman tiedonsiirtonopeus ja paketit ovat saman kokoisia.

# delayt2d

Tutkitaan seuraavaksi tilannetta, jossa linkit ovat erilaisia, eli tässä tapauksessa siirtävät bittejä erilaisilla nopeuksilla. Kun reitittimeltä uloslähtevä linkki on hitaampi kuin reitittimeen sisääntuleva linkki, niin edellistä pakettia ei vielä ole ehditty lähettämään kokonaan hitaammalle linkille, kun seuraava paketti jo saapuu. Tällöin seuraava paketti joutuu odottamaan, kunnes edellinen paketti on saatu siirrettyä linkin yli. Kyseessä ei ole jonotusviive, vaan tässä tapauksessa odottamiseen johtava viive johtuu hitaamman linkin siirtoviiveestä.

# v2018L4_16
# delayt2e
# delayt2f
# delayt2g
# delayt2h

Edellisistä kuvaajista voidaan havaita, että viiden paketin kokonaisviive erilaisille linkkinopeuksille, noudattaa samaa kaavaa, kuin saman kokoisille linkeille. Eli, määritetään ensimmäisen paketin viive kaikkien linkkien yli ja lisätään siihen viive, joka syntyy muiden pakettien siirtämisestä viimeisen linkin yli. Nyt viimeinen linkki sattui olemaan hitain linkki, joten tutkitaan vielä tilannetta, jossa hitain linkki on jokin muu.

# delayt2i

Kun linkkien nopeudet ja niistä johtuvat viiveet ovat eri järjestyksessä, havaitaan että päätepisteiden välillä on eroja siinä missä kohtaa verkkoa paketit ovat menossa tietyllä ajanhetkellä. Kuitenkin, paketit saavuttavat päätepisteen samalla ajanhetkellä molemmissa tapauksissa. Esimerkiksi kahdessa edellisessä kohdassa, L1 saavuttaa reitittimen 4 ajanhetkellä 35 sekuntia ja L2 ajan hetkellä 55 sekuntia. Vastaavasti muut paketit saapuvat reitittimelle 4 20 sekuntia myöhemmin kuin edellinen saapunut paketti. Tämä 20 sekunnin viive on molemmissa edellisissä kohdissa hitaimman linkin viive, riippumatta siitä millä kohdalla reittiä hitain linkki on.

Muodostetaan seuraavaksi lauseke usean paketin siirtoviiveelle, kun linkeillä on erilaiset tiedonsiirtonopeudet. Tehdään ensin edellistä visualisointia vastaava lauseke ja muodostetaan sen jälkeen yleinen lauseke.

Kokonaisviiveeseen tulee viive jokaiselta linkiltä yhdelle paketille, siitä kun kaikilla linkeillä ei ole lähetyksen alussa ja lopussa paketteja. Paketit liikkuvat verkossa samaan aikaan, paitsi ensimmäisten ja viimeisten pakettien kohdalla, jolloin osa linkeistä on tyhjiä. Eli lasketaan yhteen yhden paketin kokema viive jokaisella linkillä. Lisäksi tulee ottaa huomioon muut paketit ja niiden siirtämisestä aiheutuva viive. Edellä huomattiin että verkon hitain linkki on ratkaiseva linkki kokonaisviiveessä, joka viivästää jokaista pakettia. Koska paketit kulkevat linkeillä saman aikaisesti, ei nopeammilla linkeillä ole vaikutusta näihin muihin paketteihin (niiden viive tulee otettua huomioon siinä, kun lasketaan yhdelle paketille viive kaikkien linkkien yli). Näin ollen yhden paketin kokemaan viiveeseen tulee lisätä vielä muiden pakettien kokema viive verkon hitaimman linkin yli.

# delayt2j

Jollakin ihmeen ilveellä sain tämän ratkaistua. Kopsasin mallin ylhäältä, missä laskettiin siirtoviive, kun kaikkien linkkien nopeus on sama. Ymppäsin kaikki eri nopeudet mukaan ja lähdin kokeilemaan. Korjasin virheilmoituksien perusteella ja lopussa vain heittelin numeroita sekaan ja pyrin tuohon tulokseen 115.0 s. #- Liekö tuo lause järkevä, mutta ainakin tarkistin niin sanoo. Tuota lausekkeen muodostamista ja ylipäänsä sitä, miten nyt eri nopeudet vaikuttavat tuohon laskukaavaan, voisi avata tarkemmin yllä. Muuten nämä pikku tehtävät ovat olleet ok-kivoja. #-

22 Aug 18

Tarkistin ei tarkasta kaavan täydellistä vastaavuutta, ainoastaan sen että kaikki muuttujat löytyy kaavasta ja että antaa oikean tuloksen annetuilla arvoilla. Täten myös eri muodossa annetut kaavat voivat antaa täydet pisteet. Lisään hieman tekstiä siitä minkälainen kaavan tulisi olla.

23 Aug 18 (edited 04 Sep 18)

Muodostetaan seuraavaksi yleinen lauseke \(N\):lle linkille. Tehdään ensin lausekkeen summatermi muokkaamalla alla olevaa LaTeX summaesimerkkiä. Eli summalausekkeen tulee antaa summa kaikista viiveistä ensimmäiselle paketille. Muodostetaan myöhemmin termi, joka lisää hitaimman linkin viiveen kaikille lopuille paketeille. Huomaa, että nyt linkin indeksoiva muuttujat, esim. \(i\),
täytyy antaa alaindeksinä. Aiemmin alaindeksiä ei käytetty esimerkiksi nimetessä linkkit \(R1\) jne., koska alaindeksiä ei saa toteutettua visualisointitehtävissä.

# delayt3a

Miksiköhän ei suostu mulla ajamaan tätä ollenkaan?

11 Apr 18

Ollut varmaan TIM:ssä jokun vika, lisäsin pisteet, vastauksesi oli oikein

23 Aug 18

Nyt oikeasti tämä(a) ja edellinen (j) ja (c) oikein??

31 Aug 18 (edited 31 Aug 18)

Muodostetaan seuraavaksi lauseke LaTeX:illa, joka antaa minimin, eli pienimmän, kaikista tiedonsiirtonopeuksista, jota voidaan sitten käyttää suurimman viiveen määrittämiseen. Alla on esimerkki LaTeX:in min-funktiosta, jonka muuttujat tulee muokata tehtävänannon mukaisesti.

# delayt3b

Muodostetaan nyt yleinen lauseke viiveelle, kun lähetetään \(P\) pakettia \(N\) linkin yli linkkien tiedonsiirtonopeuksien ollessa \(R_i\), missä \(i=1, \ldots, N\). Eli lausekkeen tulee sisältää viive yhden paketin kuljettamisesta kaikkien linkkien yli sekä viive joka seuraa siitä, kun muut paketit siirretään hitaimman linkin yli.

# delayt3c

Mitä tarkoittaa, kun se sanoo että "vastauksessasi on väärä muuttuja P"?

22 Mar 18

Tarkoitti sitä että min-funktion indeksin alaraja oli väärin. Nyt on tarkistin päivitetty, siten että antaa tuollaisesta oikean virheilmoituksen.

23 Mar 18

Kysytäänkö näistä viiveistä tentissä? Jos, ja vaikka siitäkin huolimatta, voisi vaikka tämän osion loppuun lisätä kaavojen oikeat ratkaisut. TIM on muuten viimepäivinä (tai viikkoina) toiminut hitaasti ja välälillä jumiutunutkin -ainakin kotikoneelta käsin.

23 Aug 18

Viiveitä ei tarvitse laskea tenteissä, ne ovat materiaalissa, jotta saa käytännössä perehdyttyä siihen mistä se viive tulee. Tentissä täytyy tietää erilaiset viiveet, joita pakettiverkossa esiintyy

Koska kurssi on jatkuvasti opiskeltavissa, ei oikeita vastauksia voi julkaista kaikille.

23 Aug 18

Ylläolevat lausekkeet käsittelivät pieniä tiedonsiirtonopeuksia ja pakettikokoja, numeroarvojen pitämiseksi yksinkertaisina, mutta johdetut kaavat pätevät toki suuremmillekin arvoille.

Teoria 1 tehtäviin on lisätty uusia tehtäviä pakettiverkkojen siirtoviiveeseen liittyen 22.8.2018.

22 Aug 18

Kerrosarkkitehtuurit

# videoJohdanto30
# v2018L4_17

Internetissä on käytössä kerrosarkkitehtuuri, mikä käytännössä tarkoittaa sitä, että sovellusten väliseen tiedonsiirtoon liittyvät toimenpiteet on jaettu eri kerroksille. Kerrosmalli perustuu siihen että jokainen kerros tarjoaa palveluitaan ylempänä olevalle kerrokselle ja käyttää alempana olevan kerroksen palveluja. Palvelut saadaan käyttöön kerrosten välisen rajapinnan kautta, eikä ylempien kerrosten tarvitse huolehtia siitä miten alemmat kerrokset palvelun toteuttavat. Eri laitteissa sijaitsevat vastaavat kerrokset kommunikoivat toistensa kanssa käyttämällä yhteistä protokollaa.

  • Laita visualisoinnissa TCP/IP (Internet protocol suite) ja OSI -viitemallin mukaiset protokollakerrokset oikeaan järjestykseen. Kerrosta raahatessa saat myös tietoa kerroksen tehtävästä.

Pitäisikö visualisoinnin toimia myös kosketusnäytöllä? En ole vielä keksinyt, miten palikoita saa raahattua.

05 Apr 18

Ei näytä toimivan kosketusnäytöllä, täytyy jossain välissä tutkia asiaa

05 Apr 18
# video2018Luento5

OSI-viitemalli

# v2018L5_1

OSI (Open Systems Interconnection) -viitemalli kehitettiin 1970 luvulla ISO (International Organization for Standardization) -organisaation toimesta. Samoihin aikoihin, maailman tietoverkkojen ollessa pääasiassa erillään toisistaan, kehitettiin useita erilaisia kerrosmalleja. OSI-viitemallin standardi valmistui 1984 ja siinä verkkosovelluksille tarjottavat palvelut on jaoteltu seitsemään kerrokseen, jotka numeroidaan ykkösestä seitsemään, alhaalta ylöspäin, eli fyysinen kerros on ensimmäinen kerros ja sovelluskerros on seitsemäs kerros. OSI-viitemallin mukaisia protokollia on ollut käytössä vain muutamia, koska Internet kehittyi käytännössä TCP/IP-protokollien mukaisesti ja Internetissä vakiintui TCP/IP:n mukainen kerrosarkkitehtuuri, eikä sen protokollia kehitetty sijoittumaan OSI-mallin mukaisille kerroksille.

OSI-viitemallin kerrosten numerointi on kuitenkin jäänyt elämään ja monesti kerroksista käytetään numeroa, niiden nimen sijaan. OSI-mallin mukaisesti sovelluskerrosta kutsutaan seitsemänneksi kerrokseksi, vaikka tarkoittettaisiin TCP/IP-mallin mukaista sovelluskerrosta. Muut yleisesti käytetyt numerot kerroksille ovat: ensimmäinen kerros on fyysinen kerros, toinen kerros on linkkikerros, kolmas kerros on verkkokerros ja neljäs kerros on kuljetuskerros. Edellä mainittujen kerrosten tehtävät ovat suurinpiirtein vastaavat sekä OSI- että TCP/IP-viitemallissa.

OSI-mallin viides ja kuudes kerros ovat istuntokerros ja esitystapakerros. Internetissä näiden kerrosten tehtäville ei ole omia kerroksia, esimerkiksi istuntokerroksen yhteydenmuodostus tehtävät hoidetaan valitsemalla kuljetuskerrokselta palvelun tarjoava kuljetuspalvelu, tai sitten sovelluskerrokselta protokolla yhteydenmuodostus-palvelun tarjoava protokolla. Jos mikään kerros ei tarjoa tarvittavaa palvelua, täytyy sovelluksen tekijän itse implementoida tarvitsemansa palvelu tai käyttää olemassa olevia kerrosten välisiä palveluita. Esimerkiksi loogisesti esitystapakerrokselle kuuluva liikenteen salaaminen esimerkiksi tälle TIM-palvelimelle tehdään TCP/IP-mallin kuljetus- ja sovelluskerrosten välissä.

Protokollakerrosten lisäksi käytetään joskus termiä kahdeksas kerros, kuvaamaan käyttäjäkerrosta tai poliittista kerrosta OSI-mallin päällä. Laita seuraavassa tehtävässä OSI-mallin kerrokset oikeaan järjestykseen ensimmäinen kerros alimmaiseksi ja seitsemäs kerros ylimmäiseksi.

# osistack
# osikuvauksetTest

TCP/IP-viitemalli

Internetissä on vakiintunut käyttöön TCP/IP-viitemalli, joka on saanut nimensä Internetin kuljetuspalvelun mahdollistavien protokollien nimien mukaan. TCP/IP-viitemalli on kerrosarkkitehtuuri, mutta kerrosten nimet ja lukumäärä vaihtelevat eri lähteissä. RFC 1122 -dokumentti määrittelee neljä-kerroksisen kerrosarkkitehtuurin, josta puuttuu fyysinen kerros ja verkkokerroksen nimenä on internetkerros. Dokumentit RFC 1122 ja RFC 1123 muodostavat yhdessä Internet standardin numero 3. Tässä materiaalissa käytetään TCP/IP-viitemallista Kurosen ja Rossin kirjassa käytettyjä määritelmiä, toisin sanoen TCP/IP-viitemallissa on viisi kerrosta ja niiden suomennokset ovat sovelluskerros, kuljetuskerros, verkkokerros, siirtoyhteyskerros ja fyysinen kerros. Tosin siirtoyhteyskerroksesta tässä materiaalissa käytetään pääasiallisesti nimitystä linkkikerros. Nämä suomennokset ja niiden englanninkieliset versiot ovat vastaavia kuin OSI-viitemallissa käytetyt termit. TCP/IP-viitemallista käytetään myös nimitystä TCP/IP-protokollapino tai -protokollaperhe.

# tcpipstack
# tcpipkuvauksetTest

Protokollat eri kerroksilla

Protokollapinon kerrosten tehtävät toteutetaan protokollilla, joihin tutustutaan tarkemmin myöhemmin tässä materiaalissa. Koska kerrosten tehtävät ovat erilaisia, on kehitetty eri tyyppisiä protokollia, jotka soveltuvat tiettyihin tehtäviin. Käytännössä protokollia ei aina voi määrittää kuuluvaksi jollekin tietylle kerrokselle, koska protokollat voivat toteuttaa tehtäviä useammalta kerrokselta. Lisäksi protokolla saattaa kerrosarkkitehtuurissa sijaita esimerkiksi sovellus- tai kuljetuskerroksella, mutta tehdä verkkokerrokseen liittyviä tehtäviä.

Protokollista käytetään yleisesti niiden nimistä johdettuja lyhenteitä, niiden nimien sijaan. Selvitä seuraaviin tehtäviin protokollien lyhenteiden suhteellinen asema protokollapinossa.

# protocolStack1
# protocolStack2
# protocolStack3
# protocolStack4

Datan paketointi

# v2018L5_2

Klikkaa visualisoinnissa sanomaa, jotta saat sen vastaanottavalle sovellukselle. Seuraa hyötydatan (sanoman) ja kontrolli-informaation, eli eri kerrosten otsikkokenttien H1 - H4 käyttäytymistä. Sanoma on sovelluksen muodostama sovellusprotokollan mukainen viesti. Visualisoinnissa ei ole eritelty sanoman sisältöä, mutta se sisältää sovelluskerroksen protokollan otsikkotiedot (H5) ja sovelluksen lähettämän hyötydatan. Visualisoinnissa alapalkissa esitetyn verkkoselainesimerkin tapauksessa sanoma normaalisti sisältäisi vain HTTP-otsikkotietoja, kun pyydetään sivua WWW-palvelimelta.

# videoJohdanto31

Tietoverkon jokainen laite ei välttämättä toteuta kaikkia viitemallin mukaisia kerroksia. Internetissä yleensä vain verkon reunalla sijaitsevat päätelaitteisiin toteutetaan jokainen TCP/IP-viitemallin mukainen kerros. Koska päätelaitteissa ovat Internettiä käyttävät sovellukset, täytyy niihin toteuttaa sovellusten kommunikaatiota varten, sovelluskerroksen protokollia. Alempien kerrosten protokollat toteutetaan palvelemaan ylemmän kerroksen protokollia. Internetissä datapakettien edelleenlähetyksen verkon ytimessä toteuttaa käytännössä reititin tai kytkin, joihin tyypillisesti toteutetaan vain alimmat kerrokset. Esimerkiksi kytkimiin on normaalisti toteutettu ensimmäinen ja toinen kerros, kun taas reitittimiin on toteutettu kolme alinta kerrosta. Näin ollen verkossa paketteja edelleenlähettävät laitteet eivät ymmärrä sovellusten kommunikoinnin sisältöä, eivätkä sitä mitkä sovellukset datapaketteja lähettävät. Kerrosarkkitehtuurin ansiosta verkon ytimessä sijaitsevat laitteet voivat keskittyä omaan tehtäväänsä, eli pakettien välittämiseen, eikä välittää siitä mitä dataa ne siirtävät eteenpäin.

# headers1

Datan kerroksittainen paketointi, englanniksi encapsulation, mahdollistaa sen että alempien kerrosten ei tarvitse tietää mitään ylemmän kerroksen välittämästä datasta. Perusidea voidaan yksinkertaistaa siten, että ylempi kerros antaa alemmalle kerrokselle kaksi asiaa: (i) hyötykuorman, eli siirrettävän datan ja (ii) osoitetiedot, eli sen minne hyötykuorma tulee välittää. Alempi kerros sitten paketoi hyötykuorman, asettaa tarvittavat otsikkotiedot pakettiin. Tämä otsikkotiedoilla varustettu alemmalla kerroksella muodostettu paketti on sitten uusi hyötykuorma, joka välitetään seuraavalle kerrokselle, joka lisää ylemmältä kerrokselta saapuvaan hyötykuormaan oman kerroksen osoitetiedot, muodostaen oman kerroksen hyötykuorman.

# headers2

Otetaanpa esimerkiksi reaalimaailmasta postipalvelu, johon Internetin toimintaa usein verrataan. Ajatellaan tapausta, jossa lapsi kirjoittaa kirjeen serkulleen. Voidaan ajatella että kirjettä kirjoittava lapsi on sovellus. Sovellusprotokolla on kieli, jota serkut käyttävät kommunikointiin. Äidin, kuljetuskerroksen, saa kuljettamaan kirjeen eteenpäin lapsen ja äidin välisen puhe-rajapinnan kautta. Lapsi sanoo esimerkiksi: "lähetätkö tämän kirjeen serkulle". Äiti ottaa kirjeen, paketoi kirjeen kirjekuoreen ja lisää kuoreen osoitetiedot. Se kun äiti katsoo osoitekirjasta serkun nimen perusteella osoitteen vastaa Internetin nimipalvelua, DNS (Domain Name System). Valmiin paketoidun kirjeen äiti antaa verkkokerrokselle, jonka tehtävä on viedä kirje oikeaan osoitteeseen. Isä tarjoaa kotona verkkokerroksen palvelun, ottaa kirjeen ja osoitteen perusteella tietää että kirje pitää viedä lähimpään postilaatikkoon. Sieltä postipalvelu, verkon ydin, kuljettanee kirjeen eteenpäin postikeskusten, reitittimien, kautta. Jotta kirje saadaan postilaatikkoon, täytyy käyttää linkkikerroksen palvelua, vanhin lapsi saa kirjeen ja tiedon siitä minne se pitää viedä, eli lähimpään postilaatikkoon. Vanhin lapsi selvittää postilaatikon osoitteen, eli sijainnin, ja antaa kirjeen ja postilaatikon osoitteen fyysiselle kerrokselle. Olkoon fyysinen kerros vaikka lapsen kaveri, joka sitten vie kirjeen postilaatikkoon jollain fyysisellä tekniikalla, esimerkiksi kävellen tai pyöräillen. Postilaatikolla on sitten linkkikerros, jossa postinkantaja kuljettaa kirjeet seuraavalle laitteelle, käyttäen omaa fyysistä tekniikkaansa.

Tietoverkot ja tietoturva

# videoJohdanto39

Tänä päivänä tietoverkkoihin liittyvä tietoturva on yksi keskeisimmistä aiheista tietoverkkojen kehityksessä ja tutkimuksessa. Tietoverkkoturvallisuus on ala, jossa pyritään kehittämään ratkaisuja tietoverkkoja hyödyntäviin tietoturvaan kohdistuviin hyökkäyksiin ja uhkiin.

Ensimmäinen askel tietoverkkoturvallisuudessa on tunnistaa verkossa sijaitsevan palvelun käyttäjät, todentaminen. Todentaminen tehdään usein käyttäjätunnuksella ja salasanalla. Esimerkiksi tämän materiaalin interaktiivisiin tehtäviin vastataksesi, täytyy sinun olla kirjautunut TIM-järjestelmään. Materiaalia pystyy lukemaan ilman kirjautumistakin. Jos olet kirjautunut sisään, niin käyttäjätunnuksesi on Anonymous. Internetin alkuaikoina käyttäjätunnukset ja salasanat välitettiin verkossa selväkielisenä, eli salaamattomana, jolloin kuka tahansa, joka pystyi kaappaamaan lähetetyt viestit, sai suoraan tarvittavat tunnistautumistiedot.

Nykyään, yhä useampaan palveluun tunnistauduttaessa, tunnistamiseen käytettävät tiedot välitetään salattuna. Yksinkertaisesti voidaan todeta, että salaus toteutetaan sekoittamalla lähetettävä informaatio siten, että vain vastaanottaja kykenee sekoittamisen purkamaan. Erilaisia salausmenetelmiä on käytetty jo tuhansia vuosia ja esimerkiksi Julias Caesar käytti viestinnässään menetelmää, missä kaikkia kirjaimia siirrettiin aakkostossa jonkin tietyn määrän. Kirjaintensiirto-salausmenetelmä tunnetaan nimellä Caesarin salakirjoitus, englanniksi Caesar cipher. Toinen paljon käytetty termi menetelmälle on ROT-menetelmä, koska käytännössä aakkostoa rotatoidaan, eli kierretään, siirron verran.

Jos esimerkiksi ROT-salakirjoitusmenetelmässä kaikkia kirjaimia siirretään neljä kirjainta oikealle, niin kirjaimet ITKP olisivat salattuna MXOT. Alla on Caesarin salakirjoituskiekko, jossa vasemman puoleisella kiekolla salakirjoitetaan ja oikean puoleisella puretaan ROT4 salausta. Salattaessa selväkieliset kirjaimet ovat ulkokehällä ja purettaessa sisemmällä kehällä.

Caesar salakirjoituskiekko - ROT4
Caesar salakirjoituskiekko - ROT4

Kuva muodostettu LaTeX tikz-paketin avulla,
https://www.overleaf.com/read/yxskdmngrzdx

26 Mar 18 (edited 26 Mar 18)

Tuntemalla siirron suuruuden, eli käytetyn ROT-salakirjoituksen salausavaimen, on salaus helppo purkaa. Jos salausavain ei ole tiedossa, mutta tiedetään salauksen olevan ROT-salakirjoitusta englannin kielisellä aakkostolla, täytyy testata enimmillään 25 eri siirtoa, eli kaikki mahdolliset siirtovaihtoehdot. Salauksen purkaminen käsin olisi työlästä, mutta nykyinen tietokone purkaisi salauksen hetkessä.

Yksi paljon käytetty, ja paljon implementoitu, rotaatiomenetelmä on ROT13-menetelmä. Koska englannin kielen aakkosissa on 26 kirjainta, niin sekä salauksen muodostaminen että salauksen purkaminen voidaan tehdä samalla menetelmällä, kun aakkoston lopusta hypätään aina aakkoston alkuun. Salakirjoituskiekon tapauksessa, tämä tarkoittaisi sitä, että sekä salaus että purkaminen tehdään samoin asetetulla kiekolla. ROT13-menetelmään on käytetty paljon Internetissä ihmisten välisessä kommunikaatiossa, esimerkiksi foorumeilla ja keskusteluryhmissä mm. piilottamaan spoilereita ja kiertämään kirosanojen estomekanismeja.

# pyrot13

Jos otamme skandinaavisista merkeistä käyttöön vain ä- ja ö- kirjaimet, voidaan tehdä ääkkösiä tukeva ROT14 salakirjoitus, joka toimii samoin kuin ROT13.

# pyrot14

Ei näytä hyväksyvän salakirjoitusta, vaikka se on oikein.

20 Aug 18

Täytyy huomata ä ja ö kirjainten lisäyksestä aiheutuva lisärotaatio.

23 Aug 18 (edited 23 Aug 18)

ROT-salakirjoitusmenetelmässä rotaation määrä toimii siis salausavaimena. Tänä päivänä tietoverkoissa tunnistautumisen salaukseen käytetään monimutkaisempia salausmenetelmiä, mutta salausavaimen periaate on sama. Tuntemalla salaukseen käytetyn avaimen tai avaimet, on salaus helppo purkaa. Salauksen turvallisuus perustuu yksityisten salausavainten pitämiseen salassa, sekä siihen että salauksen purkaminen muuten, eli tuntematta salausavainta, on mahdollisimman paljon laskentatehoa vaativa operaatio.

Kryptografia

# v2018L5_3

Tiedon salaaminen on osa kryptografiaa (tai kryptologiaa), englanniksi cryptography, joka on tietoturvan parantamiseen liittyvä tieteenhaara. Nykyaikainen kryptografia perustuu pitkälti matemaattiseen teorioihin sekä niiden soveltamiseen ja toteuttamiseen tietojenkäsittelyn alalla. Kryptolografiassa kehitetään menetelmiä, joilla pyritään takaamaan tietoturvan perusperiaatteita

  • Todentaminen (authentication)
  • Eheys (integrity)
  • Luottamuksellisuus (confidentiality)
  • Kiistämättömyys (nonrepudiation)
  • Saatavuus (availability)

Kryptografian salausavainta käyttävät salausmenetelmät voidaan jakaa symmetrisiin ja epäsymmetrisiin salausmenetelmiin. Käytännössä tämän päivän järjestelmien salausmenetelmät ovat yhdistelmiä symmetrisistä ja epäsymmetrisistä salausmenetelmistä. Salausmenetelmille on kehitetty useita erilaisia salausalgoritmeja. Salausmenetelmät, joita voidaan käyttää useammin kuin kerran, voidaan purkaa, mutta hyvä salausmenetelmä on sellainen, jonka purkaminen ei ole realistista järkevässä ajassa nykyisellä laskentateholla.

# v2018L5_4

Symmetriset salausmenetelmät

Symmetrisessä salausmenetelmässä tieto salataan ja puretaan samalla salausavaimella, eli kommunikaatiokumppaneilla on sama yksityinen salausavain, jonka salassa pysyminen on kriittistä tietoturvan kannalta. Symmetriset salausalgoritmit jakautuvat kahteen eri ryhmään jonosalaukseen, englanniksi stream ciphers sekä lohkosalaukseen, englanniksi block ciphers.

Jonosalauksessa salattavaa merkkijonoa salataan, yleensä merkki kerrallaan, yhdistämällä merkkijonoon salausmerkkijono. Yksinkertaisimmillaan ottamalla XOR-operaatio informaatio- ja salausmerkkijonojen biteistä. Jonosalauksen etuna on se ettei tarvitse etukäteen tietää lähetettävän datan pituutta, vaan salaus tehdään sitä mukaa kun uutta tietoa tulee lähetettäväksi. Jonosalauksen tunnetuin ja aiemmin eniten käytetty salausalgoritmi on RC4, joka tänä päivänä ei ole enää turvallinen ja esimerkiksi IETF on RFC 7465 dokumentissa kieltänyt sen käytön TLS protokollassa, jolla salataan nykypäivänä suurin osa esimerkiksi HTTP liikenteestä. RC4 algoritmin korvaajaksi on useisiin salausmenetelmiin ehdotettu Salsa20 algoritmin ChaCha20 muunnosta. GSM-tekniikassa käytetään jonosalausmenetelmiä A5/1 ja A5/2 salaamaan radiotiellä siirrettävät bitit.

Lohkosalausmenetelmät toteuttavat määrätyn salausoperaation tietyn kokoisiin bittilohkoihin. Teoriassa turvallisessa lohkosalausmenetelmässä salausavainta voi käyttää vain yhden lohkon salaukseen, mutta käytännössä on kehitetty menetelmiä, jotka mahdollistavat saman salausavaimen turvallisen käytön. Lohkosalausmenetelmiä käytetään turvaamaan luottamuksellisuus sekä todentaminen. Lisäksi lohkosalausmenetelmiä voidaan käyttää muiden kryptografisten menetelmien toteuttamiseen. Tunnetuimpia ja eniten käytettyjä lohkosalausalgoritmeja ovat DES, AES, RC5, IDEA, ja Blowfish.

Epäsymmetriset salausmenetelmät

Epäsymmetrisessä salausmenetelmässä, eli julkisen avaimen salausmenetelmässä, on sekä julkisia että yksityisiä salausavaimia. Tiedon salaaminen tai yksityisen avaimen määrittäminen tehdään julkisella salausavaimella. Tiedon salaamiseen ja purkamiseen käytetään samaa tai eri salausavainta, riippuen menetelmästä. Jos salaukseen ja purkamiseen käytetään eri salausavaimia, voi saalaamiseen käytettävä salausavain olla julkinen. Syy siihen että osa salausmenetelmän avaimista ja parametreista voi olla julkisia, on se että salaiseksi tarkoitettujen parametrien ja avainten selvittäminen julkisesta informaatiosta on käytännössä mahdotonta järkevässä ajassa.

Julkisella avaimella toteutetaan todentaminen, eli tunnistetaan viestin lähettäjä. Julkisella avaimella salatun tiedon purkaminen puolestaan voidaan tehdä vain vastaanottajan salaisella avaimella. Eli salainen avain toteuttaa viestin luottamuksellisuuden. Julkisen avaimen menetelmässä tulee olla varma julkisen avaimen oikeellisuudesta.

Julkisen salausavaimen menetelmiä voidaan käyttää esimerkiksi salaisten salausavainten vaihtoon kommunikaatiokumppanien välillä, esimerkiksi Diffie-Hellman menetelmä. Tunnetuimpia ja eniten käytettyjä julkisen salausavaimen menetelmiä ovat lisäksi RSA ja ElGamal.

Diffie–Hellman avaimenvaihto

Voit halutessasi tutustua Diffie–Hellman avaimenvaihtomenetelmän tarkempaan kuvaukseen. Menetelmässä kommunikoivat osapuolet valitsevat alkuluvun p ja luvun g, joka on primitiivinen juuri modulo p. Menemättä matemaattiseen määrittelyyn tarkemmin, todetaan että luvuilla g ja p ei ole yhteisiä tekijöitä ja lisäksi, kun g korotetaan eri potensseihin ja tuloksesta otetaan modulo p,

\[ g^x \mod p \]

niin tulos jakautuu tasaisesti välille \(1 \ldots p-1\). Kyseessä on ns. yksisuuntainen funktio, jonka laskeminen toiseen suuntaan on käytännössä mahdoton. Eli, vaikka tuntisi lukuarvot p ja g sekä tuloksen, niin x:n selvittäminen on mahdotonta, koska useat eri x:n arvot antavat saman tuloksen.

Otetaan esimerkiksi \(p = 7\) ja \(g = 3\), jos tiedetään, että \[ 3^x \mod 7 = 3 \] niin tulokseen päästään arvoilla \(x = 1, x = 7, x = 13, \ldots\) jatkuen aina kuuden välein loputtomasti. Kyseessä on ns. diskreetti logaritmi ongelma.

# pyDHtesti

Alkuluvussa p pitää olla ainakin 600 numeroa, jotta nykyisellä laskentateholla ei järkevässä ajassa pystytä selvittämään salaista avainta käymällä kaikki vaihtoehdot läpi.

Menetelmässä molemmat osapuolet valitsevat omat salaiset lukunsa a ja b, joiden avulla lasketaan molemmille julkiset avaimet A ja B. Julkisten avainten vaihdon jälkeen molemmat laskevat salaisen avaimen s, jota voidaan sitten käyttää tulevan kommunikaation salaamiseen jollain salausmenetelmällä.

Valitsemiensa salaisten lukujen avulla, kommunikoivat osapuolet laskevat julkiset avaimensa

\[ A = g^a \mod p \hspace{4cm} B = g^b \mod p \]

Julkisista avaimista on käytännössä mahdoton selvittää salaisia lukuja a ja b, joten julkiset avaimet voi turvallisesti lähettää salaamattomana. Kun julkiset avaimet on lähetetty kommunikaatiokumppaneille, voivat he laskea salaisen avaimen

\[ s = B^a \mod p \hspace{4cm} s = A^b \mod p \]

Koska mahdollinen hyökkääjä ei saa selville salaisia lukuja a ja b, niin niiden ja julkisten avainten avulla laskettu yksityinen avain s pysyy vain kommunikoivien osapuolien tiedossa.

Nyt siis molemmat saavat saman salaisen avaimen, koska kaava on sama, eli kun sijoitetaan \(A\) ja \(B\), saadaan

\[ s = (g^b \mod p)^a \mod p \hspace{4cm} s = (g^a \mod p)^b \mod p \] eli potenssi ja modulo-laskusääntöjen mukaan, salausavaimet ovat samat \[ s = g^{ba} \mod p \hspace{4cm} s = g^{ab} \mod p \]

Seuraavissa tehtäväkohdissa muodostetaan salainen avain Diffie–Hellman avaimenvaihtomenetelmän mukaisesti. Salaista avainta käytetään sitten ROT-menetelmän rotaation, eli salauksen, määrittämiseen, jotta saadaan salattu viesti selville.

# pyDHa
# pyDHb
# pyDHc

Tiivistealgoritmit

Kryptografian alalla kehitetään myös yksisuuntaisia tiivisteitä, englanniksi hash, joita ei voi käyttää salaukseen, koska tiivisteestä ei voi palauttaa alkuperäistä informaatiota. Tiiviste, suomenkielisen nimensä mukaan, tiivistää alkuperäisen tiedon paljon pienemmäksi. Tiivisteitä käytetään tiedon eheyden sekä kiistämättömyyden todentamiseen. Tiivisteitä käytetään esimerkiksi salasanojen tallentamiseen ei-selkokielisinä, tällöin pitää valita tiivisteen generoimiseksi menetelmä, joka vielä tiedetään tietoturvalliseksi. Tunnetuimpia ja eniten käytettyjä tiivistealgoritmeja ovat MD5, SHA-1 ja SHA-2, joka on kuuden kryptografisen tiivistefunktion kokoelma.

MD5 algoritmi ei enää ole turvallinen ja se sisältää useita haavoittuvuuksia, mutta sitä voidaan yhä käyttää tarkistussummien laskentaan ja tiedon eheyden validioimiseen silloin kun eheyttä ei ole tahallisesti vääristetty. MD5 generoi aina 128 bittiä pitkän tiivistearvon, joten heksaluku esitystapa on aina 32 heksamerkin pituinen.

# pyMD5

Tämä koske kaikkia nimestä muodostettavia tiiviste -tehtäviä: TIM:ssä on näköjään muutettu %%realname%% muuttujaa, jota käytän tulostamaan tehtävään kirjautuneen käyttäjän nimen. Aikaisemmin muuttuja sisälsi kaikki etunimet, mutta ei enää. Tarkistin tarkastaa ajon hetkisen muuttujan arvon tiivisteeseen, jos olet ajanut tehtävän silloin kuin muuttuja sisälsi kaikki etunimet, niin pisteesi säilyvät kyllä, mutta tiiviste ei enää vastaa tehtävänannossa näkyvän nimen tiivistettä. Voit toki tehdä uuden tiivisteen nykyisellä tehtävänannossa näkyvällä nimellä ja ajaa tehtävän uudestaan, jolloin tiiviste päivittyy ja saat myös pisteet.

01 May 18

SHA-1 algoritmia on käytetty esimerkiksi WWW-palvelinten SSL sertifikaattien kiistämättömyyden todentamiseen, mutta SHA-1:n haavoittuvuuksien takia verkkoselainvalmistajat lopettivat SHA-1:n hyväksymisen vuonna 2017. SHA-1 generoi aina 160 bittiä pitkän tiivistearvon, joka yleensä esitetään heksalukuina, joten heksaluku esitystapa on aina 40 heksamerkin pituinen.

# pySHA1

Ei näytä hyväksyvän tiivistettä vaikka sen pitäisi olla oikein

04 Apr 18

arjuvi: Bugi pitäisi olla korjattu, oli testivaiheesta jäänyt versio, joka testasi aina minun nimeä vastaavaan tiivisteeseen.

05 Apr 18 (edited 05 Apr 18)

SHA-2 algoritmit ovat korvanneet edeltäjänsä yhä useammassa sovelluksessa ja protokollassa, mutta osassa SHA-2 algoritmeista on jo löydetty haavoittuvuuksia ja niiden sijaan tulisi käyttää SHA-2 perheen tietoturvalliseksi tiedettyjä tiivistefunktioita, tai siirtyä käyttämään vastaavan pituisen tiivisteen generoivia, vuonna 2015 julkaistuja, SHA-3 perheen tiivistefunktioita.

# pySHA2

TIM-järjestelmässä on tätä kirjoitettaessa käytössä Pythonin versio 3.5 eikä sen käyttämä OpenSSL kirjasto tue SHA-3 algoritmeja. SHA-3 on toteutettu Pythonin 3.6 versioon, ja voit kokeilla Pythonin SHA-3 algoritmeja esimerkiksi https://repl.it/languages/python3 sivustolla.

Internetistä ladattavien tiedostojen yhteydessä on toisinaan ilmoitettu tarkistussumma, jolla voi tarkistaa sen että tiedosto on muuttumaton. Eli sen jälkeen kun tiedosto on ladattu omalle koneelle voi laskea tarkistussumman tiedostolle ja verrata sitä ilmoitettuun tarkastussummaan.

Kurssin kotisivuilla on ladattava zip-paketti, joka sisältää kurssilla käytettävän TCP asiakkaan ja palvelimen. Linkki tiedostoon on:

http://users.jyu.fi/~arjuvi/opetus/itkp104/ITKP104TCP.zip

Seuraavia tehtäväkohtia varten lataa tiedosto itsellesi ja selvitä kuinka saat omassa käyttöjärjestelmässäsi tai erillisellä sovelluksella tai internetpalvelulla laskettua tehtäväkohtien mukaiset tarkistussummat. Tarkistussummat tulee olla heksadesimaalilukuina, käytetyt aakkoston merkit isoilla kirjaimilla. Säilytä merkit samalla rivillä.

# MD5tiedosto
# SHA1tiedosto
# SHA256tiedosto
# SHA512tiedosto

Laskin tämän kahdella online-palvelulla ja sain saman tuloksen. Tulos ei kuitenkaan tuo pisteitä.

08 Sep 18

Vastauksessasi heksamerkit (abcdef) ovat pienellä. Täytyy olla isoilla (ABCDEF). Tarkistin ei (vielä) tue pieniä kirjaimia.

10 Sep 18

Kryptoanalyysi

Kryptoanalyysi on nimitys tieteenalalle, joka tutkii ja kehittää menetelmiä salausten purkamiseen. Tieteenala tarjoaa hyödyllistä tietoa salausmenetelmien kehittämiseen turvallisemmaksi, kun opitaan mitä vastaan pitää suojautua.

Salausten murtaminen - esimerkkejä

# v2018L5_5

Esimerkki: 128 bittinen SSL salausavain

  • Avainvaihtoehtoja on 2128 = 340282366920938463463374607431768211456 = 34 × 1037
    • Eli 340 sekstiljoonaa, kiitokset taas opiskelijoille tuon selvittämisestä :)
  • Oletetaan että 50 supertietokonetta tarkistaa 1018 (miljardi miljardia) avainta sekunnissa
  • Avainten läpi käyminen kestää 340282366920938463463 = 34 × 1019 sekuntia
  • vuodessa on 31 556 926 sekunttia, joten vaadittu aika on 10783127828133 vuotta eli noin 10783 miljardia vuotta.

Kommentti luennon viestiseinältä: " Yksi mahdollisuus on tallentaa salattua liikennettä ja odottaa kvanttitietokoneita joilla suurin osa nykyisistä salausmenetelmistä voitaisiin purkaa polynomisessa ajassa".

Ratkaisu edellä kuvattuun tietoturvauhkaan on käyttää salausmenetelmää, joka mahdollistaa ns. eteenpäin tai tulevaisuuteen salaamisen, englanniksi Forward secrecy. TLS protokollassa voidaan ottaa Forward secrecy käyttöön.

Esimerkkejä salasanoista

# v2018L5_6
  • Katso esimerkiksi jyu thk ohjeet hyvälle salasanalle.
  • Tehdään nyt väärin minimin mukainen eli vähintään 8 merkkiä, esim. 'salasana' → kräkätään heti 'sanakirjan' avulla, kokeile itse:
  • Koodataan salasana SHA-256 hash calculator ja kräkätään salasana Password Hash Cracker
  • Kokeile muuttaa osa kirjaimista isoiksi, sitten osa kirjaimista numeroiksi ja viimeisenä kokeile tuplata salasana 'salasana salasana', välilyönnillä tai ilman.
  • Pieniä kirjaimia 26, salasanan pituus 8 = 268 = n. 208 miljardia läpikäytävää kombinaatiota
  • Tämän päivän tietokone laskee n. 4 miljardia vaihtoehtoa sekunnissa → Kokeilee kaikki vaihtoehdot 52 sekunnissa.
  • Testaa salasanojen turvallisuutta itse
  • Hyvä järjestelmä ei tietenkään saisi antaa kokeilla rajattomasti eri vaihtoehtoja
# videoJohdanto44
# videoWireshark

TLS/SSL

# v2018L5_7
# v2018L5_8

Transport Layer Security (TLS) on protokolla, jota käytetään esimerkiksi WWW-palvelinten ja verkkoselainten välisen tietoliikenteen luottamuksellisuuden sekä eheyden takaamiseen. Lisäksi TLS:ää käytetään WWW-palvelimen todentamiseen, mutta asiakkaita, eli verkkoselaimia, ei todenneta.

TLS toteuttaa luottamuksellisuuden symmetrisiä salausmenetelmiä käyttäen. Palvelimen todentaminen, eli autentikointi, tehdään julkisen avaimen salausmenetelmällä. Viestien eheyden tarkistamiseen sekä todentamiseen käytetään viestin tunnistamiskoodeja, englanniksi Message Authentication Code (MAC), jotka muodostetaan joko tiivistealgoritmeilla, esimerkiksi HMAC-koodeilla, tai lohkosalausalgoritmeilla.

TLS protokollassa on useita valinnaisia määrityksiä, joilla on vaikutusta saavutettavaan tietoturvan tasoon, kuten esimerkiksi salausalgoritmien valintamahdollisuus tai mahdollisuus pyytää vanhemman TLS version, tai jopa SSL version, käyttöä.

Secure Sockets Layer (SSL) on TLS:n edeltäjä, jonka käytön IETF on kieltänyt, myös viimeisimmän 3.0 version, RFC 7568. Lisäksi TLS protokollien ei enää tulisi mahdollistaa TLS protokollan neuvotteluvaiheessa sitä, että käytettäisiinkin SSL protokollaa. Keväällä 2018 noin 10 % maailman suosituimmista palveluista mahdollistaa vielä SSL version 3.0 käytön ja pari prosenttia myös SSL version 2.0 käytön, lähde https://www.ssllabs.com/ssl-pulse/. Nykyään SSL terminä on kuitenkin vielä usein käytössä, kun tarkoitetaan vain TLS protokollaa.

TLS protokollan versiosta 1.3 julkaistiin RFC dokumentti elokuussa 2018.

# rfc8446

MiKä on SSL/TLS

  • SSL on Secure Sockets Layer
    • Uusin SSL versio 3.0
      • mikään SSL versio ei ole enää turvallinen
      • IETF on kieltänyt SSL versioiden käytön
      • Versio 3.0 kiellettiin 2015 RFC 7568
    • TLS 1.0 on oikeastaan SSL 3.1 versio
    • SSL on TLS:n edeltäjä
      • monesti termejä käytetään tarkoittamaan samaa
      • joko erikseen (SSL tai TLS) tai yhdistettynä SSL/TLS tai TLS/SSL
  • TLS on Transport Layer Security
    • 2015 - TLS 1.0 ei ole enää turvallinen
    • 2016 - TLS 1.1 ei ole enää turvallinen
    • 2017 - TLS 1.2 versiota pidetään enää ainoana turvallisena versiona
    • 2018 - Keväällä TLS 1.3 on IETF Draft vaiheessa, ei vielä lopullinen RFC
    • Testaa itse palvelinten SSL/TLS valmius https://www.ssllabs.com/ssltest/
  • QUIC - Googlen selaimissa ja palvelimissa - "designed to provide security protection equivalent to TLS/SSL"
  • RFC 7457 - Summarizing Known Attacks on Transport Layer Security (TLS) and Datagram TLS (DTLS)
  • SSL/TLS käyttö suosituimmissa palveluissa
# videoJohdanto43

Tietoverkkouhat

# v2018L5_9

Joitain tietoverkkojen tietoturvauhkia

  • Haittaohjelmat (eng. malware) - pääsy laitteeseen Internetistä
    • Virus - vaatii käyttäjän toimenpiteen
    • Mato - esim. haavoittuvan verkkosovelluksen kautta
    • Suojautuminen: Mieti mitä klikkaat, pidä kaikki päivitettynä, palomuuri ja virustorjunta
  • Palveluiden esto
    • (D)DoS (Hajautettu) Palvelunestohyökkäys
    • Tukahdutetaan palvelin tai sen liityntälinkki paketeilla
    • Suojautuminen: Vaikeaa, esim. IDS (Intrusion Detection System) tai IPS (Intrusion Prevention System)
  • Pakettien kaappaaminen
    • onnistuu helposti salaamattomassa WLAN verkossa
    • salatussa WLAN verkossa vie jonkin aikaa purkaa salaus
      • Lisää esim. TIES327 Tietoverkkoturvallisuus kurssilla
    • HTTPS vs. HTTP protokolla
    • Suojautuminen: Salataan liikenne
# videoJohdanto40

Tietoverkot mahdollistavat myös haitallisten ohjelmien, englanniksi malicious software tai malware, tunkeutumisen Internettiin yhdistettyyn laitteeseen. Haitallinen ohjelma voi esimerkiksi tuhota tiedostoja, kerätä käyttäjän tietoja, nauhoittaa näppäimenpainalluksia tai AV-laitteiden signaalia, salata koneen tiedot ja vaatia maksua salauksen purkamisesta (ns. ransomware) tai liittää laitteen osaksi bottiverkkoa. Bottiverkkoon joutuneet laitteet ovat osittain etähallittavia ja ne voidaan laittaa osallistumaan esimerkiksi sähköpostin massalähetyksiin (späm) tai hajautettuun palvelunestohyökkäykseen. Haittaohjelmat yleensä pyrkivät myös monistumaan, eli lähettämään kopiota itsestään löytämilleen uusille uhrilaitteille.

Haitalliset ohjelmat voidaan jaotellaan kahteen luokkaan sen mukaan kuinka ne tunkeutuvat verkkoon liitettyyn laitteeseen. Virukset vaativat aina käyttäjän toimenpiteen, josta yleisin esimerkki on sähköpostin liitetiedostona saapuva haittaohjelma, joka käynnistyy liitettä klikattaessa. Madot puolestaan hyödyntävät verkkoa käyttävien sovellusten haavoittuvuuksia tunkeutuakseen järjestelmään, eivätkä vaadi käyttäjän toimenpiteitä.

Tietoverkoissa sijaitsevien palveluiden saatavuus on tänä päivänä yksi suosituimmista tietoverkkohyökkäysten kohteissa. Tällöin hyökkääjän tarkoituksena ei ole saada itselleen suoraa hyötyä, vaan estää palvelun käyttö kaikilta. Tällaista hyökkäystä kutsutaan palvelunestohyökkäykseksi, englanniksi Denial of Service (DoS). DoS -hyökkäyksen ideana on tukahduttaa palveluntarjoajan verkkoyhteys, itse palvelin tai jokin muu laite. Tukahduttaminen toteutetaan tekemällä turhia palvelupyyntöjä, jolloin verkkolaitteden, linkkien tai palvelinten kapasiteetti ei enää riitä tarjoamaan palvelua uusille asiakkaille. Yhdeltä laitteelta saapuva DoS hyökkäys on nykyään helppo torjua, kun se havaitaan. Palomuuri tai muu tietoturvajärjestelmä estää kaiken kyseiseltä laitteelta saapuvan tietoliikenteen. Käytännössä paketit pudotetaan, sen jälkeen kun ne on vastaanotettu ja lähettäjä tarkastettu.

Hajautetussa palvelunestohyökkäyksessä, englanniksi Distributed Denial of Service (DDoS), hyökkäys saapuu usealta laitteelta, jotka voivat sijaita missä vaan Internetissä. Hajautetun hyökkäyksen estäminen on vaikeaa, koska joudutaan blokkaamaan useita eri laitteita. Hajautettuihin hyökkäyksiin käytetään bottiverkkoja, jotka koostuvat tavallisten ihmisten Internettiin yhdistetyistä laitteista, mukaanlukien IoT laitteet, jotka haittaohjelma on ottanut osittain tai kokonaan haltuunsa. Bottiverkko voi olla lepotilassa, kunnes se valjastetaan hyökkäykseen bottiverkon kontrolloijan toimesta. Tyypillisesti bottiverkkoon voi kuulua satoja, tuhansia tai jopa miljoonia laitteita. Tänä päivänä bottiverkon muodostamiseen on tarjolla useita työkaluja, joiden avulla, pienellä teknisellä osaamisella, voi helposti toteuttaa DDoS hyökkäyksen. Toisaalta DDoS hyökkäyksen, esimerkiksi päivän ajaksi, voi ostaa parilla sadalla eurolla.

DDoS hyökkäyksiä tehdään eri tekniikoilla, mutta yhteistä niille on protokollien, niiden ominaisuuksien tai heikkouksien, käyttö. Hyökkäykset voidaan jakaa kerrosarkkitehtuurin mukaisesti niiden hyödyntämän protokollan mukaan.

  • Sovelluskerroksen hyökkäyksiä (Kerroksen 7 hyökkäys)
    • HTTP flood
    • Slowloris
    • RUDY
    • Zero-day
    • Käyttöjärjestelmän haavoittuvuksia hyödyntävät
    • Ohjelmistojen haavoittuvuksia hyödyntävät
  • Kuljetuskerroksen hyökkäyksiä (Kerroksen 4 hyökkäys)
    • UDP flood
    • SYN flood
    • NTP amplification
    • DNS amplification
  • Verkkokerroksen hyökkäyksiä (Kerroksen 3 hyökkäys)
    • IP fragmentation
    • Ping of Death
    • ICMP flood

DDoS hyökkäyksiltä on vaikea suojautua kokonaan ja hyökkäystekniikat kehittyvät kokoajan, jotta ne olisi vaikeampi havaita. Tehokkain suojausmenetelmä olisi saada bottiverkot suljettua, mikä vaatii bottiverkkojen ylläpitäjien löytämistä, sekä kaikkien Internettiin liitettyjen laitteiden jatkuvaa tietoturvan päivitystä, jotta bottiverkoille ei ole tarjolla orjalaitteita, tai zombie-laitteita, miksi niitä usein kutsutaan.

DDoS hyökkäyksiin kannattaa varautua etukäteen ja hyökkäysten havaitsemiseen ja estämiseen sekä jo alkaneen hyökkäyksen lopettamiseen on erilaisia teknisiä ratkaisuja, laitteistoja sekä palveluita. Ollaakseen tehokkaita, menetelmien tulisi olla laitteistolla toteutettuja, jottei turvamenetelmät itsessään hidasta palvelun saatavuutta.

  • Palomuuri
    • estää yksinkertaisimmat hyökkäykset lähettäjän osoitteen tai käytetyn protokollan mukaan
  • Reititin tai kytkin
    • Voi ylläpitää listaa sallituista ja ei-sallituista osoitteista
  • Erillinen laite verkon Internet-liityntään
    • tutkii ja luokittelee liikennettä, ennen kuin liikenne päästetään omaan verkkoon
  • IDS (Intrusion detection system) ja IPS (Intrusion prevention system)
    • Havaitsee haittaliikenteen, mutta ei sellaista DDoS hyökkäystä, joka näyttää normaalilta liikenteeltä.
    • IPS lisäksi estää havaitun liikenteen
    • Pääasiassa järjestelmät tunnistaa tunnettuja uhkia
    • Kehitetään jatkuvasti uusia menetelmiä, joilla havaitaan
      • normaalilta liikenteeltä näyttävät uhat
      • vielä tuntemattomat uhat
  • DDS (DoS Defense System)
    • Erityisesti useiden erityyppisten DoS hyökkäysten torjumiseen
  • Upstream filtering
    • Kaikki liikenne kierrätetään pilvipavelun kautta, joka torjuu useita erilaisia hyökkäyksiä sekä haittaliikennettä
    • Palvelua tarjoaa useat isot sisällönjakeluverkot, englanniksi Content Delivery Network CDN, sekä pilvipalveluiden tarjoajat.

Tietoturvan kiertäminen

# v2018L5_10
  • Kontrolloidaan kansainvälistä salausstandardointia
    • Aiemmin rajoittamalla salausavainten pituuden 56 bittiin
    • Esim. patentoimalla salaustekniikoita, jotta niitä ei voi käyttää
  • Hyväksikäyttämällä implementoinnin haavoittuvuuksia
    • Tekemällä 'yhteistyötä' salausteknologioista vastaavien yritysten kanssa - lisäten haavoittuvuuksia
    • Käyttämällä hyväksi löytämäänsä haavoittuvuutta, sen sijaan että julkaistaan se jotta sen voisi korjata
  • Supertietokoneiden brute force laskenta
    • Kaikki salausmenetelmät voi purkaa tuntemalla salausavaimen, joten etsitään salausavain
    • Käytetään järjetön määrä lasketatehoa salausavainten etsimiseen (käydään kaikki vaihtoehdot läpi)
    • Varastetaan tai muuten saadaan tietoon salausavaimia, jolloin ei tarvitse testata kaikkia vaihtoehtoja
# videoJohdanto41

Joitain tietoturvaan liittyviä haavoittuvuuksia

# v2018L5_11
  • The Heartbleed Bug - Julkisuuteen 11.4.2014 - Viestintäviraston tiedote
    • SSL/TLS salauksen implementointiin liittyvä ongelma, SSL/TLS liikenne pysyy salattuna, ei siis tietoverkkohaavoittuvuus, vaan ohjelmistohaavoittuvuus
      • Ohjelmointi 2 kurssin jälkeen → C++ lisäosassa tarkemmin → ja sitten ITKST53 Ohjelmistoturvallisuus kurssille
    • ns. Buffer overflow -bugi, jossa (palvelin)koodi ei tarkista SSL/TLS viestin ilmoittamaa muistipuskurin kokoa
    • Muuttamalla arvon suuremmaksi kuin palvelimen muistipuskurin todellinen koko, voidaan lukea palvelimen muistissa olevaa tietoa, sisältäen esim. sertifikaatit, käyttäjätunnukset sekä salasanat
  • Gemalton SIM korttien Ki -salausavainten varkaus - Julkisuuteen 20.2.2015, tapahtunut vuonna 2010 - Viestintäviraston tiedote
# videoJohdanto42

Dataa vääriin käsiin

# v2018L5_12

Yksityisyydestä

  • Tietoturva ei ole vain turvallisia protokollia, turvallista ohjelmointi sekä salausta
  • Myös yksityisyys (eng. privacy) liittyy tietoturvaan
  • Eli se mitä tietoa jokainen jakaa itsestään sosiaalisessa mediassa

Linkki johti aikuisviihdesivulle, en tiedä oliko tarkoitus. Ainakin taas muistaa vähän aikaa olla klikkailematta mitä sattuu...

10 Apr 18

Pahoittelut, en ollut ehtinyt tarkastaa linkkiä. Osoitteessa oli aiemmin facebook-sovellus, joka demonstroi sitä mitä kaikkea tietoa antaa facebookin sovelluksille, hyväksyessään (lukematta) ehdot. Sovellukesta voi lukea wikipediasta https://en.wikipedia.org/wiki/Take_This_Lollipop ja sovelluksen generoimia videoita löytynee youtubesta. Lisäsin luentotallenteen vuodelta 2015, jossa esitän sovelluksen toiminnan.

11 Apr 18 (edited 11 Apr 18)
# v2015takethislollipop

Tietoverkkojen historia

# v2018L5_13

Internetverkon edeltäjänä pidetään ARPANET verkkoa, jonka kehityksen yhteydessä ovat syntyneet monet nykyisen Internetin toimintaan liittyvät tekniikat ja protokollat. ARPANET syntyi kun yhdysvaltojen Advanced Research Projects Agency (ARPA) päätti 1960 luvun loppupuoliskolla tehdä pakettikytkentäisen verkon neljän ARPA:lle tietokoneisiin liittyvää tutkimusta tekevän organisaation kanssa, (i) Kalifornian yliopisto (UCLA) (ii) Stanford Research Institute (SRI) (iii) Kalifornian yliopisto, Santa Barbara (UCSB) sekä (iv) Utahin yliopisto. Näillä organisaatioilla oli kaikilla eri valmistajien keskustietokoneet ja niissä eri käyttöjärjestelmät, joten tarvittiin yhteinen rajapinta, jonka avulla koneet saadaan kommunikoimaan tulevan pakettiverkon yli. Laitetoimittajien kilpailutuksen jälkeen pakettiverkon solmulaitteiden, pakettikytkinten, Interface Message Processor (IMP), toimittajaksi valittiin Bolt, Beranek and Newman -yhtiö. IMP vastasi lähinnä reititintä, tosin silloin ei vielä ollut mm. kerrosarkkitehtuuria, mutta järjestelmän protokollan toteutuksen voidaan katsoa jaetun kolmeen kerrokseen: fyysiseen, linkki- ja verkkokerrokseen. Myöskään verkkoa hyödyntäviä sovelluksia ei ollut vielä olemassa ja tehtävään ajautuivat tutkimusorganisaatioiden vastavalmistuneet opiskelijat. Heidän työstään verkossa käytetävän ohjelmiston kehittämiseksi saivat alkunsa RFC dokumentit, jotka olivat aluksi dialogia ARPANET:in ja sen sovellusten ja protokollien kehittämiseksi.

# t1ha
# t1hb
# t1hc
# rfc1000

Toimiikohan tämä kysymys oikein? Luullakseni olen nimennyt oikean RFC:n, jossa ainakin nuo 1-999 löytyy…

08 Sep 18

Olet löytänyt RFC:n, jossa listataan RFC:t lähdeluettelona (bibliograbhy), eli listassa on tiedot RFC dokumenteista, joita käytetään lähdeluetteloissa, kun RFC dokumentteihin viitataan. Kysymyksessä pyydetään RFC dokumenttia, jossa on RFC:t on listattu ja jaoteltu sisällön perusteella. Lisäksi kysytyssä RFC dokumentissa on lyhyt yhteenveto, jokaisesta RFC:stä, joiden numero on väliltä 1 - 999.

10 Sep 18
# rfc616

Saisiko tähän apuja? Etsin IETF:n sivulta hakutoimintoa käyttäen RFC dokkeja, jotka on julkaistu tammikuussa 1974. Sen lisäksi hain ARPANET hakusanalla RFC-dokkeja. Vastaukseksi tuli 27 dokkia mutta mikään niistä ei kelpaa vastaukseksi.

19 Sep 18

Kysytty RFC dokumentti on julkaistu helmikuussa 1974, tosin joissain listauksissa esim. https://tools.ietf.org/rfc/index on virheellisesti merkitty että kysytty RFC dokumentti olisi julkaistu helmikuussa 1973.

20 Sep 18
# rfc2555

Internetin historiaa Internetin palveluilla

# t1historia
# t1historia2
# t1historia3

Ei anna pisteitä

03 May 18

Nyt on korjattu tämä ja seuraava tehtävä. Tallennus uudelleen antaa pisteet.

04 May 18 (edited 07 May 18)
# t1historia4

Teoria 2

Sovelluskerros

# videoBitTorrent
# video2018Luento6

Sisältöä

# v2018L6_1
  • Sovelluskerros ja sen protokollat
    • HTTP
      • WWW, HTTP, HTTPS, evästeet, välimuisti
    • DNS (Domain Name System)
    • Sähköposti
      • SMTP, POP3, IMAP
    • FTP
    • Tor
  • Kuljetuskerros
  • Verkkokerros
  • Linkkikerros
# videoJohdanto47

HTTP (Hypertext Transfer Protocol)

# v2018L6_2
  • Tekstipohjainen protokolla (vielä)
  • WWW sivujen siirtoon palvelimelta asiakkaalle (selaimelle)
  • Selain lähettää pyynnön johon palvelin vastaa
  • Yleisin pyyntö on GET ja palvelin vastaa status koodilla, joka kertoo miten pyyntöön vastaaminen onnistui
# t2rfc2616

HTTP Evästeet

# v2018L6_3
  • HTTP on yhteydetön protokolla, ei ylläpidä yhteyttä palvelimeen (alapuolinen kuljetuspalvelu on yhteydellinen, mikä on eri asia)
  • HTTP on tilaton protokolla, eli HTTP protokolla ei välitä informaatiota mahdollisesta aiemmasta vierailusta sivulla
  • Evästeillä palvelin pystyy tunnistamaan/muistamaan käyttäjän (selaimen) aiemmat vierailut
  • Palvelin pystyy tallentamaan lomakkeilla syötettyä tietoa ja yhdistämään sen evästeen avulla käyttäjään
# videoJohdanto50
# t1rfc6265

Web välimuisti (cache)

# v2018L6_4
  • Tallennetaan väliaikaisesti HTTP protokollalla haettuja objekteja
  • Web sivu tulee näkyviin nopeammin, kun se haetaan lähempää
  • Sivun tallentaminen välimuistiin voidaan sallia HTTP otsikkokentillä
  • Välimuistissa oleva sivun voimassaolo voidaan määrittää
    • Jos sivu on tuore, ei tarvitse kysyä uutta sivua
    • Jos sivu on vanha, kysytään palvelimelta, voiko sitä vielä käyttää
  • Pienentää tiedonsiirron tarvetta, helpottaa ruuhkia pullonkaula -linkeillä
  • Selain tallentaa hakemiaan resursseja välimuistiin (browser cache)
  • ISP:llä tai organisaatiolla voi olla välimuistipalvelin (Web cache tai HTTP cache)
  • Web proxy on eri asia, ei tallenna välimuistiin, välittää pyynnön eteenpäin
  • Joskus Web cache:sta käytetään nimitystä Web proxy cache, korostamaan että välimuisti on erillisessä palvelimessa
# videoJohdanto51
# t2rfc7234

HTTPS ("HTTP over TLS", "HTTP over SSL", "HTTP Secure")

# v2018L6_5
  • Keneen luotetaan? Sertifikaatin myöntäjiin, Selainten valmistajiin
  • Selainten valmistajat valitsevat luotetut juurisertifikaatit
  • Palvelimen admin luo julkisen avaimen sertifikaatin , jonka joku (luotettu) Sertifikaatti auktoriteetti allekirjoittaa
  • Jos Sertifikaatti auktoriteetti on selaimen valmistajan mukaan luotettu, niin selain ei anna varoitusta
  • Tuli 2016: lmainen automatisoitu sertifikaatin myöntäjä: Let's Encrypt
# videoJohdanto52
# t2rfc2818

HTTP protokolla kehittyy hitaasti

# v2018L6_6
  • (HTTP/1.0) HTTP non-persistent: Voidaan siirtää vain yksi objekti samalla TCP yhteydellä
  • (HTTP/1.1) HTTP persistent: Voidaan siirtää useita objekteja samalla TCP yhteydellä
  • Mutta ei voida siirtää rinnakkain samalla TCP yhteydellä
    • Selaimet avaavat useita rinnakkaisia TCP yhteyksiä
  • HTTP/2: voidaan siirtää useita objekteja rinnakkain samalla TCP yhteydellä
  • HTTP/2 muita muutoksia: binäärinen, otsikoiden pakkaaminen, palvelin voi työntää sivuja välimuistiin ilman selaimen pyyntöä,...
  • Demo: HTTP/1.1 vs. HTTP/2

Demo ei toimi ainakaan Chromella, Safarilla eikä Firefoxilla

13 Aug 19
# videoJohdanto53
# videoHTTPrinnakkain
# t2rfc7540

HTTP persistent vs. non-persistent

# v2018L6_7

DNS (Domain Name System)

# v2018L6_8
# videoJohdanto48
# t2rfc882
# t2rfc883

Mikis tuohon tulee aina teksti“Saved t2rfcXXX”, jossa siis XXX on se dokumentin numero? Helpottaa kyllä vastaamista, mutta ei tue sitä etsimistä :)

06 Dec 18

Tarkistin on vielä tyhmä, eikä anna palautetta. Tuo saved -teksiti on TIM-järjestelmän tapa ilmoittaa että vastaus on tallennettu. En ole oikein keksinyt sitä, että minkälainen palaute auttaisi etsimistä :)

11 Dec 18

Verkkotunnuksen hakeminen: esim. www.itkp104.fi

# v2018L6_9
  • Tarkista onko verkkotunnus varattu: domain.fi
  • Sitten hae verkkotunnusta
  • 5.9.2016 jälkeen .fi verkkotunnukset ja niihin liittyvät palvelut hankitaan verkkotunnusvälittäjältä
  • Voiko hankkia esimerkiksi verkkotunnuksen www.itkp104.ari
  • Periaatteessa... Alternative DNS root
    • ... jos joku suostuu ylläpitämään .ari verkkotunnusta
    • ja lisäksi sivuston löytämiseen tarvittaisiin erillinen ohjelmisto tai lisäosa selaimeen
# videoJohdanto49

DNS palvelimet

# v2018L6_10

Autoritäärinen nimipalvelin on palvelin jolla on virallinen tieto jonkun verkkotunnuksen, tai useamman, muunnoksesta. Tieto muunnoksesta, eli verkkotunnusta vastaava IP osoite, joudutaan hakemaan joltain nimipalvelimelta. Ratkaisijanimipalvelimen tehtävä on selvittää verkkotunnusta vastaava IP osoite. Tieto muunnoksesta voi olla jo aiemmin selvitetty, ja voi täten olla ratkaisijanimipalvelimen välimuistissa. Jos tieto ei ole ratkaisijannimipalvelimen välimuistissa, niin ratkaisijanimipalvelin kysyy ensin juurinimipalvelimelta, sitten ylätason nimipalvelimelta ja lopuksi autoritääriseltä nimipalvelimelta muunnosta. Edellinen siis silloin, kun muunnos ei ole minkään nimipalvelimen välimuistissa ja ratkaisijanimipalvelin käyttää iteratiivista kyselyä.

Ratkaisijanimipalvelin on tietokoneen asetuksissa oletusnimipalvelin, jota tietokoneen DNS-palvelu käyttää, jos DNS-palvelulla ei ole tietoa tallennettuna välimuistiin, tai hosts-tiedostoon. Nykyään verkkoselaimissa voi olla oma välimuisti muunnoksille, jonne tallennetaan tietokoneen DNS-palvelulta saadut tiedot muunnoksesta. Kun verkkotunnusta vastaava IP osoite on tallennettu välimuistiin, niin tiedonsiirron aloituksessa koettava viive on sitä pienempi mitä lähempää muunnos löytyy.

Ratkaisijanimipalvelin voi joskus olla sama kuin autoritäärinen nimipalvelin. Esimerkiksi, kun Jyväskylän yliopiston verkkoon kuuluvalla tietokoneella selvitetään yliopiston verkkotunniksia vastaavia IP osoitteita, niin tietokoneeseen on asetettu oletuspalvelimeksi ns1.jyu.fi (130.234.4.30), joka on myös jyu.fi -verkkotunnuksista vastaava autoritäärinen nimipalvelin.

  • Hajautettu hierarkinen rakenne
  • URL: www.jyu.fi.[tyhjä]
  • DNS Palvelinten roolit
    • Juurinimipalvelin ["piste tyhjä"]
    • Ylätason nimipalvelin [.fi] (TLD-nimipalvelin)
    • Autoritäärinen nimipalvelin [jyu.fi]
    • Ratkaisija (Resolveri) nimipalvelin
      • alkaa pyynnöstä selvittää IP osoitetta
        • DNS-asiakasohjelmisto laitteessa kysyy ratkaisijalta, joka on
        • oletusnimipalvelin laitteen verkkoasetuksissa

En saa tästä oikein kiinni, mikä on autoritäärisen ja ratkaisijan välinen suhde? Ymmärrän, että resolveri hakee pyynnöstä IP-osoitteen mutta mitä autoritäärinen nimipalvelu tekee? Katsoin videon mutta en ymmärrä. Videolla sanotaan, että autoritäärisellä nimipalvelulla on tietoa IP-osoitteen muunnoksesta; eli se vastaa esim jyu.fi osoitteen muunnoksesta IP-osoitteeksi. Eikö se resolver hakenut sitä IP-osoitetta? Eli tätä rajapintaa en ymmärrä.

26 Sep 18 (edited 26 Sep 18)

Lisäsin tekstikappaleen selventämään asiaa

26 Sep 18

Juurinimipalvelimet

# v2018L6_11

# videoDNS1

DNS: kokeile itse (nslookup)

# v2018L6_12

Käyttöjärjestelmissä on komentoriviltä ajettava ohjelma, jolla voi selvittää Internetin verkkotuunnusta vastaavan IP osoitteen. Windows käyttöjärjestelmässä ohjelman nimi on nslookup. Käyttöjärjestelmissä macOS ja Linux on myös ohjelma dig, joka on monipuolisempi. Ohjelmalle voidaan antaa parametrina DNS-palvelimen nimi tai osoite, jolta verkkotunnusta kysytään, nslookup - palvelin. Esimerkiksi yliopiston viralliselta nimipalvelimelta kysytään kirjoittamalla palvelin-sanan tilalle palvelimen nimi tai IP-osoiten.

nslookup - ns1.jyu.fi

Jos saat vastaukseksi IPv6 osoitteen, niin käynnistä nslookup uudestaan antamalla DNS palvelimen nimeksi palvelimen IPv4 osoite, mikä pakottanee palvelimen antamaan vastaukseksi IPv4 osoitteen. Jyväskylän yliopiston nimipalvelimen tapauksessa, siis

nslookup - 130.234.4.30

Tee seuraava tehtävä käyttöjärjestelmän nslookup-ohjelmalla.

# t2nslookup1

On my Mac both nslookup and dig doesn't work correctly (0 points). Or, maybe I didn't understand the task

28 Apr 18 (edited 29 Apr 18)

Olisiko tähän jotakin tarkempaa ohjetta? Alla on Windows, mutta tulos ei näytä ollenkaan samalta kuin luennolla eikä tuo myöskään hyväksy vastaustani.

29 Apr 18

I updated the instructions on the question. Most problems have arisen from not communicating with the Authoritative server for (tim).jyu.fi domain. Outside JYU domain you must specify, with command line parameters, the server to communicate. At JYU domain the default server is generally the Authoritative server.

30 Apr 18 (edited 30 Apr 18)

This should now work in Linux, macOs and Windows, when you use nslookup to communicate with the Authoritative server.

30 Apr 18 (edited 30 Apr 18)

This does not work with dig -program. The output differs very much from nslookup. I might do another task where you must use dig, which can be found e.g. from (j|h)alava.cc.jyu.fi if you only have windows.

30 Apr 18

En saanut itsekään tätä toimimaan tai ainakaan pisteitä ei näy, vaikka googlettelin ohjeita siitä, miten tuon virallisen vastauksen saa JYU:n ulkopuolella.

30 Sep 18

Tehtävän yläpuolisessa tekstissä on ohje siitä kuinka virallisen palvelimen kanssa keskustellaan, tosin se ei ollut selkeä. Lisäsin esimerkit tekstiin korostamaan asiaa.

av: Tarkistin päivitetty 8.3.2021 antamaan palautetta sekä oikeista että vääristä vastauksista

01 Oct 18 (edited 08 Mar 21)
  • Kokeile komentoriviltä: nslookup (Linux ja Mac -järjestelmissä myös monipuolisempi dig)
    • www.google.com
    • www.google.fi
    • www.jyu.fi
    • users.jyu.fi
    • set type=MX
    • jyu.fi
    • student.jyu.fi
    • set type=all
    • jyu.fi
  • Juurinimipalvelimen ja TLD-nimipalvelimen tiedot
    • set type=all
    • .
    • fi.
  • Tietojen kysyminen miltä tahansa DNS palvelimelta
    • nslookup - 8.8.8.8
    • set type=all
    • jyu.fi
# videoDNS3

DNS Iteratiivinen vs. rekursiivinen

# video2018Luento7
# v2018L7_1

DNS rekursiivisessa kysymys ratkaisijalta menee juurinimipalvelimelle '.', joka sitten kysyy TLD palvelimelta '.fi' joka kysyy autoritääriseltä palvelimelta 'tietokone.fi' ja vastaus palaa samaa reittiä. Iteratiivisessa em. palvelimet eivät palauta vastausta vaan sen keneltä ratkaisijan tulee kysyä seuraavaksi. DNS-palvelimen asetuksista voidaan valita se tukeeko palvelin rekursiivista kyselyä. Juurinimipalvelimet ja TLD-palvelimet eivät pääsääntöisesti tue rekursiivista kyselyä.

# videoDNS2
# t2dns1
# t2dns2

Sähköposti Internetissä

# v2018L7_2

Sähköposti on yksi Internetin vanhimmista sovelluksista. Sähköposti on määritelty useissa RFC dokumenteissa, joista ensimmäiset määrittelivät sekä sähköpostin välitykseen että sähköpostin sisältöön liittyvät asiat. Aluksi sähköposti luettiin suoraan kirjautumalla sähköpostipalvelimelle ja lukemalla posti palvelimen sähköpostilaatikossa, inbox. Myöhemmin kehitettiin protokollia sähköpostin noutamiseen, joilla sähköpostit saattoi hakea luettavaksi sähköpostisovellukseen. Viimeisimpänä lisäyksinä sähköpostiin on RFC dokumentit, joissa määritellään se, kuinka sähköpostia voidaan käyttää siirtämään myös muitakin merkistökoodauksia, kuin 7-bittistä ASCII -koodausta, sekä muun tyyppistä informaatiota kuin teksti.

Sähköpostin lukemiseen ja lähettämiseen käytettävät sovellukset voidaan jakaa karkeasti kahteen eri kategoriaan

Jakona toimii se mitä protokollia sovellukset käyttävät kommunikoimiseen sähköpostipalvelinten kanssa.

Nykyään useimmiten sähköpostin lähettämiseen ja lukemiseen käytetään verkkoselainta, jossa sähköpostin lähettäminen sähköpostipalvelimelle sekä noutaminen sähköpostipalvelimelta tehdään HTTP protokollalla, mutta sitä ei kuitenkaan käytetän sähköpostipalvelinten välisessä kommunikaatiossa. Kaikki kommunikaatio sähköpostipalvelinten välillä tehdään SMTP protokollalla. SMTP protokollaa käytetään sähköpostin lähettämiseen sähköpostipalvelimelle, sekä sähköpostipalvelinten välillä että sähköpostisovelluksilla (jotka eivät ole www-pohjaisia), sähköpostipalvelimet eivät nouda posteja toisilta sähköpostipalvelimilta. Käyttäjät voivat noutaa sähköpostin säshköpostisovellusta käyttäen POP3 tai IMAP4 protokollalla tai www-pohjaisesti HTTP protokollalla. Jos sähköpostisovellus ei ole www-pohjainen, niin se käyttää SMTP ja POP3 tai IMAP4 protokollia.

Kohta “SMTP protokollaa käytetään sähköpostin lähettämiseen sähköpostipalvelimelle” koskee Email client-tyyppistä sähköpostia, eikös? Sen voisi vielä tarkentaa tähän. Ja vaikka alempiinkin lauseisiin. (“jos s-postisovellus ei ole www-pohjainen”..niin se on Email client)(?)

17 Sep 18 (edited 17 Sep 18)
# videoJohdanto54
# t2rfc5322
# t2rfc2045
# t2rfc2046
# t2rfc2047
# t2rfc4289
# t2rfc2049

SMTP (Simple Mail Transfer Protocol)

# v2018L7_3

Simple Mail Transfer Protocol (SMTP) kehitettiin sähköpostien lähettämiseen sähköpostipalvelimelle. Ensimmäinen RFC määriteltiin 1982 ja SMTP on yksi monista Internet standardeista. SMTP:tä voi käyttää vain viestien lähettämiseen tai välittämiseen sähköpostipalvelimelle. Sähköpostien noutaminen tehdään eri protokollilla. Nykyään sähköpostista on käytössä laajennettu versio, Extended SMTP, johon on lisätty mm. tunnistautumiseen ja tietosuojaan liittyviä ominaisuuksia.

# videoSMTP
# t2rfc821
# t2rfc2821
# t2rfc5321
# t2smtp1

POP3 (Post Office Protocol)

# v2018L7_4

Sähköpostin noutamiseen sähköpostipalvelimelta käytetään eri protokollaa, kuin sähköpostin välittämiseen palvelimelle. Nykyisin esimerkiksi puhelinten sähköpostisovellukset noutavat sähköpostin palvelimelta joko POP3 tai IMAP4 protokollia käyttäen.

POP3 on yksinkertainen tekstimuotoinen protokolla sähköpostin noutamiseen palvelimelta. POP3 protokollan puutteena on se ettei protokollalla pysty hallitsemaan sähköposteja palvelimella, vaan ne ladataan omalle koneelle, jossa hallinta tapahtuu. Lataukselle on kaksi vaihtoehtoa, sähköposti ladataan ja säilytetään palvelimella tai latauksen jälkeen sähköposti poistetaan palvelimelta. Omalla päätelaitteella voi sitten sähköpostiohjelmalla tehdä esimerkiksi eri kansioita ja siirrellä viestejä kansioista toiseen. Tämä on kuitenkin laitekohtainen ja useita laitteita käytettäessä, jokaisella on paikallinen näkymä sähköposteihin. POP3 protokollan ominaisuuksista johtuen, on palvelimen toteutus yksinkertainen.

# videoPOP3
# t2rfc1939
# t2pop3

IMAP4 (Internet Message Access Protocol)

IMAP4 protokolla kehitettiin POP3:n puutteiden ratkaisijaksi ja siinä on enemmän ominaisuuksia, kuin POP3:ssa. IMAP4:ss' saapuvat viestit sijoitetaan palivelimella oletuksena INBOX kansioon ja käyttäjä voi luoda palvelimelle muita kansioita, joihin sähköposteja voi sitten siirtää. IMAP4 protokollassa on siis erikseen käskyt esimerkiksi kansioiden luomiselle ja viestien siirtämiselle. IMAP4 protokollalla voi lisäksi siirtää päätelaitteelle vain osan sähköpostista, esimerkiksi otsikkotiedot, eikä aina tarvitse ladata koko viestiä.

# t2rfc3501
# t2imap4

Sähköposti Nordealta?

Image
Image

'Nordean' viestin lähetystiedot

Sähköposti APPIELD:ltä

Image
Image

Huomaa ison I -kirjaimen huijjausyritys pienenä l -kirjaimena, sekä pienen l -kirjaimen huijaus isona I -kirjaimena

FTP (File Transfer Protocol)

# v2018L7_5
  • FTP protokollaa käytetään tiedostojen siirtoon
  • Esimerkki selaimella ftp://ftp.funet.fi
# v2018L7_6
# videoFTP
# t2rfc959
# t2ftp

Salattu tiedostojen siirto

FTP on haavoittuvainen muutamalle hyökkäykselle ja salaamattomana sitä ei tulisi käyttää tärkeiden tiedostojen siirtämiseen. FTP:tä voi käyttää esimerkiksi Internetissä muutenkin julkisten tiedostojen siirtämiseen. Tiedoston siirto salattuna voidaan toteuttaa käyttämällä salausmenetelmää sovelluskerroksen ja kuljetuskerroksen välissä, kuten esimerkiksi FTPS (FTP Secure tai FTP over SSL) sekä FTP over SSH. Lisäksi on olemassa muita salattuja tiedoston siirtoon sopivia protokollia, kuten esimerkiksi SSH File Transfer Protocol (tunnetaan myös nimillä Secure File Transfer Protocol tai SFTP) sekä Secure copy (SCP). Lyhenteitä FTPS ja SFTP käytetään usein tarkoittamaan eri protokollia ja yleensä on hyvä tapa selventää asiaa käyttämällä protokollan koko nimeä. Lisäksi on olemassa FTP:tä yksinkertaisempi Simple File Transfer Protocol, joka myös lyhennetään SFTP, jossa ei ole minkäänlaista salausta. Simple File Transfer Protocol:laa yksinkertaisempi on vielä Trivial File Transfer Protocol (TFTP), jota käytettiin pääasiassa aikoinaan yksinkertaisten päätelaitteiden käynnistystiedoston lataamiseen lähiverkon palvelimelta.

Secure Copy (SCP) on tiedostonsiirtoprotokolla, joka perustuu BSD:n rcp (remote copy) -ohjelmaan, joka on yksi monista, jotka BSD kehitti omaan Unix-käyttöjärjestelmäänsä. SCP:stä, kuten rcp:stä, ei ole olemassa RFC dokumenttia. SCP suojaa tiedostot käyttämällä SSH:ta.

SSH File Transfer Protocol (SFTP) mahdollistaa monipuolisempaa tiedostojen operointia, esimerkiksi tiedostonjen muokkaaminen tai poistaminen, kuin esimerkiksi SCP, jolla voi vain siirtää tiedostoja. SFTP olettaa että alapuolella on turvallinen SSH:lla toteutettu tiedonsiirtokanava. SFTP ei koskaan valmistunut RFC-dokumentiksi vaan jäi Draft vaiheeseen. SFTP ja FTP ovat kaksi aivan erilaista protokollaa, eivätkä riipu toisistaan.

Kun FTP liikennettä salataan, käytetään sen alapuolella TLS -protokollaa, nimetään FTP over TLS tai FTPS.

# t2rfc425x
# t2SFTPdraft
# t2rfc2228
# t2rfc4217
# t2rfc913
# t2rfc1350

Network File System (NFS)

NFS on protokolla hajautettujen tiedostojärjestelmien, kuten verkkolevyjen, toteuttamiseen. NFS ei tunnista asiakasta tai palvelinta, eikä salaa liikennettä, joten sen kanssa tulee käyttää jotain autentikointimenetelmää sekä salata liikenne, jotta jaettujen tiedostojärjestelmien tiedot eivät ole ulkopuolisten saatavissa.

# t2rfc7530

Tor (The Onion Router - anonyymi verkko)

# v2018L7_7

  • Muodostaa virtuaalisen piirikytkennän (ketjun reitittäviä laitteita) kommunikoivien osapuolten välille
  • Virtuaalinen piiri Sovellus- ja kuljetuskerrosten välissä → voidaan käyttää eri sovellusprotokollia
  • Ennen lähetystä sovelluskerroksen data 'paketoidaan' ja salataan useaan kertaan (sipuliin lisätään kerroksia)
  • Jokaisella kerroksella on tieto vain edellisestä ja seuraavasta 'reitittävästä laitteesta'
  • Kun dataa siirretään, jokainen virtuaalisen piirikytkennän reititin poistaa uloimman kerroksen
# videoTOR

Sovelluskerrokselta kuljetuskerrokselle

  • Requirements for Internet Hosts -- Application and Support - RFC 1123
  • Requirements for Internet Hosts -- Communication Layers - RFC 1122

Sovelluskerroksen protokolla määrittelee

  • Mitä viestejä käytetään
  • Viestien syntaksin: mitä kenttiä viestissä ja kuinka ne erotetaan toisistaan
  • Viestien semantiikka (merkitys)
  • Säännöt sille, milloin lähetetään viestejä ja miten reagoidaan viesteihin
  • Avoimia protokollia (RFCt) ja yksityisiä protokollia
# videoSovellusProtokollat

Sovelluskerroksen tarpeet → Kuljetuspalvelu

# v2018L7_8
  • Data perille
    • Oikealle sovellukselle
  • Mahdollisuus käyttää useita verkkosovelluksia samaan aikaan
    • Yhdellä kuljetuskerroksen palvelulla?
  • Datan eheys? Eri tarpeita
    • Ei virheitä datassa eikä kadonnutta dataa, esim. sähköposti
    • Saa olla virheitä datassa
      • esim. puheliikenteen laatu kärsii
    • Saa kadota dataa
      • esim. kellon aikaa ei kannata lähettää uudestaan
      • vaan lähetetään uusi aika
# v2018L7_9
  • Ajoitus?
    • Viive (delay) ei voi olla sekunttiluokkaa esim. Internet-puheluissa
    • Viiven vaihtelu (delay jitter) ei saa olla suuri esim. suoratoistossa
  • Kaistanleveys (tiedonsiirtokapasiteetti)?
    • Videopuhelussa kuvan siirto vie paljon enemmän 'kaistaa' kuin äänen siirto
  • Tietoturva?
    • Palvelin tunnistaa asiakkaan? Asiakas tunnistaa palvelimen? Selkokielinen datansiirto kryptataan?
# videoKuljetusPalvelu

Internetin kuljetuspalvelut

# v2018L7_10
  • Data viedään oikealle sovellukselle
  • Kuljetuskerroksen osoitteet (portit) laitteessa
    • useita samanaikaisia verkkosovelluksia
  • Yhteydellinen kuljetuspalvelu …
    • Luotettava kuljetuspalvelu
    • Ruuhkanhallinta ja vuonvalvonta
  • … tai yhteydetön kuljetuspalvelu
    • Ei-luotettava kuljetuspalvelu
# v2018L7_11
  • Ajoitus?
    • Ei tällä hetkellä, ehkäpä jonain päivänä
  • Kaistanleveveys?
    • Ei tällä hetkellä, ehkäpä jonain päivänä
  • Tietoturva?
    • Ei, toteutetaan tarvittaessa kuljetuskerroksen ja sovelluskerroksen välissä
  • Käytännön implementointi?
    • Soketti (rajapinta käyttöjärjestelmän protokollapinon toteutukseen)
# videoKuljetusInternet

Internetin kuljetuspalveluiden nimet

# v2018L7_12
  • Transmission Control Protocol (TCP)
  • User Datagram Protocol (UDP)
  • Datagram Congestion Control Protocol (DCCP)
  • Stream Control Transmission Protocol (SCTP)
  • Kuljetuskerroksen protokollien vertailua
# videoKuljetusProtokollat
# t2rfc768
# t2rfc793
# t2rfc4340
# t2rfc4960

Ajoitus ja kaistanleveys tulevaisuudessa?

# v2018L7_13
  • IntServ
    • Yksi ehdotus ajoituksen ja kaistanleveyden takaamiseksi
    • Resource Reservation Protocol (RSVP)
      • Integrated Services arkkitehtuurin resurssienvaraus protokolla
    • Takaa ajoituksen ja kaistanleveyden
  • DiffServ
    • IntServ:n kilpailija
    • kevyempi, ei takaa absoluuttista ajoitusta tai kaistanleveyttä
    • suhteellinen palvelun laatu
# t2rfc1633
# t2rfc2210
# t2rfc2205
# t2rfc2475

Kuljetuskerros tarjoaa...

# v2018L7_14
  • ... kuljetuspalvelun sovelluskerrokselle käyttäen verkkokerroksen palveluita apunaan
  • Minkälainen on verkkokerros Internetissä?
    • Pakettikytkentäinen
    • Kun verkko ruuhkautuu, paketteja saattaa hävitä
    • IP protokolla ei tarkista onko sen kuljettamassa datassa virheitä
  • Verkkokerroksen palvelu Kuljetuskerrokselle?
    • Vie datan virheettömästi oikeaan osoitteeseen, jos vain pystyy!
    • Best Effort -palvelu
    • IP protokollaa ei kiinnosta
      • jos reitittimet hukkaa paketteja
      • jos fyysisellä tai linkkikerroksella tulee virheitä
# videoKuljetusInternet3

Sovelluskerros haluaa kuljetuspalvelulta...

# v2018L7_15
  • Data perille (saa tulla virheitä)
    • Verkkokerros: Ok, verkkokerros vie oikealle laitteelle
    • Kuljetuskerrokselle jää: Data oikealle sovellukselle/prosessille
    • Toteutus: määritellään vastaanottajan kuljetuskerroksen osoite
  • Mahdollisuus käyttää useita verkkosovelluksia samaan aikaan
    • Verkkokerros: sama se mitä dataa paketissa on, paketit jonoon vaan ja laitetaan ne verkkoon
    • Kuljetuskerros:
      • Lähetys:
        • erotellaan lähtevät paketit lähettäjän ja/tai vastaanottajan (kuljetuskerroksen) osoitteen perusteella
      • Vastaanotto:
        • kun verkkokerrokselta saadaan paketteja, niin (kuljetuskerroksen) osoitteen perusteella ohjataan ne oikealle sovellukselle/prosessille
      • TCP: myös verkkokerroksen osoitteita käytetään lähettäjä/vastaanottajaprosessin määrittämiseen
# videoKuljetusInternet4
# videoKuljetusInternet5

Kuljetuskerrokselta verkkokerrokselle

# video2018Luento8
# videoPosti

Kuljetuskerroksen palvelut sovelluskerrokselle

# v2018L8_1
  • Datan eheys (virheettömyys)?
    • Verkkokerros: ei kiinnosta
    • Kuljetuskerros:
      • UDP: tarkastetaan otsikkokenttien sekä datan mahdolliset virheet (IPv4:n kanssa ei pakollinen), hylätään virheelliset paketit
      • TCP:
        • tarkastetaan otsikkokenttien sekä datan mahdolliset virheet, hylätään virheelliset paketit
        • Lähettäjä odottaa kuittausta paketin vastaanottajalta
        • Lähetetään uudelleen paketit joihin ei saada kuittausta
    • Sovelluskerros (verkko-ohjelman tekijä) voi valita käyttääkö TCP vai UDP palvelua
  • UDP ja TCP protokollien yhteiset palvelut sovelluskerrokselle
    • Data perille oikealle sovellukselle/prosessille
    • Palvellaan samanaikaisesti useita prosesseja samalla kuljetuspalvelulla
    • Tarkastetaan otsikkokenttien sekä datan virheettömyys
# v2018L8_2
# UDPimagex
# TCPimagexTest
# videoKuljetus1
# videoKuljetusTCPjaUDP
# videoKuljetus2

Sovelluskerros haluaa kuljetuspalvelulta...

Ajoitus?

# v2018L8_3
  • Verkkokerros - I am doing my best, but all those other users...
    • pakettikytkentäinen, viive voi vaihdella paljon riippuen muun liikenteen määrästä
  • Kuljetuskerros
    • UDP:
      • Lähetetään niin nopeasti kuin alempi kerrospino mahdollistaa
      • ja toivotaan että viive (ja varsinkin sen vaihtelu) pysyy aisoissa
    • TCP:
      • Luotettavuus pääasia, uudelleenlähetykset aiheuttavat viivettä
      • On myös Vuonvalvonta ja Ruuhkanhallinta palvelut!
      • Mutta ne lisäävät viivettä...
  • Sovelluskerros - ei saa tätä palvelua kuljetuskerrokselta
    • Videostreamit:
      • valitaan yleensä TCP
        • lähetetään datapaketteja niin nopeasti kuin TCP kykenee
        • TCP:n pitää odottaa kuittauksia, yms.
      • puskuroidaan saapuvaa dataa
        • toivotaan että puskurissa oleva data riittää viiveen noustessa
        • jos ei riitä niin käyttäjä joutuu odottamaan
    • Reaaliaikainen video/puhe:
      • valitaan yleensä UDP
      • lähetetään datapaketteja niin nopeasti kuin UDP kykenee (tai sovelluksen tarve)
      • mahdollisesti korjataan virheitä vastaanottajalla
        • ei uudelleenlähetyksiä
      • mahdollisesti puskuroidaan paketteja
        • jotta selvitään pienistä viiveen vaihteluista
      • myöhästynyt paketti käytännössä sama kuin kadonnut paketti
        • kuvan/puheen laatu kärsii
# videoKuljetus3_1

Kaistanleveys?

# v2018L8_4
  • Kuljetuskerros: Lähetän niin paljon (bittiä sekunnissa) kuin verkkokerros kykenee palvelemaan
  • Verkkokerros: Lähetän niin paljon (bittiä sekunnissa) kuin linkkikerros kykenee palvelemaan
  • Linkkikerros: Lähetän niin paljon (bittiä sekunnissa) kuin fyysinen siirtotie vain kykenee lähettämään linkille
  • Linkkikerros: linkeillä voi olla eri tekniikka käytössä
  • Sovelluskerros: alemmat kerrokset eivät voi taata tiedonsiirtonopeutta, täytyy itse keksiä jotain
  • Sovelluskerros: Videostream, puskuroidaan dataa ennenkuin käyttäjä painaa 'play'
  • Sovelluskerros: Reaaliaikainen video/puhe, vaihdetaan/valitaan heikompi laatuinen kuvan/äänen laatu
# videoKuljetus3_01

Tietoturva?

# v2018L8_5
  • Kuljetuskerros: Ei tunnistautumista tai salausta
  • Verkkokerros: IPsec (Internet Protocol Security), tunnistautuminen ja koko verkkoliikenteen salaus kahden laitteen välillä
  • Verkkokerros: IPsec on yksi vaihtoehto VPN (Virtual Private Network) toteutukseksi
  • Linkkikerros: Riippuu linkistä, esim.
    • Ethernet: Ei tunnistautumista tai salausta
    • WLAN: Ei tunnistautumista, salaus optiona
    • 2G/3G/4G: tunnistautuminen ja salaus aina
  • Sovelluskerros: alempien kerrosten ei tarvitse taata tietoturvaa, täytyy itse keksiä jotain
  • Sovelluskerros: Transport Layer Security (TLS) tai vastaava sovelluskerroksen ja kuljetuskerroksen väliin
  • Sovelluskerros: Jokin muu salaus- ja/tai tunnistautumismenetelmä liitettynä sovelluskerroksen protokollaan
# videoKuljetus3

Verkkokerros

# v2018L8_6

Verkkokerroksen palvelut

# v2018L8_7
  • Data oikealle laitteelle
    • Pitää selvittää reitti: Reititysprotokollat
    • Pitää kuljettaa data: IP protokolla
    • Virhetilanteet ja verkon diagnostiikka: ICMP protokolla
  • Laite: Reititin
    • Reititys (routing): selvitetään reitit IP osoitteisiin
    • Välitys (forwarding): lähetetään dataa eteenpäin reititysinformaation perusteella
    • Reititysprotokolla: kommunikoi muiden reitittimien kanssa jakaen reititysinformaatiota
    • Reititysalgoritmi: määrittää reitit ja ylläpitää reititystaulua
    • Kun pakettia välitetään, katsotaan reititystaulusta, osoitteen perusteella, seuraava laite jolle paketti lähetetään
  • Laite: Tietokone, puhelin, tabletti, ...
    • Reititystaulu kertoo, onko kohde samassa verkossa vai ei
    • Käyttöjärjestelmä muodostaa reititystaulun verkkoasetusten perusteella
    • Listaus: netstat -rn, Muokkaus: route add ...
# videoVerkko1

Hierarkinen reititys - jos sitä ei olisi...

# v2018L8_8
  • Skaalautuvuus, jos ei olisi hierarkiaa
    • Jokaisen reitittimen täytyisi ylläpitää tietoa koko Internetin rakenteesta
    • Internet ruuhkautuisi reitittimien päivitysviesteistä
    • Reititysalgoritmitmien laskenta kestäisi kauan
  • Autonomia, jos ei olisi hierarkiaa
    • Kaikki maailman verkot joutuisivat käyttämään samaa reititysprotokollaa
    • Yritykset/organisaatiot eivät pystyisi piilottamaan oman verkkonsa toteutusta ulkopuolisilta
    • Oman verkon hallinta olisi maailmanlaajuisen reititysprotokollan vastuulla, eikä itsellä
# videoHierarkia1

Hierarkinen reititys - Toteutus

# v2018L8_9
  • IP osoite on hierarkinen (CIDR) - vertaa postiosoitteeseen
    • Maailmanlaajuisesti tiedetään se kenen operaattorin verkossa on mitkäkin osoitteet
    • Operaattorin verkossa tiedetään tarkemmin osoitteen sijainti
    • Esimerkiksi luentosalin tietokoneen IP osoite: 130.234.156.32
      • 130.234 osan mukaan tiedetään että on jyu:n verkossa
      • Loppuosan mukaan löydetään sijainti yliopiston verkon sisällä
  • Autonomous System (AS)
    • Reitittimet organisoidaan kuuluvaksi tiettyyn AS:ään
    • Yleensä yksi operaattori on yksi AS
      • isoilla operaattoreilla on useita AS tunnuksia
    • AS:n sisällä
      • operaattori hallitsee verkkoaan ja käyttää haluamaansa reititysprotokollaa
      • reitittimet osaavat välittää sisäisen liikenteen
      • ulosmenevästä liikenteestä tiedetään reunareititin, joka vastaa AS:n ulkoisesta liikenteestä
    • AS:stä ulos
      • Mainostetaan mitkä osoiteavaruudet kuuluvat AS:n verkkoon, ei yksittäisiä osoitteita
      • Mainostetaan myös mitä muita AS:iä voidaan kyseisen verkon kautta saavuttaa
      • ulosmenevä liikenne lähetetään sellaiseen AS:ään joka mainostaa reittiä
      • ulosmenevän liikenteen kohde-AS:ään vaikuttaa myös tiedonsiirron hinta
# videoHierarkia2
# t2rfc1930

Esimerkki hierarkisesta reitityksestä

# v2018L8_10
Jyu liittyminen Internettiin
Jyu liittyminen Internettiin

Internet Protokolla (IP)

# video2018Luento9

IP osoite kertoo laitteen sijainnin?

# v2018L9_1
  • IP osoite ei kerro sijaintia maapallolla!
  • IP osoite kertoo sen kuinka paketit reititetään kohteeseen
  • IP osoitteiden sijainnista voi olla tietoa:
    • Sijaintitieto joudutaan keräämään esim. tietokannoista ja/tai seuraamalla reittejä
# videoIP1

IP osoitteen voi piilottaa esim. proxy palvelimella

# v2018L9_2
# v2018L9_17
  • Etsi ensin jokin proxy palvelin, esim. google haku
  • Katso optioista että skriptien suoritus sallitaan
  • Mene kurssin pääsivulle kopioimalla ao. osoite proxy sivustolle
  • http://users.jyu.fi/~arjuvi/opetus/itkp104/
  • Sivulla olevat skriptit saattaa näyttää 'sijaintisi'
    • riippuu proxy palvelimesta ja käytetyistä asetuksista
  • Sen jälkeen, mene ao. sivustolle
    • kerää tietoa siitä, mistä päin maailmaa vierailijat tulevat
    • http://users.jyu.fi/~arjuvi/opetus/itkp104/2015/ITKP104_proxy_hits_2015.html
  • Jos intoa riittää niin kokeile eri maissa sijaitsevia proxy palvelimia
# videoIP2
# videoIP3

IP osoite

# v2018L9_3
  • "A name indicates what we seek. An address indicates where it is. A route indicates how to get there." (RFC 791)
  • Kertoo laitteen sijainnin verkkohierarkiassa, ei fyysistä sijaintipaikkaa
    • Osoite on hierarkinen
      • osoite on jaettu kahteen osaan:
        • alkuosa (network prefix) ja
        • laiteosa (host identifier)
      • aiemmin oli verkko-osa, aliverkko-osa, ja laiteosa
    • Alkuosan perusteella paketti välitetään oikeaan verkkoon
    • Alkuosan synonyyminä saatetaan nykyään käyttää myös verkko-osaa, tai englannista johdettua prefix-osaa
  • Osa IP osoitteista on varattu erityiskäyttöön
  • Organisaatioille jaetut /8 IP lohkot
  • Nykyään pääasiassa käytössä versio 4, rinnalla yleistyy version 6 käyttö
# videoIP4

IPv4 osoitteet

# v2018L9_4
  • Pituus: 32 bittiä, eli 4 294 967 296 (232) osoitetta
  • Osoitteen bitit jaetaan neljään tavuun
  • Ihmisystävällinen merkintä tapa (ns. pistedesimaalimuoto)
    • muutetaan tavut positiivisiksi kokonaisluvuiksi ja
    • erotetaan ne pisteillä
  • Esimerkki: 173.194.32.63 on binäärisenä 10101101 11000010 00100000 00111111
# ip1a

Minulle tuo sanoo että vastaus ei ole binääriluku. Vaikka on muotoa : 00010111 01100011 00101101 11100111?

04 Dec 18

Vastauksesi alkuun on tullut tulostumaton merkki, jonka UTF-8 koodipiste on U+202D. Mene ihan binääriluvun vasempaan reunaan ja paina useamman kerran backspace -näppäintä. Tai alusta vastaus laatikko tyhjäksi ja kirjoita bitit käsin. Tuollaiset tulostumattomat UTF-8 merkit kopioituvat tekstin mukana.

05 Dec 18

No nyt toimi, kiitos.

05 Dec 18
# ip1b
# ip1c
# ip1d
# ip1e
# BinIPa

Missä on ohjeistettu kuinka binäärisen IP osoitteen tavut voidaan muuntaa pistedesimaalimuotoon?

29 Sep 18

Materiaalissa näiden tehtävien yläpuolella, lisäsin pistedesimaalimuoto -sanan:

  • muutetaan tavut positiivisiksi kokonaisluvuiksi ja
  • erotetaan ne pisteillä
01 Oct 18 (edited 01 Oct 18)
# BinIPb
# BinIPc
# BinIPd
# BinIPe

IPv6 osoitteet

# v2018L9_5
  • Pituus: 128 bittiä, eli noin 3.4×1038 (2128) osoitetta
  • Ihmisystävällinen merkintä tapa
    • jaetaan kahdeksaan osaan, erotetaan kaksoispisteellä
    • jokaisessa osassa on neljä heksalukua
    • lyhennetään poistamalla peräkkäisiä nollia
  • Esimerkki: 2a00:1450:400f:801::1017, joka on lyhennys osoitteesta
    • 2a00:1450:400f:8010:0000:0000:0000:1017
    • Joka on binäärisenä
      • 0010 1010 0000 0000
      • 0001 0100 0101 0000
      • 0100 0000 0000 1111
      • 1000 0000 0001 0000
      • 0000 0000 0000 0000
      • 0000 0000 0000 0000
      • 0000 0000 0000 0000
      • 0001 0000 0001 0111
# videoIP5

IP osoitetyypit

# v2018L9_6
  • Unicast - täsmälähetys
    • Yleisin osoitetyyppi, "yhden" laitteen osoite, voidaan käyttää lähettämiseen sekä vastaanottamiseen
    • esim. Yle Areena, Nettiradiot, yms., kaikki 'normaali' liikenne Internetissä
  • Broadcast - yleislähetys
    • vastaa ~ TV ja radio lähetyksiä radio/kaapeliverkosta
    • Yleislähetysosoite, voidaan lähettää (ali)verkon kaikille laitteille sama paketti
      • siis yksi paketti, jonka kaikki vastaanottavat
    • 255.255.255.255 kaikille lähiverkon laitteille
      • ei mene reitittimen läpi
    • tai esim. aliverkon 192.0.2.0/24 yleislähetysosoite on 192.0.2.255
    • IPv6:ssa ei mahdollista, hoidetaan Multicast:illä
# v2018L9_7
  • Multicast - ryhmälähetys
    • näin 'pitäisi' Yle Areena yms. toimia!
    • Monilähetysosoite
      • laitteet voivat liittyä Multicast ryhmään
        • IGMP protokolla
      • Ryhmässä paketit välitetään kaikille jäsenille
    • Varattu osoitteet väliltä
      • 224.0.0.0 - 239.255.255.255 (IPv4)
      • ff00::/8 (IPv6)
    • Reitittimet hoitavat
      • paketin kopioimisen ja
      • välittämisen kaikille ryhmän jäsenille
  • Anycast - 'Jokulähetys'
    • hajautetaan palvelu: asiakkaan sijainnin mukaan
    • Palvelupyyntö voidaan välittää monelle eri vastaanottajalle
      • välitetään sille, joka on fyysisesti lähimpänä
    • Käytetään kuorman tasaukseen palvelimilla sekä esim. DNS juurinimipalvelinten hajauttamiseen
    • IPv4:ssa ei suoraa tukea, hoidetaan yleensä AS:ien välisellä reititysprotokollalla (BGP)
    • IPv6:ssa osa spesifikaatiota
# videoIP6

Mistä niitä IPv4 osoitteita saa?

# v2018L9_8
  • IANA jakaa osoitelohkot alueellisille rekistereille
    • 3.2.2011 jakoi viimeiset viisi IPv4 osoitelohkoa, Last /8, noin 16 miljoona osoitetta
    • Alueellisilla rekistereillä oma politiikka termille 'osoitteet loppui'
    • Osoitteet loppuu -politiikalla, pakotetaan siirtymään IPv6:een

IPv4 osoitteiden loppumisen eteneminen

Alueelliset rekisterit - Regional Internet Registry (RIR)

# v2018L9_9

RIPE Network Coordination Centre (RIPE NCC)

  • Käytti osoitelohkonsa toisena loppuun 14.9.2012
  • Osoitteiden loppuminen määritelty 'kun aletaan jakaa osoitteita viimeisestä /8 lohkosta'
  • Jakaa nyt rajoitetusti osoitteita viimeisestä /8 lohkostaan
  • Saanut lisää osoitteita käyttöönsä kevään 2014 ja kevään 2015 välillä

American Registry for Internet Numbers (ARIN)

  • Huhtikuun 2014 jälkeen jakaa osoitteita viimeisestä /8 lohkostaan
  • Osoitteiden loppuminen määritelty 'kun osoitteet loppuu viimeisestä /8 lohkosta'
  • Osoitteet loppui kokonaan 24.9.2015

Asia-Pacific Network Information Centre (APNIC)

  • Käytti osoitelohkonsa ensimmäisenä loppuun (15.4.2011)
  • Osoitteiden loppuminen määritelty 'kun aletaan jakaa osoitteita viimeisestä /8 lohkosta'
  • Jakaa nyt rajoitetusti osoitteita viimeisestä /8 lohkostaan

Latin American and Caribbean Internet Address Registry (LACNIC)

  • Jakoi osoitteita normaalisti kunnes n. 8 miljoonaa osoitetta jäljellä (last /9)
  • Käytti osoitelohkonsa loppuun 10.6.2014
  • Osoitteiden loppuminen määritelty 'kun aletaan jakaa osoitteita viimeisestä /9 lohkosta'
  • Jakaa nyt rajoitetusti osoitteita viimeisestä /9 lohkostaan

African Network Information Centre (AfriNIC)

  • 3.4.2017 alkoi jakaa IP osoitteita viimeisestä /8 lohkostaan - 'IP osoitteiden loppumisen vaihe 1 alkoi'
  • Jakaa nyt rajoitetusti osoitteita viimeisestä /8 lohkostaan
# videoIP14
# videoIP15

Saako euroopassa enää IPv4 osoitteita?

# v2018L9_10
  • RIPE Network Coordination Centre (RIPE NCC):
  • Käytti vapaat osoitteensa loppuun alkamalla allokoimaan osoitteita viimeisestä /8 lohkosta
  • Jakaa vain yhden /22 (1024 IPv4 osoitetta) kullekin LIR (Local Internet registry):lle
  • Myönnetään vain jos hakijalla on olemassa oleva IPv6 allokaatio
  • Enää ei ole mahdollista (uuden) operaattorin olla yhteydessä Internettiin vain IPv4 tekniikalla
  • Yksi /16 lohko varataan IPv4 → IPv6 siirtymistä varten
  • Kaikkien operaattoreiden tulisi ottaa IPv6 käyttöön
# videoIP16

IPv4 vs IPv6

# v2018L9_11
  • Erot
    • IPv6 osoiteavaruus paljon suurempi
    • IPv6 kehysrakenne yksinkertaistettu IPv4 kehys, IPv6 kehys
      • poistettu harvoin käytettyjä kenttiä
      • Vähentää pakettien käsittelyaikaa reitittimillä
    • IPv6 osoite automaattisesti, IPv4 osoite pyytämällä
      • IPv4 laite pyytää IP osoitetta DHCP protokollalla
        • DHCP palvelimet jakavat verkossa IP osoitteita
      • IPv6 laite ei välttämättä tarvitse DHCP:tä
      • IPv6 laite kykenee automaattisesti generoimaan itselleen osoitteen
        • Neighbor Discovery Protocol
    • IPv6: ei erillisiä yleislähetysosoitteita
# videoIP17

Siirtymäkausi IPv4 → IPv6

  • IPv6 liikenne joudutaan tunneloimaan IPv4 verkon yli
  • Tunnelointimenetelmiä
    • 6TO4 - IPv6 liikenne kapsuloidaan IPv4 paketin hyötykuormaksi
    • Terodo - IPv6 liikenne laitetaan UDP paketin hyötykuormaksi, joka välitetään IPv4:llä
    • Muita siirymävaiheen menetelmiä
  • Tunnelointimenetelmistä tulee luopua kun Internet on kokonaan siirtynyt käyttämään IPv6 protokollaa
# v2018L9_12
# videoIP18

IP aliverkotus

# v2018L9_13
  • Aluksi ensimmäiset 8 bittiä oli verkko-osa ja loput 'muuta' osaa, sitten kehitettiin luokallinen osoitteistus
Class Leading
bits
Size of network
number
bit field
Size of rest
bit field
Number
of networks
Addresses
per network
Start address End address
A 0 8 24 128 (27) 16,777,216 (224) 0.0.0.0 127.255.255.255
B 10 16 16 16,384 (214) 65,536 (216) 128.0.0.0 191.255.255.255
C 110 24 8 2,097,152 (221) 256 (28) 192.0.0.0 223.255.255.255

  • D = Multicast, E = Varattu
  • Lopulta: Classless Inter-Domain Routing (CIDR)
  • Luokaton verkkotunnusten (domain) välinen reititys
# videoIP7
# t2rfc791

IP aliverkotus - CIDR

# v2018L9_14
  • Aliverkkomaski kertoo kuinka monta bittiä IP osoitteesta on prefix osaa (loput on sitten laitteille)
  • Esim. /8 tarkoittaa että 8 ensimmäistä bittiä on prefix osaa
  • Tällöin siis aliverkkomaskissa kahdeksalla ensimmäisellä bitillä on arvo 1 (ja lopuilla arvo 0)
  • Eli /8 aliverkkomaski on 11111111 00000000 00000000 00000000
  • Tai piste-desimaalimuodossa 255.0.0.0
  • Tai esim. /23 jota vastaa maski
  • 11111111 11111111 11111110 00000000
  • eli 255.255.254.0
  • JYU verkko 130.234.0.0/16 (eli maski 255.255.0.0)
  • IPv6 osoitteilla aliverkotus toimii samoin
  • RIPE tietokanta
  • https://stat.ripe.net/
Jyu liittyminen Internettiin
Jyu liittyminen Internettiin
# videoIP8
# t2rfc4632

Aliverkkomaski eri esitystavoilla

# DDmaskToBin
# DotMaskFromBin
# subnetMaska

Miksi tässä ei ole annattu alkuperäistä osoitetta? En ymmärrä mitä tässä pitäisi tehdä.

18 Jun 18

Materiaalista selviää miten tehdään

19 Jun 18
# subnetMaskb

Tämä tehtävä on tässä tuplana, onko tarkoitus?

01 May 18

Tehtävien luvut arvotaan, joten saattoi tulla tulla sama arvo. Kohdissa (c) - (f) arvottiin luku väliltä 2 - 30. Muutin nyt että (c) ja (e) luku on väliltä 2 - 15 ja (d) ja (f) väliltä 16 - 30. Jos on jo vastannut tehtävään, pisteet säilyvät, mutta voi myös alustaa tehtävän, jolloin saa uudelleen arvotut luvut tehtävien muokkauksen jälkeen. Normaalisti tehtävän uudelleen alustaminen ei muuta arvottujen muuttujien arvoja.

02 May 18
# kauttaTobina
# kauttaTobinb
# MaskFromDDa
# MaskFromDDb
# MaskFromBina
# MaskFromBinb

Esimerkki aliverkon osoitteista

  • Olkoon verkko 130.234.169.0/26 eli 26 bittiä on varattu verkko-osaan
  • osoite, jossa kaikki laiteosan bitit ovat nollia, on aliverkon osoite
    • 10000010 11101010 10101001 00000000 eli 130.234.169.0
  • osoite, jossa kaikki laiteosan bitit ovat ykkösiä, on aliverkon yleislähetysosoite
    • 10000010 11101010 10101001 00111111 eli 130.234.169.63
  • loput osoitteet ovat käytettävissä verkon laitteille
    • alkaen osoitteesta
      • 10000010 11101010 10101001 00000001
    • loppuen osoitteeseen
      • 10000010 11101010 10101001 00111110
# v2018L9_15

Toinen esimerkki aliverkon osoitteista

  • Aliverkon osoitteessa ei aina ole desimaalimuodossa nollaa
  • Olkoon verkko 130.234.169.64/26 eli 26 bittiä on varattu verkko-osaan
  • osoite, jossa kaikki laiteosan bitit ovat nollia, on aliverkon osoite
    • 10000010 11101010 10101001 01000000 eli 130.234.169.64
  • osoite, jossa kaikki laiteosan bitit ovat ykkösiä, on aliverkon yleislähetysosoite
    • 10000010 11101010 10101001 01111111 eli 130.234.169.127
  • loput osoitteet ovat käytettävissä verkon laitteille
    • alkaen osoitteesta
      • 10000010 11101010 10101001 01000001
    • loppuen osoitteeseen
      • 10000010 11101010 10101001 01111110
  • Verkossa olevan laitteen IP osoitteen ja aliverkkomaskin avulla voidaan selvittää ko. verkon aliverkon osoite ja yleislähetysosoite.
# v2018L9_16

Aliverkon osoite ja yleislähetysosoite

Laitteen IP osoite ja verkko, johon laite kuuluu voidaan esittää IP osoitteen ja aliverkkomaskin avulla. Olkoon meillä esimerkiksi IP osoite ja aliverkkomaski 192.168.140.82/21. Jotta voidaan selvittää, mitkä kaikki IP osoitteet ovat samassa verkossa, täytyy löytää verkon osoitteiden alaraja, aliverkko-osoite, sekä yläräja, yleislähetysosoite.

Aliverkkomaski / -merkin jälkeen kertoo sen kuinka monta MSB bittiä verkon aliverkkomaskissa on ykkösiä. Eli toisin sanoen kuinka monta bittiä IP osoitteesta on aliverkon osaa. Loput bitit verkossa ovat käytettävissä laitteiden osoitteiksi, kahta osoitetta lukuunottamatta. Aliverkon ensimmäinen osoite, jossa kaikki laiteosan bitit ovat nollia, on varattu ko. aliverkon osoitteeksi. Aliverkon viimeinen osoite, jossa kaikki laiteosan bitit ovat ykkösiä, on varattu ko. aliverkon yleislähetysosoitteeksi.

Aliverkon osoitteen saa ottamalla IP osoitteesta ja aliverkkomaskista AND operaation. Yleislähetysosoitteen saa IP osoitteen ja negatoidun aliverkkomaskin OR operaationa. Alla on esitetty binäärisenä osoitteen 192.168.140.82/21 IP, maski, verkon osoite sekä yleislähetysosoite. Verkko-osa ja laiteosa on eroteltu toisistaan välillä ja maskin tapauksessa bitit on lisäksi värjätty.

IP in bits:		110000001010100010001 10001010010
Mask in bits:	        
111111111111111111111
00000000000
after AND: 110000001010100010001 00000000000 IP in bits: 110000001010100010001 10001010010 Negated Mask:
000000000000000000000
11111111111
after OR: 110000001010100010001 11111111111
# t2SandB1

Nyt ei taida toimia seuraavat tehtävät. 178.58.213.63/4 aliverkon osoite 176.0.0.0 ei kelpaa eikä seuraavatkaan 65.124.76.236/13 aliverkko 65.120.0.0 jne

06 Dec 18

Tehtävän a)-d)-kohdissa ei anna pisteitä, vaikka vastauksien pitäisi olla oikein.

09 Dec 18

Tarkistin korjattu, nyt pitäisi toimia.

11 Dec 18
# t2SandB2
# t2SandB3
# t2SandB4
# t2SandB5

7:n tehtävissä vastaus hyväksytään välilyönnin kanssa, 8:n tehtävissä ei.

18 Aug 18

Korjattu

20 Aug 18
# t2SandB6
# t2SandB7
# t2SandB8

IP hierarkinen reititys - CIDR aliverkkomaski

  • FUNET (AS1741) mainostaa (Announced Prefix):
    • Meillä reitti verkoon 130.234.0.0/16, reititys via AS1741
  • AS naapurit päivittää oman verkkonsa reitittimien reititystaulut
  • AS naapurit mainostaa omille naapureilleen, esim. Nordunet (AS2603):
    • Meillä reitti verkkoon 130.234.0.0/16 polku AS2603 AS1741
  • Telia (AS1299) mainostaa:
    • Meillä reitti verkkoon 130.234.0.0/16 polku AS1299 AS2603 AS1741
  • Jos reitti neljään verkkoon (1) 130.232.0.0/16, (2) 130.233.0.0/16, (3) 130.234.0.0/16, (4) 135.235.0.0/16
  • Niin voisi mainostaa "meillä reitti verkkoon 130.232.0.0/14", mikä sisältää yo. verkot
  • Kun paketti pitää välittää yliopiston verkkoon (esim. 130.234.4.129), Internet-operaattorit tietävät mainosten perusteella mitä reittejä kohteeseen on olemassa ja Internet-operaattorit joiden läpi reitti kulkee
  • Mainosten tunnetun alkuosan pituus kasvaa kun lähestytään kohdetta, esim.
  • JYU verkossa reititystaulussa voisi olla
    • 130.234.0.0/17 (130.234.0.0 - 130.234.127.255) ja
    • 130.234.128.0/17 (130.234.128.0 - 130.234.255.255)
# videoIP13

IPv4 Reititystaulu

# itkp104reititysIP

Ei ole ihan selkeää, mihin reitittimiin taulut on kytketty. Luulin, että oikea alakulma on 10-reitittimen taulu. Vasenta alakulmaa arvoin myös nelosen ja kasin välillä. Ykkösreitittimen taulu oli selkeästi ykkösen alla.

12 Feb 19

Tilan puutteen takia reititystaulut voivat olla hieman eri paikoissa suhteessa reitittimeen. Pitäisi tekstissä mainita että liittyvät siihen reitittimeen, minkä alla ovat. Tulevaisuudessa voisin laittaa tauluun tiedon reitittimestä, jota se koskee. Näin sijainnilla ei olisi merkitystä ja voisi sijoittaa kaikki reititystaulut vaikka koko verko alapuolelle.

14 Feb 19

IPv4 Route Table

  • Windows, macOs ja Linux: netstat -rn
  • Windows myös: route print
  • macOs ja Linux: tutki mitä tekee route
===========================================================================
Network Destination Netmask         Gateway         Interface       Metric
0.0.0.0             0.0.0.0         130.234.169.1   130.234.169.82  276
130.234.169.0       255.255.255.128 On-link         130.234.169.82  276
130.234.169.82      255.255.255.255 On-link         130.234.169.82  276
===========================================================================
  • Koneen osoite: 130.234.169.82
  • Aliverkon osoite: 130.234.169.0/25
  • Aliverkon maski: 255.255.255.128
# videoIP9
# t2routetable1a

En saa tästä pisteitä.

15 Dec 18

Lisätty tuki suomenkieliselle tulosteelle.

17 Dec 18 (edited 17 Dec 18)

IP osoitteiden reititys reititystaulun perusteella

Reititystaulun avulla selvitetään seuraava reititin, jolle saapuva paketti tulee välittää. Selvittäminen tehdään IP osoitteen, reititystaulussa olevan kohdeverkon ja kohdeverkkoon liittyvän aliverkkomaskin avulla. Seuraavaksi käydään läpi selvitysprosessi, joka tehdään kun IP osoitteen ja reititystaulun perusteella tehdään päätös pakettien välittämisestä.

Olkoon meillä seuraava reititystaulu:

  Address/mask     Mask in decimal   Mask in bits                          Next hop
 -------------------------------------------------------------------------------------
  135.46.56.0/22   255.255.252.0     11111111 11111111 11111100 00000000   Reititin 1
  135.46.56.0/21   255.255.248.0     11111111 11111111 11111000 00000000   Reititin 2
  192.53.40.0/23   255.255.254.0     11111111 11111111 11111110 00000000   Reititin 3
  0.0.0.0/0        0.0.0.0           00000000 00000000 00000000 00000000   Reititin 0
 -------------------------------------------------------------------------------------

Selvitetään seuraavaksi kuinka IP osoitteelle löydetään Next hop reititin, eli seuraava reititin, jonne paketit välitetään. Otetaan esimerkiksi IP osoite 135.46.63.10 ja selvitetään seuraava reititin reititystaulun informaation perusteella.

Reititystaulusta saadaan IP osoitteen kohdeverkko selville tekemällä AND operaatio IP -osoitteen ja tutkittavan rivin aliverkkomaskin kanssa. Rivit tulee käydä läpi siten, että aloitetaan riveistä, joiden aliverkkomaskissa on eniten ykkösiä ja jatketaan kunnes lopulta testataan vähiten ykkösiä omaavaa maskia (eli default reittiä, jonka osoite ja maski ovat 0.0.0.0).

Jokaisen rivin kohdalla verrataan sitä, onko AND operaation tulos sama kuin ko. rivillä oleva kohdeverkon osoite. Jos on, paketti välitetään ko. rivin tiedon mukaan. Jos ei, niin siirrytään tutkimaan seuraavaa riviä. Vertaaminen voidaan tehdä binäärilukujen XOR-operaatiolla, tai sen negaatiolla XNOR-operaatiolla. Kahden bitin XOR-operaatio on 1, jos bitit ovat eri suuret ja 0 jos bitit ovat yhtäsuuret. Näin ollen, jos XOR operaation ulostulossa on yksikin 1-bitti, eivät binääriluvut olleet samat.

Mitä enemmän aliverkkomaskissa on ykkösiä, sitä tarkempi on reititystaulussa oleva tieto. Huomaa että tutkittavan IP osoitteen AND operaatio tehdään verkon aliverkkomaskin kanssa eikä verkon osoitteen kanssa.

Tutkitaan ensin 23 ykköstä sisältävällä aliverkkomaskilla, eli /23 aliverkkomaskilla, koska siinä on eniten 1-bittejä tarkasteltavassa reititystaulussa.

 desimaali     binääri
 135.46.63.10  10000111 00101110 00111111 00001010
 255.255.254.0 11111111 11111111 11111110 00000000 AND
 -------------------------------------------------
 135.46.62.0   10000111 00101110 00111110 00000000

Tutkitaan yhtäläisyyttä XOR-operaatiolla, ylemmällä rivillä on edellisen kohdan AND operaation tulos ja alemmalla tutkittavan rivin kohdeverkko.

 desimaali     binääri
 135.46.62.0   10000111 00101110 00111110 00000000
 192.53.40.0   11000000 00110101 00101000 00000000 XOR
 -------------------------------------------------
               01000111 00011011 00010110 00000000

XOR-operaation tuloksessa on 1-bittejä, eli tutkittavaa IP osoitetta ei reititetä tarkastellun rivin mukaan. Seuraavaksi tutkitaan /22 aliverkkomaskilla.

 desimaali     binääri
 135.46.63.10  10000111 00101110 00111111 00001010
 255.255.252.0 11111111 11111111 11111100 00000000 AND
 -------------------------------------------------
 135.46.60.0   10000111 00101110 00111100 00000000

Tutkitaan yhtäläisyyttä XOR-operaatiolla, ylemmällä rivillä on edellisen kohdan AND operaation tulos ja alemmalla tutkittavan rivin kohdeverkko.

 desimaali     binääri
 135.46.60.0   10000111 00101110 00111100 00000000
 135.46.56.0   10000111 00101110 00111000 00000000 XOR
 -------------------------------------------------
               00000000 00000000 00000100 00000000

XOR-operaation tuloksessa on yksi 1-bitti, eli tutkittavaa IP osoitetta ei reititetä tarkastellun rivin mukaan. Seuraavaksi tutkitaan /21 aliverkkomaskilla.

  desimaali     binääri
 135.46.63.10  10000111 00101110 00111111 00001010
 255.255.248.0 11111111 11111111 11111000 00000000 AND
 -------------------------------------------------
 135.46.56.0   10000111 00101110 00111000 00000000

Tutkitaan yhtäläisyyttä XOR-operaatiolla, ylemmällä rivillä on edellisen kohdan AND operaation tulos ja alemmalla tutkittavan rivin kohdeverkko.

 desimaali     binääri
 135.46.56.0   10000111 00101110 00111000 00000000
 135.46.56.0   10000111 00101110 00111000 00000000 XOR
 -------------------------------------------------
               00000000 00000000 00000000 00000000

XOR-operaation tuloksessa kaikki bitit ovat nollia, eli tutkittava IP osoite tulee reitittää tarkastellun rivin mukaan. Reititystaulun mukaan tutkittavaan IP osoitteeseen 135.46.63.10 lähetettävät paketit tulee välittää verkkoon 135.46.56.0/21, eli paketit ohjataan Reitittimelle 2.

Huomaa, että oletusreitin tutkiminen edellä kuvatulla menetelmällä johtaa aina siihen että XOR-operaation tuloksessa on kaikki bitit nollia. Se tutkitaan siis viimeisenä, silloin kun mikään muu rivi ei anna tunnettua reittiä. Esimerkin vuoksi alla on esitetty oletusreittirivin tutkiminen, mitä ei siis edellä olleen esimerkin tapauksessa tarvitsisi tutkia.

 desimaali     binääri
 135.46.63.10  10000111 00101110 00111111 00001010
 0.0.0.0       00000000 00000000 00000000 00000000 AND
 -------------------------------------------------
 0.0.0.0       00000000 00000000 00000000 00000000

Tutkitaan yhtäläisyyttä XOR-operaatiolla, ylemmällä rivillä on edellisen kohdan AND operaation tulos ja alemmalla tutkittavan rivin kohdeverkko.

 desimaali     binääri
 0.0.0.0       00000000 00000000 00000000 00000000
 0.0.0.0       00000000 00000000 00000000 00000000 XOR
 -------------------------------------------------
               00000000 00000000 00000000 00000000

Seuraavissa tehtävissä selvitetään mille reitittimelle lähetetään paketit joissa on IP osoite 135.46.57.14. Alla sama reititystaulu, joka esiintyi aiemmin.

  Address/mask     Mask in decimal   Mask in bits                          Next hop
 -------------------------------------------------------------------------------------
  135.46.56.0/22   255.255.252.0     11111111 11111111 11111100 00000000   Reititin 1
  135.46.56.0/21   255.255.248.0     11111111 11111111 11111000 00000000   Reititin 2
  192.53.40.0/23   255.255.254.0     11111111 11111111 11111110 00000000   Reititin 3
  0.0.0.0/0        0.0.0.0           00000000 00000000 00000000 00000000   Reititin 0
 -------------------------------------------------------------------------------------
# t2route1

AND ja XOR tehtävistä oli unohtunut pisteet pois, nyt on korjattu ja pisteet lisätty niille, joilta ne puuttui.

11 Jun 18
# t2route2

Onkohan b-kohdan tarkistuksessa vikaa? Ei näytä hyväksyvän oikeaa tulosta.

29 May 18

IP osoite 192.53.40.0 pitää olla ylimmäinen muuttuja XOR operaatiossa

30 May 18
# t2route3
# t2route4
# t2route5
# t2route6

Edellisistä XOR-operaatioista kaksi kolmesta antaa tulokseksi sen, että IP osoite 135.46.57.14 pitää reitittää ko. rivin mukaan. Aina kuitenkin valitaan se rivi, jonka aliverkkomaskissa on eniten ykkösiä.

# t2route7

Selvitetään seuraavaksi IP osoitteiden 135.46.52.2, 192.53.40.7 ja 192.53.56.7 Next Hop reitittimet aiemmin esitetyn reititystaulun mukaan.

  Address/mask     Mask in decimal   Mask in bits                          Next hop
 -------------------------------------------------------------------------------------
  135.46.56.0/22   255.255.252.0     11111111 11111111 11111100 00000000   Reititin 1
  135.46.56.0/21   255.255.248.0     11111111 11111111 11111000 00000000   Reititin 2
  192.53.40.0/23   255.255.254.0     11111111 11111111 11111110 00000000   Reititin 3
  0.0.0.0/0        0.0.0.0           00000000 00000000 00000000 00000000   Reititin 0
 -------------------------------------------------------------------------------------

Muodosta alle AND operaatiot tutkittavan IP osoitteen ja reitittimen rivin aliverkkomaskin kanssa, siten että maski on siltä riviltä, jonka mukaan IP osoitteeseen lähetettävät paketit tulee välittää. Voit kokeilla aliverkkomaskeja järjestyksessä, siten että aloitat aliverkkomaskista, jossa on eniten ykkösiä, tai voit suoraan kokeilla oikealla maskilla, jos sen pystyt päättelemään.

# t2route8

Miten tässä selvitetään tämän IP osoiteen aliverkkomaski?

21 Jun 18

Aliverkkomaskin saa reititystaulusta

21 Jun 18
# t2route9
# t2route10

IPv4 reititys - kohde samassa verkossa

===========================================================================
Aliverkkomaskit                       Verkko-osoite        
11111111 11111111 11111111 11111111   130.234.169.82
11111111 11111111 11111111 10000000   130.234.169.0
00000000 00000000 00000000 00000000   0.0.0.0
===========================================================================
  • Lähetetään osoitteeseen: 130.234.169.47 (10000010 11101010 10101001 00101111)
  • Käydään reititystaulun kaikki rivit läpi
  • Tehdään binäärinen AND-operaatio kohdeosoitteen ja tarkasteltavan rivin maskin kanssa
  • Verrataan AND-operaatioN tulosta tarkasteltavan rivin verkko-osoitteeseen
  • Reititys bittien vastaavuuden perusteella
  • Jos usealla verkko-osoitteella sama määrä, valitaan se jonka maskissa on eniten ykkösiä
# videoIP10

IPv4 reitin valinta - kohde samassa verkossa

===========================================================================
    11111111 11111111 11111111 11111111   255.255.255.255
AND 10000010 11101010 10101001 00101111   130.234.169.47
    10000010 11101010 10101001 00101111   130.234.169.47
verrataan
    10000010 11101010 10101001 01010010   130.234.169.82
 ---> 26 bittiä samoja
===========================================================================
===========================================================================
    11111111 11111111 11111111 10000000   255.255.255.128
AND 10000010 11101010.10101001 00101111   130.234.169.47
    10000010 11101010.10101001 00000000   130.234.169.0
verrataan    
    10000010 11101010.10101001 00000000   130.234.169.0
 ---> 32 bittiä (kaikki) samoja
===========================================================================
===========================================================================
    00000000 00000000 00000000 00000000   0.0.0.0
AND 10000010 11101010 10101001 00101111   130.234.169.47
    00000000 00000000 00000000 00000000   0.0.0.0
verrataan    
    00000000 00000000 00000000 00000000   0.0.0.0
 ---> 32 bittiä (kaikki) samoja
===========================================================================

IPv4 reitin valinta - kohde samassa verkossa

  • Paketti lähetetään 130.234.169.0 verkkoon, koska sen aliverkkomaskissa enemmän ykkösiä
  • Koska kyseisellä rivillä ei ole gateway sarakkeessa IP osoitetta, on kohde siis samassa verkossa
===========================================================================
Network Destination Netmask         Gateway         Interface       Metric
0.0.0.0             0.0.0.0         130.234.169.1   130.234.169.82  276
130.234.169.0       255.255.255.128 On-link         130.234.169.82  276
130.234.169.82      255.255.255.255 On-link         130.234.169.82  276
===========================================================================
  • Seuraavaksi selvitetään kohteen (130.234.169.47) linkkikerroksen osoite (MAC osoite)
  • Linkkikerroksen osoite selvitetään ARP protokollalla
  • Ja kapsuloidaan verkkokerroksen paketti linkkikerroksen kehykseen
# videoIP11

IPv4 reititys - kohde eri verkossa

===========================================================================
Aliverkkomaskit                       Verkko-osoite        
11111111 11111111 11111111 11111111   130.234.169.82
11111111 11111111 11111111 10000000   130.234.169.0
00000000 00000000 00000000 00000000   0.0.0.0
===========================================================================
  • Lähetetään osoitteeseen: 130.234.169.147 (10000010 11101010 10101001 10010011)
  • Koska meillä on 130.234.169.0/25 verkko, niin 147 on eri verkossa kuin 47
  • Laite 'tietää' ylläolevan aliverkkomaskin perusteella
  • 130.234.169.0/25: 130.234.169.0 - 130.234.169.127
  • 130.234.169.128/25: 130.234.169.128 - 130.234.169.255
# videoIP12

IPv4 reitin valinta - kohde eri verkossa

===========================================================================
    11111111 11111111 11111111 11111111   255.255.255.255
AND 10000010 11101010 10101001 10010011   130.234.169.147
    10000010 11101010 10101001 10010011   130.234.169.147
verrataan    
    10000010 11101010 10101001 01010010   130.234.169.82
 ---> 29 bittiä samoja
===========================================================================
===========================================================================
    11111111 11111111 11111111 10000000   255.255.255.128
AND 10000010 11101010.10101001 10010011   130.234.169.147
    10000010 11101010.10101001 10000000   130.234.169.128
verrataan    
    10000010 11101010.10101001 00000000   130.234.169.0
 ---> 31 bittiä samoja
===========================================================================
===========================================================================
    00000000 00000000 00000000 00000000   0.0.0.0
AND 10000010 11101010 10101001 10010011   130.234.169.147
    00000000 00000000 00000000 00000000   0.0.0.0
verrataan    
    00000000 00000000 00000000 00000000   0.0.0.0
 ---> 32 bittiä (kaikki) samoja
===========================================================================

IPv4 reitin valinta - kohde eri verkossa

===========================================================================
Network Destination Netmask         Gateway       Interface      Metric
0.0.0.0             0.0.0.0         130.234.169.1 130.234.169.82 276
130.234.169.0       255.255.255.128 On-link       130.234.169.82 276
130.234.169.82      255.255.255.255 On-link       130.234.169.82 276
===========================================================================
  • Paketti lähetetään 0.0.0.0 verkkoon, eli oletusreittiin (koska sen vertailussa eniten samoja bittejä edellisellä kalvolla)
  • Koska kyseisellä rivillä on gateway sarakkeessa oletusreitittimen osoite, on kohde siis eri verkossa
  • Seuraavaksi selvitetään reitittimen (130.234.169.1) linkkikerroksen osoite (MAC osoite)
  • Linkkikerroksen osoite selvitetään ARP protokollalla
  • Ja kapsuloidaan verkkokerroksen paketti linkkikerroksen kehykseen

Linkkikerros

# video2018Luento10

Linkkikerroksen palvelut

# v2018L10_1
  • "Linkkikerros kuljettaa verkkokerroksen datan linkin yli seuraavalle (verkko)laitteelle, ja tekee tämän jokaisen linkin osalta vaikka linkkiteknologia vaihtuisi, jottei verkkokerroksen tarvitse siitä huolehtia"
  • Yksittäisiä palveluita, joilla yo. toteutetaan
    • Kehystys ja linkille pääsy
      • Kapsuloidaan ylemmän kerroksen data (lisätään header/trailer)
      • Jos jaettu media, niin kanavanvaraus/kanavalle(linkille) pääsy
      • MAC osoite, linkkikerroksen osoite
    • Luotettavuus linkillä kahden laitteen välillä
      • Käytetään harvoin jos linkillä pieni virhetodennäköisyys
      • Käytetään esim. langattomilla linkeillä
      • Miksi luotettava tiedonsiirto sekä kuljetus että linkkikerroksella?
  • Vuonvalvonta
  • Virheiden havaitseminen
  • Virheiden korjaaminen
  • half-duplex vs. full-duplex
# videoLinkki1

Monipääsylinkit

# v2018L10_2
  • Kaksi erilaista linkkityyppiä
    • point-to-point (Pisteestä-pisteeseen, kahden laitteen välinen)
      • Linkkiä käyttää vain kaksi laitetta
      • Monipääsylinkki, jos half-duplex, eli kaksi laitetta ei voi käyttää linkkiä yhtäaikaa
      • Esimerkkejä
        • ADSL - Full-duplex, ala- ja ylälinkin liikenne eri taajuuksilla
        • Kytketty Ethernet (yhdistetään kytkimeen - switch), yleensä full-duplex (voi olla myös half-duplex 10 - 100 Mbps)
        • GSM piirikytkentäinen datayhteys HSCSD, full-duplex, ala- ja ylälinkin liikenne eri taajuuksilla
    • Jaettu linkki, monipääsylinkki, Multiple Access link
      • Linkkiä voi käyttää useat laitteet
      • Esimerkkejä
        • Vanha Paksu Ethernet
        • Kytketty Ethernet (yhdistetään keskittimeen - hub)
        • WLAN
        • Matkapuhelinverkon datayhteys, GSM pakettikytkentäinen GPRS → 4G
# videoLinkki2

Monipääsytekniikat ja -protokollat

# v2018L10_3
  • Kolme kategoriaa
    • Kanavan jakaminen
      • Jaetaan tiedonsiirtokanava pienempiin paloihin (esim. aika tai taajuus)
      • Pala on ainoastaan yhden laitteen käytössä
      • Koodilla jakaminen poikkeaa siten että kanava kaikkien yhtäaikaisessa käytössä
    • Hajasaanti (Random Access)
      • Kaikki laitteet käyttävät (koko) kanavaa vapaasti
      • Hyväksytään törmäykset (useampi kuin yksi yrittää lähettää samaan aikaan)
      • Toivutaan törmäyksistä
    • Vuorottelu
      • Jokainen laite lähettää vuorollaan
      • Vuoro kiertää laitteelta toiselle
      • Vuoron pituus voi riippua lähetettävästä datan määrästä
# videoLinkki3

Kanavan jakaminen (x Division Multiple Access)

# v2018L10_4

# videoLinkki4

FDMA vs. FDM vs. FDD

# v2018L10_5
  • Frequency-Division Multiple Access (FDMA)
    • Taajuusjakoa käytetään usean käyttäjän linkillepääsyyn
    • Linkkikerroksen kanavan jakamista
    • Monipääsytekniikka
  • Frequency-Division Multiplexing (FDM)
    • Taajuusjaolla jaetaan järjestelmän taajuuskaista pienemmiksi paloiksi
    • Tai kun taajuuskaista jaetaan eri järjestelmien kesken
    • Fyysisen kerroksen kanavan jakamista
    • Esim. GSM taajuuskanavat
  • Frequency-Division Duplexing (FDD)
    • Lähetys ja vastaanotto on jaettu erillisiin taajuusalueisiin, jotta saadaa Full-duplex kommunikaatio
    • Fyysisen kerroksen kanavan jakamista
    • Esimerkiksi GSM taajuuskanavien varaaminen erikseen ylä- ja alalinkille
  • Vastaavasti menee aikajaolle
# videoLinkki5

Hajasaantiprotokollat

# v2018L10_6
  • Ei varata resursseja etukäteen
    • Jos on lähetettävää, niin lähetetään täydellä nopeudella
    • Käytetään sekä
      • langallisissa (Ethernet) että
      • langattomissa (WLAN) lähiverkoissa
  • Hajasaantiprotokolla määrittelee
    • miten havaitaan törmäykset ja miten selvitään törmäyksistä
    • Esimerkkejä:
      • Ensimmäisiä: (Slotted) Aloha, CSMA
      • Ethernet: CSMA/CD
      • WLAN: CSMA/CA
# videoLinkki6

Vuorotteluprotokollat

# v2018L10_7
  • Kaksi kategoriaa
    • Polling:
      • Isäntälaite kyselee orjalaitteilta "onko lähetettävää"
        • ja jakaa lähetysvuoroja tarpeen mukaan
      • Esimerkkejä: Bluetooth
    • Token passing:
      • "Lähetyslupa (token)" -viestiä välitetään laitteiden välillä
      • Esimerkkejä: Token Ring
# videoLinkki7

Monipääsymenetelmien vertailua

# v2018L10_8
  • Kanavan jakaminen
    • FDMA ja TDMA
      • Jakaa kanavan tehokkaasti ja reilusti suurella kuormalla
      • Pienellä kuormalla tehoton: Viive kanavalle pääsyssä
      • Pienellä kuormalla vain osa kanavista käytössä
    • CDMA
      • koko kanava käytössä ja jaetaan aktiivisten käyttäjien kesken
      • kun tulee lisää aktiivisia käyttäjiä niin kaikkien tiedonsiirtonopeus pienenee
  • Hajasaantiprotokolla
    • Tehokas pienellä kuormalla: yksi laite voi käyttää koko kanavan kapasiteetin
    • Suuri kuorma: törmäyksistä aiheutuu uudelleenlähetyksiä ja viivettä
  • Vuorotteluprotokolla
    • Ylläolevien parhaat ominaisuudet, mutta
    • viivettä vuoron jakamisen vuoksi
    • Kanavan kapasiteettia 'tuhlataan' vuoronjakamiseen, koko kapasiteetti ei datansiirron käytössä
    • Single point of failure: Isäntälaite tai token viesti
  • Wikipedia: Channel access methods and Media access control (MAC)/Multiple-access protocols
# videoLinkki8

Linkkikerroksen osoitteet

# v2018L10_9
  • MAC (tai LAN tai Fyysinen tai Ethernet tai Laite) -osoite
    • Tehtävä: Käytetään kehyksen viemiseen 'paikallisesti' liitynnältä toiselle (fyysisesti kytketylle) liitynnälle (saman IP-verkon sisällä)
    • 48 bittinen MAC osoite (useimmissa lähiverkoissa), poltettu verkkokorttiin ROM muistiin (yleensä)
    • Esim. 00-24-E8-42-9E-89, (heksadesimaalimuodossa), missä 8 bittiset tavut erotettu toisistaan '-' -merkillä
    • toinen esitystapa: 00:24:E8:42:9E:89 ja hyvin harvinainen esitystapa: 0024.E842.9E89
  • MAC osoitteiden allokoinnista vastaa IEEE
    • Standardoi myös linkki- ja fyysisen kerroksen tekniikoita, jotka käyttävät MAC osoitteita
    • Esim. IEEE 802.3 ja IEEE 802.11
    • (Verkkokortti)valmistajat ostavat MAC osoitteita
# videoLinkki9

Verkko- ja linkkikerroksen osoitteista

# v2018L10_10
  • Analogia
    • MAC osoite: opiskelijanumero
    • IP osoite: postiosoite + nimi
    • Posti (IP) -osoite: Jyväskylän yliopisto (130.234.x.x), Tietoliikennelabra (x.x.169.x), Ari Viinikainen (x.x.x.82)
    • Posti (IP) -osoite: Jyväskylän yliopisto (130.234.x.x), Auditorio 3 (x.x.156.x), Ari Viinikainen (x.x.x.82)
    • Opiskelijanumero (MAC): Opiskelijakortti (ARP) liittää informaation henkilöön (verkkolaitteeseen)
  • MAC osoite ei ole hierarkinen
    • osoite voidaan siirtää verkosta toiseen
  • IP osoite on hierarkinen
    • osoitetta ei voida siirtää verkosta toiseen
# videoLinkki10

ARP (Address Resolution Protocol)

# v2018L10_11
  • Who has 130.234.169.82? Tell 130.234.169.1
  • Saadaan linkkikerroksen pakettiin osoite, jolla tunnistetaan vastaanottaja
  • Analogia: posti tuo kirjeen:
    • Posti tuo kirjeen yliopistolle: Finland, University of Jyväskylä (vertaa IP verkko-osa)
    • YO:n sisäinen posti Agoraan: AgC334.4 (IP laiteosa jaettu aliverkkoihin)
    • Agoran virastomestarit kolmanteen kerrokseen: AgC334.4 (IP laiteosa jaettu aliverkkoihin)
    • Agoran virastomestarit: Viinikainen Ari (IP laiteosa jaettu aliverkkoihin, jossa laite)
    • Agoran virastomestarit: Selvittää opiskelijanumeron, jollakin menetelmällä
    • Agoran virastomestarit: Laittaa kirjeen postilaatikkoon, joka merkattu opiskelikanumerolla
    • Minä tarkistan että opiskelijanumero ja osoitetiedot on oikein, ennen kuin avaan kirjeen
# videoLinkki11
# t2rfc826

Olisi hyödyllistä, jos loogisten osioiden jälkeen olisi nappi, jolla voi kuitata kaikki ylläolevat osiot luetuksi. Esimerkiksi tässä lukuje n vaihteessa voisi olla sellainen kuittaus. Myös IP-osiossa oli pitkä pätkä ilman sellaista nappia.

16 Feb 19

Teoria 3

# video2018Luento11

Kuljetuskerros

# v2018L11_1
  • TCP yhteyden muodostus ja lopetus
  • ymmärtää tilakaavion suhde protokollan toimintaan
  • Luotettava tiedonsiirto
  • Tehokas luotettava tiedonsiirto
  • TCP Vuonvalvonta
  • TCP ruuhkanhallinta

TCP tilakaavio

https://upload.wikimedia.org/wikipedia/en/5/57/Tcp_state_diagram.png

Wikipedian kuvassa alempaan CLOSEDiin johtavan sinisen nuolen päällä lukee ACK/-, tästä kuvasta se puuttuu.

11 Jun 19

Kuva vaihdettu, aiemmin oli svg-versio, joka näköjään oli virheellinen, nyt on uudempi, png-kuva

11 Jun 19
# v2018L11_2
# t3TCPtilakaavio1
# t3TCPtilakaavio2
# t3TCPtilakaavio3
# t3TCPtilakaavio4

TCP yhteyden muodostus, lopetus sekä tilat

# videoTeoria3_1

Luotettava tiedonsiirto

# v2018L11_3

Luotettavan tiedonsiirtoprotokollan pitää ratkaista

# v2018L11_4
  • Kuinka toivutaan virheellisestä datapaketista?
    • Lisätään tarkistussumma
      • jotta havaitaan virheitä
    • Lisätään kontrolliviesti(t)
      • annetaan palautetta virheistä tai virheettömyydestä
  • Kuinka toivutaan virheellisestä kuittauspaketista?
    • Lähetetään paketti uudestaan
      • mutta mitä jos onkin duplikaatti?
    • Lisätään sekvenssinumerointi
      • jotta tunnistetaan duplikaattipaketit
  • Kuinka toivutaan kadonneesta data- tai kuittauspaketista?
    • Lisätään datan lähettäjälle ajastin
      • Ajastin laukeaa jos ei saada kuittausta
      • → lähetetään datapaketti uudestaan
    • Jos datapaketti oli kadonnut
      • on ongelma korjattu
    • Jos kuittauspaketti oli kadonnut
      • vastaanottaja saa duplikaatin
      • josta selvitään sekvenssinumeroinnilla
  • Kuinka toivutaan viivästyneestä kuittauspaketista?
    • Jos viive on suurempi kuin ajastimen arvo
      • tulee turha datapaketin uudelleenlähetys
    • Lähettäjä vastaanottaa duplikaattikuittauksen
      • ja luulee että data paketti on kadonnut
    • Koska kuittauspakettien duplikaatteja ei voi tunnistaa
      • lähetetään varulta datapaketti uudestaan
    • Sekvenssinumeroilla tunnistetaan datapakettien duplikaatit
    • Viive voi vaihdella paljonkin
      • tarvitaan menetelmä viiveen arvioimiseen
      • ja ajastimen arvon päivittämiseen
  • rdt 3.0 on toimiva luotettava tiedonsiirtoprotokolla, mutta hidas!!!
# videoTeoria3_2

Go Back N vs. Selective repeat

# video2018Luento12
# v2018L12_1
# videoTeoria3_3

TCP Vuonvalvonta - Flow control

# v2018L12_2
  • Vastaanottajan toimenpide
  • Vastaanottaja estää lähettäjää lähettämästä liian nopeasti
  • Mainostetaan (päivitetään) vastaanottoikkunan kokoa lähettäjälle
  • Visualizing the tcp flow control
  • TCP vuonvalvonta on eri asia kuin TCP ruuhkanhallinta - Congestion control
  • Ruuhkanhallinta on lähettäjän toimenpide, käsitellään ruuhkanhallintaa seuraavaksi
# videoTeoria3_4
# videoTeoria3_9

TCP Ruuhkanhallinta - Slow Start

# v2018L12_3
  • Slow Start
    • Aloitetaan lähetys hitaasti
    • Kasvatetaan nopeutta eksponentiaalisesti
    • Jos paketti katoaa (timeout)
      • lähetetään uudelleen kuittaamaton paketti
      • aloitetaan Slow Start vaiheen alusta
      • lähetysikkunan koko asetetaan alkuarvoon
        • eli tiedonsiirtonopeus pudotetaan minimiin
      • asetetaan raja-arvo puoleen saavutetusta nopeudesta
    • Jos saavutetaan raja-arvo, siirrytään Congestion Avoidance vaiheeseen
# videoTeoria3_5

TCP Ruuhkanhallinta - Congestion Avoidance

# v2018L12_4
  • Congestion Avoidance
    • Kasvatetaan nopeutta lineaarisesti
    • Jos paketti katoaa (timeout)
      • lähetetään uudelleen kuittaamaton paketti
      • aloitetaan Slow Start vaiheen alusta
      • lähetysikkunan koko asetetaan alkuarvoon
        • eli tiedonsiirtonopeus pudotetaan minimiin
      • asetetaan raja-arvo puoleen saavutetusta nopeudesta
# videoTeoria3_6

TCP Ruuhkanhallinta - Fast Retransmit (TCP Tahoe)

# v2018L12_5
  • Fast Retransmit
    • Jos paketti katoaa (timeout)
      • lähetetään uudelleen kuittaamaton paketti
      • aloitetaan Slow Start vaiheen alusta
      • lähetysikkunan koko asetetaan alkuarvoon
        • eli tiedonsiirtonopeus pudotetaan minimiin
      • asetetaan raja-arvo puoleen saavutetusta nopeudesta
    • Uutta:
      • Jos vastaanotetaan 3 kpl duplikaattikuittauksia →
      • paketti oletetaan kadonneeksi →
      • toimitaan kuten paketti olisi kadonnut
        • ei tarvitse odottaa ajastinta
# videoTeoria3_7

TCP Ruuhkanhallinta - Fast Recovery (TCP Reno)

# v2018L12_6
  • Fast Recovery
    • Jos paketti katoaa (timeout)
      • lähetetään uudelleen kuittaamaton paketti
      • aloitetaan Slow Start vaiheen alusta
      • lähetysikkunan koko asetetaan alkuarvoon
        • eli tiedonsiirtonopeus pudotetaan minimiin
      • asetetaan raja-arvo puoleen saavutetusta nopeudesta
    • Jos paketti oletetaan kadonneeksi (3 kpl duplikaatti ACK)
      • uudelleen lähetetään kuittaamaton paketti
      • asetetaan raja-arvo puoleen saavutetusta nopeudesta
      • Uutta:
        • aloitetaan Congestion Avoidance vaiheen alusta
        • eli tiedonsiirtonopeus puolitetaan saavutetusta nopeudesta
# videoTeoria3_8

Verkkokerros (Teoria 3)

# video2018Luento13
  • DHCP
  • NAT
  • Mobile IP vs. liikkuva kännykkä
  • Reititysprotokollat

DHCP toiminta

# v2018L13_1
  • DHCP kommunikaatio, oletuksena kaikki viestit lähetetään yleislähetysosoitteeseen 255.255.255.255
    • Asiakas - DHCP palvelimen etsintä (DHCP Discover)
    • Palvelimet - IP osoitteen 'vuokra'-tarjouksia (DHCP offer)
    • Asiakas - IP osoitteen pyytäminen (DHCP request)
    • Palvelin - IP osoitteen kuittaus (DHCP acknowledgement)
  • Asiakas voi pyytää vastauksen täsmälähetyksenä, palvelimen asetuksista riippuu tuetaanko täsmälähetyksiä
  • DHCP ja DHCPv6
    • DHCP portit: 67 (palvelin), 68 (asiakas), 546 (IPv6 asiakas), 547 (IPv6 palvelin)
    • IPv6 asiakkaat luo itse IP osoitteen käyttämällä Tilatonta autokonfiguraatiota
    • DHCPv6 protokollaa voidaan (tarvittaessa) käyttää Tilattoman autokonfiguraation parametrien välittämiseen
# videoTeoria3_10a
# t3rfc2131

Nämä viimeiset tehtävät osiossa 1 ovat kaikki tehtävä a)

19 Aug 18

DHCP viestit

# v2018L13_2
# videoTeoria3_10b

NAT (Network Address Translation)

# v2018L13_3
  • NAT (Network Address Translation) - Basic NAT
    • Reititin muuttaa lähtevien pakettien lähettäjän IP osoitteen
    • Jokainen privaatti IP:tä käyttävä laite saa oman julkisen IP osoitteen
    • Vaatii paljon IP osoitteita (ostetaan ISP:ltä)
  • Network Address and Port Translation (NAPT) - Dynamic NAT
    • Reititin muuttaa myös lähettäjän porttinumeron
    • Tällöin riittää vain yksi julkinen IP osoite
    • Yleisin versio, ja nykyään NAT-termillä yleisesti tarkoitetaan juuri NAPT:tä
  • Port Forwarding - Static NAT
    • Reititin tallentaa pysyvästi porttimuunnoksen (sallii ulkopuoliset yhteydet porttiin)
    • Käytetään kun kommunikaatio vaatii NAT:n takana olevan porttinumeron tuntemusta
# videoTeoria3_11
# t3rfc2663
# itkp104NAT

Onkohan tässä tullut pieni copy+paste-virhe? Noissa raahattavissa vastausbokseissa osoitteissa on ykkönen siinä kohtaa, missä staattisessa kuvassa on kakkonen sisäverkon ip-osoitteissa eli 192.(2)68.0… on muuttunut muotoon 192.(1)68.0… Huomioitava numero sulkujen sisällä.

22 Aug 19 (edited 22 Aug 19)

Korjattu

22 Aug 19
# itkp104NAT1

NAT:n hyödyt ja haitat

# v2018L13_4
  • Hyödyt
    • Säästää julkisia IPv4 osoitteita
    • Parantaa tietoturvaa
    • Sisäverkon konfiguraatiota ja osoitteita voi vapaasti muuttaa
    • Pienentää reitityksen tarvetta
  • Haitat
    • Kaikki protokollat ja sovellukset eivät toimi NAT:in läpi ilman erillisiä määrityksiä
    • NAT viivästää omalta osaltaan IPv6:een siirtymistä
    • NAT rikkoo kerrosarkkitehtuurin periaatetta
      • reitittimien ei tulisi koskea kuljetuskerrokseen
    • NAT:ista aiheutuu viivettä, prosessori- ja muistikuormaa reitittimessä
      • jokaisesta paketista pitää muuttaa osoitteita ja laskea tarkistussummia uudestaan
# videoTeoria3_12

Mobile IP

  • Termejä
    • Kotiosoite - pysyvä osoite (permanent address)
    • Kotiagentti (Home Agent, HA)
    • Vierasosoite - (Care-of-Address, CoA)
    • Vierasagentti (Foreign Agent, FA)
    • Kotisolmu - (Home Node, HN)
    • Kommunikaatiokumppani - (Correspondant Node, CN)
    • Kolmioreititys - epäsuora reititys
    • Suora reititys
# videoTeoria3_13

Mitä tarkoitetaan indirect routing transperecyllä? Ymmärrän että correspondent ei voi tietää laitteen lokaatiota, sillä viesti menee home agentin kautta, joka reitittää viestin eteenpäin. Tästä saan kuvan, että sijainti on salainen mutta sanan transparentin suomennus on läpinäkyvä. Tietääkö correspondent missä laite on? Mitä transparentilla tässä tarkoitetaan?

26 Oct 18

Transparent viittaa siihen että “nähdään välissä olevien laitteiden läpi”, eli sinällään läpinäkyvä käy suomennokseksi. Tuo transparent-sanan käyttö Kurosen ja Rossin kalvoilla, viittaa siihen että liikkuvan laitteen sijainti on läpinäkyvä, eli transparent sana kalvojen yhteydessä tarkoittaa että correspondant ei tiedä sijaintia. Nyt tuo läpinäkyvä ei ole välissä, kuten lainausmerkeissä kirjoittamani teksti, joten voi virheellisesti tulkita että se kotiagentti olisi se läpinäkyvä komponentti, kun se tässä tapauksessa on mobiililaite.

29 Oct 18

Mobile IP vs. GSM puhelun reititys

# v2018L13_5
# t3rfc5944
# t3rfc6275

Reititysalgoritmit - vertailu

# video2018Luento14
# v2018L14_1
Yhteystila Etäisyysvektori Polkuvektori
Algoritmi Dijkstra Bellman–Ford Ei etsitä lyhintä reittiä
Esimerkki OSPF RIP BGP
Kommunikoi kaikkien reitittimien kanssa naapuri- reitittimien kanssa naapuri-AS:n reitittimien kanssa
Käyttökohde suuri, hierarkinen verkko pieni, ei-hierarkinen verkko AS:ien välinen reititys
Laskenta-aika on kriittinen parametri Ei ole kriittinen parametri Ei ole kriittinen parametri
Ylläpito Vaati laajempaa verkkotietämystä Ei vaadi paljoa verkkotietämystä Tarvitaan tietämystä myös ISP-sopimuksista
Topologia Tunnetaan koko verkon topologia Tiedetään minkä naapurin kautta kohteet saavutetaan Tiedetään polku kohdeverkkoon (ei välttämättä lyhin)
Päivitykset Muutosten aiheuttamat (muuttunut tieto) Periodiset (koko reititystaulu) Muutokset polussa (uusi mainos)
# videoTeoria3_14
# t3rfc2328
# t3rfc2453
# t3rfc4271

BGP reititystaulu

# v2018L14_2
  • Tietoja CIDR raportissa
  • Internetin Globaalin reititystaulun koko
    • toukokuussa 2016 on noin 600000 reittiä
    • toukokuussa 2017 on noin 650000 reittiä
    • toukokuussa 2018 on noin 720000 reittiä
      • joista noin puolet on yhdistetty mainoksissa
  • Eli reittejä joita AS:t BGP protokollalla mainostavat toisille AS:lle
  • Reitit ovat reittejä joko IPv4 tai IPv6 verkkoihin
  • AS:n reunareitittimet ylläpitävät BGP reititystaulua
    • mainostavat naapureilleen tuntemiaan reittejä
    • päivittävät oman taulunsa naapureiden mainosten ja oman politiikkansa mukaan
  • AS:n muut reitittimet hoitavat AS:n sisäistä reititystä
# videoTeoria3_15
BGP reititystaulun koko
BGP reititystaulun koko

Reititysalgoritmit

# v2018L14_3
# v2018L14_4
# videoTeoria3_167

Reititysalgoritmien animaatioita

# v2018L14_5
# videoTeoria3_16

Linkkikerros (Teoria 3)

  • Keskitin vs. kytkin vs. reititin
  • ARP ja MAC osoitteet
  • Ethernet CSMA/CD ja WLAN CSMA/CA
  • Virheen havaitseminen ja korjaus

Ethernet keskitin (tai eng. hub)

# v2018L14_6
  • Keskitin on Fyysisen kerroksen laite
    • forwardoi Ethernet kehyksiä, kaikkiin liityntöihin
    • Läpinäkyvä - tietokoneet tai reitittimet eivät näe keskitintä
    • Käytetään yhdistämään useampia laitteita reitittimeen
    • Laitteet sijaitsevat samassa törmäysalueessa
  • Myös Toistin (eng. repeater) on fyysisen kerroksen laite
    • Vahvistaa heikentynyttä signaalia pitkillä kaapeliväleillä (tai myös langattomasti)
    • Läpinäkyvä - tietokoneet tai reitittimet eivät näe toistinta
    • Käytetään pidentämään laitteiden välistä etäisyyttä
  • Sekä keskitin että toistin ovat pääosin poistuneet käytöstä ja ne IEEE:n Ethernet standardi on määritellyt ne vanhentuneeksi verkkosegmenttien yhdistämiseen
    • Keskittimelle on vielä muutama käyttökohde, esimerkiksi pakettien kaappaaminen saman verkon laitteista
# videoTeoria3_18

Ethernet kytkin

# v2018L14_7
  • Linkkikerroksen laite
    • tallentaa ja forwardoi Ethernet kehyksiä
    • Tutkii saapuvan paketin MAC osoitteita
    • Läpinäkyvä - tietokoneet tai reitittimet eivät näe kytkintä
    • Käytetään yhdistämään useampia laitteita reitittimeen
    • Kytkimet oppivat itse MAC osoitteiden sijainnin
    • Laitteet sijaitsevat eri törmäysalueissa
      • sen jälkeen kun kytkin on oppinut laitteiden sijainnin
    • Viisaampi laite kuin keskitin
# videoTeoria3_19

Reititin vs. kytkin vs. keskitin

# v2018L14_8
  • Reititin - Router
    • Verkkokerroksen laite
    • Välittää paketteja verkkokerroksen osoitteen perusteella
    • Tarvitsee reititysprotokollia osoitteiden sijaintien oppimiseen, tai asetukset tehdään manuaalisesti
  • Kytkin - Switch
    • Linkkikerroksen laite
    • Välittää paketteja linkkikerroksen osoitteen perusteella
    • Oppii itse osoitteiden sijainnin lähetettyjen pakettien perusteella
    • Silta - Bridge: muuten samanlainen mutta liityntöihin kytketään kokonaisia verkkoja. Ei juurikaan käytetä enää
  • Keskitin - Hub
    • Fyysisen kerroksen laite
    • Välittää paketteja jokaiseen linkkiin (fyysiselle siirtotielle) riippumatta osoitteesta
    • Toistin - Repeater: Vahvistaa fyysisen kerroksen signaalia ja välittää sen eteenpäin
# videoTeoria3_20

Verkkolaitteet tänään

# video2018Luento15
# v2018L15_2
  • Reititin - Layer 4 Router
    • NAT ja palomuuri toimii osin kuljetuskerroksella
  • Kytkin - Multilayer Switch
    • Kytkimeen on lisätty useita eri ominaisuuksia
    • Layer 3 switching, reititys toteutetaan laitteistolla (ASIC), reitittimessä ohjelmistolla
    • Layer 4-7 switching, esim. load balancing, NAT, VPN, web switch
  • Kytkin - Software-defined networking (SDN)
    • Kytkimen kontrolli- ja data-osiot erotellaan
    • Ohjelmallisesti muokataan kontrolli-osioon sääntöjä yms. sille miten ja minne data välitetään data-osion kautta
# videoTeoria3_21
# t3rfc7426tai7149

ARP ja MAC osoitteet

# v2018L15_1
  • Address Resolution Protocol (ARP)
    • Jotta IP paketti voidaan välittää linkkikerroksella oikealle laitteelle
    • Selvittää IP osoitetta vastaavan MAC osoitteen
    • tai
    • Reitittimen MAC osoitteen, jos IP osoite on eri verkossa
# videoTeoria3_17

ARP ja MAC osoitteet reitittimen kanssa

Olkoon meillä kuvan mukainen verkko.

ARP ja MAC osoitteet reitittimen tapauksessa
ARP ja MAC osoitteet reitittimen tapauksessa

Laitteiden reititystaulut on esitetty alla. Oletetaan että ARP-taulut ovat tyhjiä.

Laite A
Destination    Netmask        Gateway        Interface
0.0.0.0        0.0.0.0        111.111.111.111    111.111.111.222

Laite B
Destination    Netmask        Gateway        Interface
0.0.0.0        0.0.0.0        222.222.222.111    222.222.222.222

Reititin
Destination    Netmask        Gateway        Interface
111.111.111.0    255.255.255.0    On-link        111.111.111.111
222.222.222.0    255.255.255.0    On-link        222.222.222.111

Laite A lähettää ping viestin laitteelle B, mihin laite B reagoi lähettämällä vastauksen ping viestiin. Tarvittaessa MAC osoitteet selvitetään ARP protokollalla.

Halutessasi voit itse kokeilla kuvan mukaista simulaatiota, jos sinulla on Java versio 7. Simulaattori https://code.google.com/p/psimulator/ ei toimi Javan version 8 kanssa. Simulaattorin käyttöön löytyy ohjeita http://www.brianlinkletter.com/psimulator2-graphical-network-simulator/. Ohjelmasta on tehty versio, joka toimii uudempien Java versioiden kanssa Rakenna vastaava verkko itse ja kokeile toistaa opettajan videolla tekemät visualisoinnit.

# videoARP
# t3MAC01

En saa tästä pistettä BB-BB-BB-BB-BB-BB vastauksella? olenko ymmärtänyt jotain väärin?

25 Jan 19

ARP-viestillä selvitetään MAC osoitetta kohdelaitteelle, joten vastaanottaja ei voi olla se osoite mitä ollaan selvittämässä.

28 Jan 19
# t3MAC02
# t3MAC1
# t3MAC2
# t3MAC3
# t3MAC4

Carrier Sense Multiple Access

# v2018L15_3
Step Collision Detection (CD) Collision Avoidance (CA) Collision Avoidance with RTS/CTS
1 Kuunnellaan onko hiljaista Kuunnellaan onko hiljaista Kuunnellaan onko hiljaista
2 Jos ei, niin odotetaan, kunnes on hiljaista Jos ei, niin odotetaan, kunnes on hiljaista Jos ei, niin odotetaan, kunnes on hiljaista
3 Jos on, niin lähetetään Jos on, niin lähetetään Jos on, niin pyydetään lupaa lähettää
4 Kuunnellaan meneekö lähetys ilman häiriötä perille Odotetaan kuittausta datapaketille Jos pyynnöt törmäävät, odotetaan satunnainen aika ja mennään kohtaan 1
5 Jos ei, niin on tapahtunut törmäys Ei kuittausta, oletetaan törmäyksen tapahtuneen Jos saadaan lupa lähettää, lähetetään
6 Odotetaan satunnainen aika ja mennään kohtaan 1 Odotetaan satunnainen aika ja mennään kohtaan 1 Jos ei saada lupaa, odotetaan satunnainen aika ja mennään kohtaan 1
# videoTeoria3_22

Bittivirheiden havaitseminen ja korjaus

# v2018L15_4
  • Virheiden havaitsemiseksi tai korjaamiseksi lisätään viestiin ylimääräisiä bittejä
  • Data bitit ja ylimääräiset bitit muodostavat koodisanan
  • Virheiden havaitseminen
    • Vertaamalla vastaanotettuja bittejä hyväksyttäviin koodisanoihin, voidaan havaita virheitä
    • Yksinkertaisin: pariteettibitin lisääminen
      • Valitaan kumpaa tarkastellaan: nollia vai ykkösiä
      • Valitaan pitääkö niitä olla pariton vai parillinen määrä
  • Virheiden korjaus
    • Ylimääräisisten bittien avulla voidaan tulkita, jollakin todennäköisyydellä, virheellisen viestin virheetön muoto
    • Yksinkertaisin: toistetaan lähetettävää dataa
      • Lähetetään kaksi tai useampia kopioita samasta bitistä
      • Jos vastaanottaessa kopiot poikkeavat toisistaan, oletetaan että lähetetty bitti on se jota on enemmistö kopioista
# videoTeoria3_23

Koodisana esimerkki

# v2018L15_5

Muodostetaan esimerkkinä koodisana, jossa lisätään kahden bitin perään pariteettibitti, siten että muodostetussa koodisanassa on aina pariton määrä 1-bittejä. Alla on taulukoitu kaikki mahdolliset kahden bitin kombinaatiot ja niistä muodostuvat edellä olevan määritelmän mukaiset koodisanat.

Databitit Koodibitit Koodisana
00 1 001
01 0 010
10 0 100
11 1 111

Vastaanotossa tutkitaan onko vastaanotettu bittijoukko jokin koodisana. Lähettäessä kolmen bitin jono on aina jokin muodostetuista koodisanoista. Vastaanotettaessa, bittivirheiden sattuessa, voi bittijono olla myös sellainen, jota ei voi muodostua lähetyksessä koodausmenetelmän sääntöjen mukaan. Alla on taulukoitu kaikki kolmen bitin kombinaatiot ja verrattu niitä edellisen kappaleen määritelmän mukaisiin koodisanoihin.

Vastaanotetut bitit Onko hyväksytty koodisana
000 000 (ei, virhe)
001 001 (on)
010 010 (on)
011 011 (ei, virhe)
100 100 (on)
101 101 (ei, virhe)
110 110 (ei, virhe)
111 111 (on)

Pariteetin tarkistus

Pariteettibitin käyttäminen on yksinkertaisin keino havaita bittivirheitä. Pariteettibittiä käytettäessä valitaan joko parillinen tai pariton pariteetti sekä se tutkitaanko 1-bittien vai 0-bittien määrää. Jos koodisanassa on parillinen määrä bittejä, silloin ei ole väliä kumpia bittejä tutkitaan. Lähetettävään bittijonoon lisätään pariteettibitti, siten että koodisanassa on valittu pariteetti.

Seuraavissa tehtävissä tarvitsee selvittää 7-bittisiä ASCII merkkejä vastaava bittikuvio, eli binääriluku. ASCII taulukoita löytyy Internetistä, tai voit käyttää allaolevaa python-koodia.

# pyPrintBits

Pariteettibittiä on käytetty mm. 7-bittisten ASCII-merkkien yhteydessä. Nykyään pariteettia käytetään esimerkiksi sarjaliikenteessä ja yleensä pariteettibitillä suojataan tavun kokoisia binäärilukuja. Seuraavissa tehtävissä on käytössä tämä tarkistin.

# t3parity1

Tarkistimen mukaan bittien määrä on näissä minulla väärin, vaikka teen kaiken omasta mielestäni oikein.

23 Jan 19

Bugi korjattu

23 Jan 19
# t3parity2
# t3parity3
# t3parity4

Pariteettimatriisi

Pariteettibitillä voidaan vain havaita virheen tapahtuneen, jos virheitä on ollut pariton määrä. Virheen korjaaminen vaatii lisää informaatiota ja pariteettia käytettäessä on mahdollista tutkia binäärilukuja 2-ulotteisesti, käyttämällä pariteettimatriisia. Pariteettimatriisissa lähetettävä data, esimerkiksi 7-bittiset ASCII binääriluvut, ryhmitellään isommiksi kokonaisuuksiksi. Käytännössä tämä tehdään muodostamalla matriisi, eli asettamalla binääriluvut allekkain. Sitten pariteetti lasketaan jokaiselle riville ja pariteettibitti lisätään jokaisen rivin loppuun. Lopuksi lisätään vielä yksi rivi, johon tulee pelkkiä pariteettibittejä. Tämän viimeisen rivin bitit lasketaan yläpuolella olevista riveistä sarakekohtaisesti. Alla on esimerkki, johon on asetettu binääriluvut ASCII-merkeistä ITKP104, jokainen omalla rivillään. Pariteettina on parillinen määrä 0- (tai 1-bittejä, koska sarakkeita ja rivejä on pariteettibittien lisäämisen jälkeen parillinen määrä). Rivi- ja sarakekohtaiset pariteettibitit on merkitty sinisellä, data bitit on värjätty TIM-järjestelmän oletusvärillä.

1001001 1
1010100 1
1001011 0
1010000 0
0110001 1
0110000 0
0110100 1
0110011 0

Jos bittiryhmässä tulee yksittäinen bittivirhe, aiheuttaa se sekä rivi- että sarakepariteetin muuttumisen. Näin virheellinen bitti voidaan tunnistaa, kun tiedetään millä rivillä ja millä sarakkeella virhe on tapahtunut. Menetelmä vastaa muuten yksinkertaista pariteetin tarkistusta, mutta nyt lähetetään tietyin väliajoin pariteettirivi, mikä pienentään koodin hyötysuhdetta, eli databittien suhdetta kaikkiin lähetettäviin bitteihin.

Etsi seuraavassa tehtävässä esiintyvä bittivirhe ja korjaa se. Seuraavien tehtävien matriisissa saa olla ylimääräisiä väli( )-, putki(|)- ja väliviiva(-) -merkkejä sekä rivinvaihtoja. Tabulaattoria tarkistin ei vielä tue.

# t3parityCheck3

Seuraavissa tehtävissä muodosta harmaalla taustalla olevia ASCII-merkkejä vastaavat binääriluvut omille riveilleen ja lisää pariteettimatriisiin pariteettibitit tehtävänannossa määritellyn pariteetin mukaan.

# t3parity5

“Virhe tiedostoa luettaessa, ilmoita virheestä opettajalle”

17 Nov 18

Näyttäisi olevan jotain vikaa tarkistimessa, kun merkiksi on arvottu $. Tutkin jossain välissä, että mikä on vikana. Sitä enne voi laittaa viestiä, annan pisteet manuaalisesti.

04 Dec 18

Yksi vika on korjattu, missä $-merkki aiheutti ongelmia. Poistin seuraavista tehtävistä $-merkin arvottavien merkkien joukosta. Tämän takia kaikille on arvottu uudet merkkijonot. Jos olet vastannut ennen 14.2.2019, niin vastauksesi ei enää ole tehtävänannon merkkijonon mukainen. Kuitenkin jo saadut pisteet säilyvät, jos et tee uutta tallennusta. Jos tallennat vanhan vastauksen uudestaan, pisteet nollautuvat. Tällöin sinun täytyy muodostaa uutta merkkijonoa vastaava pariteettimatriisi pisteiden saamiseksi. Tämä koskee kohtia (g) - (j).

14 Feb 19
# t3parity6
# t3parity7
# t3parity8

Virheen havaitseminen ja korjaus - Hamming etäisyys

# v2018L15_6
  • Hammingin etäisyys on koodisanojen toisistaan eroavien bittien lukumäärä
  • Koodin minimi Hamming etäisyys on koodin koodisanojen välinen pienin Hamming etäisyys
  • Koodin minimi Hamming etäisyys määrittää koodin kyvyn havaita ja/tai korjata virheitä
  • Jos minimi hamming etäisyys on \(\color{red}n\), niin
    • \(\color{red}{n-1}\) bitin virheet voidaan havaita ja
    • \(\color{red}{\frac{n-1}{2}}\) bitin virheet korjata
# videoTeoria3_24

Minimi Hamming etäisyys - Esimerkki

# v2018L15_7

Alla on taulukoitu aiemman esimerkin, pariton määrä 1-bittejä pariteetti, koodisanojen väliset erot biteissä. Koodi muodostaa tasaisen Hamming etäisyyden, eli kaikki koodisanat eroavat toisistaan kahden bitin osalta, näin koko koodin minimi Hammin etäisyys on 2. Koodi kykenee siten havaitsemaan yhden bitin virheet, mutta ei korjaamaan virheitä. Kahden tai kolmen bitin virheet jäävät havaitsematta.

Koodisanojen bittien erot
001 010 100 111
001 - 0xx x0x xx1
010 0xx - xx0 x1x
100 x0x xx0 - 1xx
111 xx1 x1x 1xx -

Jos virheitä kontrolloiva menetelmä on huono, se voi generoida koodisanoja, jotka ovat liian lähellä toisiaan. Jos menetelmä muodostaa esimerkiksi koodisanat 000, 100, 001 ja 111, niin Hamming etäisyys on suurimmillaan kolme, mutta joissain tapauksissa 2 tai jopa 1. Minimi Hamming etäisyyden ollessa 1, ei menetelmällä voi varmasti havaita edes yhden bitin virheitä.

Koodisanojen bittien erot
000 001 100 111
000 - 00x x00 xxx
001 00x - x0x xx1
100 x00 x0x - 1xx
111 xxx xx1 1xx -

Virheen havaitseminen ja korjaus - Esimerkkejä

Pariteettibitti (parillinen määrä 1 bittejä)
Databitit Koodibitit Koodisana
00 0 000
01 1 011
10 1 101
11 0 110

Minimi Hamming etäisyys = 2

Toistokoodi (1 toistobitti)
Databitit Koodibitit Koodisana
0 0 00
1 1 11

Minimi Hamming etäisyys = 2

Toistokoodi (2 toistobittiä)
Databitit Koodibitit Koodisana
0 00 000
1 11 111

Minimi Hamming etäisyys = 3

# videoTeoria3_25

Toistokoodi

Toistokoodi on yksinkertaisin menetelmä korjata virheitä. Ideana on että jokaisesta lähetettävästä bitistä lähetetään useita kopiooita. Vastaanotossa sitten tarkastetaan onko kaikki kopiot samoja. Virheen tapahtuessa tulkitaan vastaanotettu bitti siksi, josta on vastaanotettu eniten kopioita.

Toistokoodia ei juurikaan käytetä, koska sen tehokkuus virheenkorjauksessa on huono ja informaatiobittien suhde kaikkiin lähetettyihin bitteihin on pieni. Ainoa hyvä puoli on sen toteutuksen yksinkertaisuus. Kolmen pituinen binäärinen toistokoodi on vastaava kuin (3,1) - Hamming koodi.

# t3repeat1
# t3repeat2
# t3repeat3
# t3repeat4
# t3repeat5
# t3repeat6
# t3repeat7
# t3repeat8
# t3repeat9
# t3repeat10

Virheiden havaitseminen Internetissä

# v2018L15_8

Virheitä havaitaan Internetissä monella kerroksella. Virheiden korjausta tehdään pääasiassa langattomissa linkkitekniikoissa, linkkikerroksella. Sovelluskerroksella käytetään joskus virheenkorjausta, kun kuljetuskerroksella on UDP, yleisempää kuitenkin on toteuttaa mekanismeja, joilla toivutaan kadonneista paketeista. Bittivirheen jääminen huomaamatta sekä linkki-, verkko- että kuljetuskerroksella on hyvin epätodennäköistä.

  • Linkkikerros
    • Ethernet kehys
      • CRC-32 tarkistussumma
      • Vastaanottajan verkkolaite hylkää väärän tarkistussumman sisältävät kehykset
    • Erilaisia eri linkkitekniikoilla
  • Verkkokerros
    • IPv4
      • IPv4 tarkistussumma suojaa otsikkokenttiä
      • Reitittimet tai vastaanottaja hylkää väärän tarkistussumman sisältävät kehykset
    • IPv6
      • Tarkistussumma poistettiin versiosta 6 reitittimien laskentakuorman minimoimiseksi
      • Oletetaan että linkkikerros ja kuljetuskerros tarjoavat riittävän suojan virheiden havaitsemiselle
  • Kuljetuskerros
    • UDP
      • UDP Tarkistussumma, joka suojaa hyötykuorman ja informaation sekä UDP että IP protokollien otsikkokentistä
      • Vapaaehtoinen IPv4:n kanssa, pakollinen IPv6:n kanssa
      • Vastaanottajan käyttöjärjestelmän verkkopino hylkää väärän tarkistussumman sisältävät paketit
    • TCP
      • TCP Tarkistussumma, joka suojaa hyötykuorman ja informaation sekä TCP että IP protokollien otsikkokentistä
      • Vastaanottajan käyttöjärjestelmän verkkopino hylkää väärän tarkistussumman sisältävät paketit
      • Uudelleen lähetykset joko ajastimen lauetessa tai kolmesta duplikaattikuittauksesta
  • Sovelluskerros
    • Jos kuljetuskerroksella käytössä UDP, niin sovelluksen tarpeiden mukaan
    • uudelleenlähetykset tai jokin muu menetelmä virheistä toipumiseen
# videoTeoria3_26

Lopuksi - Kaikki mitä tapahtuu www- sivun pyynnössä

# v2018L15_9
# videoTeoria3_27

These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.