VERKKOTEKNIIKKAA Sisältö: Johdatus aiheeseen. Mikä on tieto(kone)verkko ja miksi sellaisia on? Verkot ohjelmistonäkökulmasta. Mikä on protokolla, IP osoite, nimipalvelu jne ja mihin näitä tarvitaan? Verkot laitteistonäkökulmasta. Mitä kaikkea löytyy verkkokaapelin toisesta päästä ja miksi? Muuta aiheeseen etäisesti liittyvää. Asiakas/palvelin malli. Sähköposti. Timo Alatalo, timo.alatalo@tut.fi, TC207 1 TTY Ohjelmistotekniikka
Mikä on tietokoneverkko? Tietokoneiden tai tietokoneiden kaltaisten laitteiden muodostama kokonaisuus, jossa laitteet pystyvät keskustelemään keskenään. Tietokoneverkko vaatii (näistä lisää myöhemmin): "Fyysisen" yhteyden koneiden välillä (laitteisto, siirtotie). "Henkisen" yhteyden koneiden välillä (ohjelmisto, protokollat ja koneiden nimeäminen/numerointi). Timo Alatalo, timo.alatalo@tut.fi, TC207 2 TTY Ohjelmistotekniikka
Miksi on tietokoneverkkoja? Tietoverkot vähentävät ihmisen tarvetta liikkua: Mahdollistaa tiedon siirtymisen paikasta toiseen napin painalluksella (email, www, uutisryhmät, ryhmäkalenterit,...). Ryhmätyöskentely, kommunikointi yrityksen sisällä. Mahdollistavat resurssien hajauttamisen: Yhteiset tulostimet, joille voi tulostaa kaikilta verkon koneilta. Kustannussäästöt, kun jokainen ei tarvitse omaa tulostinta. Yhteinen levytila, joka näkyy kaikille verkon koneille. Helpompi varmuuskopiointi, ryhmätyöskentely, jne... Yhteiset ohjelmistot, joita voi käyttää kaikilta verkon koneilta. (Ohjelma tarvitsee asentaa vain kerran vrt. ohjelma tarvitsee asentaa kaikille koneille erikseen.) Mahdollistaa yhteiset dokumenttipohjat yms. Helpottaa ylläpidon työtä: Usein konetta voidaan ylläpitää verkon kautta. Timo Alatalo, timo.alatalo@tut.fi, TC207 3 TTY Ohjelmistotekniikka
Verkkojen varjopuolia? Verkko helpottaa väärinkäyttöä: Verkon kautta toisen tietoihin (tietokoneelle) on helppo murtautua. Usein murrettuja koneita käytetään hämäräperäisiin tarkoituksiin. Sähköposti mahdollistaa tehokkaan leviämiskanavan haittaohjelmille (esim virukset, phishing viestit yms). Vaatii paljon asiantuntemusta ylläpidolta: Verkon laitteiden ylläpito, osoite ja nimiavaruuksien hallinta, verkkoon kytkettyjen laitteiden tietoturvan varmistaminen ja ylläpito jne. Riippuvaisuus verkosta. Monen ihmisen työt saattavat keskeytyä, mikäli verkko ei toimi. Timo Alatalo, timo.alatalo@tut.fi, TC207 4 TTY Ohjelmistotekniikka
"Henkinen" yhteys protokollat Jotta tietokoneverkko toimisi, pitää verkon koneiden puhua samaa kieltä. Tälläisiä kieliä kutsutaan protokolliksi. Protokollat jaetaan eri tasoihin (ns.osi malli). Alimman tason protokollat vastaavat bittien kuljettamisesta siirtotiellä. Ylemmän tason protokollat vastaavat "tiedon" välittämisestä sovellukselta toiselle. Protokollat muodostavat ns. protokollaperheitä, joista tunnetuin on Internetissä käytetty TCP/IP. Timo Alatalo, timo.alatalo@tut.fi, TC207 5 TTY Ohjelmistotekniikka
TCP/IP protokollaperhe Kokoelma Internetissä käytettyjä protokollia. Muodostuu seuraavista mm. protokollista: IP (Internet Protocol)= Yrittää välittää datapaketit lähettäjältä vastaanottajalle käyttäen jotain siirtotietä (siirtotiestä lisää myöhemmin). TCP (Transmission Control Protocol) = luo luotettavan datakanavan lähettäjän ja vastaanottajan välille käyttäen IPprotokollaa. UDP (User Datagram Protocol) = tarjoaa epäluotettavan siirtopalvelun yksittäisille paketeille käyttäen IP protokollaa. Sovellusprotokollat (HTTP, SSH, FTP, DNS...) = muodostavat sovellusten välisen yhteyden (esim www selailu) käyttäen allaan TCP tai UDP protokollaa. Timo Alatalo, timo.alatalo@tut.fi, TC207 6 TTY Ohjelmistotekniikka
TCP/IP protokollaperhe TCP/IP protokollaperhe kuvataan usein pyramidina, jossa ylimpänä ylimmän tason protokollat (sovellusprotokollat) ja alimpana IP. IP:n alapuolella esitetään lisäksi siirtokerros. Timo Alatalo, timo.alatalo@tut.fi, TC207 7 TTY Ohjelmistotekniikka
IP osoite Verkossa olevat tietokoneet pitää nimetä yksikäsitteisesti, jotta data kulkisi oikeaan paikkaan. Tietokoneet identifioidaan TCP/IP verkossa IP osoitteen avulla. IP osoite on 32 bittinen numerojono, joka kirjoitetaan 8 bitin ryhmissä (esim 130.230.4.108). IP protokollan uudemman version 6 (IPv6) osoitteet ovat 128 bittisiä (esim 2001:708:310:4:a00:20ff:fef9:6415). Timo Alatalo, timo.alatalo@tut.fi, TC207 8 TTY Ohjelmistotekniikka
IP osoite IP osoiteavaruus on jaettu IANA:n (Internet Assigned Numbers Authority) toimesta eri maantieteellisille alueille. Euroopan osoiteavaruudesta vastaa RIPE (Reseaux IP Europeens), joka jakaa osoitteita käyttäjäorganisaatioille. Yleensä RIPE jakaa osoiteavaruuksia Internet operaattoreille, jotka pilkkovat ne ja jakavat osia asiakkailleen. Asiakkaat saavat päättää osoiteavaruutensa käytöstä itsenäisesti. Yleensä ylläpito jakaa osoitteet verkon laitteille. Timo Alatalo, timo.alatalo@tut.fi, TC207 9 TTY Ohjelmistotekniikka
Koneiden nimet Internetissä Ihmisen on hankala muistaa numerosarjoja (IP osoite). Tätä varten verkon koneille annetaan yleensä nimi (esim webmail.cs.tut.fi). Nimi muodostuu koneen nimestä (webmail) ja verkkonimestä (cs.tut.fi). Verkkonimi muodostuu maatunnuksesta (fi = Finland), organisaation nimestä (tut = Tampere University of Technology) ja mahdollisesta aliverkon nimestä (cs = Computer Systems) Timo Alatalo, timo.alatalo@tut.fi, TC207 10 TTY Ohjelmistotekniikka
Internetin nimipalvelu Jotta nimet ja IP osoitteet toimisivat yhteen, tarvitaan nimipalvelu (DNS, Domain name service), joka huolehtii nimien muuttamisesta osoitteiksi ja toisinpäin. Jokaista verkkonimen osaa varten on nimipalvelin, joka huolehtii kyseisen verkon nimipalvelusta..fi nimipalvelin tietää, mistä löytyy.tut.fi nimipalvelin..tut.fi nimipalvelin taas tietää, mistä löytyy.cs.tut.fi nimipalvelin ja cs.tut.fi nimipalvelin tietää, mikä on webmail.cs.tut.fi koneen IP osoite. Lisäksi on niinsanottuja juurinimipalvelimia, jotka tietävät esim, mistä.fi tai.com nimipalvelin löytyy. Timo Alatalo, timo.alatalo@tut.fi, TC207 11 TTY Ohjelmistotekniikka
Internetin nimipalvelu Mikäli organisaatio haluaa itselleen verkkonimen (domain), esim tut.fi, tulee tieto kirjata.fi nimipalvelimelle. Tämä tapahtuu.fi verkkojen osalta rekisteröimällä verkkonimi Viestintävirastolle (joko suoraan tai Internet operaattorin kautta). Verkkonimen käyttäjä päättää koneiden nimeämisestä ja mahdollisista aliverkkonimistä itsenäisesti. Verkossa olevalle koneelle pitää kertoa oman nimipalvelimen osoite, jota kone käyttää nimien selvittämiseen. Timo Alatalo, timo.alatalo@tut.fi, TC207 12 TTY Ohjelmistotekniikka
"Fyysinen" yhteys Verkko vaatii (toimivan) yhteyden koneiden välille. Tälläinen yhteys voi olla: Kuparikaapeli (yleensä parikaapeli). Valokuitu. Langaton yhteys (radioaallot, infrapuna). Siirtotie vastaa bittien siirtämisestä fyysisen yhteyden yli. IP protokolla toimii hyvin monenlaisen siirtotien päällä Esimerkkejä siirtoteistä (ei kannata opetella lyhenteitä ulkoa): Ethernet, Token Ring, PSTN/modeemi, GSM, SDH, ATM, Frame Relay. Timo Alatalo, timo.alatalo@tut.fi, TC207 13 TTY Ohjelmistotekniikka
Ethernet lähiverkkojen siirtotie Lähiverkko (LAN, Local Area Network) on esimerkiksi kampusalueen tai yrityksen oma verkko (tai sen osa). Lähiverkossa yleensä käytetty siirtotie on Ethernet, joka näkyy tietokoneen käyttäjälle pistokkeena seinässä. Siirtotie voi olla myös langaton (WLAN, Wireless LAN). Nykyisin ethernetissä tietokoneet kytketään kytkimeen, joka ohjaa liikenteen oikealle vastaanottajalle. Liikenne ohjataan tietokoneen verkkokortin MAC osoite mukaan. MAC osoite on verkkokortin valmistajan asettama osoite, jota käyttäjä ei voi muuttaa. Kytkin oppii verkkoliikenteen perusteella, missä kytkimen portissa mikäkin MAC osoite on. Timo Alatalo, timo.alatalo@tut.fi, TC207 14 TTY Ohjelmistotekniikka
Ethernet lähiverkkojen siirtotie Timo Alatalo, timo.alatalo@tut.fi, TC207 15 TTY Ohjelmistotekniikka
Kohti suurempaa verkkoa Lähiverkkoja voidaan myös yhdistää, esimerkiksi TTY:n verkko on useiden lähiverkkojen yhdistelmä. Verkot yhdistetään toisiinsa reitittimellä. Reititin kytketään lähiverkkon kytkimeen kuten tietokoneet. Reitittimellä on myös IP osoite, kuten tietokoneilla. Reititin tietää mitä verkkoja missäkin reitittimen portissa on ja välittää liikenteen oikeaan verkkoon. Verkot yksilöidään verkko osoitteella (IP osoite) ja aliverkkomaskilla (netmask). Verkossa oleva kone tietää oman verkkonsa reitittimen IPosoite (default gateway, oletusyhdyskäytävä) ja aliverkkomaski. Aliverkkomaskin avulla kone päättelee, onko yhteyden kohde omassa lähiverkossa, vai pitääkö datapaketit lähettää reitittimen kautta Internetiin. Timo Alatalo, timo.alatalo@tut.fi, TC207 16 TTY Ohjelmistotekniikka
Internet Internet on muodostunut useista toisiinsa yhdistetyistä verkoista. Edelleen verkkojen yhdistäminen tehdään reitittimillä. Internetin reitittimet osaavat neuvotella keskenään (reititysprotokollien avulla) miltä reitittimeltä mikäkin verkko löytyy. Mikäli joku verkon yhteys katkeaa, reititysprotokolla ohjaa liikenteen toista kautta, mikäli mahdollista. Osa verkoista on erikoistunut verkkojen yhdistämiseen (esim Internet operaattorit, kuten Suomen korkeakoulujen verkko FUNET). Timo Alatalo, timo.alatalo@tut.fi, TC207 17 TTY Ohjelmistotekniikka
Timo Alatalo, timo.alatalo@tut.fi, TC207 18 TTY Ohjelmistotekniikka
Palomuurit Palomuuri on ohjelmisto, joka pyrkii estämään asiattomat yhteydenotot Internetistä omaan verkkoon. Palomuuriohjelmisto asennetaan yleensä tarkoitusta varten tehtyyn laitteeseen (tietokone) oman verkon ja Internetin väliin ja mahdollisesti vielä jokaiselle yksittäiselle koneelle. Nykyään kannattaa käyttää myös ns. henkilökohtaisia palomuureja, joilla suojataan yksittäinen kone. Esim zonealarm, Windows XP:n palomuuri, Linuxin netfilter (iptables), Unixien ipfilter. Timo Alatalo, timo.alatalo@tut.fi, TC207 19 TTY Ohjelmistotekniikka
Palomuurit Oikein toimivan palomuurin asentaminen ja ylläpito vaatii paljon tietämystä tietokoneverkoista ja niissä käytettävistä protokollista. Väärin konfiguroitu palomuuri saattaa estää sovellusten tai palveluiden toiminnan. Esimerkiksi oman koneen pingaamista ei saisi estää (ICMP echo request ja ICMP echo reply pitäisi sallia). Palomuuri on vain osa tietoturvaa ja se ei yleensä suojaa esimerkiksi sähköpostiviruksilta. Timo Alatalo, timo.alatalo@tut.fi, TC207 20 TTY Ohjelmistotekniikka
Asiakas/Palvelin malli Client/Server (asiakas/palvelin) mallilla tarkoitetaan ohjelmistomallia, jossa varsinainen toiminnallisuus on sijoitettu palvelimelle ja asiakas toimii vain käyttöliittymänä ohjelmistoon (esim www). Mallilla pyritään siirtämään kuormaa muille koneille (käyttöliittymän käsittely hoidetaan asiakaspäässä ja varsinainen "tiedonkäsittely" palvelinpäässä). Timo Alatalo, timo.alatalo@tut.fi, TC207 21 TTY Ohjelmistotekniikka
Asiakas/Palvelin malli Palvelin = tietokoneessa ajettava ohjelmisto, joka tarjoaa "palveluita" asiakasohjelmistoille. Asiakas = ohjelmisto, joka käyttää palvelimen palveluita. Mikä tahansa tietokone voi siis toimia palvelimena, mikäli siihen on asennettu palvelinohjelmisto. Yleensä palvelinohjelmistoja ajetaan palvelinkäyttöön rakennetuissa tietokoneissa. Koneet on rakennettu toimimaan 24h/vrk ja kestämään mahdollisia yksittäisten osien rikkoutumisia. Timo Alatalo, timo.alatalo@tut.fi, TC207 22 TTY Ohjelmistotekniikka
Miten sähköposti kulkee? Timo Alatalo, timo.alatalo@tut.fi, TC207 23 TTY Ohjelmistotekniikka
Miten sähköposti kulkee? 1. Käyttäjä kirjoittaa sähköpostiviestin käyttäen sähköpostiohjelmaa (MUA, mail user agent) ja painaa "Send". 2. MUA lähettää viestin lähtevän postin palvelimelle (MTA, mail transfer agent) käyttäen SMTP protokollaa. Postipalvelimen nimi on ennalta konfiguroitu ohjelmaan. 3. MTA kysyy nimipalvelusta, mikä on vastaanottajan postipalvelimen nimi. 4. MTA lähettää viestin vastaanottajan postipalvelimelle käyttäen SMTPprotokollaa. 5. Vastaanottajan postipalvelimen "mail delivery agent" (MDA) siirtää vastaanotetun viestin vastaanottajan postilaatikkoon. 6. Vastaanottaja käskee postiohjelmaansa (MUA) hakemaan uudet viestit postilaatikostaan. 7. Postiohjelma kysyy palvelimelta, onko käyttäjälle uusia viestejä ja hakee ne käyttäen esim POP3 tai IMAP protokollaa. 8. Vastaanottaja lukee viestin. Timo Alatalo, timo.alatalo@tut.fi, TC207 24 TTY Ohjelmistotekniikka
Lyhenteitä, lähteitä ja linkkejä OSI = Open systems interconnection FUNET = Finnish university network IP = Internet protocol Internet TCP = Tranmission control protocol What Is This (Tech Target) UDP = User datagram protocol http://whatis.techtarget.com/ HTTP = Hypertext transfer protocol RIPE http://www.ripe.net/ FTP = File transfer protocol IANA http://www.iana.org/ DNS = Domain name service Viestintävirasto http://www.ficora.fi ARP = Address resolution protocol PSTN = Public switched telephone network ATM = Asyncronous transfer mode SDH = Syncronous digital hierarchy SMTP = Simple mail transfer protocol MUA = Mail user agent MTA = Mail transfer agent POP3 = Post office protocol, versio 3 IMAP = Internet message access protocol Timo Alatalo, timo.alatalo@tut.fi, TC207 25 TTY Ohjelmistotekniikka