ITKP104 Tietoverkot - 2017 Luentokalvot
Esipuhe
Tälle sivulle on siirretty informaatio ITKP104 Tietoverkot kurssin kevään 2017 luennoilla esitetyiltä luentokalvoilta. Teoria 1 luentokalvoista, Teoria 2 luentokalvoista sekä Teoria 3 luentokalvoista. Materiaalin yhtedessä on linkit luentovideoiden kohtiin, joissa aiheita käsitellään.
Luentokalvot toimivat runkona opiskeltaville asioille ja vaativat tuekseen luentojen katsomisen tai lähdemateriaalin käytön. Tai
luentomateriaalin kun se valmistuu.
ITKP104 Tietoverkot kurssin opiskelusta
Kurssin sisältö
- Kurssi koostuu 5 kappaleesta 1 op laajuisia osioita.
- Teoria 1
- Osaamistavoitteet: Opiskelija ymmärtää perusteet Internetin rakenteesta, palveluista, arkkitehtuureista sekä yleisimmistä sovellusprotokollista
- Teoria 2
- Osaamistavoitteet: Opiskelija ymmärtää tietoverkkojen toteutuksen haasteet sovellus-, kuljetus-, verkko- ja linkkikerroksilla sekä Internetissä toteutetut ratkaisut haasteisiin.
- Teoria 3
- Osaamistavoitteet: Opiskelija ymmärtää luotettavaan tiedonsiirtoon, reititykseen sekä kanavan jakamiseen liittyvät haasteet sekä niiden toteutukseen valitut ratkaisut Internetin eri kerrosten protokollissa.
- Analysaattorityö
- Osaamistavoitteet: Opiskelija oppii käyttämään yksinkertaisia protokollia sekä analysoimaan niiden generoimaa verkkoliikennettä.
- Ohjelmointityö
- Osaamistavoitteet: Opiskelija oppii alkeet verkko-ohjelmoinnista käyttäen UDP ja TCP protokollia sekä toteuttaa yksinkertaisen protokollan.
- Kevään 2017 kurssi korpissa
Kurssilla opiskelu
- Merkitse korppiin tavoittelemasi opintopistemäärä ja kerää vaaditut pisteet.
- Voit suorittaa mitkä tahansa osiot missä tahansa järjestyksessä
- Visualisointi
Opitaan tietoverkoista
- Etsimällä vastauksia kysymyksiin
- Kuinka Internet toimii?
- https://trac.cc.jyu.fi/projects/it/wiki/ITKP104/2017/contents
- Hyvityspisteitä sivun ohjeiden mukaan.
- Tekemällä demoja
- Yksi demo jokaista 1 op osiota kohden
- http://users.jyu.fi/~arjuvi/opetus/itkp104/2017/demot.html
- Hyvityspisteitä Demosivujen ohjeiden mukaan.
Teoria 1
Internetin historiaosuus käydään läpi TIEP115 kurssilla pidetyllä vierailuluennolla. Kalvoja ei ole vielä siirretty tähän materiaaliin.
Teoria 1 osion sisältö
- Johdantoa kurssin aiheisiin
- Internet: tekninen, palvelu- ja hallintanäkökulma
- Internetoperaattorit ja Internetin rakenne
- Verkkoon pääsy ja fyysinen media
- Verkkotopologiat
- Kerrosarkkitehtuuri
- Datan paketointi
- Pakettikytkentä vs. piirikytkentä
- Viive ja hävikki pakettivälitteisissä verkoissa
- Yhteydellinen vs. yhteydetön palvelu
- Mikä on Protokolla?
- Verkot ja tietoturva
- Sovelluskerroksen protokollat
Johdantoa
Tietoverkkoja käytetään nykyään suurinpaan osaan tiedonsiirrosta. Tämän materiaalin avulla opitaan tietoverkkojen toiminnasta ja toteutuksesta käyttämällä esimerkkinä Internettiä. Tietoverkko koostuu laitteista, jotka kommunikoivat toistensa kanssa. Internet puolestaan koostuu tietoverkoista, joissa sijatsevat laitteet kykenevät kommunikoimaan toisten laitteiden kanssa vaikka ne sijaitsevat toisessa verkossa riippumatta siitä kuinka monen verkon kautta kommunikaatio kulkee.
Eräs esimerkki tietoverkosta on lähiverkko (eng. Local Area Network - LAN). Lähiverkko voidaan muodostaa yhdistämällä useampi laite siten että ne pystyvät kommunikoimaan toistensa kanssa. Käytännössä yhdistäminen tehdään kytkemällä laitteet Ethernet kaapelilla kytkimeen. Kytkin on siis laite jolla voidaan yhdistää useampi kuin kaksi laitetta samaan verkkoon. Langattomissa lähiverkoissa laitteet yhdistetään tukiasemaan ja 'yhdistäminen' tapahtuu käyttämällä samaa radiotaajuutta sekä verkon tunnuksen avulla.
Sen lisäksi että laitteilla on joko langallinen tai langaton yhteys toisiinsa ja verkkoon, täytyy niiden ymmärtää toisiaan, jotta ne voivat kommunikoida. Tämä ymmärrys laitteiden välillä toteutetaan protokollilla, jotka määrittelevät säännöt kommunikaatiolle. Säännöt määrittelevät esim. käytetyt viestit, niiden tarkoituksen ja sisällön sekä kuinka kommunikaatio aloitetaan ja miten viesteihin vastataan.
Isompia verkkoja voidaan muodostaa yhdistämällä lähiverkkoja toisiinsa. Kahden tai useamman lähiverkon yhdistäminen toteutetaan reitittimellä. Reititin on laite joka osaa välittää kommunikaatiota verkkojen välillä.
Kommunikaatiota varten verkon laitteet tarvitsevat osoitteen, joka kertoo laitteiden sijainnin verkossa sekä yksilöi laitteen (omassa) verkossaan. Lähiverkossa sijaitseva laite kykenee selvittämään samassa lähiverkossa sijaitsevien laitteiden osoitteet. Kun osoite sijaitsee jossain toisessa verkossa, niin laitteeseen pitää olla määritetty oletusreitti (oletusreititin), jonka kautta voidaan kommunikoida muissa verkoissa olevien laitteiden kanssa. Reititin tietää tarkasti joidenkin osoitteiden sijainnin ja lisäksi reitittimellä on oletusreitti, jonka kautta saavutetaan toisia reitittimiä, jotka sitten tietävät sijainteja osoitteille, joista kyseisellä reitittimellä ei ole tarkkaa sijaintitietoa.
Mikä on verkko? Mitä ovat verkon laitteet?
Muutamien termien selityksiä
- Mikä on palvelin?
- Palvelimeksi kutsutaan tietokoneen ohjelmistoa joka odottaa asiakkaan yhteydenottoja ja joka vastaa asiakkaan pyyntöihin tarjoten palveluita tai resursseja. Esim. Web -palvelimet vastaavat selainten pyyntöihin.
- Esimerkkejä palvelimista:
- Web tai WWW -palvelin eli HTTP palvelin, palvelee asiakkaita HTTP protokollalla
- Sähköpostipalvelin, palvelee asiakkaita sähköpostiprotokollilla (SMTP, POP3, IMAP4)
- DNS -palvelin eli nimipalvelin, palvelee asiakkaita DNS protokollalla
- Mikä on asiakas?
- Asiakkaaksi kutsutaan ohjelmistoa tai laitetta joka pyytää palveluja tai resursseja palvelimelta.
Lisää termien selityksiä
- Mikä on selain?
- Selain on (asiakas)ohjelmisto, jolla pyydetään sisältöä Web -palvelimilta. Selaimelle annetaan URL, joka kertoo (a) miten, (b) mistä ja (c) mitä pyydetään.
- Mikä on URL?
- URL (uniform resource locator) on viite joka määrittelee jonkin (c) resurssin (b) sijainnin tietoverkossa sekä (a) mekanismin resurssin hakemiseen. Esim.
https://www.jyu.fi/opiskelu/index.html
missä (a)https
on mekanismi (protokolla), (b)www.jyu.fi
, missäwww
on palvelimen nimi eli laite jajyu.fi
on verkkotunnus (domain nimi) eli laitteen sijainti verkossa ja (c)opiskelu/index.html
on haettu resurssi (hakemistopolku/tiedostonimi)
- URL (uniform resource locator) on viite joka määrittelee jonkin (c) resurssin (b) sijainnin tietoverkossa sekä (a) mekanismin resurssin hakemiseen. Esim.
- Uniform Resource Identifier (URI) - RFC 3986
- URI, URL ja URN - RFC 3305
Vielä lisää termien selityksiä
- Mikä on reititin?
- Reititin yhdistää eri verkkoja siten että niiden välillä voidaan välittää (data)paketteja.
- 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.
- Video Internetin paketista
- Mikä on palomuuri?
- Palomuuri on tietoturvajärjestelmä haitallisen verkkoliikenteen estämiseksi. Palomuuriin voidaan asettaa säännöt miten kontrolloidaan sisääntulevaa ja uloslähtevää liikennettä.
Mikä on soketti ja protokolla? Mikä on Internet?
- Mikä on protokolla?
- Protokolla määrittelee kommunikaation säännöt kahden tai useamman laitteen välille
- Säännöt sisältävät
- syntaksin: symbolien yhdistelmät, jotka ovat sallittuja kommunikaatiossa, eli 'protokollan käyttämässä kielessä'
- semantiikan: symboliyhdistelmien tarkoituksen kommunikaatiossa
- ajoituksen: sallitut viestien järjestykset kommunikaatiossa
- virheistä toipuminen: mahdolliset mekanismit virheistä toipumiseen
- Mikä on soketti?
- Käyttöjärjestelmän tarjoama rajapinta (kuljetuskerroksen) protokollien käyttöön
- Mikä on Internet?
- Internet on... verkko? verkkojen verkko? Paljon yhdistettyjä verkkoja?
- Tämä kurssi kertoo sen mikä Internet on sekä miten ja miksi Internet toimii!
Tietoverkot esimerkkinä Internet
- Mikä on Internet: Palvelunäkökulma
- Tietoliikenneinfrastruktuuri (verkko) mahdollistaa hajautetut sovellukset (palvelut)
- Mikä on Internet: Hallintanäkökulma
- ICANN
- Internet Engineering Task Force
- Internet Governance Forum
- Internet Society
- ja muitakin organisaatioita
- Mikä on Internet: Tekninen näkökulma
- Laitteita: Palvelimet, reitittimet, tietokoneet, mobiililaitteet
- Linkkejä: langallisia ja langattomia
- Kaistanleveys (eng. bandwidth) = “tiedonsiirtonopeus”
- Protokollia: Sääntöjä joiden mukaan laitteet keskustelevat toistensa kanssa
- Verkkoja: yhteenkytkettyjä kotiverkkoja, yritysten verkkoja, Internet palveluntarjoajien verkkoja, ...
Mikä on Internet: Palvelunäkökulma
- Kartta Internetin palveluista
- Informaation tuottaminen ja jakaminen?
- Sähköposti
- Tiedostonsiirto
- World Wide Web
- "Palvelumallit"
Pilvipalvelut
- Ohjelmisto palveluna (SaaS)
- Voidaan käyttää olemassaolevia (pilvi)sovelluksia
- Ilmaisia tai maksetaan käytön mukaan
- Käytettävissä miltä tahansa Internettiin yhteydessä olevalta laitteelta
- Esim. docs.google.com , docs.com , pixlr.com , ...
- Palvelinalusta palveluna (PaaS)
- Voidaan luoda omia pilvisovelluksia palveluntarjoajan työkaluilla
- Sovellusten kehittäminen nopeaa pienillä kustannuksilla
- Esim. Koding , Google App Engine , Windows Azure , DataCenter , TNNet , ...
- Infrastruktuuri palveluna (IaaS)
- Voidaan ajaa mitä tahansa sovellusta palveluntarjoajan laiteistossa
- Sen sijaan että on oma palvelin(keskus), niin sovellukset ajetaan palveluntarjoajan palvelimissa
- Fyysisiä tai virtuaalisia palvelimia
- Esim. Amazon EC2 , Rackspace , GoGrid , DataCenter , TNNet , ...
Mikä on Internet: Hallintanäkökulma
"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
Request for Comments (RFC)
- 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
Request for Comments (RFC) - Status
- RFC dokumenteilla voi olla erilaisia statuksia, joka on suhteessa niiden Internet standardointi -vaiheeseen
- Informational
- Experimental
- Best Current Practice
- Standards Track - RFC 5000 ja Official Internet Protocol Standards
- Proposed Standard
- Draft Standard
- Internet Standard
- Historic
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 -liikenne
- Draft Standard - RFC 4271
- Operaattoreiden välinen reititysprotokolla
- 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
Mikä on Internet: Tekninen näkökulma visuaalisesti
ISP:t ja Internetin rakenne
Esimerkkejä Tier operaattoreista
- Karkea luennoitsijan esimerkki kolmen operaattorin sijoittumisesta eri renkaisiin:
- Tier 1: TeliaSonera
- Tier 2: Nordunet
- Tier 3: Funet
- Internetin verkot liitetään toisiinsa esim. solmupisteiden kautta
Pääsy Internettiin
Verkkoon pääsy ja fyysinen media
- Yhteys Internettiin
- Bitti ja binääriluvut
- Fyysisen kerroksen tehtävänä on lähettää bitit fyysiselle siirtotielle
Bitit ja tavut
- Bitti = binääriluku, eli luku jonka erilaisia arvoja on vain kaksi
- Binäärinumero = useasta bitistä koostuva numero
- Tavu = 8 bitin kokoinen binäärinumero
- Esim. oheisen kuvan generoivan svg -tiedoston koko on 121 kB (kilotavua)
- Nopeus - tavuja vai bittejä sekunnissa
- Nopeus yksi tavu sekunnissa (1 B/s) vastaa nopeutta 8 bit/s
- Esim. Suomen ja Euroopan välisten kaapeleiden liikenne vuonna 2016 on n. 7.5 Terabittiä sekunnissa
Fyysinen tekniikka (2017)
- Valokuitukaapeli 15-20 Terabittiä sekunnissa, lähiaikoina nelinkertaistunee, ennuste satoja Terabittejä sekunnissa
- Parannukset lisäämällä kanavien määriä (eri aallonpituuksia samaan kaapeliin) sekä kasvattamalla yksittäisen kanavan kapasiteettia
- Ethernet parikaapeli
- 'normaali' on 10 Mbit/s - 1 Gbit/s (parannukset kaapelitekniikkaa parantamalla)
- 10 Gbit/s kuparikaapelilla vain fullduplex (vanhoja kytkimiä ja kaapeleita ei voi käyttää), 10+ Gbit/s sasavutettavissa valokuitu-Ethernetillä
- Kaapelimodeemi vs. ADSL
- Kaapelimodeemi, jaettu, siirto kaapeli-TV:n koaksiaalikaapelissa, teoreettinen maksimi 100+ Mbit/s
- ADSL, dedikoitu, käyttää puhelinkaapeleita eli parikaapelia, ADSL2+ teoreettinen maksimi 24 Mbit/s
- Langaton siirtomedia - Nopeuteen vaikuttaa esim. etäisyys, liike, muut käyttäjät, radiotaajuinen häiriö muista laitteista, ...
- WLAN: IEEE 802.11 - 1997 vuonna 1-2 Mbit/s - 2017 vuonna 802.11ac tai 802.11n teoreettinen maksimi satoja megabittejä sekunnissa
- 3G - 5G: 3GPP tai IEEE pohjaisia ratkaisuja, teoreettinen maksimi 1 Mbit/s - 1000 Mbit/s
Verkkotopologiat
Kerrosarkkitehtuuri
- Laita TCP/IP (Internet protocol suite) ja OSI -viitemallin mukaiset protokollakerrokset oikeaan järjestykseen. Kerrosta raahtessa saat myös tietoa kerroksen tehtävästä.
Datan paketointi
- Klikkaa sanomaa visualisoinnissa, jotta saat sen vastaanottavalle sovellukselle. Seuraa hyötydatan (sanoman) ja kontrolli-informaation, eli eri kerrosten otsikkokenttien H1 - H4 käyttäytymistä.
Pakettikytkentä vs. piirikytkentä
- Esimerkki molemmista (GSM runkoverkko)
Piirikytkentä
- Piirikytkennässä
- 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
Pakettikytkentä
- Pakettikytkennässä
- Ei erikseen varata resursseja
- Pystytään palvelemaan enemmän käyttäjiä
- Paljon parempi purskeiselle liikenteelle
- Visualisoinnissa linkkien D ja E kapasiteetti on puolet piirikytkentäisen visualisoinnin tapauksesta
- Verkon muu liikenne vaikuttaa omaan tiedonsiirtonopeuteen
Viive ja hävikki pakettivälitteisissä verkoissa
- 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}\)
Visualisointeja viiveestä ja pakettien putoamisesta
- Pakettien viiveen kolme syytä (ei visualisoi laskentaa solmuissa)
- Transmission (lähetys) vs. propagation (eteneminen) delay
- Queueing (jonotus) and loss (pakettihävikki)
- Huom: pakettihävikkiä ei käsitellä mitenkään visualisoinnissa, vastaa UDP protokollan käyttöä kuljetuskerroksella
Yhteydellinen vs. yhteydetön palvelu
- Yhteydellinen palvelu
- Ennen tiedonsiirtoa muodostetaan yhteys (ja lopuksi suljetaan yhteys)
- Pakollinen piirikytkentäisessä verkossa, jotta saadaan resurssit varattua
- Luotettava tiedonsiirto vaatii käytännössä yhteydellisen palvelun myös pakettikytketyissä verkoissa
- Yhteydetön palvelu
- Ei yhteyden muodostusta, mikä pienentää viivettä
- Yksinkertaisempi toteuttaa
- Luotettava tiedonsiirto?
"Yhteydettömässä ei muodosteta yhteyttä, kun taas yhteydellisessä muodostetaan. Yhteydellisessä yhteydenmuodostus aiheuttaa viivettä. Yhteydettömässä viive tulee sen puoleen siitä että muu liikenne vaikuttaa tiedonsiirtoon, kun erillistä yhteyttä varten ei ole varattu resursseja"
Verkot ja tietoturva
- Verkot ja tietoturva
- Tietoturvan kiertäminen
- Joitain haavoittuvuuksia
- Mitä on SSL/TLS?
- Salausten murtaminen
- ROT13 salaus
Joitain tietoverkkojen tietoturvauhkia
- Haittaohjelmat (eng. malware)- pääsy laitteeseen Internetistä
- Virus - vaatii käyttäjän toimenpiteen
- Mato - esim. haavoittuvan verkkosovelluksen kautta
- Suojautuminen: Mieti mitä klikkaat, pidä kaikki päivitettynä, palomuuri ja virustorjunta
- Palveluiden esto
- (D)DoS (Hajautettu) Palvelunesto Hyökkäys
- Tukahdutetaan palvelin tai sen liityntälinkki paketeilla
- Suojautuminen: Vaikeaa, esim. IDS (Intrusion Detection System) ja IPS (Intrusion Prevention System)
- Pakettien kaappaaminen
- onnistuu helposti salaamattomassa WLAN verkossa
- salatussa WLAN verkossa vie jonkin aikaa purkaa salaus (Lisää TIES327 Tietoverkkoturvallisuus kurssilla)
- HTTPS vs. HTTP protokolla
- Suojautuminen: Salataan liikenne
Kuinka NSA et al. pyrkivät kiertämään tietoturvaa (spekulointia)
- 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
Joitain tietoturvaan liittyviä haavoittuvuuksia
- 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
- SSL/TLS salauksen implementointiin liittyvä ongelma, SSL/TLS liikenne pysyy salattuna, ei siis tietoverkkohaavoittuvuus, vaan ohjelmistohaavoittuvuus
- Gemalton SIM korttien Ki avainten varkaus - Julkisuuteen 20.2.2015, tapahtunut vuonna 2010 - Viestintäviraston tiedote
- Ki avaimella käyttäjä tunnistetaan sekä generoidaan avain liikenteen salaukseen
- GSM autentikointi ja GSM liikenteen salaus
- Joidenkin TLS -yhteyksien FREAK-haavoittuvuus - Julkisuuteen 4.3.2015
- SSL FREAK-check - Implementation vulnerability
- TLS Logjam attack - Julkisuuteen 10.7.2015
- TLS Logjam Check - Flaw in TLS protocol
- Cloudbleed - Julkisuuteen 17.2.2017
- Viestintäviraston kokoamat viimeisimmät (löydetyt) haavoittuvuudet
- Viestintaviraston Kyberturvallisuuskeskuksen vuosiraportti 2015 (pdf)
Mitä on SSL/TLS
- SSL on Secure Sockets Layer
- Uusin SSL versio 3.0
- mikään SSL versio ei ole enää turvallinen
- TLS 1.0 on oikeastaan SSL 3.1 versio
- Eli SSL on oikeastaan TLS:n edeltäjä ja monesti termejä käytetään tarkoittamaan samaa asiaa joko erikseen (SSL tai TLS) tai yhdistetynä SSL/TLS...
- ...ja saman suojauksen ne takaavatkin, ja se riippuu palvelimen asetuksista
- Uusin SSL versio 3.0
- 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
- Mutta testaapa 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)
Salausten murtaminen - esimerkkejä
- 128 bittinen SSL salausavain
- Avainvaihtoehtoja on 2128 = 340282366920938463463374607431768211456 = 34 × 1037
- 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.
- Salasana: esim. jyu thk ohjeet hyvälle salasanalle
Tehdään nyt väärin minimin mukainen eli vähintään 8 merkkiä, esim. 'salasana' → kräkätään heti 'sanakirjan' avulla, kokeilepa itse:
Koodataan salasana SHA-256 hash calculator ja kräkätään salasana Password Hash Cracker
Kokeilepa muuttaa osa kirjaimista isoiksi ja testaa, sitten osa kirjaimista numeroiksi ja viimeisenä kokeile tuplata salasana 'salasana salasana', välilyönnillä tai ilman.
Pieniä kirjaimia 26, salasanan pituus 8 = 268 = n. 208 miljardia läpikäytävää kombinaatiota
Tämän päivän tietokone laskee n. 4 miljardia vaihtoehtoa sekunnissa → Kokeilee kaikki vaihtoehdot 52 sekunnissa. Testaa salasanojen turvallisuutta itse
Hyvä järjestelmä ei tietenkään saisi antaa kokeilla rajattomasti eri vaihtoehtoja
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
Mikä on Protokolla? Ihmisten kesken ei ole tarkkaan määritelty
Mikä on Protokolla? Laitteiden välillä tarkkaan määritelty
Sovelluskerros
- DNS (Domain Name System)
- WWW, HTTP, HTTPS, evästeet, välimuisti
- Sähköposti
- SMTP, POP3, IMAP
- FTP
DNS (Domain Name System)
- Muuttaa verkkotunnuksia (eng. domain) IP -osoitteiksi
- DNS:n rooli Internetin sensuurissa (esimerkkinä Kiinan sensuuri)
- Ensin oli Hosts tiedosto
- URL: www.jyu.fi.[tyhjä]
- Juuriverkkotunnus (Root Domain): [tyhjä]
- Ylätason verkkotunnus (Top Level Domain (TLD)): fi
- Toisen tason verkkotunnus (Second level domain): jyu
- Palvelimen nimi: www
Verkkotunnuksen hakeminen: esim. www.itkp104.fi
- Tarkista onko verkkotunnus varattu: domain.fi
- Ja sitten hae verkkotunnusta
- 5.9.2016 jälkeen .fi verkkotunnukset ja niihin liittyvät palvelut hankitaan verkkotunnusvälittäjältä
- Voiko hankkia verkkotunnuksen www.itkp104.ari ?
- Periaatteessa... Alternative DNS root
- ... jos joku suostuu ylläpitämään .ari verkkotunnusta ja lisäksi sivuston löytämiseen tarvittaisiin erillinen ohjelmisto tai lisäosa selaimeen
HTTP (Hypertext Transfer Protocol)
- HTTP Evästeet
- Web välimuisti
- HTTP ja tietoturva (HTTPS)
- HTTP persistent vs. non-persistent
- HTTP/2
HTTP (Hypertext Transfer Protocol)
- Tekstipohjainen protokolla (vielä)
- WWW sivujen siirtoon palvelimelta asiakkaalle (selaimelle)
- Selain lähettää pyynnön johon palvelin vastaa
- Yleisin pyyntö on GET ja palvelin vastaa status koodilla, joka kertoo miten pyyntöön vastaaminen onnistui
HTTP Evästeet
- HTTP on yhteydetön protokolla, ei ylläpidä yhteyttä palvelimeen (alapuolinen kuljetuspalvelu on yhteydellinen, mikä on eri asia)
- HTTP on tilaton protokolla, eli HTTP protokolla ei välitä informaatiota mahdollisesta aiemmasta vierailusta sivulla
- Evästeillä palvelin pystyy tunnistamaan/muistamaan käyttäjän (selaimen) aiemmat vierailut
- Palvelin pystyy tallentamaan lomakkeilla syötettyä tietoa ja yhdistämään sen evästeen avulla käyttäjään
Web välimuisti (cache)
- Tallennetaan väliaikaisesti HTTP protokollalla haettuja objekteja
- Web sivu tulee näkyviin nopeammin, kun se haetaan lähempää
- Pienentää tiedonsiirron tarvetta, helpottaa ruuhkia pullonkaula -linkeillä
- Selain tallentaa hakemiaan resursseja välimuistiin (browser cache)
- ISP:llä tai organisaatiolla voi olla välimuistipalvelin (Web cache tai HTTP cache)
- Web proxy on eri asia, ei tallenna välimuistiin, välittää pyynnön eteenpäin
- Joskus Web cache:sta käytetään nimitystä Web proxy cache, korostamaan että välimuisti on erillisessä palvelimessa
HTTPS ("RFC 2818", "HTTP over SSL", "HTTP Secure")
- Keneen luotetaan? Sertifikaatin myöntäjiin, Selainten valmistajiin
- Selainten valmistajat valitsevat luotetut juurisertifikaatit
- Palvelimen admin luo julkisen avaimen sertifikaatin , jonka joku (luotettu) Sertifikaatti auktoriteetti allekirjoittaa
- Jos Sertifikaatti auktoriteetti on selaimen valmistajan mukaan luotettu, niin selain ei anna varoitusta
- Tulossa 2015: ilmainen automatisoitu sertifikaatin myöntäjä: Let's Encrypt
HTTP protokolla kehittyy hitaasti
- (HTTP/1.0) HTTP non-persistent: Voidaan siirtää vain yksi objekti samalla TCP yhteydellä
- (HTTP/1.1) HTTP persistent: Voidaan siirtää useita objekteja samalla TCP yhteydellä
- Mutta ei voida siirtää rinnakkain samalla TCP yhteydellä →
- Selaimet avaavat useita rinnakkaisia TCP yhteyksiä
- HTTP/2: voidaan siirtää useita objekteja rinnakkain samalla TCP yhteydellä
- HTTP/2 muita muutoksia: binäärinen, otsikoiden pakkaaminen, palvelin voi työntää sivuja välimuistiin ilman selaimen pyyntöä,...
- Demo: HTTP/1.1 vs. HTTP/2
HTTP persistent vs. non-persistent
Sähköpostin välitys
FTP
FTP protokollaa käytetään tiedostojen siirtoon
Esimerkki selaimella ftp://ftp.funet.fi
Tarkemmin Protokollista opitaan Teoria 2 osuudessa
Tähän päättyy Teoria 1 osuus kurssista!
Teoria 2
ITKP104 Teoria 2 - Sovelluskerros
Teoria 2 - Sovelluskerros
- P2P visualisointi
- Tor
- DNS (Domain Name System)
- SMTP, POP3, IMAP
- FTP
Tor (The Onion Router - anonyymi verkko)
- Muodostaa virtuaalisen piirikytkennän (ketjun reitittäviä laitteita) kommunikoivien osapuolten välille
- Virtuaalinen piiri Sovellus- ja kuljetuskerrosten välissä → voidaan käyttää eri sovellusprotokollia
- Ennen lähetystä sovelluskerroksen data 'paketoidaan' ja salataan useaan kertaan (sipuliin lisätään kerroksia)
- Jokaisella kerroksella on tieto vain edellisestä ja seuraavasta 'reitittävästä laitteesta'
- Kun dataa siirretään, jokainen virtuaalisen piirikytkennän reititin poistaa uloimman kerroksen
DNS (Domain Name System)
- Hajautettu hierarkinen rakenne
- URL: www.jyu.fi.[tyhjä]
- DNS Palvelinten roolit
- Juurinimipalvelin ["piste tyhjä"]
- Ylätason nimipalvelin [.fi] (TLD-nimipalvelin)
- Autoritäärinen nimipalvelin [jyu.fi]
- Ratkaisija (Resolveri) nimipalvelin [se joka joka alkaa pyynnöstä selvittää IP osoitetta]
DNS Iteratiivinen vs. rekursiivinen
DNS: kokeile itse (nslookup)
- Kokeile komentoriviltä:
nslookup
(Linux ja Mac järjestelmissä myösdig
)- www.google.com
- www.google.fi
- www.jyu.fi
- users.jyu.fi
- set type=MX
- jyu.fi
- student.jyu.fi
- set type=all
- jyu.fi
- Juurinimipalvelimen ja TLD-nimipalvelimen tiedot
- set type=all
- .
- fi.
- Tietojen kysyminen miltä tahansa DNS palvelimelta
- nslookup - 8.8.8.8
- set type=all
- jyu.fi
SMTP (Simple Mail Transfer Protocol)
POP3 (Post Office Protocol)
FTP (File Transfer Protocol)
Sovelluskerroksen protokolla määrittelee
- Mitä viestejä käytetään
- Viestien syntaksin: mitä kenttiä viestissä ja kuinka ne erotetaan toisistaan
- Viestien semantiikka (merkitys)
- Säännöt sille, milloin lähetetään viestejä ja miten reagoidaan viesteihin
- Avoimia protokollia (RFCt) ja yksityisiä protokollia
Kuljetuspalvelun tarve riippuu sovelluksen tarpeista:
- Data perille
- Oikealle sovellukselle
- Mahdollisuus käyttää useita verkkosovelluksia samaan aikaan
- Yhdellä kuljetuskerroksen palvelulla?
- Datan eheys? Eri tarpeita
- Ei virheitä datassa eikä kadonnutta dataa, esim. sähköposti
- Saa olla virheitä datassa, esim. puheliikenteen laatu kärsii
- Saa kadota dataa, esim. kellon aikaa ei kannata lähettää uudestaan vaan lähetetään uusi aika
- Ajoitus?
- Viive (delay) ei voi olla sekunttiluokkaa esim. Internet-puheluissa
- Viiven vaihtelu (delay jitter) ei saa olla suuri esim. suoratoistossa
- Kaistanleveys (tiedonsiirtokapasiteetti)?
- Videopuhelussa kuvan siirto vie paljon enemmän 'kaistaa' kuin äänen siirto
- Tietoturva?
- Palvelin tunnistaa asiakkaan? Asiakas tunnistaa palvelimen? Selkokielinen datansiirto kryptataan?
Internetin kuljetuspalvelut
- Data viedään oikealle sovellukselle
- Kuljetuskerroksen osoitteet (portit) laitteessa → useita samanaikaisia verkkosovelluksia
- Yhteydellinen kuljetuspalvelu …
- Luotettava kuljetuspalvelu
- Ruuhkanhallinta ja vuonvalvonta
- … tai yhteydetön kuljetuspalvelu
- Ei luotettava kuljetuspalvelu
- Ajoitus?
- Ei tällä hetkellä, ehkäpä jonain päivänä
- Kaistanleveveys?
- Ei tällä hetkellä, ehkäpä jonain päivänä
- Tietoturva?
- Ei, toteutetaan tarvittaessa kuljetuskerroksen ja sovelluskerroksen välissä
- Käytännön implementointi?
- Soketti (rajapinta käyttöjärjestelmän protokollapinon toteutukseen)
Internetin kuljetuspalveluiden nimet
- Transmission Control Protocol (TCP)
- User Datagram Protocol (UDP)
- Datagram Congestion Control Protocol (DCCP)
- Stream Control Transmission Protocol (SCTP)
- Resource Reservation Protocol (RSVP)
- Kuljetuskerroksen protokollien vertailua
Kuljetuskerros tarjoaa...
... kuljetuspalvelun sovelluskerrokselle käyttäen verkkokerroksen palveluita apunaan
Minkälainen on verkkokerros Internetissä?
- Pakettikytkentäinen
- Kun verkko ruuhkautuu, paketteja saattaa hävitä
- IP protokolla ei tarkista onko sen kuljettamassa datassa virheitä
Verkkokerroksen palvelu Kuljetuskerrokselle?
- Vie datan virheettömästi oikeaan osoitteeseen, jos vain pystyy!
- Best Effort -palvelu
- IP protokollaa ei kiinnosta
- jos reitittimet hukkaa paketteja
- jos fyysisellä tai linkkikerroksella tulee virheitä
Sovelluskerros haluaa kuljetuspalvelulta...
- Data perille (saa tulla virheitä)
- Verkkokerros: Ok, verkkokerros vie oikealle laitteelle
- Kuljetuskerrokselle jää: Data oikealle sovellukselle/prosessille
- Toteutus: määritellään vastaanottajan kuljetuskerroksen osoite
- Mahdollisuus käyttää useita verkkosovelluksia samaan aikaan
- Verkkokerros: sama se mitä dataa paketissa on, paketit jonoon vaan ja laitetaan ne verkkoon
- Kuljetuskerros:
- Lähetys: erotellaan lähtevät paketit lähettäjän ja/tai vastaanottajan (kuljetuskerroksen) osoitteen perusteella
- Vastaanotto: kun verkkokerrokselta saadaan paketteja, niin (kuljetuskerroksen) osoitteen perusteella ohjataan ne oikealle sovellukselle/prosessille
- TCP: myös verkkokerroksen osoitteita käytetään lähettäjä/vastaanottajaprosessin määrittämiseen
- Kurose-Ross 3. luku, Transport layer, kalvot 8-14
Kuljetuskerrokselta verkkokerrokselle
- Teoria 2
Esimerkki kuljetuspalvelun toiminnasta
Kuljetuskerroksen palvelut sovelluskerrokselle
- Datan eheys (virheettömyys)?
- Verkkokerros: ei kiinnosta
- Kuljetuskerros:
- UDP: tarkastetaan otsikkokenttien sekä datan mahdolliset virheet (IPv4:n kanssa ei pakollinen), hylätään virheelliset paketit
- TCP: tarkastetaan otsikkokenttien sekä datan mahdolliset virheet, hylätään virheelliset paketit
- TCP: lisäksi uudelleenlähetetään paketit jotka eivät tule perille
- Sovelluskerros (verkko-ohjelman tekijä) voi valita käyttääkö TCP vai UDP palvelua
- UDP ja TCP protokollien yhteiset palvelut sovelluskerrokselle
- Data perille oikealle sovellukselle/prosessille
- Palvellaan samanaikaisesti useita prosesseja samalla kuljetuspalvelulla
- Tarkastetaan otsikkokenttien sekä datan virheettömyys
Sovelluskerros haluaa kuljetuspalvelulta...
- Ajoitus?
- Verkkokerros - I am doing my best, but all those other users...
- pakettikytkentäinen, viive voi vaihdella paljon riippuen muun liikenteen määrästä
- Kuljetuskerros
- UDP: Lähetetään niin nopeasti kuin sovellus/käyttöjärjestelmä/tietokone/tiedonsiirtolinkki kykenee ja toivotaan että viive (ja varsinkin sen vaihtelu) pysyy aisoissa
- TCP: Luotettavuus pääasia, uudelleenlähetykset aiheuttavat viivettä
- TCP: On muuten myös Vuonvalvonta ja Ruuhkanhallinta palvelut! Mutta lisäävät viivettä...
- Sovelluskerros - ei saa tätä palvelua kuljetuskerrokselta, täytyy itse keksiä jotain
- Videostreamit:
- valitaan yleensä TCP, lähetetään datapaketteja niin nopeasti kuin TCP kykenee (pitää odottaa kuittauksia, yms.)
- puskuroidaan saapuvaa dataa, toivotaan että puskurissa oleva data riittää viiveen noustessa
- jos ei riitä niin käyttäjä joutuu odottamaan
- Reaaliaikainen video/puhe:
- valitaan yleensä UDP, lähetetään datapaketteja niin nopeasti kuin UDP kykenee (tai sovelluksen tarve)
- mahdollisesti korjataan virheitä vastaanottajalla, mutta ei uudelleenlähetyksiä
- mahdollisesti puskuroidaan paketteja, jotta selvitään pienistä viiveen vaihteluista
- myöhästyneet paketit käytännössä sama kuin kadonnut paketti, kuvan/puheen laatu kärsii
- Videostreamit:
- Verkkokerros - I am doing my best, but all those other users...
- Kaistanleveys?
- Kuljetuskerros: Lähetän niin paljon (bittiä sekunnissa) kuin verkkokerros kykenee palvelemaan
- Verkkokerros: Lähetän niin paljon (bittiä sekunnissa) kuin linkkikerros kykenee palvelemaan
- Linkkikerros: Lähetän niin paljon (bittiä sekunnissa) kuin fyysinen siirtotie vain kykenee lähettämään linkille
- Linkkikerros: linkeillä voi olla eri tekniikka käytössä
- Best Effort - ja riippuu fyysisestä sekä linkkikerroksesta
- Sovelluskerros: alemmat kerrokset eivät voi taata tiedonsiirtonopeutta, täytyy itse keksiä jotain
- Sovelluskerros: Videostream, puskuroidaan dataa ennenkuin käyttäjä painaa 'play'
- Sovelluskerros: Reaaliaikainen video/puhe, vaihdetaan/valitaan heikompi laatuinen kuvan/äänen laatu
- Tietoturva?
- Kuljetuskerros: Ei tunnistautumista tai salausta
- Verkkokerros: IPsec (Internet Protocol Security), tunnistautuminen ja koko verkkoliikenteen salaus kahden laitteen välillä
- Verkkokerros: IPsec on yksi vaihtoehto VPN (Virtual Private Network) toteutukseksi
- Linkkikerros: Riippuu linkistä, esim.
- Ethernet: Ei tunnistautumista tai salausta
- WLAN: Ei tunnistautumista, salaus optiona
- 2G/3G/4G: tunnistautuminen ja salaus aina
- Sovelluskerros: alempien kerrosten ei tarvitse taata tietoturvaa, täytyy itse keksiä jotain
- Sovelluskerros: Transport Layer Security (TLS) tai Secure Sockets Layer (SSL) tai vastaava sovelluskerroksen ja kuljetuskerroksen väliin
- Sovelluskerros: Jokin muu salaus- ja/tai tunnistautumismenetelmä liitettynä sovelluskerroksen protokollaan
Verkkokerros
Verkkokerroksen palvelut
- Data oikealle laitteelle
- Pitää selvittää reitti: Reititysprotokollat
- Pitää kuljettaa data: IP protokolla
- Virhetilanteet ja verkon diagnostiikka: ICMP protokolla
- Laite: Reititin
- Reititys (routing): selvitetään reitit IP osoitteisiin
- Välitys (forwarding): lähetetään dataa eteenpäin reititysinformaation perusteella
- Reititysprotokolla: kommunikoi muiden reitittimien kanssa jakaen reititysinformaatiota
- Reititysalgoritmi: määrittää reitit ja ylläpitää reititystaulua
- Kun pakettia välitetään, katsotaan reititystaulusta (osoitteen perusteella) seuraava laite jolle paketti lähetetään
- Laite: Tietokone, puhelin, tabletti, ...
- Reititystaulu kertoo onko kohde samassa verkossa vai ei
- Käyttöjärjestelmä muodostaa reititystaulun verkkoasetusten perusteella
- Listaus:
netstat -rn
, Muokkausroute add ...
Esimerkki hierarkisesta reitityksestä
- Tutki mitä tietoja löydät
Hierarkinen reititys - jos sitä ei olisi...
- Skaalautuvuus - Jos ei olisi hierarkiaa
- Jokaisen reitittimen täytyisi ylläpitää tietoa koko Internetin rakenteesta
- Internet ruuhkautuisi reitittimien päivitysviesteistä
- Reititysalgoritmitmien laskenta kestäisi kauan
- Autonomia - Jos ei olisi hierarkiaa
- Kaikki maailman verkot joutuisivat käyttämään samaa reititysprotokollaa
- Yritykset/organisaatiot eivät pystyisi piilottamaan oman verkkonsa toteutusta ulkopuolisilta
- Oman verkon hallinta olisi maailmanlaajuisen reititysprotokollan vastuulla, eikä itsellä
Hierarkinen reititys - Toteutus
- IP osoite on hierarkinen (CIDR) - vertaa postiosoitteeseen
- Maailmanlaajuisesti tiedetään se kenen operaattorin verkossa on mitkäkin osoitteet
- Operaattorin verkossa tiedetään tarkemmin osoitteen sijainti
- Autonomous System (AS)
- Reitittimet organisoidaan kuuluvaksi tiettyyn AS:ään
- Yleensä yksi operaattori on yksi AS (isoilla operaattoreilla on useita AS tunnuksia)
- AS:n sisällä
- operaattori hallitsee verkkoaan ja käyttää haluamaansa reititysprotokollaa
- reitittimet osaavat välittää sisäisen liikenteen
- ulosmenevästä liikenteestä tiedetään reunareititin, joka vastaa AS:n ulkoisesta liikenteestä
- AS:stä ulos
- Mainostetaan mitkä osoiteavaruudet kuuluvat AS:n verkkoon, ei yksittäisiä osoitteita
- Mainostetaan myös mitä muita AS:iä voidaan kyseisen verkon kautta saavuttaa
- ulosmenevä liikenne lähetetään sellaiseen AS:ään joka mainostaa reittiä
- ulosmenevän liikenteen kohde-AS;ään vaikuttaa myös tiedonsiirron hinta
Verkkokerrokselta linkkikerrokselle
- Teoria 2
IP osoite kertoo laitteen sijainnin?
- IP osoite ei kerro sijaintia maapallolla! Vain sen kuinka paketit reititetään kohteeseen
- IP osoitteiden sijainnista voi olla tietoa: Sijaintitieto joudutaan keräämään esim. tietokannoista ja/tai seuraamalla reittejä
- Sijainnin voi piilottaa esim. proxy palvelimella
- Etsi ensin jokin proxy palvelin, esim. google haku
- Katso optioista että scriptien suoritus sallitaan
- Mene sitten kurssin pääsivulle kopioimalla ao. osoite proxy sivustolle
- http://users.jyu.fi/~arjuvi/opetus/itkp104/
- Sivulla olevat skriptit saattaa näyttää 'sijaintisi', riippuu proxy palvelimesta ja käytetyistä asetuksista
- Sen jälkeen mene ao. sivustolle, joka kerää tietoa siitä mistä päin maailmaa vierailijat tulevat
- http://users.jyu.fi/~arjuvi/opetus/itkp104/2015/ITKP104_proxy_hits_2015.html
- Jos intoa riittää niin kokeile eri maissa sijaitsevia proxy palvelimia
IP osoite
- "A name indicates what we seek. An address indicates where it is. A route indicates how to get there." (RFC 791)
- Kertoo laitteen sijainnin verkkohierarkiassa (ei fyysistä sijaintipaikkaa)
- Osoite on hierarkinen - osoite on jaettu kahteen osaan: alkuosa (network prefix) ja laiteosa (host identifier) (aiemmin oli verkko-osa, aliverkko-osa, ja laiteosa)
- Alkuosan perusteella paketti välitetään oikeaan verkkoon
- Alkuosan synonyyminä nykyään saatetaan käyttää myös verkko-osaa, tai englannista johdettua prefix-osaa
- Osa IP osoitteista on varattu erityiskäyttöön
- Organisaatioille jaetut /8 IP lohkot
IP osoitteiden lukumäärä
IPv4: koko 32 bittiä, eli 4 294 967 296 (232) osoitetta, joka jaetaan neljään tavuun
Ihmisystävällinen merkintä tapa, muutetaan tavut positiivisiksi kokonaisluvuiksi ja erotetaan ne pisteillä
esim.
173.194.32.63
on binäärisenä10101101 11000010 00100000 00111111
IPv6: koko 128 bittiä, eli noin 3.4×1038 (2128) osoitetta
Ihmisystävällinen merkintä tapa, jaetaan kahdeksaan neljän heksadesimaaliluvun ryhmään
esim.
2a00:1450:400f:801::1017
, joka on lyhennysosoitteesta
2a00:1450:400f:8010:0000:0000:0000:1017
0010101000000000 0001010001010000 0100000000001111 1000000000010000 0000000000000000 0000000000000000 0000000000000000 0001000000010111
IP osoitetyypit
- Unicast - täsmälähetys (esim. Yle Areena, Nettiradiot, yms., kaikki 'normaali' liikenne Internetissä)
- Yleisin osoitetyyppi, "yhden" laitteen osoite, voidaan käyttä lähettämiseen sekä vastaanottamiseen
- Broadcast - yleislähetys (vastaa ~ TV ja radio lähetyksiä radio/kaapeliverkosta)
- Yleislähetysosoite, voidaan lähettää (ali)verkon kaikille laitteille sama paketti
255.255.255.255
kaikille lähiverkon laitteille (ei mene reitittimen läpi)- tai esim. aliverkkoon
192.0.2.0/24
yleislähetysosoite on192.0.2.255
- IPv6:ssa ei mahdollista, hoidetaan Multicast:llä
- Multicast - ryhmälähetys (näin 'pitäisi' Yle Areena yms. toimia!!!)
- Monilähetysosoite, laitteet voivat liittyä Multicast ryhmään (IGMP protokolla), jossa paketit välitetään kaikille jäsenille
- Varattu osoitteet väliltä
224.0.0.0 - 239.255.255.255
(IPv4) jaff00::/8
(IPv6) - Reitittimet hoitavat paketin kopiomisen ja välittämisen kaikille ryhmän jäsenille
- Anycast - 'Jokulähetys' (hajautetaan palvelu sijainnin mukaan)
- Paketti voidaan välittää monelle vastaanottajalle, mutta valitaan se joka on fyysisesti lähimpänä
- Käytetään kuorman tasaukseen palvelimilla sekä esim. DNS juurinimipalvelinten hajauttamiseen
- IPv4:ssa ei suoraa tukea, hoidetaan yleensä AS:ien välisellä reititysprotokollalla (BGP)
- IPv6:ssa osa spesifikaatiota
IP aliverkotus
- Aluksi ensimmäiset 8 bittiä oli verkko-osa (ja loput 'muuta' osaa), sitten kehitettiin luokallinen osoitteistus
Class |
Leading bits |
Size of network number bit field |
Size of rest bit field |
Number of networks |
Addresses per network |
Start address | End address |
---|---|---|---|---|---|---|---|
A | 0 | 8 | 24 | 128 (27) | 16,777,216 (224) | 0.0.0.0 | 127.255.255.255 |
B | 10 | 16 | 16 | 16,384 (214) | 65,536 (216) | 128.0.0.0 | 191.255.255.255 |
C | 110 | 24 | 8 | 2,097,152 (221) | 256 (28) | 192.0.0.0 | 223.255.255.255 |
- D = Multicast, E = Varattu
- Lopulta: Classless Inter-Domain Routing (CIDR)
- Luokaton verkkotunnusten (domain) välinen reititys
IP aliverkotus - CIDR
- Aliverkkomaski
- Kertoo kuinka monta bittiä IP osoitteesta on prefix osaa (loput on sitten laitteille)
- Esim.
/8
tarkoittaa että 8 ensimmäistä bittiä on prefix osaa - Tällöin siis aliverkkomaskissa kahdeksalla ensimmäisellä bitillä on arvo 1 (ja lopuilla arvo 0)
- Eli
/8
aliverkkomaski on11111111 00000000 00000000 00000000
- Tai piste-desimaalimuodossa
255.0.0.0
- Tai esim.
/23
jota vastaa maski 11111111 11111111 11111110 00000000
- eli
255.255.254.0
- JYU verkko
130.234.0.0/16
(eli maski255.255.0.0
) - RIPE tietokanta
- https://stat.ripe.net/
- Esimerkki aliverkon osoitteista
- Olkoon verkko 130.234.169.0/26 eli 26 bittiä on varattu verkko-osaan
- osoite, jossa kaikki laiteosan bitit ovat nollia, on aliverkon osoite
10000010 11101010 10101001 00
000000
eli 130.234.169.0
- osoite, jossa kaikki laiteosan bitit ovat ykkösiä, on aliverkon yleislähetysosoite
10000010 11101010 10101001 00
111111
eli 130.234.169.63
- loput osoitteet ovat käytettävissä verkon laitteille
- alkaen osoitteesta
10000010 11101010 10101001 00
000001
- loppuen osoitteeseen
10000010 11101010 10101001 00
111110
- alkaen osoitteesta
- Aliverkon osoitteessa ei aina ole desimaalimuodossa nollaa
- Olkoon verkko 130.234.169.64/26 eli 26 bittiä on varattu verkko-osaan
- osoite, jossa kaikki laiteosan bitit ovat nollia, on aliverkon osoite
10000010 11101010 10101001 01
000000
eli 130.234.169.64
- osoite, jossa kaikki laiteosan bitit ovat ykkösiä, on aliverkon yleislähetysosoite
10000010 11101010 10101001 01
111111
eli 130.234.169.127
- loput osoitteet ovat käytettävissä verkon laitteille
- alkaen osoitteesta
10000010 11101010 10101001 01
000001
- loppuen osoitteeseen
10000010 11101010 10101001 01
111110
- alkaen osoitteesta
- Verkossa olevan laitteen IP osoitteen ja aliverkkomaskin avulla voidaan selvittää ko. verkon aliverkon osoite ja yleislähetysosoite.
IPv4 Route Table
- Windows tietokone:
netstat -rn
tairoute print
=========================================================================== Network Destination Netmask Gateway Interface Metric 0.0.0.0 0.0.0.0 130.234.169.1 130.234.169.82 276 130.234.169.0 255.255.255.128 On-link 130.234.169.82 276 130.234.169.82 255.255.255.255 On-link 130.234.169.82 276 ===========================================================================
- Koneen osoite: 130.234.169.82
- Aliverkon osoite: 130.234.169.0/25
- Aliverkkomaski: 255.255.255.128
IPv4 reititys - kohde samassa verkossa
=========================================================================== Aliverkkomaskit Verkko-osoite 11111111 11111111 11111111 11111111 130.234.169.82 11111111 11111111 11111111 10000000 130.234.169.0 00000000 00000000 00000000 00000000 0.0.0.0 ===========================================================================
- Lähetetään osoitteeseen: 130.234.169.47 (10000010 11101010 10101001 00101111)
- Käydään reititystaulun kaikki rivit läpi
- Tehdään binäärinen AND operaatio kohdeosoitteen ja tarkasteltavan rivin maskin kanssa
- Verrataan yllä saatua tulosta tarkasteltavan rivin verkko-osoitteeseen
- Reititys bittien vastaavuuden perusteella
- Jos usealla verkko-osoitteella sama määrä, valitaan se jonka maskissa on eniten ykkösiä
IPv4 reitin valinta - kohde samassa verkossa
=========================================================================== 11111111 11111111 11111111 11111111 255.255.255.255 AND 10000010 11101010 10101001 00101111 130.234.169.47 10000010 11101010 10101001 00101111 130.234.169.47 verrataan 10000010 11101010 10101001 01010010 130.234.169.82 ---> 26 bittiä samoja ===========================================================================
=========================================================================== 11111111 11111111 11111111 10000000 255.255.255.128 AND 10000010 11101010.10101001 00101111 130.234.169.47 10000010 11101010.10101001 00000000 130.234.169.0 verrataan 10000010 11101010.10101001 00000000 130.234.169.0 ---> 32 bittiä (kaikki) samoja ===========================================================================
=========================================================================== 00000000 00000000 00000000 00000000 0.0.0.0 AND 10000010 11101010 10101001 00101111 130.234.169.47 00000000 00000000 00000000 00000000 0.0.0.0 verrataan 00000000 00000000 00000000 00000000 0.0.0.0 ---> 32 bittiä (kaikki) samoja ===========================================================================
- Paketti lähetetään 130.234.169.0 verkkoon, koska sen aliverkkomaskissa enemmän ykkösiä
- Koska kyseisellä rivillä ei ole gateway sarakkeessa IP osoitetta, on kohde siis samassa verkossa
=========================================================================== Network Destination Netmask Gateway Interface Metric 0.0.0.0 0.0.0.0 130.234.169.1 130.234.169.82 276 130.234.169.0 255.255.255.128 On-link 130.234.169.82 276 130.234.169.82 255.255.255.255 On-link 130.234.169.82 276 ===========================================================================
- Seuraavaksi selvitetään kohteen (130.234.169.47) linkkikerroksen osoite (MAC osoite)
- Linkkikerroksen osoite selvitetään ARP protokollalla
- Ja kapsuloidaan verkkokerroksen paketti linkkikerroksen kehykseen
IPv4 reititys - kohde eri verkossa
=========================================================================== Aliverkkomaskit Verkko-osoite 11111111 11111111 11111111 11111111 130.234.169.82 11111111 11111111 11111111 10000000 130.234.169.0 00000000 00000000 00000000 00000000 0.0.0.0 ===========================================================================
- Lähetetään osoitteeseen: 130.234.169.147 (10000010 11101010 10101001 10010011)
- Koska meillä on 130.234.169.0/25 verkko, niin 147 on eri verkossa kuin 47
- Laite 'tietää' ylläolevan aliverkkomaskin perusteella
- 130.234.169.0/25: 130.234.169.0 - 130.234.169.127
- 130.234.169.128/25: 130.234.169.128 - 130.234.169.255
IPv4 reitin valinta - kohde eri verkossa
=========================================================================== 11111111 11111111 11111111 11111111 255.255.255.255 AND 10000010 11101010 10101001 10010011 130.234.169.147 10000010 11101010 10101001 10010011 130.234.169.147 verrataan 10000010 11101010 10101001 01010010 130.234.169.82 ---> 29 bittiä samoja ===========================================================================
=========================================================================== 11111111 11111111 11111111 10000000 255.255.255.128 AND 10000010 11101010.10101001 10010011 130.234.169.147 10000010 11101010.10101001 10000000 130.234.169.128 verrataan 10000010 11101010.10101001 00000000 130.234.169.0 ---> 31 bittiä samoja ===========================================================================
=========================================================================== 00000000 00000000 00000000 00000000 0.0.0.0 AND 10000010 11101010 10101001 10010011 130.234.169.147 00000000 00000000 00000000 00000000 0.0.0.0 verrataan 00000000 00000000 00000000 00000000 0.0.0.0 ---> 32 bittiä (kaikki) samoja ===========================================================================
IPv4 reitin valinta - kohde eri verkossa
=========================================================================== Network Destination Netmask Gateway Interface Metric 0.0.0.0 0.0.0.0 130.234.169.1 130.234.169.82 276 130.234.169.0 255.255.255.128 On-link 130.234.169.82 276 130.234.169.82 255.255.255.255 On-link 130.234.169.82 276 ===========================================================================
- Paketti lähetetään 0.0.0.0 verkkoon, eli oletusreittiin (koska sen vertailussa eniten samoja bittejä edellisellä kalvolla)
- Koska kyseisellä rivillä on gateway sarakkeessa oletusreitittimen osoite, on kohde siis eri verkossa
- Seuraavaksi selvitetään reitittimen (130.234.169.1) linkkikerroksen osoite (MAC osoite)
- Linkkikerroksen osoite selvitetään ARP protokollalla
- Ja kapsuloidaan verkkokerroksen paketti linkkikerroksen kehykseen
IP hierarkinen reititys - CIDR
- Aliverkkomaski
- FUNET (AS1741) mainostaa (Announced Prefix): Meillä verkko
130.234.0.0/16
(osoitteet130.234.0.0 - 130.234.255.255
), reititys via AS1741 - AS naapurit päivittää oman verkkonsa reitittimien reititystaulut (reititysprotokollalla)
- AS naapurit mainostaa (mahdollisesti) omille naapureilleen (riippuu liikenteen laskutuksesta), esim. Nordunet (AS2603): Meillä reitti verkkoon
130.234.0.0/16
polku AS2603 AS1741 - TeliaSonera (AS1299) mainostaa: Meillä reitti verkkoon
130.234.0.0/16
polkuAS1299 AS2603 AS1741
- Jos reitti neljään verkkoon (1)
130.232.0.0/16
, (2)130.233.0.0/16
, (3)130.234.0.0/16
, (4)135.235.0.0/16
- Niin voisi mainostaa "meillä reitti verkkoon
130.232.0.0/14
", mikä sisältää yo. verkot - Kun paketti pitää välittää yliopiston verkkoon (esim.
130.234.4.129
), Internet-operaattorit tietävät mainosten perusteella mitä reittejä kohteeseen on olemassa ja Internet-operaattorit joiden läpi reitti kulkee - Mainosten tunnetun alkuosan pituus kasvaa kun lähestytään kohdetta, esim.
- JYU verkossa reititystaulussa voisi olla 130.234.0.0/17 (130.234.0.0 - 130.234.127.255) ja 130.234.128.0/17 (130.234.128.0 - 130.234.255.255)
- FUNET (AS1741) mainostaa (Announced Prefix): Meillä verkko
Mistä niitä IPv4 osoitteita saa?
- IANA jakaa osoitelohkot alueellisille rekistereille
- 3.2.2011 jakoi viimeiset viisi IPv4 osoitelohkoa, Last
/8
, noin 16 miljoona osoitetta - Alueellisilla rekistereillä oma politiikka termille 'osoitteet loppui'
- 3.2.2011 jakoi viimeiset viisi IPv4 osoitelohkoa, Last
- Alueelliset rekisterit - Regional Internet Registry (RIR)
- RIPE Network Coordination Centre (RIPE NCC)
- Käytti osoitelohkonsa toisena loppuun 14.9.2012
- Osoitteiden loppuminen määritelty 'kun aletaan jakaa osoitteita viimeisestä
/8
lohkosta' - Jakaa nyt rajoitetusti osoitteita viimeisestä
/8
lohkostaan - Saanut lisää osoitteita käyttöönsä kevään 2014 ja kevään 2015 välillä
- RIPE Network Coordination Centre (RIPE NCC)
- American Registry for Internet Numbers (ARIN)
- Huhtikuun 2014 jälkeen jakaa osoitteita viimeisestä
/8
lohkostaan - Osoitteiden loppuminen määritelty 'kun osoitteet loppuu viimeisestä
/8
lohkosta' - Osoitteet loppui kokonaan 24.9.2015
- Huhtikuun 2014 jälkeen jakaa osoitteita viimeisestä
- Alueelliset rekisterit - Regional Internet Registry (RIR) - jatkuu
- Asia-Pacific Network Information Centre (APNIC)
- Käytti osoitelohkonsa ensimmäisenä loppuun (15.4.2011)
- Osoitteiden loppuminen määritelty 'kun aletaan jakaa osoitteita viimeisestä
/8
lohkosta' - Jakaa nyt rajoitetusti osoitteita viimeisestä
/8
lohkostaan
- Asia-Pacific Network Information Centre (APNIC)
- Latin American and Caribbean Internet Address Registry (LACNIC)
- Keväällä 2014 jakoi osoitteita normaalisti kunnes n. 8 miljoonaa osoitetta jäljellä (last
/9
) - Käytti osoitelohkonsa loppuun 10.6.2014
- Osoitteiden loppuminen määritelty 'kun aletaan jakaa osoitteita viimeisestä
/9
lohkosta' - Jakaa nyt rajoitetusti osoitteita viimeisestä
/9
lohkostaan
- Keväällä 2014 jakoi osoitteita normaalisti kunnes n. 8 miljoonaa osoitetta jäljellä (last
- African Network Information Centre (AfriNIC)
- 3.4.2017 alkoi jakaa IP osoitteita viimeisestä /8 lohkostaan - 'IP osoitteiden loppumisen vaihe 1 alkoi'
- Jakaa nyt rajoitetusti osoitteita viimeisestä
/8
lohkostaan
IPv4 osoitteiden loppumisen eteneminen
Saako euroopassa enää IPv4 osoitteita?
- RIPE Network Coordination Centre (RIPE NCC)
- Käytti vapaat osoitteensa loppuun alkamalla allokoimaan osoitteita viimeisestä
/8
lohkosta - Jakaa vain yhden
/22
(1024 IPv4 osoitetta) kullekin LIR (Local Internet registry):lle - Myönnetään vain jos hakijalla on olemassa oleva IPv6 allokaatio
- Enää ei ole mahdollista (uuden) operaattorin olla yhteydessä Internettiin vain IPv4 tekniikalla
- Yksi
/16
lohko varataan IPv4 → IPv6 siirtymistä varten - Kaikkien operaattoreiden tulisi ottaa IPv6 käyttöön
- Käytti vapaat osoitteensa loppuun alkamalla allokoimaan osoitteita viimeisestä
IPv4 vs IPv6
- Erot
- osoite
- kehysrakenne yksinkertaistettu
- poistettu harvoin käytettyjä kenttiä
- Vähentää pakettien käsittelyaikaa reitittimillä
- ei DHCP:tä
- IPv6 kykenee automaattisesti generoimaan itselleen osoitteen
- ei erillisiä yleislähetysosoitteita
Siirtymäkausi IPv4 → IPv6
- IPv6 liikenne joudutaan tunneloimaan IPv4 verkon yli
- Tunnelointimenetelmiä
- 6TO4 - IPv6 liikenne kapsuloidaan IPv4 paketin hyötykuormaksi
- Terodo - IPv6 liikenne laitetaan UDP paketin hyötykuormaksi, joka välitetään IPv4:llä
- Muita siirymävaiheen menetelmiä
- Tunnelointimenetelmistä tulee luopua kun Internet on kokonaan siirtynyt käyttämään IPv6 protokollaa
Linkkikerros - Teoria 2
- Johdanto ja palvelut
- Monipääsyprotokollat
- Linkkikerroksen osoitteet
Linkkikerroksen palvelut
- "Linkkikerros kuljettaa verkkokerroksen datan linkin yli seuraavalle (verkko)laitteelle, ja tekee tämän jokaisen linkin osalta vaikka linkkiteknologia vaihtuisi, jottei verkkokerroksen tarvitse siitä huolehtia"
- Yksittäisiä palveluita, joilla yo. toteutetaan
- Kehystys ja linkille pääsy
- Kapsuloidaan ylemmän kerroksen data (lisätään header/trailer)
- Jos jaettu media, niin kanavanvaraus/kanavalle(linkille) pääsy
- MAC osoite, linkkikerroksen osoite
- Luotettavuus linkillä kahden laitteen välillä
- Käytetään harvoin jos linkillä pieni virhetodennäköisyys
- Käytetään esim. langattomilla linkeillä
- Miksi luotettava tiedonsiirto sekä kuljetus että linkkikerroksella?
- Kehystys ja linkille pääsy
- Vuonvalvonta
- Virheiden havaitseminen
- Virheiden korjaaminen
- half-duplex vs. full-duplex
Monipääsylinkit
- Kaksi linkkityyppiä
- point-to-point (Pisteestä-pisteeseen, kahden laitteen välinen)
- Linkkiä käyttää vain kaksi laitetta
- Monipääsylinkki, jos half-duplex, eli kaksi laitetta ei voi käyttää linkkiä yhtäaikaa
- Esimerkkejä
- ADSL - Full-duplex, ala- ja ylälinkin liikenne eri taajuuksilla
- Kytketty Ethernet (yhdistetään kytkimeen - switch), yleensä full-duplex (voi olla myös half-duplex 10 - 100 Mbps)
- GSM piirikytkentäinen datayhteys HSCSD, full-duplex, ala- ja ylälinkin liikenne eri taajuuksilla
- Jaettu langallinen tai langaton (monipääsylinkki)
- Linkkiä voi käyttää useat laitteet
- Esimerkkejä
- Vanha Paksu Ethernet
- Kytketty Ethernet (yhdistetään keskittimeen - hub)
- WLAN
- Matkapuhelinverkon datayhteys, GSM pakettikytkentäinen GPRS → 4G
- point-to-point (Pisteestä-pisteeseen, kahden laitteen välinen)
Monipääsytekniikat ja -protokollat
- Kolme kategoriaa
- Kanavan jakaminen
- Jaetaan tiedonsiirtokanava pienempiin paloihin (esim. aika tai taajuus)
- Pala on ainoastaan yhden laitteen käytössä
- Koodilla jakaminen poikkeaa siten että kanava kaikkien yhtäaikaisessa käytössä
- Hajasaanti (Random Access)
- Kaikki laitteet käyttävät (koko) kanavaa vapaasti
- Hyväksytään törmäykset (useampi kuin yksi yrittää lähettää samaan aikaan)
- Toivutaan törmäyksistä
- Vuorottelu
- Jokainen laite lähettää vuorollaan
- Vuoro kiertää laitteelta toiselle
- Vuoron pituus voi riippua lähetettävästä datan määrästä
- Kanavan jakaminen
Kanavan jakaminen (x Division Multiple Access)
Ekstra: FDMA vs. FDM vs. FDD
- Frequency-Division Multiple Access (FDMA)
- Taajuusjakoa käytetään usean käyttäjän linkillepääsyyn
- Linkkikerroksen kanavan jakamista
- Monipääsytekniikka
- Frequency-Division Multiplexing (FDM)
- Taajuusjaolla jaetaan järjestelmän taajuuskaista pienemmiksi paloiksi
- Tai kun taajuuskaista jaetaan eri järjestelmien kesken
- Fyysisen kerroksen kanavan jakamista
- Esim. GSM taajuuskanavat
- Frequency-Division Duplexing (FDD)
- Lähetys ja vastaanotto on jaettu erillisiin taajuusalueisiin, jotta saadaa Full-duplex kommunikaatio
- Fyysisen kerroksen kanavan jakamista
- GSM taajuuskanavien varaaminen erikseen ylä- ja alalinkille
- Vastaavasti menee aikajaolle
Hajasaantiprotokollat
- Ei varata resursseja etukäteen
- Jos on lähetettävää, niin lähetetään täydellä nopeudella
- Käytetään sekä langallisissa (Ethernet) että langattomissa (WLAN) lähiverkoissa
- Hajasaantiprotokolla määrittelee
- miten havaitaan törmäykset
- miten selvitään törmäyksistä
- Esimerkkejä: (Slotted) Aloha, CSMA, CSMA/CD, CSMA/CA
Vuorotteluprotokollat
- Kaksi kategoriaa
- Polling: Isäntälaite kyselee orjalaitteilta "onko lähetettävää" ja jakaa lähetysvuoroja tarpeen mukaan
- Esimerkkejä: Bluetooth
- Token passing: "Lähetyslupa (token)" -viestiä välitetään laitteelta toiselle
- Esimerkkejä: Token Ring
- Polling: Isäntälaite kyselee orjalaitteilta "onko lähetettävää" ja jakaa lähetysvuoroja tarpeen mukaan
Monipääsymenetelmien vertailua
- Kanavan jakaminen
- FDMA ja TDMA
- Jakaa kanavan tehokkaasti ja reilusti suurella kuormalla
- Pienellä kuormalla tehoton: Viive kanavalle pääsyssä
- Pienellä kuormalla vain osa kanavista käytössä
- CDMA
- koko kanava käytössä ja jaetaan aktiivisten käyttäjien kesken
- kun tulee lisää aktiivisia käyttäjiä niin kaikkien tiedonsiirtonopeus pienenee
- FDMA ja TDMA
- Hajasaantiprotokolla
- Tehokas pienellä kuormalla: yksi laite voi käyttää koko kanavan kapasiteetin
- Suuri kuorma: törmäyksistä aiheutuu uudelleenlähetyksiä ja viivettä
- Vuorotteluprotokolla
- Ylläolevien parhaat ominaisuudet, mutta
- viivettä vuoron jakamisen vuoksi
- Kanavan kapasiteettia 'tuhlataan' vuoronjakamiseen, koko kapasiteetti ei datansiirron käytössä
- Single point of failure: Isäntälaite tai token viesti
- Wikipedia: Channel access methods and Media access control (MAC)/Multiple-access protocols
Linkkikerroksen osoitteet
- MAC (tai LAN tai Fyysinen tai Ethernet tai Laite) -osoite
- Tehtävä: Käytetään kehyksen viemiseen 'paikallisesti' liitynnältä toiselle (fyysisesti kytketylle) liitynnälle (saman IP-verkon sisällä)
- 48 bittinen MAC osoite (useimmissa lähiverkoissa), poltettu verkkokorttiin ROM muistiin (yleensä)
- Esim.
00-24-E8-42-9E-89
, (heksadesimaalimuodossa), missä 8 bittiset tavut erotettu toisistaan '-' -merkillä - toinen esitystapa:
00:24:E8:42:9E:89
ja hyvin harvinainen esitystapa:0024.E842.9E89
- MAC osoitteiden allokoinnista vastaa IEEE
- Standardoi myös linkki- ja fyysisen kerroksen tekniikoita, jotka käyttävät MAC osoitteita
- Esim. IEEE 802.3 ja IEEE 802.11
- (Verkkokortti)valmistajat ostavat MAC osoitteita
Verkko- ja linkkikerroksen osoitteista
- Analogia
- MAC osoite: sosiaaliturvatunnus
- IP osoite: postiosoite + nimi
- Posti/IP -osoite: Jyväskylän yliopisto (130.234.x.x), Tietoliikennelabra (x.x.169.x), Ari Viinikainen (x.x.x.82)
- Sosiaaliturvatunnus/MAC: Jokin menetelmä (henkkarit/ARP) liittää yo. informaation henkilöön/tietokoneeseen
- MAC osoite ei ole hierarkinen: osoite voidaan siirtää verkosta toiseen
- IP osoite on hierarkinen, osoitetta ei voida siirtää verkosta toiseen
ARP (Address Resolution Protocol)
- Who has 130.234.169.82? Tell 130.234.169.1
- ARP selvittää linkkikerroksen osoitteen laitteelle, jolle paketti pitää välittää
- Posti tuo kirjeen:
- Kysyy käytävällä: Missä on "Ari Viinikainen, AgC334.4, University of Jyväskylä, Finland" (vertaa IP)
- Minä huudan: täällä, henkilötunnus xxxxxx-yyyy
- Posti kirjoittaa henkilötunnuksen kirjekuoreen
- Posti tuo kirjeen ovelta ovelle ja huoneessa olijat tarkastaa oliko siinä oma henkilötunnus
- Minä tarkistan että osoitetiedot ja henkilötunnus on oikein, ennen kuin avaan kirjeen
- Tähän loppui Teoria 2 osio
Teoria 3
Teoria 3 kuljetuskerros
- TCP yhteyden muodostus ja lopetus
- ymmärtää tilakaavion suhde protokollan toimintaan
- Luotettava tiedonsiirto
- Tehokas luotettava tiedonsiirto
- TCP Vuonvalvonta
- TCP ruuhkanhallinta
TCP yhteyden muodostus, lopetus sekä tilat
Luotettava tiedonsiirto
- Sovellus omaan testaamiseen
- Kurosen ja Ross:n Kuljetuskerroksen kalvot 3-21 - 3-41
- Luotettavan tiedonsiirtoprotokollan pitää ratkaista
- Kuinka toivutaan virheellisestä datapaketista?
- Lisätään tarkistussumma jolla havaitaan virheet
- Lisätään kontrolliviesti(t), joilla annetaan palautetta virheistä tai virheettömyydestä
- Kuinka toivutaan virheellisestä kuittauspaketista?
- Lähetetään paketti uudestaan - mutta mitä jos onkin duplikaatti?
- Lisätään sekvenssinumerointi, jolla tunnistetaan duplikaattipaketit
- Kuinka toivutaan kadonneesta datapaketista (tai kuittauspaketista)?
- Lisätään datan lähettäjälle ajastin, joka laukeaa jos ei saada kuittausta
- Ajastimen lauetessa lähetetään datapaketti uudestaan
- Jos datapaketti oli kadonnut on ongelma korjattu
- Jos kuittauspaketti oli kadonnut, vastaanottaja saa duplikaatin josta selvitään sekvenssinumeroinnilla
- Kuinka toivutaan viivästyneestä kuittauspaketista?
- Jos viive on suurempi kuin ajastimen arvo, tulee turha datan uudelleenlähetys
- Lähettäjä vastaanottaa duplikaattikuittauksen ja luulee että data paketti on kadonnut
- Koska kuittauspakettien duplikaatteja ei voi tunnistaa, lähetetään varulta datapaketti uudestaan
- Sekvenssinumeroilla tunnistetaan datapakettien duplikaatit
- Viive voi vaihdella paljonkin, tarvitaan menetelmä viiveen arvioimiseen ja ajastimen arvon päivittämiseen
- Kuinka toivutaan virheellisestä datapaketista?
- rdt 3.0 on toimiva luotettava tiedonsiirtoprotokolla, mutta hidas!!!
Go Back N vs. Selective repeat
- Putkitettu protokolla: saa lähettää seuraavan paketin ennen kuin edelliseen on saatu kuittaus
- Kuinka monta pakettia saa lähettää (ennen kuin pitää pysähtyä odottamaan kuittausta)? → Sen määrää Lähetysikkunan koko
- Visualizing the Go Back N and the Selective Repeat protocol
TCP Vuonvalvonta - Flow control
- Vastaanottajan toimenpide
- Vastaanottaja estää lähettäjää lähettämästä liian nopeasti
- Mainostetaan (päivitetään) vastaanottoikkunan kokoa lähettäjälle
- Visualizing the tcp flow control
- TCP vuonvalvonta on eri asia kuin TCP ruuhkanhallinta - Congestion control
- Ruuhkanhallinta on lähettäjän toimenpide, ja käsitellään ruuhkanhallintaa seuraavaksi
TCP Ruuhkanhallinta - Slow Start
Slow Start
Aloitetaan lähetys hitaasti
Kasvatetaan nopeutta eksponentiaalisesti
Jos paketti katoaa (timeout)
- uudelleen lähetetään puuttuva paketti
- asetetaan raja-arvo puoleen saavutetusta nopeudesta
- aloitetaan Slow Start vaiheen alusta
- eli tiedonsiirtonopeus pudotetaan minimiin
Jos saavutetaan raja-arvo, siirrytään Congestion Avoidance vaiheeseen
TCP Ruuhkanhallinta - Congestion Avoidance
- Congestion Avoidance
- Kasvatetaan nopeutta lineaarisesti
- Jos paketti katoaa (timeout)
- uudelleen lähetetään puuttuva paketti
- asetetaan raja-arvo puoleen saavutetusta nopeudesta
- aloitetaan Slow Start vaiheen alusta
- eli tiedonsiirtonopeus pudotetaan minimiin
- Congestion avoidance vaiheen visualisointi
TCP Ruuhkanhallinta - Fast Retransmit (TCP Tahoe)
- Fast Retransmit
- Jos paketti katoaa (timeout)
- uudelleen lähetetään puuttuva paketti (sekvenssinumero on dublikaattikuittauksen sekvenssinumerosta seuraava)
- asetetaan raja-arvo puoleen saavutetusta nopeudesta
- aloitetaan Slow Start vaiheen alusta
- eli tiedonsiirtonopeus pudotetaan minimiin
- Uutta: Jos paketti oletetaan kadonneeksi (vastaanotetaan 3 kpl duplikaatti kuittauksia) → toimitaan kuten paketti olisi kadonnut (timeout)
- Jos paketti katoaa (timeout)
TCP Ruuhkanhallinta - Fast Recovery (TCP Reno)
- Fast Recovery
- Jos paketti katoaa (timeout)
- uudelleen lähetetään puuttuva paketti
- asetetaan raja-arvo puoleen saavutetusta nopeudesta
- aloitetaan Slow Start vaiheen alusta
- eli tiedonsiirtonopeus pudotetaan minimiin
- Jos paketti oletetaan kadonneeksi (vastaanotetaan 3 kpl duplikaatti kuittauksia)
- uudelleen lähetetään puuttuva paketti
- asetetaan raja-arvo puoleen saavutetusta nopeudesta
- Uutta: aloitetaan Congestion Avoidance vaiheen alusta
- Uutta: eli tiedonsiirtonopeus puolitetaan saavutetusta nopeudesta
- Jos paketti katoaa (timeout)
Teoria 3 - Verkkokerros
- DHCP
- NAT
- Mobile IP vs. liikkuva kännykkä
- Reititysprotokollat
DHCP toiminta
- DHCP kommunikaatio, oletuksena kaikki viestit lähetetään yleislähetysosoitteeseen 255.255.255.255
- Asiakas - DHCP palvelimen etsintä (DHCP Discover)
- Palvelimet - IP osoitteen 'vuokra' -tarjouksia (DHCP offer)
- Asiakas - IP osoitteen pyytäminen (DHCP request)
- Palvelin - IP osoitteen kuittaus (DHCP acknowledgement)
- Asiakas voi pyytää vastauksen täsmälähetyksenä, palvelimen asetuksista riippuu tuetaanko täsmälähetyksiä
- DHCP ja DHCPv6
- DHCP portit: 67 (palvelin), 68 (asiakas), 546 (IPv6 asiakas), 547 (IPv6 palvelin)
- IPv6 asiakkaat luo itse IP osoitteen käyttämällä Tilatonta autokonfiguraatiota
- DHCPv6 protokollaa voidaan (tarvittaessa) käyttää Tilattoman autokonfiguraation parametrien välittämiseen
DHCP viestit
NAT (Network Address Translation)
- NAT (Network Address Translation) - Basic NAT
- Reititin muuttaa lähtevien pakettien lähettäjän IP osoitteen
- Jokainen privaatti IP:tä käyttävä laite saa oman julkisen IP osoitteen
- Vaatii paljon IP osoitteita (ostetaan ISP:ltä)
- Network Address and Port Translation (NAPT) - Dynamic NAT
- Reititin muuttaa myös lähettäjän porttinumeron
- Tällöin riittää vain yksi IP osoite
- Yleisin versio, ja nykyään NAT termillä yleisesti tarkoitetaan juuri NAPT:tä
- Port Forwarding - Static NAT
- Reititin tallentaa pysyvästi porttimuunnoksen (sallii ulkopuoliset yhteydet porttiin)
- Käytetään kun kommunikaatio vaatii NAT:n takana olevan porttinumeron tuntemusta
- Networking Essentials - NAT/PAT animation
NAT:n hyödyt ja haitat
- Hyödyt
- Säästää julkisia IPv4 osoitteita
- Parantaa tietoturvaa
- Sisäverkon konfiguraatiota ja osoitteita voi vapaasti muuttaa
- Pienentää reitityksen tarvetta
- Haitat
- Kaikki protokollat ja sovellukset eivät toimi NAT:in läpi ilman erillisiä määrityksiä
- NAT viivästää omalta osaltaan IPv6:een siirtymistä
- NAT rikkoo kerrosarkkitehtuurin periaatetta, reitittimien ei tulisi koskea kuljetuskerrokseen
- NAT:ista aiheutuu viivettä, prosessori- ja muistikuormaa reitittimessä, koska jokaisesta paketista pitää muuttaa osoitteita ja laskea tarkistussummia uudestaan
Mobile IP
- Termejä
- Kotiosoite - pysyvä osoite (permanent address)
- Kotiagentti (Home Agent, HA)
- Vierasosoite - (Care-of-Address, CoA)
- Vierasagentti (Foreign Agent, FA)
- Kotisolmu - (Home Node, HN)
- Kommunikaatiokumppani - (Correspondant Node, CN)
- Kolmioreititys - epäsuora reititys
- Suora reititys
Mobile IP vs. GSM puhelun reititys
Reititysalgoritmit - vertailu
Yhteystila | Etäisyysvektori | Polkuvektori | |
Algoritmi | Dijkstra | Bellman–Ford | Ei etsitä lyhintä reittiä |
Esimerkki | OSPF | RIP | BGP |
Kommunikoi | kaikkien reitittimien kanssa | naapuri reitittimien kanssa | naapuri-AS reitittimien kanssa |
Käyttökohde | suuri, hierarkinen verkko | pieni, ei hierarkinen verkko | AS:ien välinen reititys |
Laskenta-aika | on kriittinen parametri | Ei ole kriittinen parametri | Ei ole kriittinen parametri |
Ylläpito | Vaati laajempaa verkkotietämystä | Ei vaadi paljoa verkkotietämystä | Tarvitaan tietämystä myös ISP-sopimuksista |
Topologia | Tunnetaan verkon koko topologia | Tiedetään minkä naapurin kautta kohteet saavutetaan | Tiedetään polku kohdeverkkoon (ei välttämättä lyhin) |
Päivitykset | Muutosten aiheuttamat (muuttunut tieto) | Periodiset (koko reititystaulu) | Muutokset polussa (uusi mainos) |
BGP reititystaulu
- Tietoja CIDR raportissa
- Internetin Globaalin reititystaulun koko toukokuussa 2016 on noin 600000 reittiä
- Eli reittejä joita AS:t BGP protokollalla mainostavat toisille AS:lle
- Reitit ovat reittejä joko IPv4 tai IPv6 verkkoihin
- AS:n reunareitittimet ylläpitävät BGP reititystaulua
- mainostavat naapureilleen tuntemiaan reittejä
- päivittävät oman taulunsa naapureiden mainosten ja oman politiikkansa mukaan
- AS:n muut reitittimet hoitavat AS:n sisäistä reititystä
Reititysalgoritmien animaatioita
- Dijkstra'n algoritmin animaatio
- Etäisyysvektoriprotokollan animaatio
- Bellman-Ford, Dijikstra ja muita visualisointeja
- BGPlay - Kokeile vaikka AS1741 (Funet)
Reititysalgoritmit
Teoria 3 - Linkkikerros
- ARP ja MAC osoitteet
- Reititin vs. kytkin vs. keskitin
- Ethernet CSMA/CD ja WLAN CSMA/CA
- Virheen havaitseminen ja korjaus
ARP ja MAC osoitteet
- Address Resolution Protocol (ARP)
- Jotta IP paketti voidaan välittää linkkikerroksella oikealle laitteelle
- Selvittää IP osoitetta vastaavan MAC osoitteen
- tai
- Reitittimen MAC osoitteen, jos IP osoite on eri verkossa
- Reititys ja MAC osoitteet
Ethernet keskitin (tai eng. hub)
- Keskitin on Fyysisen kerroksen laite
- forwardoi Ethernet kehyksiä, kaikkiin liityntöihin
- Läpinäkyvä - tietokoneet tai reitittimet eivät näe keskitintä
- Käytetään yhdistämään useampia laitteita reitittimeen
- Laitteet sijaitsevat samassa törmäysalueessa
- Myös Toistin (eng. repeater) on fyysisen kerroksen laite
- Vahvistaa heikentynyttä signaalia pitkillä kaapeliväleillä (tai myös langattomasti)
- Läpinäkyvä - tietokoneet tai reitittimet eivät näe toistinta
- Käytetään pidentämään laitteiden etäisyyttä
- Keskittimen toiminta
Ethernet kytkin
- Linkkikerroksen laite
- tallentaa ja forwardoi Ethernet kehyksiä
- Tutkii saapuvan paketin MAC osoitteita
- Läpinäkyvä - tietokoneet tai reitittimet eivät näe kytkintä
- Käytetään yhdistämään useampia laitteita reitittimeen
- Kytkimet oppivat itse MAC osoitteiden sijainnin
- Laitteet sijaitsevat eri törmäysalueissa
- Viisaampi laite kuin keskitin
- Kytkimen toiminta
Reititin vs. kytkin vs. keskitin
- Reititin - Router
- Verkkokerroksen laite
- Välittää paketteja verkkokerroksen osoitteen perusteella
- Tarvitsee reititysprotokollia osoitteiden sijaintien oppimiseen, tai asetukset tehdään manuaalisesti
- Kytkin - Switch
- Linkkikerroksen laite
- Välittää paketteja linkkikerroksen osoitteen perusteella
- Oppii itse osoitteiden sijainnin lähetettyjen pakettien perusteella
- Silta - Bridge: muuten samanlainen mutta liityntöihin kytketään kokonaisia verkkoja. Ei juurikaan käytetä enää
- Keskitin - Hub
- Fyysisen kerroksen laite
- Välittää paketteja jokaiseen linkkiin (fyysiselle siirtotielle) riippumatta osoitteesta
- Toistin - Repeater: Vahvistaa fyysisen kerroksen signaalia ja välittää sen eteenpäin
Verkkolaitteet tänään
- Reititin - Layer 4 Router
- NAT ja palomuuri toimii osin kuljetuskerroksella
- Kytkin - Multilayer Switch
- Kytkimeen on lisätty useita eri ominaisuuksia
- Layer 3 switching, reititys toteutetaan laitteistolla (ASIC), reitittimessä ohjelmistolla
- Layer 4-7 switching, esim. load balancing, NAT, VPN, web switch
- Kytkin - Software-defined networking (SDN)
- Kytkimen kontrolli ja data osiot erotellaan
- Ohjelmallisesti muokataan kontrolliosaan sääntöjä yms. sille miten ja minne data välitetään data osion kautta
Ethernet CSMA/CD ja WLAN CSMA/CA
Carrier Sense Multiple Access | |||
---|---|---|---|
Step | Collision Detection (CD) | Collision Avoidance (CA) | Collision Avoidance with RTS/CTS |
1 | Kuunnellaan onko hiljaista | Kuunnellaan onko hiljaista | Kuunnellaan onko hiljaista |
2 | Jos ei, niin odotetaan, kunnes on hiljaista | Jos ei, niin odotetaan, kunnes on hiljaista | Jos ei, niin odotetaan, kunnes on hiljaista |
3 | Jos on, niin lähetetään | Jos on, niin lähetetään | Jos on, niin pyydetään lupaa lähettää |
4 | Kuunnellaan meneekö lähetys ilman häiriötä perille | Odotetaan kuittausta datapaketille | Jos pyynnöt törmäävät, odotetaan satunnainen aika ja mennään kohtaan 1 |
5 | Jos ei, niin on tapahtunut törmäys | Ei kuittausta, oletetaan törmäyksen tapahtuneen | Jos saadaan lupa lähettää, lähetetään |
6 | Odotetaan satunnainen aika ja mennään kohtaan 1 | Odotetaan satunnainen aika ja mennään kohtaan 1 | Jos ei saada lupaa, odotetaan satunnainen aika ja mennään kohtaan 1 |
Virheen havaitseminen ja korjaus
- Virheiden havaitseminen
- Lisätään ylimääräisiä bittejä (Data bitit + ylimääräiset bitit = koodisana)
- Databittejä ja ylimääräisiä bittejä tutkimalla voidaan havaita virheitä
- Yksinkertaisin: pariteettibitin lisääminen
- Pariteettiesimerkki (parillinen määrä ykkösiä)
00 → 000, 01 → 011, 10 → 101, 11 → 110
- Virheiden korjaus
- Lisätään ylimääräisiä bittejä
- Voidaan tulkita (jollain todennäköisyydellä) virheellisen viestin virheetön muoto
- Yksinkertaisin: toistetaan lähetettävää dataa
- Toistokoodiesimerkki (toistetaan jokainen bitti)
00 → 0000, 01 → 0011, 10 → 1100, 11 → 1111
Virheen havaitseminen ja korjaus - Hamming etäisyys
- Koodisanojen toisistaan eroavien bittien lukumäärä on koodisanojen välinen Hammingin etäisyys
- Olkoon meillä koodi, jossa on neljä hyväksyttyä koodisanaa:
000, 100, 001
ja111
- Esim. koodisanojen
000
ja111
välinen Hamming etäisyys on 3 - Esim. koodisanojen
000
ja001
välinen Hamming etäisyys on 1 - Koodin minimi Hamming etäisyys on koodin koodisanojen välinen pienin Hamming etäisyys
- Esimerkin tapauksessa minimi Hamming etäisyys on siis 1
Virheen havaitseminen ja korjaus - Minimi Hamming etäisyys
- Koodin minimi Hamming etäisyys määrittää koodin kyvyn havaita ja/tai korjata virheitä
- Jos minimi hamming etäisyys on \(\color{red}n\), niin
- \(\color{red}{n-1}\) bitin virheet voidaan havaita ja
- \(\color{red}{\frac{n-1}{2}}\) bitin virheet korjata
Virheen havaitseminen ja korjaus - Esimerkkejä
Databitit | Koodibitit | Koodisana |
---|---|---|
00 | 0 | 000 |
01 | 1 | 011 |
10 | 1 | 101 |
11 | 0 | 110 |
Minimi Hamming etäisyys = 2
Databitit | Koodibitit | Koodisana |
---|---|---|
0 | 0 | 00 |
1 | 1 | 11 |
Minimi Hamming etäisyys = 2
Databitit | Koodibitit | Koodisana |
---|---|---|
0 | 00 | 000 |
1 | 11 | 111 |
Minimi Hamming etäisyys = 3
Virheiden havaitseminen Internetissä
- Virheitä havaitaan monella kerroksella
- Linkkikerros
- Ethernet kehys
- CRC-32 tarkistussumma
- Vastaanottajan verkkolaite hylkää väärän tarkistussumman sisältävät kehykset
- Ethernet kehys
- Verkkokerros
- IPv4
- IPv4 tarkistussumma suojaa otsikkokenttiä
- Reitittimet tai vastaanottaja hylkää väärän tarkistussumman sisältävät kehykset
- IPv6
- Tarkistussumma poistettiin versiosta 6 reitittimien laskentakuorman minimoimiseksi
- Oletetaan että linkkikerros ja kuljetuskerros tarjoavat riittävän suojan virheiden havaitsemiselle
- IPv4
- Kuljetuskerros
- UDP
- UDP Tarkistussumma, joka suojaa hyötykuorman ja otsikko informaation sekä UDP että IP protokollien otsikkokentistä
- Vapaaehtoinen IPv4:n kanssa, pakollinen IPv6:n kanssa
- Vastaanottajan käyttöjärjestelmän verkkopino hylkää väärän tarkistussumman sisältävät
- TCP
- TCP Tarkistussumma, joka suojaa hyötykuorman ja otsikko informaation sekä UDP että IP protokollien otsikkokentistä
- Vastaanottajan käyttöjärjestelmän verkkopino hylkää väärän tarkistussumman sisältävät
- Uudelleen lähetykset joko ajastimen lauetessa tai kolmesta duplikaattikuittauksesta
- UDP
- Sovelluskerros
- Jos kuljetuskerroksella käytössä UDP, niin sovelluksen tarpeiden mukaan
- Linkkikerros
Lopuksi - Kaikki mitä tapahtuu www- sivun pyynnössä
These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.