• Ei tuloksia

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

N/A
N/A
Info
Lataa
Protected

Academic year: 2022

Jaa "Tietokoneverkot CSE-C2400 Tietokoneverkot (5 op) 2015 Sanna Suoranta"

Copied!
59
0
0

Kokoteksti

(1)

Tietokoneverkot

CSE-C2400 Tietokoneverkot (5 op) 2015

Sanna Suoranta

CSE-C2400 Tietokoneverkot cse-c2400@aalto.fi

Sanna Suoranta

sanna.suoranta@aalto.fi Tietokoneverkot 2015

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

(2)

Tämä luento

•  Käytännön asiat ja kurssin suorittaminen

•  Kokonaiskuva, esimerkkinä sähköposti

•  Verkko-ohjelmointi soketeilla lyhyesti

13.1.2015

(3)

“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/IP- protokollat 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

13.1.2015

(4)

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

13.1.2015

(5)

Käytännön asioita

•  Ilmoittaudu TÄNÄÄN (13.1.2015) 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)

13.1.2015

(6)

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 cse- c2400@aalto.fi, älä suoraan meistä kenellekään!

13.1.2015

(7)

Oppimateriaali

•  Kurssin kirja: James F. Kurose, Keith W. Ross.

Computer Networksing, A Top-Down Approach, 6th edition, 2013

–  kirjastossa myös sähköisenä

•  Luennot ja luentokalvot kertovat vain osan aihealueesta

•  Mahdollisesti muuta lisämateriaalia nopassa

13.1.2015

(8)

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

13.1.2015

(9)

Osasuoritukset ja arvostelu

13.1.2015

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

20%

Harjoitustyö osa 1:

min 1p, max 5p osa 2:

min 1p, max 5p as= (osa1+osa2)/2 Arvosanarajat tentissä: 0-14=0, 15-17=1,

18-20=2 21-24=3, 25-27=4 ja 28-30=5

(10)

Luennot

tiistaisin 10-12 T2-salissa

pvm I osatentin alue lu- ku 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 lu- ku 25.2. Internet-protokolla

(Sanna)

4 3.3. Reititys (Sanna) 4 10.3. Linkkikerros,

Ethernet,WAN (Sanna) 5 17.3. Verkon suunnittelu ja

ylläpito (J. Kotimäki)

9 24.3. Langattomat verkot

(Sanna)

6 31.3. Kokonaisuus (Sanna) 7, 8

13.1.2015

(11)

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ä

13.1.2015

(12)

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ä

13.1.2015

(13)

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

13.1.2015

(14)

Harjoitustyö – kolmivaiheinen esitehtävä

13.1.2015

opiskelija henkilökunta

16.1. 12:00 kysely+aalto-tunnus

16.1. iltapäivä Niksulan luvat luodaan

ack

20.1. 12:00 log in git, lomake (kts tehtävänanto)

20.1. iltapäivä

oikeudet repoihin Noppaan: ack

23.1. 12:00 git-harjoitus-tehtävät

(15)

Versionhallinta GIT

13.1.2015

(16)

CSE-C2400 Tietokoneverkot, kevät 2015

(17)

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

(18)

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

(19)

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

(20)

Gitin kolme tilaa

1/13/15 20

(21)

Perustyöskentely

1/13/15 21

(22)

Haarat (branch)

1/13/15 22

(23)

Hajautettu työskentely (yksinkertaisimmillaan)

1/13/15 23

(24)

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

(25)

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

(26)

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

(27)

1/13/15 27

(28)

Kysyttävää järjeste-

lyistä?

13.1.2015

(29)

Tehtävä: Piirrä Internet (tai kirjoita)

•  Mitä ikinä sinulle tulee mieleen tietokoneverkosta ja Internetistä?

13.1.2015

(30)

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

13.1.2015

(31)

Internet

do what I mean

•  Alice haluaa lähettää sähköpostiviestin Bobille

13.1.2015

(32)

•  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)

Liityntäverkko (access network)

DSL

Internet

13.1.2015

(33)

•  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

–  Nimipalvelu (domain name service, DNS)

–  Sähköpostipalvelin –  Levytilaa

Internet-palveluntarjoaja (Internet service provider, ISP)

DSL

DSLAM

Internet ISP

13.1.2015

(34)

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

13.1.2015

(35)

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)

13.1.2015

(36)

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

Sähköpostin lähettäminen

DSL

DSLAM

Internet

13.1.2015

SMTP DHCP

DNS

(37)

do what I mean

Kotiverkko

(reunaverkko)

Tier-3:

Asiakkaan ISP

Tier-2:

Alueellinen tai kansallinen ISP

Tier-1 ISP Internet

13.1.2015

Yliopiston verkko (reunaverkko)

(38)

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ä

13.1.2015

(39)

do what I mean

Sähköpostin matka verkossa

Internet

SMTP- palvelin

SMTP

SMTP

IMAP-

protokolla

13.1.2015

(40)

Sähköposti jatkaa matkaansa verkossa

4.  Viesti välitetään ISP:n sähköpostipalvelimelle SMTP- protokollaa 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 IMAP- protokollaa käyttäen ja lukee sen

13.1.2015

(41)

Mitä voi mennä pieleen?

13.1.2015

(42)

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)

13.1.2015

(43)

Viipeet reitittimessä ja verkossa

•  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ä djono + dprosessi (+ djono)+ dlähetys

deteneminen

13.1.2015

(44)

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

13.1.2015

(45)

•  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

Sähköpostin lähettäminen (taas)

Internet

13.1.2015

(46)

Internetin

protokollapino

Fyysinen kerros (physical) Linkkikerros (link layer) Verkkokerros (network) Kuljetuskerros (transport) Sovelluskerros (application)

Sovellukset

(viesti, message)

Päätepiste – mille sovel- lukselle päätelaitteessa?

(segmentti, segment) Päätelaite – minne Internet-verkossa?

(tietosähke, datagram) Päätelaite – mille laitteelle lähiverkossa?

(kehys, frame) Bitit piuhaan/ilmaan (fyysisenä signaalina)

13.1.2015

(47)

do what I mean

SMTP TCP

IP

Ethernet fyysinen

Ethernet F1 F2

IP

Eth Eth F2 F3

IMAP TCP

IP

Ethernet fyysinen kytkin

reititin

verkko1 verkko2

13.1.2015

SMTP IMAP TCP

IP

Ethernet fyysinen

sähköposti- palvelin

(48)

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

13.1.2015

(49)

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

13.1.2015

(50)

Verkko-ohjelmointi soketeilla

•  Soketti/pistoke: “ovi” sovellusprosessin ja

kuljetuskerroksen protokollan (TCP tai UDP) välissä

–  Tavoite tällä kurssia on oppia ohjelmoimaan asiakas-palvelin- sovelluksia, jotka viestivät käyttäen soketteja

13.1.2015

do what I mean

sovellus prosessi kuljetus

verkko linkki fyysinen

soketti

Internet

sovellus prosessi kuljetus

verkko linkki fyysinen

sovellus- kehittäjän kontrollissa käyttö-

järjestelmä hallitsee

(51)

Sokettirajapinta (socket API)

•  Sokettirajapinta eli socket API (application programming interface) on käyttöjärjestelmän tarjoama rajapinta IP- verkkoon

•  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

13.1.2015

(52)

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

(53)

Asiakas/palvelin TCP-soketit

odota saapuvaa asiakasta

connectionSocket = serverSocket.accept() luo soketti,

portti=x, saapuville asiakkaille:

serverSocket = socket()

luo soketti,

muodosta yhteys: osoite=hostid, portti=x clientSocket = socket()

palvelin (osoite

hostid)

asiakas

lähetä kysely sokettiin clientSocket

lue kysely soketista connectionSocket

kirjoita vastaus sokettiin connectionSocket

TCP

yhteyden muodostus

sulje

connectionSocket

lue vastaus soketista clientSocket

sulje

clientSocket

(54)

Esimerkkisovellus: TCP-asiakas

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()

Python TCPClient

luo TCP soketti,

palvelimen portti 12000

Ei tarvita palvelimen nimeä/osoitetta/porttia

(55)

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()

Python TCPServer

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)

Esimerkkisovellus: TCP-palvelin

(56)

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

13.1.2015

(57)

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

13.1.2015

(58)

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

13.1.2015

(59)

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-ja- lä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),

13.1.2015

Viittaukset

LIITTYVÄT TIEDOSTOT

Kolme ensim- mäistä tehtävää ovat kukin kuuden pisteen arvoiset, essee on 12 pisteen arvoinen.. Jos vastaat molempiin osatentteihin kerralla, kirjoita ensimmäisen osatentin

–  Yhteydenhallinta –  Virheenkorjaus –  Vuonhallinta..

–  Yhteydenhallinta –  Virheenkorjaus –  Vuonhallinta..

–  Yhteydenhallinta –  Virheenkorjaus –  Vuonhallinta..

–  Yhteydenhallinta –  Virheenkorjaus –  Vuonhallinta..

jonka avulla reittienvaihtoa toisten AS:ien kanssa voidaan tehdä hallitusti, paikallisesti valittujen ja toisen AS:n kanssa sovittujen

§  Soketin osoite koostuu IP-osoitteesta ja porttinumerosta –  Kirjoitetaan IP:portti, esim.. Soketin tyyppi

–  Kaksi osatenttiä, kumpikin 33% kurssin arvosanasta –  Harjoitustyö, kaksi osaa, 34% kurssin arvosanasta –  Kurssipalaute, pakollinen, ei lisäpisteitä.