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

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

Miten Internet toimii. Jyry Suvilehto T Johdatus tietoliikenteeseen ja multimediatekniikkaan kevät 2013

Miten Internet toimii. Jyry Suvilehto T Johdatus tietoliikenteeseen ja multimediatekniikkaan kevät 2010

Miten Internet toimii. Jyry Suvilehto T Johdatus tietoliikenteeseen ja multimediatekniikkaan kevät 2011

Miten Internet toimii. Jyry Suvilehto T Johdatus tietoliikenteeseen ja multimediatekniikkaan kevät 2014

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

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

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

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

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

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

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

Sovellukset Interne.ssä

Kertausluento. Tuomas Aura T Johdatus tietoliikenteeseen kevät 2010

Sovelluskerros: Socket API, WWW, sähköposti, DNS

Tietoverkkojen turvallisuus. Tuomas Aura T Johdatus tietoliikenteeseen kevät 2013

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

Sovellukset Internetissä

Miten Internet toimii?

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

Tietoliikenne II (2 ov)

OSI ja Protokollapino

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

Tietoturvan perusteet. Tuomas Aura T Johdatus tietoliikenteeseen kevät 2010

Kuljetus- ja verkkokerrokset. Jyry Suvilehto T Johdatus tietoliikenteeseen ja multimediatekniikkaan kevät 2011

Taustaa. CGI-ohjelmointi

Sovelluskerros: Socket API, WWW, sähköposti, DNS

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

3. Kuljetuskerros 3.1. Kuljetuspalvelu

Salaustekniikat. Tuomas Aura T Johdatus tietoliikenteeseen kevät 2010

Tietoverkkojen turvallisuus. Tuomas Aura T Johdatus tietoliikenteeseen kevät 2012

Tietoliikenne II (2 ov)

Pertti Pennanen OSI 1 (4) EDUPOLI ICTPro

Miten Internet toimii?

Jyry Suvilehto T Johdatus tietoliikenteeseen ja multimediatekniikkaan kevät 2012

Jyry Suvilehto T Johdatus tietoliikenteeseen ja multimediatekniikkaan kevät 2013

Tietoverkkojen turvallisuus. Tuomas Aura T Johdatus tietoliikenteeseen kevät 2011

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

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

Siirto- ja verkkokerrokset. Jyry Suvilehto T Johdatus tietoliikenteeseen ja multimediatekniikkaan kevät 2014

ELEC-C7241 Tietokoneverkot Kuljetuskerros

Siltojen haitat Yleisesti edut selvästi suuremmat kuin haitat

Sovellukset Internetissä

Tietoliikenne I 2 ov kevät 2004

Tietoliikenne I 2 ov kevät 2004

Internet ja tietoverkot 2015 Harjoitus 7: Kertaus

Tietoliikenne I 2 ov kevät 2003

ELEC-C7241 Tietokoneverkot Sovelluskerros

Tietoliikenteen perusteet

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

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

Sovelluskerros: Socket API, WWW, sähköposti, DNS

ATK yrittäjän työvälineenä

Yhteenveto. CSE-C2400 Tietokoneverkot

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

Tietoliikenteen perusteet

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

Tietoliikenne I 2 ov kevät 2002

Tietoliikenneohjelmointi. v. 0.01

1.1 Internetistä lyhyesti. Mikä Internet on? 1.2 Maailmanlaajuinen verkko

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

Tietoliikenteen perusteet

S Tietoliikennetekniikan perusteet. Pakettikytkentäiset verkot. Tietoliikenne- ja tietoverkkontekniikan laitos

Kuljetuskerros. Tietokoneverkot. Matti Siekkinen Pasi Sarolahti

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

Internet ja tietoverkot 2015 Harjoitus 5: (ISO/OSI-malli: Verkkokerros, TCP/IP-malli: internet-kerros)

S Teletekniikan perusteet

2. PEHMEÄ XHTML XRAJAHTML

3. Kuljetuskerros 3.1. Kuljetuspalvelu

1.4. Tietoliikenneohjelmistot eli protokollat

1.4. Tietoliikenneohjelmistot eli protokollat

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

Web-sovellusten testaus

Yhteenveto. CSE-C2400 Tietokoneverkot Matti Siekkinen

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

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

Sovellukset Interne.ssä

2. Sovelluksia ja sovellusprotokollia

Jyry Suvilehto T Johdatus tietoliikenteeseen ja multimediatekniikkaan kevät 2010

Sovellusprotokolla on vain osa hajautettua sovellusta Esim. WWW

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

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

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

ELEC-C7241 Tietokoneverkot Sovelluskerros

3. IP-kerroksen muita protokollia ja

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

T Tietokoneverkot kertaus

Luento 1. Jouni Ikonen - Jouni.Ikonen lut.fi

3. Kuljetuskerros 3.1.

Salaustekniikat. Tuomas Aura T Johdatus tietoliikenteeseen kevät 2010

3. Kuljetuskerros 3.1. Kuljetuspalvelu End- to- end

Mikä on internet, miten se toimii? Mauri Heinonen

Sovellusprotokolla on vain osa hajautettua sovellusta Esim. WWW

2. Sovelluksia ja sovellusprotokollia

2. Sovelluksia ja sovellusprotokollia

TW- EAV510 v2: WDS- TOIMINTO TW- EAV510 V2 LAITTEEN ja TW- LTE REITITTIMEN VÄLILLÄ. Oletus konfiguroinnissa on, että laitteet ovat tehdasasetuksilla

Tietoliikenne I 2 ov syksy 2001

Tiedon esitys tietokoneessa. Jyry Suvilehto T Johdatus tietoliikenteeseen ja multimediatekniikkaan kevät 2012

2. Sovelluksia ja sovellusprotokollia

Kuva maailmasta Pakettiverkot (Luento 1)

Transkriptio:

Miten Internet toimii Tuomas Aura T-110.2100 Johdatus tietoliikenteeseen kevät 2010

Outline 1. Esimerkki 1: nettiselailu 2. Esimerkki 2: sähköposti 3. Internetin protokollapino 2

ESIMERKKI 1: NETTISELAILU 3

Asiakas (käyttäjä, työasema ja selainohjelma) Nettiselailu Palvelin (palvelinkone ja -ohjelma) Internet Asiakas/palvelin-malli Nimiarvaruus: URL http://users.tkk.fi/aura/esimerkki.html 4

Tiedon muoto Tietokoneiden käsittelemä tieto on määrämuotoista Esim. HTML = hypertekstin merkintäkieli <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.1//EN' 'http://www.w3.org/tr/xhtml11/dtd/xhtml11.dtd'> <html xmlns='http://www.w3.org/1999/xhtml' xml:lang='fi'> <head> <title>esimerkki</title> </head> <body> <!-- Aika simppeliä --> <h1>terve maailma!</h1> Sivun esimerkki.html lähdekoodi <p>tämä on erittäin yksinkertainen webbisivu.</p> </body> </html> 5

Protokolla Tiedon siirtoon palvelimen ja asiakkaan välillä pitää sopia yhteyskäytäntö eli protokolla: lähetettävät viestit ja niiden otsakkeet tilakone: kuka lähettää mitä ja milloin tiedon muoto siirtotie Esim. HTTP = hypertekstin siirtoprotokolla Protokollista sovitaan standardointiorganisaatioissa: IETF, W3C, Oasis, ISO, IEEE, 3GPP, ITU, 6

Selaimelta palvelimelle: HTTP GET /aura/esimerkki.html HTTP/1.1 Host: users.tkk.fi User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-us; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive Palvelimelta selaimelle: HTTP/1.x 200 OK Date: Sun, 17 Jan 2010 12:57:12 GMT Server: Apache/2.2.9 (Unix) Last-Modified: Sun, 17 Jan 2010 12:51:31 GMT Etag: "35ab82-158-47d5bb227dca9;458ab883a0bc0" Accept-Ranges: bytes Content-Length: 344 Tyypillinen Keep-Alive: timeout=15, max=100 Connection: Keep-Alive Content-Type: text/html asiakas/palvelinprotokollan <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.1//EN' 'http://www.w3.org/tr/xhtml11/dtd/xhtml11.dtd'> <html xmlns='http://www.w3.org/1999/xhtml' rakenne: pyyntö xml:lang='fi'> <head> <title>esimerkki</title> ja vastaus </head> <body> <!-- Aika simppeliä --> <h1>terve maailma!</h1> <p>tämä on erittäin yksinkertainen webbisivu.</p> </body> </html> HTTP-pyyntö HTTP-pyynnön otsakkeet HTTP-vastaus HTTP-vastauksen otsakkeet Data(HTML) 7

Selaimelta palvelimelle: HTTP GET /aura/esimerkki.html HTTP/1.1 Host: users.tkk.fi GET /aura/esimerkki.html HTTP/1.1 User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-us; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: Host: en-us,en;q=0.5 users.tkk.fi Accept-Encoding: gzip,deflate HTTP-pyynnön Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 otsakkeet Connection: keep-alive Palvelimelta selaimelle: HTTP/1.x 200 OK Date: Sun, 17 Jan 2010 12:57:12 GMT Server: Apache/2.2.9 (Unix) Last-Modified: Sun, 17 Jan 2010 12:51:31 GMT Etag: "35ab82-158-47d5bb227dca9;458ab883a0bc0" Accept-Ranges: bytes Content-Length: 344 Keep-Alive: timeout=15, max=100 Connection: Keep-Alive Content-Type: text/html <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.1//EN' 'http://www.w3.org/tr/xhtml11/dtd/xhtml11.dtd'> <html xmlns='http://www.w3.org/1999/xhtml' xml:lang='fi'> <head> <title>esimerkki</title> </head> <body> <!-- Aika simppeliä --> <h1>terve maailma!</h1> <p>tämä on erittäin yksinkertainen webbisivu.</p> </body> </html> HTTP-pyyntö User-Agent: Mozilla/5.0 (Windows; U; Windo Accept: text/html,application/xhtml+xml,ap Accept-Language: en-us,en;q=0.5 HTTP-vastaus Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q HTTP-vastauksen otsakkeet Keep-Alive: 300 Connection: keep-alive Data(HTML) 8

Selaimelta palvelimelle: HTTP/1.x 200 OK HTTP GET /aura/esimerkki.html HTTP/1.1 Host: users.tkk.fi User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-us; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7 Accept: Date: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Sun, 17 Jan 2010 12:57:12 GMT Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip,deflate HTTP-pyynnön Accept-Charset: Server: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Apache/2.2.9 (Unix) Keep-Alive: 300 otsakkeet Connection: keep-alive Palvelimelta selaimelle: HTTP/1.x 200 OK Date: Sun, 17 Jan 2010 12:57:12 GMT Server: Apache/2.2.9 (Unix) Last-Modified: Sun, 17 Jan 2010 12:51:31 GMT Etag: "35ab82-158-47d5bb227dca9;458ab883a0bc0" Accept-Ranges: bytes Content-Length: 344 Keep-Alive: timeout=15, max=100 Connection: Keep-Alive Content-Type: text/html HTTP-pyyntö Last-Modified: Sun, 17 Jan 2010 12:51:31 G Etag: "35ab82-158-47d5bb227dca9;458ab883a0 HTTP-vastaus Accept-Ranges: bytes Content-Length: 344 HTTP-vastauksen Keep-Alive: timeout=15, max=100 otsakkeet Connection: Keep-Alive <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.1//EN' 'http://www.w3.org/tr/xhtml11/dtd/xhtml11.dtd'> <html Content-Type: xmlns='http://www.w3.org/1999/xhtml' text/html xml:lang='fi'> <head> <title>esimerkki</title> </head> <body> Data(HTML) <!DOCTYPE <!-- Aika simppeliä --> html PUBLIC '-//W3C//DTD XHTML 1 <h1>terve maailma!</h1> <p>tämä on erittäin yksinkertainen webbisivu.</p> </body> 'http://www.w3.org/tr/xhtml11/dtd/xhtml1 </html> 9

Selaimelta palvelimelle: HTTP GET /aura/esimerkki.html HTTP/1.1 Host: users.tkk.fi User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-us; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive Palvelimelta selaimelle: HTTP/1.x 200 OK Date: Sun, 17 Jan 2010 12:57:12 GMT Server: Apache/2.2.9 (Unix) Last-Modified: Sun, 17 Jan 2010 12:51:31 GMT Etag: "35ab82-158-47d5bb227dca9;458ab883a0bc0" Accept-Ranges: bytes Content-Length: 344 Keep-Alive: timeout=15, max=100 Connection: Keep-Alive Content-Type: text/html HTTP-pyyntö HTTP-pyynnön otsakkeet HTTP-vastaus HTTP-vastauksen otsakkeet <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.1//EN' 'http://www.w3.org/tr/xhtml11/dtd/xhtml11.dtd'> <html xmlns='http://www.w3.org/1999/xhtml' xml:lang='fi'> <head> <title>esimerkki</title> </head> <body> <!-- Aika simppeliä --> <h1>terve maailma!</h1> <p>tämä on erittäin yksinkertainen webbisivu.</p> </body> </html> Data(HTML) 10

Siirtoprotokolla Kuinka HTTP-protokollan viestit siirretään asiakkaan ja palvelimen välillä? Vastaus: HTTP käyttää viestien siirtoon TCP-protokollaa 11

TCP:n tarjoama palvelu TCP toteuttaa kaksisuuntaisen tavuvirran asiakkaan ja palvelimen välillä Palvelin odottaa yhteyksiä; asiakas avaa yhteyden Kumpikin kirjoittaa ja lukee tavuja virrasta Asiakas GET /aura/esimerkki.html HTTP/1.x 200 OK Internet 80 Palvelin Palvelut on numeroitu: HTTP-palvelinohjelma odottaa yhteyksiä porttinumerossa 80 Telnet-ohjelmalla TCP:tä voi käyttää käsin 12

Protokollapino ja rajapinnat Miten TCP siirtää tavuvirran asiakkaan ja palvelimen välillä? Vastaus: TCP jakaa tavuvirran lohkoihin ja lähettää lohkot IP-paketeissa Protokollat muodostavat pinon, jossa kukin käyttää alemman kerroksen palveluja HTTP kayttää TCP:tä, TCP käyttää IP:tä Kerrosten välillä on rajapinta TCP Socket API ohjelmointirajapinta sovelluksia varten 13

TCP:n toteutus Asiakas IP-paketteja Palvelin kolmen paketin kättely SYN ACK data SYN- ACK kaksisuuntainen tavuvirta paloiteltuna pakettehin data data Internet 14

IP:n tarjoama palvelu IP siirtää tietopaketteja kahden Internettiin yhdistetyn koneen (host) välillä Paketin koko yleensä alle 1500 tavua Kullakin koneella on IP-osoite Esim. 130.233.194.61 Periaate: Jokaisella koneella on oma IPosoite ja mikä tahansa kone voi lähettää paketteja mille tahansa koneelle 15

Paketit verkossa Esimerkin paketit (Wireshark): Time Source IP Destination IP Protocol Ports Details 5.722 130.233.194.61 130.233.224.249 TCP 52079 > 80 SYN 5.725 130.233.224.249 130.233.194.61 TCP 80 > 52079 SYN, ACK 5.725 130.233.194.61 130.233.224.249 TCP 52079 > 80 ACK 5.725 130.233.194.61 130.233.224.249 HTTP 52079 > 80 GET /aura/esimerkki.html HTTP/1.1 5.726 130.233.224.249 130.233.194.61 TCP 80 > 52079 ACK 5.737 130.233.224.249 130.233.194.61 HTTP 80/1.1 200 OK (text/html) 5.938 130.233.194.61 130.233.224.249 TCP 52079 > 80 ACK 20.746 130.233.224.249 130.233.194.61 TCP 80 > 52079 FIN, ACK 20.747 130.233.194.61 130.233.224.249 TCP 52079 > 80 ACK 32.521 130.233.194.61 130.233.224.249 TCP 52079 > 80 FIN, ACK 32.522 130.233.224.249 130.233.194.61 TCP 80 > 52079 ACK 16

Asiakaskone löytää lähimmän reitittimen ja saa oman IPosoitteen automaattisesti DHCP-protokollalla IP-reititys Reitittimet kuljettavat IP-paketteja vastaanottajan IP-osoitteeseen 130.233.194.61 Internet 130.233.224.249 Kunkin koneen tarvitsee tietää vain oma lähin reititin 17

Linkkikerroksen palvelu Miten asiakas- ja palvelinkone siirtävät IPpaketin lähimmälle reitittimelle? Miten reititin siirtää tiedon seuraavalle reitittimelle? Miten tavut koneen muistista lähetetään fyysisenä signaalina? Vastaus: Linkkikerros toteuttaa IP-pakettien siirron fyysisen linkin yli Langaton lähiverkko IEEE 802.11 ADSL Kytketty Ethernet IEEE 802.3 18

Linkkikerroksen toteutus Linkkikerros siirtää IP-paketteja fyysisen siirtotien kuten radioyhteyden, kuparikaapelin tai kuidun yli Kone tai reititin liittyy linkkiin verkkokortilla, jolla on MAC-osoite IP-paketit kapsuloidaan kehyksiin Kehysten bitit koodataan fyysiseksi signaaliksi Linkkikerroksen toteutuksia: Ethernet, WLAN,GPRS DSL, kaapelimodeemi MPLS, ATM 19

ESIMERKKI 2: SÄHKÖPOSTI 20

Webmail https://webmail.tkk.fi/ 21

Dynaaminen HTML <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd"> <!-- Horde: Copyright 2000-2006, The Horde Project. Horde is under the LGPL. --> <!-- Horde Project: http://horde.org/ --> <!-- GNU Library Public License: http://www.fsf.org/copyleft/lgpl.html --> <html lang="en-us" id="sidebar-frame"><head> <script type="text/javascript" src="/js/horde.js?horde=714099321573f7c375fa436013d6ce093"></script> <script type="text/javascript" Otteita palvelun webmail.tkk.fi -lähdekoodista src="/services/javascript.php?horde=714099321573f7c375fa436013d6ce093&file=popup.js&app=imp"></script> <script type="text/javascript" src="/js/httpclient.js?horde=714099321573f7c375fa436013d6ce093"></script> <script type="text/javascript" src="/js/hideable.js?horde=714099321573f7c375fa436013d6ce093"></script> <title>horde</title> <link href="/themes/graphics/favicon.ico" rel="shortcut ICON" /> <link href="/themes/screen.css" rel="stylesheet" type="text/css" /> <link href="/themes/bluewhite/screen.css" rel="stylesheet" type="text/css" /> </head> <body class="sidebar"> <div id="expandedsidebar" style="overflow:hidden"> <div id="menu" style="overflow:hidden"> <span class="leftfloat" id="themelogo"> </span> <span class="leftfloat" id="logopad"> </span> <div class="clear"> </div> </div> <span id="expandbutton" class="rightfloat"><a href="#" onclick="togglemenuframe(); return false;" title="collapse Sidebar"><img src="/themes/graphics/hide_panel.png" alt="" title="" /></a></span> <div id="sidebarpanel"> <script type="text/javascript" src="/services/javascript.php?horde=714099321573f7c375fa436013d6ce093&file=tree.js&app=horde"></script> <script type="text/javascript"> n_horde_menu['horde'] = new Array(); n_horde_menu['horde']['label'] = 'Horde'; n_horde_menu['horde']['expanded'] = ''; n_horde_menu['horde']['url'] = '/login.php?horde=714099321573f7c375fa436013d6ce093'; n_horde_menu['horde']['icon'] = '/themes/graphics/horde.png'; 22

Dynaaminen HTML <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd"> <!-- Horde: Copyright 2000-2006, The Horde Project. Horde is under the LGPL. --> <!-- Horde Project: http://horde.org/ --> <!-- GNU Library Public License: http://www.fsf.org/copyleft/lgpl.html --> <html lang="en-us" id="sidebar-frame"><head> <script type="text/javascript" src="/js/horde.js?horde=714099321573f7c375fa436013d6ce093"></script> <script type="text/javascript" src="/services/javascript.php?horde=714099321573f7c375fa436013d6ce093&file=popup.js&app=imp"></script> <script type="text/javascript" src="/js/horde.js...> <script type="text/javascript" src="/js/httpclient.js?horde=714099321573f7c375fa436013d6ce093"></script> <script type="text/javascript" src="/js/hideable.js?horde=714099321573f7c375fa436013d6ce093"></script> <title>horde</title> <link href="/themes/graphics/favicon.ico" rel="shortcut ICON" /> <link href="/themes/screen.css" rel="stylesheet" type="text/css" /> <link href="/themes/bluewhite/screen.css" rel="stylesheet" type="text/css" /> </head> <body class="sidebar"> <div id="expandedsidebar" style="overflow:hidden"> <div id="menu" style="overflow:hidden"> <span class="leftfloat" id="themelogo"> </span> <span class="leftfloat" id="logopad"> </span> <div class="clear"> </div> </div> <span id="expandbutton" class="rightfloat"><a href="#" onclick="togglemenuframe(); return false;" title="collapse Sidebar"><img src="/themes/graphics/hide_panel.png" alt="" title="" /></a></span> onclick="togglemenuframe(); return false;" <div id="sidebarpanel"> <script type="text/javascript" src="/services/javascript.php?horde=714099321573f7c375fa436013d6ce093&file=tree.js&app=horde"></script> <script type="text/javascript"> n_horde_menu['horde'] = new Array(); var extracolsleft = 0; n_horde_menu['horde']['label'] = 'Horde'; n_horde_menu['horde']['expanded'] var extracolsright = ''; = 0; n_horde_menu['horde']['url'] = '/login.php?horde=714099321573f7c375fa436013d6ce093'; n_horde_menu['horde']['icon'] = '/themes/graphics/horde.png'; var n_horde_menu = new Array(); Otteita palvelun webmail.tkk.fi -lähdekoodista Nykyaikaiset webbisivut ovat interaktiivisia Javascript-ohjelmia, jotka kommunikoivat käyttäjän ja palvelimen kanssa 23

From: alice@example.com To: bob@tkk.fi Subject: Internetin sähköposti alice@example.com 192.168.1.33 IMAP/SMTP mail.example.com 207.68.196.170 bob@tkk.fi 130.233.194.61 Matkalla lähettäjältä vastaanottajalle sähköpostia välitetään useilla eri protokollilla useiden eri koneiden ja organisaatioiden välillä Internet SMTP HTTP smtp.hut.fi 193.229.0.40 webmail.tkk.fi 130.233.224.249 24

From: alice@example.com To: bob@tkk.fi Subject: Internetin sähköposti alice@example.com 192.168.1.33 IMAP/SMTP mail.example.com 207.68.196.170 bob@tkk.fi 130.233.194.61 Internet SMTP HTTP HTTP, IMAP ja SMTP käyttävät kaikki TCP:tä tiedon siirtoon smtp.hut.fi 193.229.0.40 HTTP ja IMAP webmail.tkk.fi voidaan suojata 130.233.224.249 käyttämällä SSL:ää 25

Tietoturva Siirrettävän tiedon luottamuksellisuus ja aitous voidaan suojata kryptografisesti HTTPS tarkoittaa, että tieto asiakkaan ja palvelimen välillä on salattu ja todennettu SSL-protokollalla SSL tarjoaa sovelluksille rajapinnan turvalliseen tavuvirran siirtoon SSL käyttää tavuvirran siirtoon TCP:tä 26

From: alice@example.com To: bob@tkk.fi Subject: Internetin sähköposti alice@example.com 192.168.1.33 IMAP/SMTP mail.example.com 207.68.196.170 bob@tkk.fi 130.233.194.61 Hakemistopalvelu DNS kertoo palvelimen nimeä vastaavan IP-osoitteen ja vastaanottajan sähköpostiosoitetta vastaavan SMTP-palvelimen nimen DNS-protokolla ei käytä sanomiensa siirtoon TCP:tä vaan UDP:tä HTTP Internet SMTP smtp.hut.fi 193.229.0.40 webmail.tkk.fi 130.233.224.249 27

From: alice@example.com To: bob@tkk.fi Subject: Internetin sähköposti alice@example.com 192.168.1.33 IMAP/SMTP mail.example.com 207.68.196.170 bob@tkk.fi 130.233.194.61 HTTP Internet SMTP smtp.hut.fi 193.229.0.40 webmail.tkk.fi 130.233.224.249 Internetin palvelut, kuten sähköposti ja web, muodostavat monimutkaisen protokollien ja hajautettujen palvelinten vyyhdin 28

INTERNET-PROTOKOLLAPINO 29

TCP/IP-protokollapino Sovelluskerros Middleware: HTTP, SSL, XML... Siirtokerros: TCP, UDP,... Verkkokerros: IPv4, IPv6 Linkkikerros: Ethernet, MPSL, WLAN, GPRS... Asiakas/palvelinsovellukset ja monenväliset palveluarkkitehtuurit Tiedonsiirto päästä päähän, Internetin yli (end to end) Tiedonsiirto yhden linkin yli 30

Nimiavaruudet Sovelluskerros Middleware: HTTP, SSL, XML... Siirtokerros: TCP, UDP,... Verkkokerros: IPv4, IPv6 Linkkikerros: Ethernet, MPSL, WLAN, GPRS... Sähköpostiosoite, URL, DNS-nimi, jne. IP-osoite ja porttinumero IP-osoite MAC-osoite 31

Viestien muoto Sovelluskerros Middleware: HTTP, SSL, XML... Siirtokerros: TCP, UDP,... Pyynnöt ja vastaukset Yhteys Verkkokerros: IPv4, IPv6 Linkkikerros: Ethernet, MPSL, WLAN, GPRS... Paketit Kehykset 32

Toteutus ja rajapinnat Sovelluskerros Middleware: HTTP, SSL, XML... Socket API Siirotokerros: TCP, UDP,... Verkkokerros: IPv4, IPv6 Laiteajurirajapinta Linkkikerros: Ethernet, MPSL, WLAN, GPRS... Tyypillinen toteutus: Prosesseina käyttäjätilassa Käyttöjärjestelmän ytimessä Verkkokortin firmware ja rauta 33

Tiimalasimalli Sovelluskerros Middleware: HTTP, SSL, XML... Siirtokerros: TCP, UDP,... IPv4, IPv6 Socket API Laiteajurirajapinta Linkkikerros: Ethernet, MPSL, WLAN, GPRS... Alun perin vain yksi verkkokerroksen protokolla ja kaksi siirtokerroksen protokollaa Rajapinnat tekevät uusien sovellusten ja linkkityyppien lisäämisen helpoksi 34

Kurssin luennot Aloitus: Miten Internet toimii, Tuomas Aura Web 2.0 ja uudet sovellustekniikat, Tancred Lindholm Sovelluskerros: WWW, email, socket API, Tancred Lindholm Tietoturvan perusteet, Tuomas Aura Salaustekniikat, Tuomas Aura Kuljetuskerros, TCP, Matti Siekkinen Verkkokerros, IP, Matti Siekkinen Linkkikerros, Ethernet ja WLAN, N.N. Tiedonsiirron perusteet, N.N. Puhelinverkot, Antti Ylä-Jääski Soluverkot, Antti Ylä-Jääski Tele- ja tietoverkon laskutus, Sakari Luukkainen Liiketoiminta verkkoympäristössä, Sakari Luukkainen Yhteenveto/kertaus, Antti Ylä-Jääski ja Tuomas Aura 35