Tietokoneverkot. CSE-C2400 Tietokoneverkot (5 op) 2015 Sanna Suoranta. Sanna Suoranta Tietokoneverkot 2015

Samankaltaiset tiedostot
Tietokoneverkot. T Tietokoneverkot (4 op) viimeistä kertaa CSE-C2400 Tietokoneverkot (5 op) ensimmäistä kertaa

1/13/15. Tietokoneverkot. Tämä luento

S Tietoliikennetekniikan perusteet. Pakettikytkentäiset verkot. Helsinki University of Technology Networking Laboratory

Tietokoneverkot. T Tietokoneverkot (4 op) viimeistä kertaa CSE-C2400 Tietokoneverkot (5 op) ensimmäistä kertaa

Tietoliikenne II (2 ov)

T Johdatus tietoliikenteeseen 5 op. Kevät 2013

Tietoliikenne II (2 ov)

Tietoliikenne II. Syksy 2005 Markku Kojo. Tietoliikenne II (2 ov,, 4 op) Page1. Markku Kojo Helsingin yliopisto Tietojenkäsittelytieteen laitos

3. Kuljetuskerros 3.1. Kuljetuspalvelu

Tietoliikenne I (muuntokoulutettaville) 2 ov Syksy 2002 Luennot Liisa Marttinen 11/6/2002 1

OSI ja Protokollapino

S Teletekniikan perusteet

Tietokoneverkot. CSE-C2400 Tietokoneverkot (5 op) 2016 Sanna Suoranta. Sanna Suoranta Tietokoneverkot 2016

1.4. Tietoliikenneohjelmistot eli protokollat

1.4. Tietoliikenneohjelmistot eli protokollat

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

Siltojen haitat. Yleisesti edut selvästi suuremmat kuin haitat 2/19/ Kytkin (switch) Erittäin suorituskykyisiä, moniporttisia siltoja

T Johdatus tietoliikenteeseen 5 op

Tietoliikenne I (muuntokoulutettaville) 2 ov syksy 2003 Luennot Liisa Marttinen

Tietoliikenne I 2 ov kevät 2003

Tietoliikenne I 2 ov kevät 2002

Kuljetuskerros. Tietokoneverkot. Matti Siekkinen Pasi Sarolahti

Tietoliikenne I (muuntokoulutettaville) 2 ov syksy 2003 Luennot Liisa Marttinen

Tietoliikenne I 2 ov kevät 2004

1/20/15. Sovellukset 1: sähköposti, web, verkkoohjelmointi. Sisältö. Sovellusten historiaa. Verkkosovellus ja protokolla

Sovellukset 1: sähköposti, web, verkkoohjelmointi

Pertti Pennanen OSI 1 (4) EDUPOLI ICTPro

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

ELEC-C7241 Tietokoneverkot Sovelluskerros

Tietoliikenne I 2 ov kevät 2004

Tietoliikenteen perusteet

Tietoliikenne I 2 ov syksy 2001

Internet ja tietoverkot

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

INTERNET-yhteydet E L E C T R O N I C C O N T R O L S & S E N S O R S

Kohina (Noise) 1.4. Tietoliikenneohjelmistot eli protokollat. Signaalin vahvistaminen

Chapter 1 Introduction

Kuva maailmasta Pakettiverkot (Luento 1)

T Tietokoneverkot kertaus

T Johdatus tietoliikenteeseen ja multimediatekniikkaan 5 op. Kevät 2013

Kohina (Noise) Signaalia häiritsee kohina. aina taustalla esiintyvää sähkömagneettista aaltoliikettä terminen kohina. elektronien liikkeestä johtuva,

Tietoliikenteen perusteet

Luento 1: Tietokoneverkot ja Internet

Tietoliikenteen perusteet. Langaton linkki

Tietoliikenteen perusteet. Langaton linkki

ELEC-C7241 Tietokoneverkot Kuljetuskerros

Tietoliikenteen perusteet

Sovellukset (osa 2) ja verkkoohjelmointi

Siltojen haitat Yleisesti edut selvästi suuremmat kuin haitat

3. Kuljetuskerros 3.1. Kuljetuspalvelu

IHTE 1900 Seittiviestintä (syksy 2007) VERKKOTEKNIIKKAA. Mikä on protokolla, IP osoite, nimipalvelu jne ja mihin näitä tarvitaan?

T Harjoitustyöluento

Salausmenetelmät (ei käsitellä tällä kurssilla)

Kertaus. Jyry Suvilehto T Johdatus tietoliikenteeseen ja multimediatekniikkaan kevät 2013

Mikä on internet, miten se toimii? Mauri Heinonen

T harjoitustyö, kevät 2012

TeleWell TW-EA711 ADSL modeemi & reititin ja palomuuri. Pikaohje

1. Tietokoneverkot ja Internet

Kuljetus- ja sovelluskerroksen tietoturvaratkaisut. Transport Layer Security (TLS) TLS:n suojaama sähköposti

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

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

kynnysarvo (threshold)

kynnysarvo (threshold)

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

Miten Internet toimii?

T Harjoitustyöluento

Laitteessa tulee olla ohjelmisto tai uudempi, tarvittaessa päivitä laite

Yhteenveto. CSE-C2400 Tietokoneverkot

WWW-sivu. Miten Internet toimii? World Wide Web. HTML-koodi. HTTP-istunto URL <#>

Reititys. Tämä ja OSI 7LHWROLLNHQQHWHNQLLNDQSHUXVWHHW $(/&7 0DUNXV3HXKNXUL. Yhteyden jakaminen Reititys Kytkentä Internet-protokolla TCP, UDP

Tietoliikenteen perusteet

kynnysarvo (threshold) varoitusarvo = tästä lähtien syytä varoa ruuhkaa aluksi 64 K RTT

Netemul -ohjelma Tietojenkäsittelyn koulutusohjelma

Miten Internet toimii. Tuomas Aura T Johdatus tietoliikenteeseen kevät 2013

Kertaus. Jyry Suvilehto T Johdatus tietoliikenteeseen ja multimediatekniikkaan kevät 2011

Tulevaisuuden Internet. Sasu Tarkoma

ELEC-C7241 Tietokoneverkot Sovelluskerros

Langaton linkki. Langaton verkko. Tietoliikenteen perusteet. Sisältö. Linkkikerros. Langattoman verkon komponentit. Langattoman linkin ominaisuuksia

Tietoliikenteen perusteet: Kokeeseen tulevista asioista

T harjoitustehtävät, syksy 2011

ICMP-sanomia. 3. IP-kerroksen muita protokollia ja mekanismeja ICMP (Internet Control Message Protocol)

3. IP-kerroksen muita protokollia ja

Linkkikerros, tiedonsiirron perusteet. Jyry Suvilehto T Johdatus tietoliikenteeseen ja multimediatekniikkaan kevät 2013

Miten Internet toimii?

Tietoliikenteen perusteet. Langaton linkki. Kurose, Ross: Ch 6.1, 6.2, 6.3. (ei: 6.2.1, ja 6.3.5)

Kuljetus- ja sovelluskerroksen tietoturvaratkaisut

Yhteenveto. CSE-C2400 Tietokoneverkot Matti Siekkinen

ProNetti -sähköpostijärjestelmä

Hajautettu versionhallinta Gitillä

Teknisiä käsitteitä, lyhenteitä ja määritelmiä

Kuljetus/Sovelluskerroksen tietoturvaratkaisut

Tämän luennon aiheet. Kuljetus/Sovelluskerroksen tietoturvaratkaisut. TLS:n turvaama HTTP. Transport Layer Security (TLS) TLS:n suojaama sähköposti

TW- EAV510 ketjutustoiminto (WDS): Kaksi TW- EAV510 laitetta

TIETOKONEYLIASENTAJAN ERIKOISAMMATTITUTKINTO

ELEC-C7241 Tietokoneverkot Multimedia, tietoturva, jne.

TeleWell TW-EA716. ADSL modeemi Palomuuri 4 porttinen 10/100 Mbps kytkin. Pikaohje. Copyright Easytel Oy Finland

Taloyhtiön laajakaistan käyttöohje, Tekniikka: Ethernet. Käyttöjärjestelmä: Windows XP

3. Kuljetuskerros 3.1.

T Tietokoneverkot

Transkriptio:

Tietokoneverkot CSE-C2400 Tietokoneverkot (5 op) 2015 Sanna Suoranta Sisältöä adaptoitu seuraavista lähteistä: J.F. Kurose and K.W. Ross: Computer Networking: A Top-Down Approach 6th ed. -kirjan lisämateriaali, T. Lindholm, S. Tarkoma: Johdatus tietotekniikkaan-kurssin Sovelluskerros-luennon materiaali, S. Sorvakko: Tietokoneverkot-kurssin Network Programming-luennon materiaali, M. Siekkinen Tietokoneverkot-kurssin Sovellukset (osa 2) luennon materiaali Tietokoneverkot 2015 Sanna Suoranta sanna.suoranta@aalto.fi CSE-C2400 Tietokoneverkot cse-c2400@aalto.fi

Tämä luento Käytännön asiat ja kurssin suorittaminen Kokonaiskuva, esimerkkinä sähköposti Verkko-ohjelmointi soketeilla lyhyesti

Mitä jokaisen DI:n tulee tietää verkoista osaat selittää tietoverkkojen peruskäsitteet ja termit (sekä lyhenteet) miten tietoverkon protokollat vuorovaikuttavat keskenään sekä miten tärkeimmät sovellusprotokollat toimivat kerrosmallin toiminnot ja palvelut sekä miten TCP/IPprotokollat toteuttavat mallin ja analysoida verkon ongelmatilanteita osaat suunnitella ja toteuttaa verkkosovelluksen sekä arvioida sen toimintaa ja rajoituksia sekä pystyt arvioimaan langattoman ja mobiilin tiedonsiirron vaikutuksia sovellusten toteuttamiseen ja toimintaan tunnet ja osaat käyttää verkon analysointityökaluja paikallisverkossa (intranet) ja Internetissä osaat suunnitella ja konfiguroida toimivan paikallisverkon sekä osaat laskea ja arvioida verkon suorituskykyä ja ehdottaa parannuksia

Yleistä Esitiedot: ICS-A1120 Ohjelmointi 2 (eli pari kurssia ohjelmintia) ja CSE-A1140 Tietorakenteet ja algoritmit (tai vastaavat vanhat kurssit) Korvaa kurssin T-110.2100 Johdatus tietoliikenteeseen tai T-110.1100 Johdatus tietoliikenteeseen ja multimediaan Aiemmasta poiketen sisältää myös ohjelmointia! C-kieli Koska tämä on ainoa tietoliikenteen kurssi nykyisin

Käytännön asioita Ilmoittaudu TÄNÄÄN () oodissa! Ajantasaisin tieto Nopassa, TARKISTA kaikki sieltä Sähköpostiosoite: cse-c2400@aalto.fi Henkilökohtaiset kysymykset tänne IRC:!verkot IRCnetissä Assarit ovat usein tavoitettavissa ircitse; assareiden vastaanotto Vapaata keskustelua aiheesta ja aiheen vierestä Assaripäivystys Paniikki-luokassa (tiistaisin klo 14-16)

Henkilökunta Vastaavat opettajat: TkL Sanna Suoranta TkT Matti Siekkinen (kaksi luentoa, ei muuta) Kurssin assarit: Kimmo Ahokas Rasmus Eskola Essi Jukkala Markus Palonen Atte Seppälä Päivi Tynninen Lähetä sähköpostisi käyttäen kurssin osoitetta csec2400@aalto.fi, älä suoraan meistä kenellekään!

Oppimateriaali Kurssin kirja: James F. Kurose, Keith W. Ross. Computer Networksing, A Top-Down Approach, 6 th edition, 2013 kirjastossa myös sähköisenä Luennot ja luentokalvot kertovat vain osan aihealueesta Mahdollisesti muuta lisämateriaalia nopassa

Osasuoritukset ja arvostelu Pakolliset osasuoritukset Kaksi osatenttiä, kumpikin 40% kurssin arvosanasta Harjoitustyö, kaksi osaa, 20% kurssin arvosanasta Kurssipalaute, pakollinen, ei lisäpisteitä Lisäksi Neljä harjoitustehtävää, kaksi kummankin puoliskon aihealueista Kustakin harjoitustehtävästä voi saada max kolme tenttipistettä aihealueen hyväksytysti suoritetun osatentin pisteiden päälle keväällä 2015 (huom: ei enää syksyn tentteihin, eikä 17.2. olevan tentin toiseen osatenttiin) Eli hyväksytysti suoritettuun osatenttiin voi saada max 6 pistettä lisää tekemällä kaksi ko osatentin aihealueen kotitehtävää (arvosana 1 voi nousta kahdella, ja arvosanat 2-4 yhdellä)

Osasuoritukset ja arvostelu 40% 1. osatentti Min 15 p Max 30 p ja hyväksyttyyn max. +3p kotitehtävä 1 +3p kotitehtävä 2 40% 2. osatentti Min 15 p Max 30 p ja hyväksyyttyyn max. +3p kotitehtävä 3 +3p kotitehtävä 4 Arvosanarajat tentissä: 0-14=0, 15-17=1, 18-20=2 21-24=3, 25-27=4 ja 28-30=5 20% Harjoitustyö osa 1: min 1p, max 5p osa 2: min 1p, max 5p as= (osa1+osa2)/2

Luennot tiistaisin 10-12 T2-salissa pvm I osatentin alue luku 13.1. Yleiskuva (Sanna) 1,2 20.1. Sovellukset 1(Sanna) 2 27.1. Sovellukset 2 (Sanna 2 3.2. Kuljetuskerros I (Matti) 3 10.2. Kuljetuskerros II (Matti) 3, 7 pvm II osatentin alue luku 25.2. Internet-protokolla (Sanna) 3.3. Reititys (Sanna) 4 10.3. Linkkikerros, Ethernet,WAN (Sanna) 17.3. Verkon suunnittelu ja ylläpito (J. Kotimäki) 24.3. Langattomat verkot (Sanna) 31.3. Kokonaisuus (Sanna) 7, 8 4 5 9 6

Kaksi osatenttiä Kullakin tenttikerralla on mahdollisuus tehdä kumpi vain tai molemmat kurssin osatentit Ikäänkuin välikokeet, mutta useampi suoritusmahdollisuus Ilmoittaudu viikkoa ennen siihen osatenttiin, johon olet ensisijaisesti tulossa (mutta voi silti tehdä molemmat tai sen toisen) Vanhoja tenttejä nopassa Neljä tehtävää, joista yksi isompi essee Kummastakin osatentistä saa arvosanan (mukaanlukien mahd. kotitehtävistä saadut pisteet), joka on 40% kurssin lopullisesta arvosanasta Tenttialueet ilmoitetaan Nopassa Peru tentti-ilmo oodissa/sähköpostitse, jos et tule! Kolme nollaa johtaa lisätehtävään, joka pitää tehdä ennen seuraavaa tenttimisyritystä

Kotitehtävät Vapaaehtoisia, mutta saa lisäpisteitä tenttiin keväällä 2015 (ei enää syksyllä, ei ekaan 2. osatenttiin) Kustakin kotitehtävästä max 3 tenttipistettä Määräajat nopassa, samoin julkaisupäivät Pohjautuvat kirjan tehtäviin Laskutehtäviä Työkalutehtäviä, esim Wireshark Sanallisia tehtäviä

Harjoitustyö Harjoitustyössä on kaksi osaa ja esitehtävä Uusittu viime vuodesta C-kielellä, tarjolla pohja Määräajat kellonaikoineen ja julkaisuajat nopassa Kolmivaiheinen esitehtävä, 1. dl pe 16.1. klo 12:00 (keskipäivä) 9.2. klo 12:00 (keskipäivä) ensimmäinen osa 30.3. klo 12:00 (keskipäivä) toinen osa

Harjoitustyö kolmivaiheinen esitehtävä opiskelija henkilökunta 16.1. 12:00 kysely+aalto-tunnus 16.1. iltapäivä Niksulan luvat ack luodaan 20.1. 12:00 log in git, lomake (kts tehtävänanto) Noppaan: ack 23.1. 12:00 git-harjoitus-tehtävät 20.1. iltapäivä oikeudet repoihin

Versionhallinta GIT

CSE-C2400 Tietokoneverkot, kevät 2015

Versionhallinta lyhyesti Versionhallinta on järjestelmä, joka ajan kuluessa tallentaa muutoksia tiedostoon tai joukkoon tiedostoja, jotta sinä voit palata tiettyihin versioihin myöhemmin. Muutokset helposti peruttavissa Koko historia selailtavissa Erittäin yleinen työkalu varsinkin ohjelmoinnissa Hajautettu työskentely Loputon määrä kilpailevia työkaluja: GIT, CVS, SVN, Mercurial(hg), Bazaar, Perforce. 1/13/15 17

GIT Ehkäpä yleisin nykyisin käytössä oleva versionhallintajärjestelmä Linus Torvalds kehitti ensimmäisen git-version 2005 käytettäväksi Linux-kernelin kehityksessä Hajautettu: Ei yhtä palvelinta jossa muutokset sijaitsevat, vaan kaikilla käyttäjillä on (lähes)täydellinen kopio koko tietovarastosta (repository) Erittäin monipuolinen ja moneen käyttöön sopiva työkalu Peruskäyttö helppoa mutta edistyneemmät operaatiot vaikeita Huom! Git!= GitHub 1/13/15 18

Gitin peruskomennot git clone Kopioi git-repo omalle koneelle git status tarkasta versionhallinnan tila git add lisää tiedostoja versionhallintaan git commit tallenna uusi versio git branch luo uusi kehityshaara (branch) git checkout siirry työskentelemään toiseen haaraan tai tiettyyn versioon git push työnnä muutokset palvelimelle git pull hae muutokset palvelimelta git merge yhdistele versioita 1/13/15 19

Gitin kolme tilaa 1/13/15 20

Perustyöskentely 1/13/15 21

Haarat (branch) 1/13/15 22

Hajautettu työskentely (yksinkertaisimmillaan) 1/13/15 23

Perustyöskentely käytännössä 1. Kopioi valmis repo itsellesi: git clone 2. Luo uusi haara omille muutoksillesi: git branch 3. Tee muutoksia 4. Lisää muutokset versionhallintaan: git add 5. Luo muutoksista uusi versio: git commit 6. Toista vaiheet 3-5 kunnes ominaisuus valmis 7. Siirry takaisin master-haaraan : git checkout 8. Yhdistä uuden haaran muutokset: git merge 9. Tarkista muutokset palvelimelta: git pull 10. Lähetä omat muutokset palvelimelle: git push 11. Toista vaiheet 2-10 seuraaville muutoksille 1/13/15 24

Git tällä kurssilla Ei erillistä tehtävien palautusta Assarit katsovat koodisi kurssin git-palvelimelta deadlinen jälkeen Suositeltavaa tallentaa myös keskeneräiset versiot gittiin, ei vain viimeistä versiota Tarkempi ohjeistus tulossa myöhemmin Kokeilkaa kirjautua GitLabiin osoitteessa https://git.niksula.hut.fi/ Ei hätää vaikkei onnistuisi, tunnukset luodaan kaikille lähiaikoina 1/13/15 25

Hyödyllisiä linkkejä Hanki git: http://git-scm.com/downloads Virallinen git-kirja suomeksi: http://git-scm.com/book/fi/v1 Ja englanniksi vähän laajemmin: http://git-scm.com/book/en/v2 GitHubin loistava dokumentaatio: https://help.github.com/ Interaktiivinen git-tutoriaali: https://try.github.io Toinen: http://gitimmersion.com/ Interaktiivinen tutoriaali git brancheista: http://pcottle.github.io/learngitbranching/ Gui-clienttejä: http://git-scm.com/downloads/guis Henkilökohtainen suosikki: http://www.sourcetreeapp.com/ 1/13/15 26

1/13/15 27

Kysyttävää järjeste- lyistä?

Tehtävä: Piirrä Internet (tai kirjoita) Mitä ikinä sinulle tulee mieleen tietokoneverkosta ja Internetistä?

Mikä on Internet? Internet on globaali verkko, jossa on tarjolla monenlaisia hajautettuja palveluita, joita voi käyttää etänä verkon yli Sähköposti, www, P2P, videoiden katselu (Internet-tv), tiedostojen jako, pelit, jne käyttäjälle suunnatut palvelut Nimipalvelu, reititys, verkonhallinta jne verkon infrastruktuurin palvelut, jotka helpottavat muiden palveluiden ja käyttäjien toimintaa Palveluita voi kuka tahansa kehittää lisää käyttäen hyväksi sovellusrajapintaa (engl. application programming interface, API) Internet-verkko on verkko, joka muodostuu useista eri tahojen operoimista verkoista

Internet do what I mean Alice haluaa lähettää sähköpostiviestin Bobille

Liityntäverkko (access network) DSL Internet Liityntäverkko on verkko, johon päätelaitteet kytkeytyvät Kotona, yrityksessä, kahvilassa.. Lähiverkko (local area network, LAN) on reitittimen takana oleva yhtä tekniikkaa käyttävä verkko Useita mahdollisia teknologioita, suosituinpia Ethernet ja WiFi Laitteita lähiverkossa Päätelaite (host, end system), palvelin Langaton tukiasema (access point) Kytkin (switch) DSL- (digital subscriber line) tai kaapelimodeemi (cable modem)

Internet-palveluntarjoaja (Internet service provider, ISP) DSL DSLAM tarjoaa yhteyttä Internetiin Keskuksessa asiakkaiden liikenne erotetaan toisista asiakkaista (digital subscriber line access multiplexer, DSLAM) Laitteen IP-osoite joko staattinen tai dynaaminen (tai piilotettu NATin taa) ja palveluita ISP Nimipalvelu (domain name service, DNS) Sähköpostipalvelin Internet Levytilaa

Liityntäverkon ja lähiverkon teknologioita Laajakaistayhteys (broadband connection) käyttää hyväkseen olemassaolevia aikanaan lankapuhelimia varten tehtyjä kaapelointeja (kierretty pari -kaapeli) Kaapelimodeemiyhteys (cable modem) käyttä hyväkseen kaapelitelevisioverkkoa (koaksiaalikaapeli) Lähiverkko on erikseen tietoliikennettä varten järjestetty Langaton lähiverkko käyttää radiotaajuuksia Yleisin kaapelointi on suojaamaton kierretty parikaapeli (unshielded twisted pair, UTP) tai vastaavaa suojattu (STP) kaapeli Myös valokuitu (fiber optics) valtaa alaa

Käsitteitä: Palvelu, protokolla ja rajapinta Palvelu toteuttaa jonkin (hyvin määritellyn) tehtävän Osa standardoitu (request for comments, RFC) IETF:ssä Palvelut viestivät asiakasohjelmiensa kanssa protokollan avulla Viesteillä on tarkkaan määritelty formaatti, Viestissä otsikko-osa ja varsinainen data erotetaan toisistaan Viesteillä on käsittelyjärjestys: tiettyyn viestiin vastataan tietyllä viestillä Palvelut käyttävät toisia palveluita hyväkseen rajapinnan avulla Sähköpostipalvelu (SMTP) käyttää hyväkseen mm. nimipalvelua (DNS) ja verkon tiedonsiirtopalvelua (TCP/IP) Päätelaite saa osoitteen osoitteenjakopalvelulta (DHCP)

Sähköpostin lähettäminen DSL DHCP DNS SMTP DSLAM 1. Alicen kone on hakenut itselleen IP-osoitteen (DHCP) 2. Sähköpostiohjelma ottaa yhteyttä sähköpostipalvelimeen ja lähettää viestin sille (SMTP) 3. Sähköpostipalvelin selvittää vastaanottajan osoitteen loppuosan perusteella (DNS) vastaanottajan sähköpostipalvelimen sijainnin (IP-osoite). Internet

do what Tier-2: Alueellinen tai kansallinen ISP Tier-1 ISP Internet Kotiverkko (reunaverkko) Tier-3: Asiakkaan ISP Yliopiston verkko (reunaverkko) I mean

Internet-verkko koostuu useista, yhteentoimivista verkoista Runkoverkko, Tier-1-operaattorit Välittävät toistensa liikennettä ilmaiseksi (esim valtamerten ali) Internet-palveluntarjoaja (internet service provider, ISP) Tier-2: Alueellisia/kansallisia ja Tier-3: asiakkaille yhteyttä myyviä ISP:tä Maksavat ylemmän tason operaattoreille verkkoyhteydestä Voivat sopia keskenään liikenteen välittämisestä ilmaiseksi Internet exchange point, IXP Liikenteenvälittäjä eri verkkojen välillä (operaattoririippuvuuden purkamiseksi) Reunaverkko: kotiverkko, yritysverkko, langaton verkko Palvelu ostetaan ISP:tä, verkon läpi ei välitetä muiden liikennettä

do what Sähköpostin matka verkossa Internet SMTP SMTP I mean SMTPpalvelin IMAPprotokolla

Sähköposti jatkaa matkaansa verkossa 4. Viesti välitetään ISP:n sähköpostipalvelimelle SMTPprotokollaa käyttäen 5. Sähköpostipalvelin välittää viestin eteenpäin seuraavalle sähköpostipalvelimelle (SMTP) Kun viesti saavuttaa vastaanottajan sähköpostipalvelimen, se tallennetaan osoitteen alkuosan perusteella vastaanottajan postilaatikkoon Lähettäjäpalvelin tuhoaa viestin saatuaan sen eteenpäin 6. Sähköposti jää odottamaan postilaatikkoon 7. Vastaanottaja hakee viestin postilaatikostaan IMAPprotokollaa käyttäen ja lukee sen

Mitä voi mennä pieleen?

Häiriöt viestin kulkiessa verkossa Verkon laitteet aiheuttavat viipeitä Verkko voi ruuhkautua Viestit voivat kadota ja muuttua Pahantahtoiset tahot voivat aiheuttaa ongelmia Joku voi lukea viestin matkalla (sniffing) Joku voi naamioitua luotetuksi osapuoleksi (man-in-the-middle, MitM, tai spoofing) Joku voi tukkia palvelimen (denial-of-service, DoS) Joku voi käyttää konetta hyväkseen haittaohjelman (malware) avulla esim lähettämään spämmiä tai toimimaan osana hajautetussa palvelunestohyökkäyksessä (DDoS)

Viipeet reitittimessä ja verkossa d jono + d prosessi (+ d jono )+ d lähetys d eteneminen Prosessointiviive: paketin otsikon tutkiminen ja päätös, mihin reitittimen rajapintaan se seuraavaksi välitetään Jonotusviive: paketti odottaa jonossa lähetystä (tai vastaanottoa) jonotusviive voi vaihdella suuresti Lähetysviive: paketin lähettäminen linkille (paketin pituus / linkin nopeus) Etenemisviive: paketin matka-aika linkillä

Viestit voivat kadota matkalla Viestit matkaavat erilaisille häiriöille alttiissa verkoissa Muut laitteet voivat häiritä tiedonsiirtoa, kaivinkone katkoo piuhan Viestit voivat kadota tai muuttua linkillä (verkossa) Reitittimen käsittelyjonoon ei mahdu määrättömästi viestejä Siirtotie voi aiheuttaa virheitä virheenkorjauksen sijaan käytetään virheiden havaitsemista ja hajonneet viestit hävitetään Miten epäluotettavan siirtotien varaan voi rakentaa luotettavan tiedonsiirron? Lisää myöhemmillä luennoilla: mm. kuittaukset ja uudelleenlähetys (kuljetuskerros), vaihtoehtoiset reitit (verkkokerros) jne Kullakin protokollalla on oma tehtävänsä kokonaisuudessa

Sähköpostin lähettäminen (taas) Internet Sähköpostiohjelma paketoi viestin SMTP-protokollan avulla Otsikko ja itse viesti erikseen Viesti annetaan käyttöjärjestelmän tietoliikennepinolle, joka avaa luotettavan tiedonsiirtoyhteyden verkon yli SMTP-palvelimelle kapseloi viestin TCP-tietosähkeeseen, joka puolestaan kapseloidaan IP-pakettiin, joka kapseloidaan Ethernet-kehykseen, joka Välitetään verkkokortin kautta piuhan toisessa päässä olevalle laitteelle Joka yleensä lähettää sen eteenpäin jne

Internetin protokollapino Sovelluskerros (application) Kuljetuskerros (transport) Verkkokerros (network) Linkkikerros (link layer) Fyysinen kerros (physical) Sovellukset (viesti, message) Bitit piuhaan/ilmaan (fyysisenä signaalina) Päätepiste mille sovellukselle päätelaitteessa? (segmentti, segment) Päätelaite minne Internet-verkossa? (tietosähke, datagram) Päätelaite mille laitteelle lähiverkossa? (kehys, frame)

do what verkko1 verkko2 I mean SMTP TCP IP Ethernet fyysinen kytkin Ethernet F1 F2 reititin IP Eth Eth F2 F3 SMTP IMAP TCP IP Ethernet fyysinen sähköpostipalvelin IMAP TCP IP Ethernet fyysinen

Protokollan avulla samalla kerroksella olevat vastinoliot keskustelevat keskenään Ohjelmistoissa/laitteissa viesti kulkee oikeastaan kaikkien kerrosten läpi, se pakataan aina alemman kerroksen viestin sisään ja vastaanotettaessa jokainen kerros purkaa pois omat otsikkotietonsa Rajapinta on kerrosten välillä Kaikissa verkon laitteissa ei käytetä koko protokollapinoa (paitsi hallintarajapinnalle toki tarvitaan koko pino ;) Kytkimet ovat linkkikerroksen laitteita: linkeillä sama tekniikka (linkki=paikallinen verkko) Reitittimet ovat verkkokerroksen laitteita: linkin tekniikan voi vaihtaa verkkojen välillä

Muutama sana historiasta 1960-luvulla kehitettiin pakettikytkentäinen tekniikka, jossa viestit lähetetään paketteina verkkoon ilman varausta Puheliverkot käyttävät piirikytkentäistä tekniikkaa, jossa siirtotie varataan päästä päähän yhteyttä varten (aika- tai taajuusjako) 1970-luvulla oli yksittäisiä erillisiä verkkoja TCP/IP-protokollien kehitys alkoi 1980-luvulla verkkoja kytkettiin yhteen TCP/IP valmis, sähköposti, FTP, DNS ja muita palveluita 1990-luvulla netin käyttö räjähti WWW:n myötä 2000-luvulla videot, liikkuvat päätelaitteet ja sosiaalinen media sekä pilvipalvelut ovat muuttaneet käyttöä

Verkko-ohjelmointi soketeilla sovellus prosessi kuljetus verkko linkki fyysinen soketti Internet sovellus prosessi kuljetus verkko linkki fyysinen sovelluskehittäjän kontrollissa käyttöjärjestelmä hallitsee Soketti/pistoke: ovi sovellusprosessin ja kuljetuskerroksen protokollan (TCP tai UDP) välissä Tavoite tällä kurssia on oppia ohjelmoimaan asiakas-palvelinsovelluksia, jotka viestivät käyttäen soketteja do what I mean

Sokettirajapinta (socket API) Sokettirajapinta eli socket API (application programming interface) on käyttöjärjestelmän tarjoama rajapinta IPverkkoon Yleisin rajapinta nimeltä Berkeley sockets Alunperin BSD-Unixissa v. 1983 Nykyään käytössä kaikissa käyttöjärjestelmissä Sisältää keskeiset funktiot, joiden avulla sovelluskehittäjä voi toteuttaa verkon yli viestivän sovelluksen TCP:n tai UDP:n päälle UDP: epäluotettava datagrammipalvelu TCP: luotettava bittivirtapalvelu

Sokettiohjelmointi TCP:llä Asiakas ottaa yhteyttä palvelimeen Palvelinprosessi pitää olla valmiiksi käynnissä Palvelin on luonut soketin, joka vastaanottaa uuden asiakkaan Asiakkaan soketti muodostaa TCP yhteyden Sovelluskoodi spesifioi palvelimen IP-osoitteen ja TCP-porttin Palvelin luo yhteydenmuodostuksen aikana uuden soketin prosessille, joka palvelee kyseistä asiakasta Mahdollistaa usean samanaikaisen asiakkaan Lähettäjän IP-osoite ja porttinro erottaa asiakkaat toisistaan Sovelluksen näkökulmasta TCP soketti on luotettava bittivirran siirtopalvelu 2-52

Asiakas/palvelin TCP-soketit palvelin (osoite hostid) luo soketti, portti=x, saapuville asiakkaille: serversocket = socket() asiakas odota saapuvaa asiakasta connectionsocket = serversocket.accept() lue kysely soketista connectionsocket kirjoita vastaus sokettiin connectionsocket sulje connectionsocket TCP yhteyden muodostus luo soketti, muodosta yhteys: osoite=hostid, portti=x clientsocket = socket() lähetä kysely sokettiin clientsocket lue vastaus soketista clientsocket sulje clientsocket

Esimerkkisovellus: TCP-asiakas Python TCPClient luo TCP soketti, palvelimen portti 12000 Ei tarvita palvelimen nimeä/osoitetta/porttia from socket import * servername = servername serverport = 12000 clientsocket = socket(af_inet, SOCK_STREAM) clientsocket.connect((servername,serverport)) sentence = raw_input( Input lowercase sentence: ) clientsocket.send(sentence) modifiedsentence = clientsocket.recv(1024) print From Server:, modifiedsentence clientsocket.close()

Esimerkkisovellus: TCP-palvelin luo TCP soketti uuden asiakkaan vastaanottamiseksi palvelin alkaa kuunnella saapuvia TCP asiakkaita ikuinen luuppi palvelin blokkaa accept() funktiossa kunnes uusi asiakas saapuu, luodaan uusi soketti palautusarvona lue tavut soketista (muttei läh. osoitetta kuten UDP soketin kanssa) sulje asiakkaan soketti (ei vastaanottosokettia) Python TCPServer from socket import * serverport = 12000 serversocket = socket(af_inet,sock_stream) serversocket.bind((,serverport)) serversocket.listen(1) print The server is ready to receive while 1: connectionsocket, addr = serversocket.accept() sentence = connectionsocket.recv(1024) capitalizedsentence = sentence.upper() connectionsocket.send(capitalizedsentence) connectionsocket.close()

Ensi viikolla: sovelluskerros Sovellusten tarvitsemat kuljetuskerroksen palvelut Käyttäjän sovellukset: Sähköposti: SMTP, IMAP Web ja HTTP-protokolla Verkko-ohjelmien teko (lisää) Kahden viikon päästä Verkon toiminnan kannalta olennaiset sovellukset: Nimipalvelu DNS Sovellusarkkitehtuurit

Lähteitä Kurose, Ross: Computer Networking, 2013, luku 1 RFC:t (http://www.rfc-editor.org/rfc-index.html) J. Postel, Internet protocol (IP), RFC791, 1981 J. Postel, Transmission Control Protocol (TCP), RFC793, 1981 D.Clark et al. Towards the Future Internet Architelcure, RFC1287, 1991 P.V. Mockapetris. Domain names - concepts and facilities, RFC1034, 1987 ja Domain names - implementation and specification, RFC 1035, 1987

Tärkeitä lyhenteitä IP internet protocol TCP transmission control protocol UDP user datagram protocol RFC request for comments API application programming interface DSL digital subscriber line ISP internet service provider LAN local area network FDM frequency-division multiplexing TDM time-division multiplexing IXP Internet exchange point SMTP simple mail transfer protocol DNS domain name system DHCP dynamic host configuration protocol DoS denial of service

Tärkeitä termejä ja konsepteja Internet, palvelu (service), protokolla (protocol), rajapinta (interface), päätelaite (host, end system), palvelin (server), linkki (communication link), verkko (network), kytkin (switch), reititin (router), paketti (packet), protokolla (protocol), sovellus (application), rajapinta (interface), asiakasohjelma (client), asiakas (customer), tuottaja (provider), tier-1 ja tier-2, monikotinen (multi-home) Liitäntäverkko (access network), lähiverkko (LAN), laajakaistaverkko (broadband-), kaapeliverkko, fyysinen media (physical medium), pakettikytkentäinen (packet switching), piirikytkentäinen (circuit switching), aika- tai taajuusjakoinen multipleksaus (time- or frequence-division multiplexing), talleta-jalähetä (store and forward), Ethernet, WiFi (tai WLAN), Jono (queue), puskuri (buffer), viive (delay), kaistanleveys (bandwidth), katoaminen (loss), läpäisy/ suoritusteho (throughput), tiputtaminen (drop), pullonkaula (bottleneck) Kerrosarkkitehtuuri (layered architecture), referenssimalli (reference modell), kerros (layer), protokollapino (protocol stack), sovelluskerros (application layer), kuljetuskerros (transport layer), verkkokerros (network layer), linkkikerros (link layer), fyysinen kerros (physical layer), esitystapakerros (presentation layer), istuntokerros (session layer), kapsulointi (encapsuation), viesti (message), sekmentti (segment), tietosähke (datagram), kehys (frame) Haittaohjelma (malware), palvelunestohyökkäys (denial-of-service attack), pakettien salakuuntelu (eavesdropping, packet sniffing), naamioituminen (masquerade), tunnistus (authentication) Historiaa ja standardeja: ARPAnet, Aloha, DARPA, IETF, ISO:n OSI-malli (ISO OSI reference model),