Teoria 1

Teoria 1 osion osaamistavoitteina on ymmärtää perusteet Internetin rakenteesta, palveluista, arkkitehtuureista sekä yleisimmistä sovellusprotokollista. Osaamistavoitteena on myös ymmärtää alkeet tietoverkkoihin liittyvistä tietoturvasta sekä saada katsaus Internetin historiaan.

# video2019Luento1
2019 - Luento 1 kokonaisuudessaan Luento 1 (1h27m49s)

Internet

# v2018L1_6
2018 - Internet karttojen näkymästä Luento 1 (7m47s)

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 koko maailman 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
2017 - Internet eri näkökulmista Luento 2 (4m40s)

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 tietää oman lähiverkkonsa osoiteavaruuden ja 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
2018 - Tietoverkkojen osista Luento 1 (13m40s)
# t1a
# videoJohdanto6
2017 - Johdantoa verkkoihin ja sen laitteisiin Luento 1 (5m6s)

Palvelin ja asiakas tietoverkossa

# v2018L1_8
2018 - Asiakas-palvelin -malli Luento 1 (5m9s)

Palvelimeksi kutsutaan laitetta tai tietokoneen ohjelmistoa joka odottaa asiakkaan, myös laite tai tietokoneen ohjelmisto, 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 laitteiden lähettämät pyynnöt sekä vastaukset. Esimerkiksi WWW-palvelimet vastaavat verkkoselainten pyyntöihin molempien käyttäessä HTTP-protokollaa.

# t1b

Esimerkkejä tietoverkoissa sijaitsevista palvelimista ja niiden käyttämistä protokillista:

  • 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-protokolla
      • Tiedostojen ja ohjelmistojen siirtäminen verkkolaitteiden välillä
    • Paikallisen verkon tiedostopalvelin: esim. NFS-protokolla
      • 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
2017 - Palvelin palvelee asiakkaita Luento 1 (3m12s)

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. WWW-lyhenne tulee sanoista World Wide Web joka on digitaalinen verkko Internetissä. WWW-verkossa informaatio, eli resurssit, esimerkiksi teksti, kuvat, videot tai pelit, sijaitsevat WWW-palvelimilla.

Uniform Resource Locator (URL)

Käyttäjä pääsee WWW-resursseihin käsiksi antamalla selaimelle osoitteen pyydettävään resurssiin sekä menetelmän, jolla resurssi siirretään. Käytännössä asiakkaan pyyntö toteutetaan resurssin identifioimalla URL (Uniform Resource Locator) -viitteellä. Resurssit voivat olla linkitetty toisiinsa hypertekstillä, sijaiten missä vain Internetissä. URL (Uniform Resource Locator) -viitteellä 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 Uniform Resource Identifier (URI) - RFC 3986. Koska edellisessä dokumentissa määritellyt lyhenteet ovat menneet usein sekaisin, on määritelmien selventämiseksi kirjoitettu oma erillinen dokumentti URI, URL ja URN - RFC 3305. Silloin 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.

# v2018L1_9
2018 - Internetselain ja URL, URN ja URI Luento 1 (6m10s)

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
2017 - Selain on eräs asiakas ja se hakee palvelut URL:n avulla Luento 1 (6m27s)

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 tiedostopäätettä, eli pistettä ja sen jälkeistä osaa, kuten esimerkiksi tämän materiaalin URL:ssa https://tim.jyu.fi/view/kurssit/tie/itkp104//materiaali. Monesti tiedoston nimi voi puuttua, eli esimerkiksi index.html voidaan jättää pois. Tällöin palvelin lähettää palvelimeen määritellyn oletusresurssi -nimisen tiedoston, jos sellainen on olemassa viitatussa hakemistossa.

# t1c

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
2018 - URL:n skeema Luento 2 (41s)

Reititin tietoverkoissa

# video2018Luento2
2018 - Luento 2 kokonaisuudessaan Luento 2 (1h29m27s)

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 reititystaulun, englanniksi routing table, tai toiselta nimeltään, 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
2018 - Reititin ja palomuuri Luento 2 (3m47s)
# v2018L2_5
2018 - Reititin ja reititystaulu Luento 2 (5m56s)
# t1d

Reitittimen on yleensä yhdistetty muitakin verkon toimintoja, kuten esimerkiksi kytkin, tukiasema tai palomuuri. Kytkimen avulla reititinlaitteeseen voidaan suoraan yhdistää useita 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
2017 - Reititin välittää paketteja, palomuuri blokkaa paketteja Luento 1 (4m36s)

Paketit Internetissä

# v2018L2_6
2018 - Paketti Internetissä Luento 2 (3m7s)
  • 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

# video2019Luento2
2019 - Luento 2 kokonaisuudessaan Luento 2 (1h24m21s)
# v2018L2_7
2018 - Bitit ja tavut Luento 2 (9m6s)
# videoJohdanto26
2017 - Bitit ja tavut tiedonsiirrossa Luento 3 (6m27s)

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.

Tämä osio on linkitetty ITKP104 Tietoverkot kurssin materiaaliin TIEP114 Tietokoneen rakenne ja arkkitehtuuri kurssin materiaalista. ITKP104 materiaalissa linkitetyt kappaleet ja luentovideot tunnistaa oikean reunan nuoli-tunnisteesta.

Nuolesta pääset syksyn 2019 TIEP114 materiaaliin, jossa on laajemmin kerrottu esimerkiksi binääriluvuista.

18 Mar 20 (edited 19 Mar 20)
# video2019Luento1n
# video2018Luento1j
# video2017TRA12
# 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.

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

ja yhtälön vasemmalla puolella käänteisfunktioiden kumotessa toisensa saadaan

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

Tavu

# video2018Luento1m
# video2019Luento2a

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.

16-bittinen sana, tavu, puolitavu (nibble), bitti, MSB ja LSB
16-bittinen sana, tavu, puolitavu (nibble), bitti, MSB ja LSB
# video2019Luento2d
# video2018Luento1p

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

  • 210 = 1024,
  • 220 = 1 048 576 ja
  • 230 = 1 073 741 824.

Koska 210 = 1024, joka on lähellä arvoa 103 = 1000, niin molemmista käytetään termiä kilo, josta käytetään merkintää k, kun kyseessä on 1000 ja merkintää K, kun kyseessä on 1024. Sekaannusta voi aiheuttaa myös se onko yksikkönä bitti (bit) vai tavu (byte), joka on 8 bittiä. Näistä käytetään merkintää b, kun tarkoitetaan bittiä ja merkintää B, kun tarkoitetaan tavua. Sekaannusten välttämiseksi nimityksiä on standardoitu (ISO/IEC 80000) siten, että kun kyseessä on binäärinen eli kakkosen potenssi, niin symboliin lisätään i. Esimerkiksi 210 on nimeltään kibi eli kilobinary ja siitä käytetään merkintää Ki. Alla on taulukoitu SI-järjestelmän ja IEC:n standardin mukaiset etuliitteet biteille sekä tavuille.

Value SI Value IEC
1000 k kilo 1024 (210) Ki kibi
10002 M mega 10242 (220) Mi mebi
10003 G giga 10243 (230) Gi gibi
10004 T tera 10244 (240) Ti tebi
10005 P peta 10245 (250) Pi pebi
10006 E exa 10246 (260) Ei exbi
10007 Z zetta 10247 (270) Zi zebi
10008 Y yotta 10248 (280) 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

Tietoverkkojen tekninen näkökulma visuaalisesti

Kartta Internetistä
Kartta Internetistä
# v2018L2_8
2018 - Internet tiedonsiirto visuaalisesti Luento 2 (9m11s)
# videoJohdanto21
2017 - Internet teknisestä näkökulmasta Luento 3 (12m29s)

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 siitä, 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
2018 - Internet hallintanäkökulma Luento 2 (10m50s)

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
2017 - Internetin halintanäkökulma Luento 2 (15m38s)

Request for Comments (RFC)

# v2018L2_10
2018 - RFC dokumentit Luento 2 (8m29s)

RFC-dokumentit 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
2017 - RFC dokumentit Luento 3 (9m55s)
Request for Comments (RFC) - Status
# v2018L2_11
2018 - RFC dokumenttien luokat esimerkein Luento 2 (17m43s)
# videoJohdanto20
2017 - Esimerkkejä eri statusten RFC dokumenteista Luento 3 (20m34s)
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 protokolla 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
# t1j

Internet - palvelunäkökulma

# videoJohdanto14
2017 - Internet palvelunäkökulmasta Luento 2 (34m50s)

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
2018 - Internetin palveluista ja video Internetin paketista Luento 2 (10m13s)

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.

# video2019Luento3
2019 - Luento 3 kokonaisuudessaan Luento 3 (1h29m14s)
# video2018Luento3
2018 - Luento 3 kokonaisuudessaan Luento 3 (1h31m4s)

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. Listassa on myös linkit wikipedian englannin kielisiin sivuihin, joista voi halutessaan tutkia aiheita tarkemmin sekä löytää lisää lähteitä kiinnostavaan aiheeseen syventymiseen.

# v2018L3_1
2018 - Palvelumallit ja -arkkitehtuurit Luento 3 (2m52s)

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
2018 - Vertaisverkkomalli Luento 3 (9m39s)

Pilvilaskenta

# v2018L3_3
2018 - Pilvilaskenta ja -palvelu Luento 3 (2m29s)

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
2018 - Pilvipalveluiden luokittelua Luento 3 (5m16s)

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

Pilvipalveluiden vuonna 2011 julkaistun määritelmän on tehnyt yhdysvaltalainen National Institute of Standards and Technology (NIST) virasto, jonka tehtävänä on mm. kehittää standardeja.

Nykyään suosiota kasvattaa "serverless computing", jossa ei ole palveluna alustaa tai ohjelmistoa, vaan palveluna tarjotaan ohjelmakoodin ajamista, Function as a Service (FaaS).

# videoJohdanto15
2017 - Internetin pilvipalvelut Luento 2 (9m9s)

Sumulaskenta

# v2018L3_4
2018 - Sumulaskenta IoT-laitteiden hyödyntäjänä Luento 3 (5m37s)

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

Lohkoketju

Lohkoketju, englanniksi blockchain, on eräänlainen hajautettu tietokanta. Tietokannan tietueet, joita kutsutaan lohkoiksi, on likitetty toisiinsa kryptografisilla menetelmillä. Linityksistä muodostuu ketju, jossa uudessa lohkossa on aina tieto aiemmista lohkoista. Tämä toteutetaan lisäämällä jokaiseen lohkoon kryptografinen tiiviste edellisestä lohkosta. Lohkon hyötydatana on transaktio, jokin tapahtuna, joka on toteuttu eri osapuolten kesken. Näin lohkoketjuun tallentuu historia transaktioista, jotka ovat kaikkien tarkasteltavissa ja joita on käytännössä mahdoton muuttaa, ilman että siitä jää helposti havaittava jälki.

Protokollat tietoverkoissa

# v2018L3_6
2018 - Protokollista ihmisten kesken ja tietoverkoissa Luento 3 (5m29s)

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
2017 - Yleensä protokolla ei ole tarkkaan määritelty ihmisten kommunikaatioon Luento 5 (3m6s)

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
2017 - Laitteiden väliseen kommunikaatioon protokolla määritellään tarkasti Luento 5 (2m0s)
# v2018L3_7
2018 - Protokollat määrittelevät... Luento 3 (10m26s)

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
2017 - Protokollat määrittävät kommunikaation, soketit sen mahdollistavat Luento 1 (3m39s)

Sokettirajapinta

# v2018L3_8
2018 - Sokettirajapinta Luento 3 (4m28s)

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
2017 - Internetin havainnollistaminen soketin ja HTTP:n avulla Luento 2 (11m9s)

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.

# t2a

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. Eli ei ole väli sillä millä ohjelmointikielellä ja miten asikkaat ja palvelimet on toteutettu, kunhan kommunikaatiossa noudatetaan protokollan sääntöjä.

# t2b

av: Tarkistin päivitetty antamaan palautetta oikeasta vastauksesta ja rankaisemaan ylimääräisistä ei-tyhjistä riveistä.

25 Feb 21
# t2c

Internetin rakenne

# v2018L3_9
2018 - Internetin rakenne Luento 3 (9m8s)

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 Tier 1 -operaattoreiden välillä. 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
2017 - Internet operaattoreiden jakautuminen eri tasoille Luento 3 (8m27s)

Jyväskylän yliopiston liittyminen Internettiin

# v2018L3_10
2018 - Jyväskylän yliopiston liittyminen Internettiin Luento 3 (3m9s)

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

Se, luetaanko Jyväskylän yliopiston tietoverkko tai FUNET-verkko Tier 3 -verkoksi, riippuu Tier 3 -verkkokategorian määrityksestä. Telian siirtoverkko on oletettavasti Tier 1 tason verkko. Koska FUNET-verkko on osa NORDUnet-verrkoa, joka on osa GÉANT-verkkoa, on sen tasoa vaikea määrittää. Oletetaan että GÉANT-verkko tai NORDUnet-verkko maksaa tiedonsiirrosta Tier 1 verkolle. Tällöin kyseessä olisi Tier 2 verkko, toisaalta FUNET ei maksa tiedonsiirrosta NORDUnet-verkolle, vaan on osa NORDUnet-verkkoa. Myöskään Jyväskylän yliopisto ei maksa tiedonsiirrosta FUNET-verkolle. Tuntematta sopimuksia tarkemmin voidaan arvella, että se mitä esim. FUNET tai yliopisto maksaa on ehkä jäsenmaksuja yms. joita käytetään sitten tarpeenmukaisesti. Täten Tier 3 verkon yleisin määritys "maksaa kaikesta tiedonsiirrosta" ei toteudu. Tier 2 ja Tier 3 verkoille ei ole yleisesti hyväksyttyä tarkkaa määritelmää.

FUNET NORDUNET GEANT
FUNET-runkoverkko NORDUNET GEANT
# v2018L3_11
2018 - Internetin solmupisteet (IXP) Luento 3 (4m49s)

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ä kaksi suomalaista 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. suomesta uusia ulkomaisia IXP-solmupisteen tarjoajia, jotka ovat viime vuosina 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.

# t2d

Noi ylin ja alin verkko keskellä on symmetrisesti liitetty tuohon systeemiin niin mistä se ois pitäny päätellä kumpi on Tier 1 ja kumpi Tier 3?

Sain täydet pisteet katsomalla pistemäärää ja vaihtamalla niiden paikat, mutten ymmärrä logiikkaa.

27 Mar 20 (edited 27 Mar 20)

Joo, en tehtävää tehdessä tullut ajatelleeksi tarkastaa että kuvaan voi rakentaa useamman kuin yhden oikean hierarkian. Tällaiseen tehtävään ei saa useampaa tarkistimeen useampaa oikeaa vaihtoehtoa, joten jos ei anna pisteitä, niin vaihtakaa verkot toisella tavalla, siten että hierarkia on oikein.

av: lisätty asiakkaat, niin menee Tier 1 ja 3 siten, kuin tarkistin ne haluaa

30 Mar 20 (edited 11 Mar 21)

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 [Päivitys: tim.jyu.fi ei enää vastaa ollenkaan ping tai traceroute ohjelmien kyselyihin].

# t2e

av: Tehtävän tarkistin on päivitetty vaatimaan enemmän rivejä tulosteesta. Kopioi koko ping-komennon generoima tuloste mukaan lukien ping-komentorivi.
Edit: Lisätty myös vaatimus, että ping-viestejä pitää olla 4.
Edit: Korjattu, että parametri -c 4 saa olla myös ping komennon ja verkkotunnuksen välissä
Edit: Lisätty, että hyväksyy ping -c 5, kun macOS tulostaa yhden rivin vähemmän testejä, kuin mitä on lähetetty.

10 Mar 21 (edited 06 May 21)

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.

# t2f

Nämä e) ja f) -kohdat eivät ole selvästikään testattu MacOS:lla, koska e):n kohdalla -c 4 antaa vain kolmen Request timeoutin (jos haluaa 4kpl, pitää laittaa -c 5) ja vastausta täytyy korjata käsin, jos haluaa saada täydet pisteet. Sama homma f):n kohdalla, jossa Macin 2. rivi on “traceroute to karahka2…jne.” “Tracing route”:n sijaan, niin sekään ei kelpaa vastaukseksi sellaisenaan.

av: päivitetty tarkistimet ja lisätty (e) kohtaan ohjeistusta -c 5 käytöstä.

05 May 21 (edited 06 May 21)
# t2g

“Unable to resolve target system name www.example.com.” Toi sivusto näyttäis olevan alhaalla?

28 Mar 20

Jos on alhaalla, niin kokeilee myöhemmin uudestaan

30 Mar 20

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

Jyu liittyminen Internettiin
Jyu liittyminen Internettiin
# v2018L3_12
2018 - Esimerkkejä Internet operaattoreiden verkoista Luento 3 (11m53s)
# videoJohdanto23
2017 - Esimerkkejä Internet operaattoreista ja IXPt Luento 3 (9m48s)

Informaatiota operaattoreiden verkoista saa esimerkiksi RIPE organisaation analysointityökaluilla.

Yhteys Internettiin

# videoJohdanto24
2017 - Internettiin pääsy Luento 3 (7m57s)

Fyysinen tiedonsiirtotekniikka

# video2019Luento4
2019 - Luento 4 kokonaisuudessaan Luento 4 (1h30m48s)
# v2018L3_13
2018 - Internettiin pääsy ja langallinen fyysinen siirtotie Luento 3 (15m46s)

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
      • Standadointi ITU
  • 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ä
    • Standardointi IEEE
  • Kaapelimodeemi vs. ADSL ja VDSL
    • Kaapelimodeemi
      • jaettu tiedonsiirtomedia
      • siirto kaapeli-TV:n koaksiaalikaapelissa
      • teoreettinen maksimi 100+ Mbit/s
    • xDSL
      • dedikoitu tiedonsiirtomedia
      • käyttää puhelinkaapeleita eli parikaapelia
      • ADSL2+ teoreettinen maksimi 24 Mbit/s (downlink) ja 3.5 Mbit/s (uplink)
      • VDSL teoreettinen maksimi 52 Mbit/s (downlink) ja 16 Mbit/s (uplink)
      • Standadointi ITU
# video2018Luento4
2018 - Luento 4 kokonaisuudessaan Luento 4 (1h31m43s)
# v2018L4_1
2018 - Langaton fyysinen siirtotie Luento 4 (20m0s)
  • 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
2017 - Fyysinen tekniikka tiedonsiirrossa Luento 4 (22m30s)
# v2018L4_2
2018 - Sini- ja suorakaidesignaali tiedonsiirrossa Luento 4 (5m5s)

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.

# t2h
# t2i

Ethernet-tekniikka

# v2018L4_3
2018 - Tiedonsiirto Ethernet kaapelissa Luento 4 (4m25s)
Bitit Ethernet kaapelin jännitevaihteluina
Bitit Ethernet kaapelin jännitevaihteluina
# videoJohdanto25
2017 - Ethernet-tekniikka, -kaapeli ja -kytkin Luento 3 (7m50s)

Verkkotopologiat

# v2018L4_4
2018 - Verkkojen topologioista Luento 4 (6m7s)

# videoJohdanto29
2017 - Verkkotopologiat Luento 4 (6m37s)
# t2j

Ei näy!

25 Mar 20

Minun nyt testatessa näkyy, olisikohan ollut kyseessä jokin väliaikainen häiriö

25 Mar 20

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
2018 - Piirikytkentäinen verkkotekniikka Luento 4 (12m8s)
  • 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
2017 - Piirikytkentä Luento 4 (5m2s)
Piirikytkentää 1940 luvulla
Piirikytkentää 1940 luvulla

Pakettikytkentä

# v2018L4_6
2018 - Pakettikytkentäinen verkkotekniikka Luento 4 (4m7s)
  • 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
2018 - Pakettikytkennän ominaisuudet Luento 4 (43s)
# videoJohdanto34
2017 - Pakettikytkentä Luento 4 (3m56s)

Viive ja hävikki pakettivälitteisissä verkoissa

# v2018L4_7
2018 - Viive pakettikytkentäisessä verkossa Luento 4 (6m45s)
  • 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
2017 - Pakettikytkentäisen verkon viivetekijöitä Luento 4 (4m5s)

Visualisointeja viiveestä ja pakettien putoamisesta

# v2018L4_8
2018 - Pakettihävikki Luento 4 (1m48s)
# videoJohdanto36
2017 - Pakettikytkentäisen viiveen ja hävikin visualisointia Luento 4 (5m16s)

Pakettikytkentä vs. piirikytkentä

  • Esimerkki molemmista (GSM runkoverkko)

# videoJohdanto32
2017 - Pakettikytkentä ja piirikytkentä, GSM-verkon toiminta Luento 4 (9m1s)

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
2018 - Lähetysviive visuaalisesti Luento 4 (2m35s)
# t3a

Tehtävässä (a) eivät näy LaTeX-symbolit L ja R, näkyy vain rikkinäisen kuvakkeen symbolit.

31 May 21

Lyhyt ohje LaTeX symboleihin

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

# v2018L4_11
2018 - Lähetysviive matemaattisesti Luento 4 (2m0s)
# t3b

Niille, jotka lukevat vain luentobrujua eteenpäin, niin katsokaa tuo videoklippi “Lähetysviive matemaattisesti” niin tajuatte miten arvot pitää laatikkoon syöttää.

19 Apr 21 (edited 01 Jun 21)

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

# v2018L4_12
2018 - Lähetysviiveen lausekkeeseen sijoitetaan muuttujat Luento 4 (2m0s)
# t3c

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
2018 - Tehtävä johon annetaan laskutoimituksen vastaus Luento 4 (19s)
# t3d

Mikä on tämän ja (c)-kohdan ero?

27 Mar 20

Kohdassa (c) tulisi olla lauseke, johon on sijoitettu lukuarvot, eli laskutoimitus lukuarvoilla, ei vielä vastausta. (d) kohtaan tulee sitten vastaus.

Näköjään (c) kohdassa tarkistin hyväksyy myös pelkän vastauksen, saa nähdä milloin tuon ehtii korjaamaan.

27 Mar 20 (edited 30 Mar 20)

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

# t3e

Huom. vastauksessa pitää näemmä kirjoittaa kertomerkki näkyviin, jotta tarkistin hyväksyy.

27 Mar 20

Joo, siitä on sanott luentomateriialin LaTeX ohjeessa, linkitin ohjeen nyt myös tehtävä-sivulle ensimmäisen LaTeX tehtävän (b) yläpuolelle

27 Mar 20

Tuo e-kohta näemmä antaa täydet pisteet vaikka tarkistaa vain onko tuo kertomerkki tehty oikein mutta jos sen jälkeen on virhettä eli puuttuu toinen kenoviiva ja tuloksessa lukee frac niin antaa silti täydet pisteet

av: joo, tarkistin poistaa \ -merkit, ennen kuin alkaa tarkastamaan, eikä huomaa, jos ne puuttuu vastauksesta, päivitän tarkistimen jossain vaiheessa.
Edit: Tarkistin päivitetty, nyt tulee virhe, jos kenoviiva puuttuu

24 Dec 20 (edited 12 Jan 21)

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.

# t3f

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.

# t3g

Ja tässä sama kuin kohdassa e eli tarkistaa vain onko tuo kertomerkki tehty oikein mutta jos sen jälkeen on virhettä eli puuttuu toinen kenoviiva ja tuloksessa lukee frac niin antaa silti täydet pisteet

24 Dec 20 (edited 24 Dec 20)

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
2018 - Useita paketteja useamman linkin yli visuaalisesti Luento 4 (8m44s)
# t3h
# t3i
# t3j

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
2018 - Useita paketteja useamman linkin yli matemaattisesti Luento 4 (4m9s)
# t4a

Jos tuloksessa lukee frac niin antaa silti täydet pisteet

av: tarkistin päivitetty vaatimaan \-merkki

24 Dec 20 (edited 24 Mar 21)

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.

# t4b
# t4c

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.

# t4d

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
2018 - Useita paketteja erilaisten linkkien yli visuaalisesti Luento 4 (5m36s)
# t4e

Tämä ei näy, vain tyhjää!

25 Mar 20

Minun nyt testatessa näkyy, olisikohan ollut kyseessä jokin väliaikainen häiriö

25 Mar 20

Refreshaaminen on auttanut poikkeuksetta, jos joku tehtävä on ollut blankkona

02 May 20

Tehtävien reititin-kuvat ovat vielä salaamattomalla users.jyu.fi palvelimella. Selaimessa voi olla asetus, jolla estetään salaamattomien kuvien esittäminen salausta käytetyillä sivustoilla ja se myös saattaa aiheuttaa kuvien näkymättömyyttä.

Kaikki kuvat pitäisi olla siirretty pois http palvelimilta TIM:iin ja yksi syy joskus näkymättömyyteen on poissa.

04 May 20 (edited 27 Oct 20)
# t4f
# t4g
# t4h

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.

# t4i

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.

# t4j

Käsitelläänkö tämä tehtävä jollain luennolla?

10 Apr 20

Näitä loppuja tehtäviä ei ole käyty millään luennolla läpi. Ne on jäänyt sen varaan että aiemmilla tehtävillä on johdateltu ideaan ja toteutukseen.

Ei kannata hirveän paljon aikaa käyttää, jos ei meinaa selvitä. Pyytää vinkkiä sähköpostilla tai kommentilla, niin katsotaan miten pääsee eteenpäin

14 Apr 20

Onko vastauksessani mitään oikeaa, vai onko vain sattumalta lähellä oikeaa vastausta?

16 Apr 20

Jos tässä kohdassa on “joutunut vähentämään 60” saadakseen oikean vastauksen, niin jokin on mennyt pieleen.

Todennäköisesti paketien määrä \(P\) on otettu huomioon jokaisella linkkivälillä. Pakettien määrä vaikuttaa vain hitaimmalla linkillä.

16 Apr 20 (edited 16 Apr 20)

Joo nämä eivät aukene kyllä ollenkaan, kun edellisestä matematiikan kurssistakin on yli 10 vuotta, niin syntaksi ontuu. Lähinnä kuinka huomioida universaalisti eri linkkien nopeudet kaikkien pakettien siirtämiseen…

av: Tässä ideana on että hitain linkki vaikuttaa kaikkiin paketteihin P. Muut linkit vaikuttavat viiveen osalta vain yhteen pakettiin. Eli, alussa tulee ensimmäisen linkin viive, kun muita paketteja ole vielä matkalla, sitten kun jokainen paketti vuorollaan ylittää hitainta linkkiä, nopeammilla linkeillä menee paketteja, eikä niistä aiheudu lisäviivettä. Kun viimeinen paketti ylittää viimeisen linkin, tulee se viive ottaa huomioon.
Viive on siis (eka paketti yli ekan linkin) + (kaikki paketit P yli hitaimman toka linkin) + (vika paketti yli vikan linkin)

21 Mar 21 (edited 22 Mar 21)

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

# t5a

Lisäsin tehtävänantoon selvennyksen

kun yksi paketti kulkee usean linkin läpi

Vaikka aimmin käsiteltiin jo useampaa pakettia, harjoitellaan tässä summalauseketta yhdellä paketilla

24 Aug 20

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.

# t5b

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.

# t5c

Onko tässä tarkoitus hyödyntää a ja b -kohtia?

27 Mar 20

Kyllä, (a) ja (b) kohta ovat sitä varten että niistä saa mallia minimin ja summan käyttöön LaTeX:issa.

27 Mar 20

Saako LaTeXissa sulut jotenkin näkyville tuohon esimerkkiin? Vertaa esim. nelos ja vitosvastauksen loppuosaa tässä tehtävässä. Esimerkki näyttää samalta, mutta toisessa on kuitenkin sulut

29 Mar 20

LaTeX:issa käy ihan normaalit kaarisulut (). Tarkistimeni näköjään hyväksyy myös aaltosulut {} vastaukseen kaarisulkujen sijaan, mutta ne aaltosulut eivät näy ladotussa kaavassa. Ja tällöin visuaalisen ladotun kaavassa on väärä laskujärjestys, kun suluilla muutetaan laskujärjestystä.

30 Mar 20

Tämä ei nyt kyllä itselle aukea. Monen näköisellä kokoonpanolla testannut…

26 Oct 20

Tarkistin ei hyväksy sitä että summa-termi on sulkujen sisällä, eli

\[ (\sum_{i=1}^{N} \frac{x}{y}) + \ldots \]

Poistakaa sulut (en ehdi pikaisesti päivittämään tarkistinta), niin tarkistin alkaa antaa palautetta kaavasta, sen sijaan että valittaa virheestä.

\[ \sum_{i=1}^{N} \frac{x}{y} + \ldots \]

27 Oct 20 (edited 27 Oct 20)

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

Kerrosarkkitehtuurit

# video2019Luento5
2019 - Luento 5 kokonaisuudessaan Luento 5 (1h31m45s)
# videoJohdanto30
2017 - Kerrosarkkitehtuurit Luento 4 (21m55s)
# v2018L4_17
2018 - Kerrosarkkitehtuurista ja TCP/IP mallista Luento 4 (4m6s)

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.

Seuraavaksi käydään läpi kaksi kerrosarkkitehtuuria, standardoitu OSI-malli sekä käytännön protokollista johdettu TCP/IP-malli.

  • 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ä.
# video2018Luento5
2018 - Luento 5 kokonaisuudessaan Luento 5 (1h30m52s)

OSI-viitemalli

# v2018L5_1
2018 - OSI ja TCP/IP mallista Luento 5 (10m2s)

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. 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 mm. tälle TIM-palvelimelle tehdään TCP/IP-mallissa 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.

# t6a
# t6b

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ä. Kirjassa esitetään että 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.

# t6c
# t6d

Protokollat eri kerroksilla

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

# t6e
# t6f
# t6g
# t6h

Datan paketointi

# v2018L5_2
2018 - Datan paketointi kerroksittain Luento 5 (8m43s)

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 verkkoselain-esimerkin tapauksessa sanoma sisältäisi normaalisti vain HTTP-otsikkotietoja, kun pyydetään HTML-sivua WWW-palvelimelta.

# videoJohdanto31
2017 - Datan eli hyötykuorman paketointi Luento 4 (10m17s)

Tietoverkon jokainen laite ei välttämättä toteuta kaikkia viitemallin mukaisia kerroksia. Internetissä yleensä vain verkon reunalla sijaitseviin 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. Tähän on kuitenkin useita poikkeuksia, esimerkiksi palomuuri, NAT-reitin tai "Layer 7 -kytkin". 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.

# t6i

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.

# t6j

Miksi tämä ei ole samalla tavalla kuin luennolla?

av: tällaiseen tarvitsisin tiedon että minkä vuoden mikä luento ja mielellään sen missä kohtaa luentoa (kommentti kun tulee tehtävän kohdalle jätettynä tehtävä sivulle, missä ei ole materiaalia tai luentovideoita). Juuri tällaista en ole luennolla esittänyt. Luennoilla käyn ainakin läpi vanhaa visualisointiani, jossa data liikkuu vasemmalta oikealle ja siinä on visuaalisuuden vuoksi kerrokset eri päin kun tässä tehtävässä. Tässä tehtävässä on kerrokset siinä järjestyksessä, kuin ne yleensä esitetään.

24 Dec 20 (edited 08 Jan 21)

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
2017 - Verkot ja tietoturva Luento 5 (1m5s)

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. Mahdollisuus hyökkäyksiin ja uhat tietoturvallisuudelle syntyvät, kun järjestelmässä on jokin haavoittuvuus, englanniksi vulnerability. Yleisesti tietoturvauhan muodostava haavoittuvuus on heikkous joko tietojärjestelmissä, prosesseissa tai ihmisen toiminnassa. Tietoverkkoturvallisuuteen liittyvä haavoittuvuus on yleensä tietäjärjestelmien verkkokommunikaation toteuttaviin tietoliikenneprotokolliin tai niiden ohjelmistototeutuksiin liittyvä heikkous niiden suunnittelussa tai toteutuksessa. Haavoittuvuudelle on tehty useita eri määritelmiä, joista eräs on OWASP Säätiön määritelmä. Sivustolta löytyy myös listattuna suuri joukko haavoittuvuuksia ja niiden kuvaukset. OWASP on yhteisö, jonka tavoitteena on parantaa ohjelmistojen tietoturvaa. Heidän vuosittain päivittyvä lista kymmenestä suurimmasta tietoturvauhasta, OWASP Top Ten, on hyvin suosittu, kun haetaan tietoa verkkosovellusten, erityisesti WWW-sovellusten, tietoturvaan liittyvistä teknisistä haavoittuvuuksista.

Ensimmäinen askel tietoverkkoturvallisuudessa on tunnistaa verkossa sijaitsevan palvelun käyttäjät, todentaminen, englanniksi authentication. Todentamisella tarkastetaan käyttäjän tai sovelluksen oikeudet palvelun resursseihin. Todentaminen tehdään valtuuksilla, englanniksi credentials. Hyvin usein valtuutus toteutetaan käyttäjätunnuksella ja salasanalla. Esimerkiksi tämän materiaalin interaktiivisiin tehtäviin vastataksesi, täytyy olla kirjautunut TIM-järjestelmään. Materiaalia pystyy lukemaan ilman kirjautumistakin. Jos olet kirjautunut TIM-järjestelmään sisään, logged in englanniksi, niin käyttäjätunnuksesi on Anonymous. Internetin alkuaikoina käyttäjätunnukset ja salasanat välitettiin verkossa selväkielisenä, eli salaamattomana. Tällöin 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.

Esimerkiksi, jos ROT-salakirjoitusmenetelmässä kaikkia kirjaimia siirretään neljä kirjainta oikealle, on kyseessä ROT4-menetelmä. ROT4-menetelmässä 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

Tuntemalla siirron suuruuden, eli käytetyn ROT-salakirjoituksen salausavaimen, on salaus helppo purkaa. Jos salausavain ei ole tiedossa, on salauksen purkaminen mahdollista ns. väsytyshyökkäyksellä, englanniksi brute-force attack. Väsytyshyökkäyksessä testataan kaikki mahdolliset vaihtoehdot, kunnes löydetään selkokielinen viesti. Jos tiedetään salauksen olevan ROT-salakirjoitusta englannin kielisellä aakkostolla, tarvitaan enimmillään 25 eri siirtoa salakirjoituskiekolla, jotta salaus saadaan purettua. ROT-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.

# t7a

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

# t7b

Tämä ei onnistu, vaikka tein sen samalla tavalla kuin a kohta

25 Mar 20

Tämä ei mene ihan samalla tavalla, eli nyt pitää ottaa mukaan ä ja ö kirjaimet sekä rotaatioksi 14.

26 Mar 20

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
2018 - Tietoverkkojen tietoturvasta Luento 5 (3m49s)

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
2018 - Salauksesta Luento 5 (7m16s)

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.

# t7c

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.

# t7d
# t7e
# t7f

Onko vinkkiä mikä minulla menee tässä tehtävässä väärin, kun ei meinaa onnistua mitenkään päin..

av: Tämä kohta menee väärin, jos ison B:n arvoa ei ole laskettu käyttäen valittua pikku b:n arvoa.

21 Nov 20 (edited 23 Nov 20)

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.

# t7g

Ei tunnu mukavalta, että joutuu syöttämään nimensä eri kääntäjiin.

28 Mar 20

Sen vuoksi tehtävänannossa on vaihtoehto että voi tehdä millä tahanasa ohjelmointikielellä tiivisteen. Esimerkiksi Python omalle koneelle, sitten klikkaa Näytä koko koodi, ja sieltä näkee miten tiiviste tehdään pythonilla. Tai käyttää omaa suosikki ohjelmointikieltään ja etsii sille, kuinka tehdään tiivisteet.

30 Mar 20 (edited 30 Mar 20)

Kopioin linkin osoitteeseen kaiken muun koodin paitsi tuon MD5string = ’’ ja linkin takana ajettaessa tulee erroria

av: myös MD5 = ... rivi tulee kopioida (erikseen), vaikkei se tule mukaan kun valitseen muun koodin kopioitavaksi.

24 Dec 20 (edited 08 Jan 21)

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.

# t7h

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.

# t7i

TIM-järjestelmään on päivitetty Pythonin versio 3.6, joka tukee SHA-3 algoritmeja, toisin kuin aiemmat Python versiot. Voit kokeilla Pythonin SHA-3 algoritmeja esimerkiksi https://repl.it/languages/python3 sivustolla.

# t7j

Ei toimi jostain syystä viimeinen vaikka löysin oikean kohdan.

19 May 20

Tarkasta että käytät SHA3 eikä muuta versiota, sekä 512 bittiä. Jotkin online työkalut on tehty ennen kuin SHA3 oli olemassa, jolloin siellä voidaan käyttää pelkkää SHA tekstiä sellaisten bittimäärien kohdalla, joita ei ollut SHA1 versiossa, kun tarkoittavat SHA2.

20 May 20

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

# t8a

Pitääkö tähän syöttää kaikkien lataamani folderin sisällä olevien tiedostojen tarkistussummat?

28 Mar 20

Näissä annetaan vastaukseksi sen zip-tiedoston tarkistussumma. Ohjeessa “tarkistussummat”, viittaa eri tavoin saatuihin tarkistussummiin samasta zip-tiedostosta.

30 Mar 20
# t8b
# t8c
# t8d

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
2018 - Salauksen murtamisesta Luento 5 (3m32s)

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.

Yksi mahdollisuus salauksen purkamiseen 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. Esimerkiksi nykyään verkkoliikenteen salaukseen käytettävässä TLS protokollassa voidaan ottaa Forward secrecy käyttöön.

Esimerkkejä salasanoista

# v2018L5_6
2018 - Salasanojen turvallisuudesta Luento 5 (10m9s)
  • Katso esimerkiksi Jyu digipalveluiden 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 generator 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. Kokeile myös salasanaa: correcthorsebatterystaple
  • Hyvä järjestelmä ei tietenkään saisi antaa kokeilla rajattomasti eri vaihtoehtoja
# videoJohdanto44
2017 - Salausten murtamisesta ja yksityisyydestä Luento 5 (8m13s)
# videoWireshark
2017 - Salaus eri kerroksilla - Korppi -liikenne Wiresharkilla ja selaimella Luento 6 (6m55s)

Salasanasuosituksia

  • NIST (National Institute of Standards and Technology) suosituksia vuodelta 2017
    • Salasanaa ei tule vaihtaa säännöllisin väliajoin
      • Ainoastaan silloin kun tiedetään salasanojen yksityisyyden vaarantuneen
    • Ei enää erikoismerkki-vaatimuksia salasanoihin
      • Ihmiset käyttävät niitä ennalta arvattavasti
    • Generoitavia salasanoja tulee verrata tunnettuihin huonoihin salasanoihin, joista pidetään listaa
      • Ei hyväksytä huonoja salasanoja
    • Suositus hyväksyä ja tukea salasanalauseita, joissa sanat erotettu välilyönneillä

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ä lähtettäjän todentamiseen käytetään viestin tunnistamiskoodeja, englanniksi Message Authentication Code (MAC), jotka muodostetaan joko tiivistealgoritmeilla, esimerkiksi HMAC-koodeilla, tai lohkosalausalgoritmeilla. Viestin ei tarvitse olla salattu, MAC-koodilla saadaan selville se ettei viestiä ole muutettu ja se että viesti on oikealta lähettäjältä, kun tunnetaan lähettäjän käyttämä salausavain.

# t8e
# t8f

Tehtävien (f) ja (g) arkistimessa oli bugi uuden python version päivityksen jälkeen, joka kaatoi tarkistimen, eikä palautetta nähnyt vaikka tehtävä antoi pisteet.

Nyt tarkistin on korjattu.

17 Aug 20

Jos testaat HMAC-tunnistekoodin generointia jollakin internetistä löytyvällä työkalulla, niin rivinvaihtojen eroavaisuuksien vuoksi, saat niillä erilaisia tuloksia, jos tiedostossa on rivinvaihtoja. TIM-järjestelmä muuttaa kaikki rivinvaihdot LF eli \n -rivinvaihdoiksi, kun taas selaimet muuntavat rivinvaihdot online-työkaluja käytettäessä CRLF eli \r\n -rivinvaihdoiksi. Halutessasi käytä tekstiä, jossa ei ole yhtään rivinvaihtoa.

# t8g

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 mahdollisti 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/. Maaliskuussa 2020 5.8 % salli SSL 3.0 käytön ja 1.2 % SSL 2.0 käytön. Nykyään SSL on terminä kuitenkin vielä usein käytössä, vaikka tarkoitetaankin ainoastaan TLS protokollaa.

TLS protokollaa vastaan kehitetään jatkuvasti uusia hyökkäyksiä ja näin ollen palveluiden tarjoajien tulisi jatkuvasti ottaa käyttöön tehokkaampia ominaisuuksia TLS protollan uusimmista versioista. Sivuston https://www.ssllabs.com/ssl-pulse/, mukaan esimerkiksi maaliskuussa 2020 yli 76 % maailman 150 000 suosituimmasta verkkopalvelusta oli joko haavoittuvainen tunnetuille hyökkäyksille tai niiden konfiguroinnissa ei ollut otettu käyttöön nykyään tarpeellisia ominaisuuksia uhkien torjumiseksi.

# t8h

Jouduin hieman muuttamaan vastausta, koska oikeanlaisessa tulosteessa vaadittiin “No” olemaan jollain rivillä, mutta minulla oli kaikkien “No” sanojen tilalla “Firewall”.

07 Apr 20

Saa muuttaa, jos tarkistin ei hyväksy jotain. Laittakaa kommenttia millaisen muutoksen on joutunut tekemään, niin päivitän jossain vaiheessa tarkistinta hyväksymään enemmän variaatioita.

Edit: Otin No vaatimuksen pois, kun se saattaa olla myös teksti Firewall

07 Apr 20 (edited 24 Aug 20)
# t8i

Onko verkkosivu uudistunut? ctrl+f ei löydä “Assessed” merkkijonoa kirjoittaessa mainintoja enää “as” jälkeen.

av: Assessed-tieto tulee näkyviin sitten sivun yläosaan, kun raportti on valmis. Tarkensin ohjeistusta.

30 May 21 (edited 31 May 21)

TLS protokollan versiosta 1.3 julkaistiin RFC dokumentti elokuussa 2018.

# t8j

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
    • 2018 - Elokuussa julkaistiin TLS 1.3 RFC
    • 2019 - TLS1.2 ja TLS 1.3 versioita pidetään turvallisena
    • 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
2017 - SSL ja TLS Luento 5 (6m0s)

Tietoverkkoturvallisuusjärjestelmät

Palomuuri

Ensimmäinen sukupolvi

Ensimmäisen sukupolven palomuurit kykenevät yksinkertaiseen liikenteen rajoittamiseen. Ne tutkivat kaikki läpimenevät paketit ja päästävät läpi paketteja tallennettujen sääntöjen mukaan. Jos paketti ei ole säännön mukainen se pudotetaan, englanniksi drop. Käytännössä pudottaminen tarkoittaa sitä, että paketti poistetaan palomuurin muistista, ilman että sitä välitetään eteenpäin. Palomuuriin tehyt asetukset määräävät sen lähetetäänkö pudottamisesta ilmoitus paketin lähettäjälle ICMP-protokollan mukaisella viestillä vai ei. Sääntöjä voidaan määritellä lähettäjän ja vastaanottajan verkko-osoitteiden, käytetyn protokollan sekä lähettävän tai vastaanottavan sovelluksen käyttämien porttinumeroiden mukaan.

Toinen sukupolvi

Toisen sukupolven palomuurit tarkkailevat kommunikaatiota pidemmällä ajanjaksolla. Paketteissa olevista verkko- ja kuljetuskerroksen osoitteista pidetään yllä listaa, josta nähdään se että liittyykö tuleva paketti johonkin aiempaan kommunikaatioon vai onko se uusi kommunikaatio palomuurin läpi. Näin voidaan Saadaan kerättyä siis pidempikestoista informaatiota kommunioivista osoitteista ja tarvittaessa rajoittaa liikennettä. Palomuurin muisti, jossa tilaa yhteyksistä säilytetään, on rajattu. Tämä mahdollistaa palvelunestohyökkäyksen palomuuria vastaan, jossa tukahdutetaan muisti valheellisilla TCP yhteydenavauksilla.

Kolmas sukupolvi

Kolmannen sukupolven palomuurit ymmärtävät sovelluskerroksen protokollia. Esimerkiksi, olkoon meillä WWW-palvelin, jota suojataan palomuurilla. Palvelin palvelee kuljetuskerroksen porttinumerossa 80. Ensimmäisen sukupolven palomuuriin voidaan määrittää että vain kuljetuskerroksen porttinumerron 80 voidaan lähettää dataa. Toisen sukupolven palvelin voi tutkia sitä kuka lähettää ja kuinka paljon lähtetään. Kolmannen sukupolven palvelin voi tutkia sitä että lähetetty data on oikeanlaista, eli sellaista mitä palvelin kykenee ymmärtänään. Eli se ymmärtää WWW-palvelimen ja WWW-selaimen käyttämää kieltä, HTTP-protokollaa. Näin kolmannen sukupolven palvelin voi estää muun liikenteen sekä myös sovellusprotokollan virheellisen käytön.

Nykyään jokaisella on käytössä erilaisia ja eritasoisia palomuureja: käyttöjärjestelmien palomuurit, erillisen palomuurisovellukset ja kotiverkon reitittimeen toteutetut palomuurit. Yleensä näiden asetuksia voidaan muuttaa, jolloin ne voivat toimia minkä tahansa sukupolven palomuurin mukaisesti. Palomuureissa on vakiona nykyään myös NAT-pavelu osoitteiden muunnokseen, jotta sisäverkossa voidaan käyttää ei-julkisia IP-osoitteita.

Seuraavan sukupolven palomuuri

Verkko-operaattoreilla on järeitä palomuureja, joihin on toteutettu lisää ominaisuuksia kolmannen sukupolven ominaisuuksien tukemiseksi. Näitä ovat esimerkiksi

  • Intrudet Prevention System (IPS)
  • Deep Packet Inspection (DPI)
  • SSL/TLS liikenteen tarkastus
  • Antivirus tarkastus
  • ...

Tietoverkkouhat

# v2018L5_9
2018 - Tietoverkkouhkia Luento 5 (9m16s)

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
  • 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
2017 - Joitain tietoverkkojen tietoturvauhkia Luento 5 (18m25s)

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
    • BGP Hijacking
    • 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
2018 - Tietoturvan kiertämisestä Luento 5 (2m55s)
  • 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
2017 - Tietoturvan kiertäminen Luento 5 (4m36s)

Joitain tietoturvaan liittyviä haavoittuvuuksia

# v2018L5_11
2018 - Lyhyesti löydetyistä haavoittuvuuksista Luento 5 (3m3s)
  • 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
2017 - Joitain tietoturvaan liittyviä haavoittuvuuksia Luento 5 (8m44s)

Dataa vääriin käsiin

# v2018L5_12
2018 - Dataa vuotaa julkisuuteen usein Luento 5 (1m30s)

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
# v2015takethislollipop
Vuoden 2015 luentotallenteesta - Take_This_Lollipop video (2m46s)

Tietoverkkojen historia

# v2018L5_13
2018 - Internetin historiasta Luento 5 (15m24s)

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.

# t9a
# t9b
# t9c
# t9d

Miksei RFC 1012 kelpaa?

19 Mar 20

Lisäsin Teoria 1 tehtävä sivulle selvennyksen tehtävän yläpuolelle. Selvennys ei näy kurssimateriaalissa.

19 Mar 20
# t9e

Missä kartta? Ei päässyt katsomaan.

av: kartta on etsittävässä RFC dokumentissa

25 Dec 20 (edited 08 Jan 21)
# t9f

Internetin historiaa Internetin palveluilla

# t9g
# t9h
# t9i
# t9j

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