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



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

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

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

Tietoliikenne II (2 ov)

Tietoliikenne II (2 ov)

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

3. Kuljetuskerros 3.1. Kuljetuspalvelu

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

T Johdatus tietoliikenteeseen 5 op. Kevät 2013

S Teletekniikan perusteet

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

OSI ja Protokollapino

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

Pertti Pennanen OSI 1 (4) EDUPOLI ICTPro

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

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

1.4. Tietoliikenneohjelmistot eli protokollat

1.4. Tietoliikenneohjelmistot eli protokollat

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

T Johdatus tietoliikenteeseen 5 op

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

Kuljetuskerros. Tietokoneverkot. Matti Siekkinen Pasi Sarolahti

ELEC-C7241 Tietokoneverkot Sovelluskerros

Tietoliikenne I 2 ov kevät 2003

Tietoliikenne I 2 ov kevät 2002

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

Tietoliikenteen perusteet

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

Sovellukset (osa 2) ja verkkoohjelmointi

Tietoliikenne I 2 ov kevät 2004

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

Tietoliikenne I 2 ov syksy 2001

Luento 1: Tietokoneverkot ja Internet

T Tietokoneverkot kertaus

Kuva maailmasta Pakettiverkot (Luento 1)

Tietoliikenne I 2 ov kevät 2004

Internet ja tietoverkot

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

Siltojen haitat Yleisesti edut selvästi suuremmat kuin haitat

ELEC-C7241 Tietokoneverkot Kuljetuskerros

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

Tietoliikenteen perusteet

Tietoliikenteen perusteet. Langaton linkki

Tietoliikenteen perusteet. Langaton linkki

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,

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

Chapter 1 Introduction

Tietoliikenteen perusteet

T Harjoitustyöluento

3. Kuljetuskerros 3.1. Kuljetuspalvelu

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

Mikä on internet, miten se toimii? Mauri Heinonen

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

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

Yhteenveto. CSE-C2400 Tietokoneverkot

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

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

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

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

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

1. Tietokoneverkot ja Internet

kynnysarvo (threshold)

kynnysarvo (threshold)

T Harjoitustyöluento

T harjoitustyö, kevät 2012

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

3. IP-kerroksen muita protokollia ja

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

Tietoliikenteen perusteet

Miten Internet toimii?

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

Yhteenveto / kertaus. Tuomas Aura T Johdatus Tietoliikenteeseen kevät 2013

Netemul -ohjelma Tietojenkäsittelyn koulutusohjelma

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

Tietoliikenteen perusteet: Kokeeseen tulevista asioista

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

ELEC-C7241 Tietokoneverkot Sovelluskerros

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

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

Yhteenveto / kertaus. Tuomas Aura T Johdatus tietoliikenteeseen kevät 2011

Internet ja tietoverkot 2015 Harjoitus 7: Kertaus

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

Tulevaisuuden Internet. Sasu Tarkoma

TCP/IP-protokollapino. Verkkokerros ja Internetprotokolla. Sisältö. Viime luennolla. Matti Siekkinen

Kuljetuskerroksen protokollat. Luotettava vai epäluotettava? Kuljetuskerroksen tarkoitus. Tietosähkeen kapselointi. Portit ja (de)multipleksaus

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

Hajautettu versionhallinta Gitillä

1 YLEISKUVAUS Kaapelikaistaliittymä Palvelun rajoitukset PALVELUKOMPONENTIT Päätelaite Nopeus...

Miten Internet toimii?

ProNetti -sähköpostijärjestelmä

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

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

D-Link DSL-504T ADSL Reitittimen Asennusohje ver. 1.0

TIETOKONEYLIASENTAJAN ERIKOISAMMATTITUTKINTO

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

Kaikki analogiset järjestelmät digitaalisiksi ja verkkokäyttöisiksi - jo tänään Kustannustekkuutta ja joustavuutta työskentelyyn

S Tietoliikennetekniikan perusteet. Piirikytkentäinen evoluutio. Annukka Kiiski

T harjoitustehtävät, syksy 2011

Luento 1: Tietokoneverkot ja Internet

Transkriptio:

Tämä luento Tietokoneverkot CSE-C2400 Tietokoneverkot (5 op) 2015 Sanna Suoranta Käytännön asiat ja kurssin suorittaminen Kokonaiskuva, esimerkkinä sähköposti Verkko-ohjelmointi soketeilla lyhyesti 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 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 issä 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! 1

Oppimateriaali Osasuoritukset ja arvostelu 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 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 Luennot tiistaisin 10-12 T2-salissa 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 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. -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ä Kotitehtävät 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ä 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ä 2

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 GIT 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. 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 17 18 3

Gitin peruskomennot Gitin kolme tilaa 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 19 20 Perustyöskentely Haarat (branch) 21 22 Hajautettu työskentely (yksinkertaisimmillaan) 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 23 24 4

Git tällä kurssilla Hyödyllisiä linkkejä 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 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/ 25 26 Kysyttävää järjestelyistä? 27 Tehtävä: Piirrä (tai kirjoita) Mikä on? Mitä ikinä sinulle tulee mieleen tietokoneverkosta ja istä? on globaali verkko, jossa on tarjolla monenlaisia hajautettuja palveluita, joita voi käyttää etänä verkon yli Sähköposti, www, P2P, videoiden katselu (-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) -verkko on verkko, joka muodostuu useista eri tahojen operoimista verkoista 5

do what I mean Liityntäverkko (access network) Alice haluaa lähettää sähköpostiviestin Bobille DSL 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) -palveluntarjoaja ( service provider, ISP) DSL DSLAM tarjoaa yhteyttä iin 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 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 Sähköpostin lähettäminen 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) 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). 6

do what I mean do what I mean Kotiverkko (reunaverkko) Tier-2: Alueellinen tai kansallinen ISP Tier-3: Asiakkaan ISP Tier-1 ISP Yliopiston verkko (reunaverkko) -verkko koostuu useista, yhteentoimivista verkoista Runkoverkko, Tier-1-operaattorit Välittävät toistensa liikennettä ilmaiseksi (esim valtamerten ali) -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 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ä Sähköpostin matka verkossa Sähköposti jatkaa matkaansa verkossa SMTPpalvelin SMTP SMTP IMAPprotokolla 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 Häiriöt viestin kulkiessa verkossa Mitä voi mennä pieleen? 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) 7

do what I mean 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) 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 in 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 -verkossa? (tietosähke, datagram) Päätelaite mille laitteelle lähiverkossa? (kehys, frame) verkko1 SMTP TCP IP Ethernet fyysinen kytkin Ethernet F1 F2 reititin IP Eth Eth F2 F3 SMTP IMAP TCP IP Ethernet fyysinen verkko2 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ä 8

do what I mean 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 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 Sokettirajapinta (socket API) Sokettiohjelmointi TCP:llä 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 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) asiakas luo soketti, portti=x, saapuville asiakkaille: serversocket = socket() odota saapuvaa TCP asiakasta connectionsocket = yhteyden muodostus serversocket.accept() lue kysely soketista connectionsocket kirjoita vastaus sokettiin connectionsocket sulje connectionsocket luo soketti, muodosta yhteys: osoite=hostid, portti=x clientsocket = socket() lähetä kysely sokettiin clientsocket lue vastaus soketista clientsocket sulje clientsocket Esimerkkisovellus: TCP-asiakas luo TCP soketti, palvelimen portti 12000 Ei tarvita palvelimen nimeä/osoitetta/porttia Python TCPClient 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() 9

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