miten internet toimii - department of … tiedon siirtoon palvelimen ja asiakkaan välillä pitää...
TRANSCRIPT
T-110.1100 Johdatus tietoliikenteeseen ja multimediatekniikkaan
kevät 2010
Miten Internet toimii
Jyry Suvilehto
Sisältö1. Mitä Internet on syönyt
2.Internetin protokollapino
3.Katse kohti tulevaisuutta
2
MITÄ INTERNET ON SYÖNYT
3
Nettiselailu
Asiakas/palvelin-malli
Nimiarvaruus: URL
4
Internet
Asiakas(käyttäjä, työasema ja selainohjelma)
Palvelin(palvelinkoneja -ohjelma)
http://www.cse.tkk.fi/~jsuvileh/jotime/esimerkki.html
Tiedon muoto Tietokoneiden käsittelemä
tieto on määrämuotoista Esim. HTML = hypertekstin merkintäkieli
5
<!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> <!-- Tämä on kommentti, se ei näy tekstissä --> <h1>Otsikko</h1> <p>Tämä on erittäin yksinkertainen webbisivu.</p> <div><img src="http://www.aalto.fi/style_aaltofi/img/aalto-logo-1-fi.gif"alt="Aalto-yliopiston logo"/></div></body></html>
Sivun esimerkki.htmllähdekoodi
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
HTTP
7
GET /jsuvileh/jotime/esimerkki.html HTTP/1.1Host: www.cse.tkk.fiUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8Accept-Language: en-us,en;q=0.5Accept-Encoding: gzip,deflateAccept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7Keep-Alive: 300Connection: keep-alive
HTTP/1.x 200 OKDate: Thu, 21 Jan 2010 12:57:12 GMTServer: Apache/1.3.41 (Unix) PHP/4.4.7 DAV/1.0.3 mod_ssl/2.8.31 OpenSSL/0.9.8jEtag: "2f80a6-1d9-4b585a30"Accept-Ranges: bytesKeep-Alive: timeout=15, max=100Connection: Keep-AliveContent-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> <!-- Tämä on kommentti, se ei näy tekstissä --> <h1>Otsikko</h1> <p>Tämä on erittäin yksinkertainen webbisivu.</p> <div><img src="http://www.aalto.fi/style_aaltofi/img/aalto-logo-1-fi.gif"alt="Aalto-yliopiston logo"/></div></body></html>
Selaimelta palvelimelle:
Palvelimelta selaimelle:
Tyypillinen asiakas/palvelin-protokollan rakenne: pyyntö ja vastaus
HTTP-vastauksen otsakkeet
Data(HTML)
HTTP-pyyntö
HTTP-pyynnön otsakkeet
HTTP-vastaus
HTTP
8
GET /jsuvileh/jotime/esimerkki.html HTTP/1.1Host: www.cse.tkk.fiUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8Accept-Language: en-us,en;q=0.5Accept-Encoding: gzip,deflateAccept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7Keep-Alive: 300Connection: keep-alive
HTTP/1.x 200 OKDate: Thu, 21 Jan 2010 12:57:12 GMTServer: Apache/1.3.41 (Unix) PHP/4.4.7 DAV/1.0.3 mod_ssl/2.8.31 OpenSSL/0.9.8jEtag: "2f80a6-1d9-4b585a30"Accept-Ranges: bytesKeep-Alive: timeout=15, max=100Connection: Keep-AliveContent-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> <!-- Tämä on kommentti, se ei näy tekstissä --> <h1>Otsikko</h1> <p>Tämä on erittäin yksinkertainen webbisivu.</p> <div><img src="http://www.aalto.fi/style_aaltofi/img/aalto-logo-1-fi.gif"alt="Aalto-yliopiston logo"/></div></body></html>
Selaimelta palvelimelle:
Palvelimelta selaimelle:
Tyypillinen asiakas/palvelin-protokollan rakenne: pyyntö ja vastaus
HTTP-vastauksen otsakkeet
Data(HTML)
HTTP-pyyntö
HTTP-pyynnön otsakkeet
HTTP-vastaus
GET /jsuvileh/jotime/esimerkki.html HTTP/1.1Host: www.cse.tkk.fiUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8Accept-Language: en-us,en;q=0.5Accept-Encoding: gzip,deflateAccept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7Keep-Alive: 300Connection: keep-alive
HTTP
9
GET /jsuvileh/jotime/esimerkki.html HTTP/1.1Host: www.cse.tkk.fiUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8Accept-Language: en-us,en;q=0.5Accept-Encoding: gzip,deflateAccept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7Keep-Alive: 300Connection: keep-alive
HTTP/1.x 200 OKDate: Thu, 21 Jan 2010 12:57:12 GMTServer: Apache/1.3.41 (Unix) PHP/4.4.7 DAV/1.0.3 mod_ssl/2.8.31 OpenSSL/0.9.8jEtag: "2f80a6-1d9-4b585a30"Accept-Ranges: bytesKeep-Alive: timeout=15, max=100Connection: Keep-AliveContent-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> <!-- Tämä on kommentti, se ei näy tekstissä --> <h1>Otsikko</h1> <p>Tämä on erittäin yksinkertainen webbisivu.</p> <div><img src="http://www.aalto.fi/style_aaltofi/img/aalto-logo-1-fi.gif"alt="Aalto-yliopiston logo"/></div></body></html>
Selaimelta palvelimelle:
Palvelimelta selaimelle:
Tyypillinen asiakas/palvelin-protokollan rakenne: pyyntö ja vastaus
HTTP-vastauksen otsakkeet
Data(HTML)
HTTP-pyyntö
HTTP-pyynnön otsakkeet
HTTP-vastaus
HTTP/1.x 200 OKDate: Thu, 21 Jan 2010 12:57:12 GMTServer: Apache/1.3.41 (Unix) PHP/4.4.7 DAV/1.0.3 mod_ssl/2.8.31 OpenSSL/0.9.8jEtag: "2f80a6-1d9-4b585a30”Accept-Ranges: bytesKeep-Alive: timeout=15, max=100Connection: Keep-AliveContent-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> <!-- Tämä on kommentti, se ei näy tekstissä --> <h1>Otsikko</h1> <p>Tämä on erittäin yksinkertainen webbisivu.</p> <div><img src="http://www.aalto.fi/style_aaltofi/img/aalto-logo-1-fi.gif"alt="Aalto-yliopiston logo"/></div></body></html>
Siirtoprotokolla Kuinka HTTP-protokollan viestit siirretään
asiakkaan ja palvelimen välillä?
Vastaus: HTTP käyttää viestien siirtoon TCP-protokollaa
10
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
11
Internet
Asiakas PalvelinGET /~jsuvileh/jotime/esimerkki.html…
HTTP/1.x 200 OK…
80
Palvelut on numeroitu: HTTP-palvelinohjelma odottaa yhteyksiä porttinumerossa 80
Telnet-ohjelmalla TCP:tä voi käyttää käsin
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
12
TCP:n toteutus
13
Asiakas Palvelin
SYN
ACK
SYN-ACK
kolmen paketinkättely
kaksisuuntainentavuvirta
paloiteltuna pakettehin
data
data
data
…Internet
IP-paketteja
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 IP-osoite ja mikä tahansa kone voi lähettää paketteja mille tahansa koneelle
14
Paketit verkossa
15
Esimerkin paketit (Wireshark):
IP-reititys
16
130.233.194.61
Kunkin koneen tarvitsee tietää vain oma lähin reititin
130.233.224.249
Reitittimet kuljettavat IP-paketteja vastaanottajan IP-osoitteeseen
Internet
Asiakaskone löytää lähimmän reitittimen ja saa oman IP-osoitteen automaattisestiDHCP-protokollalla
Linkkikerroksen palvelu Miten asiakas- ja palvelinkone siirtävät IP-
paketin 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
17
Langaton lähiverkkoIEEE 802.11
Kytketty Ethernet IEEE 802.3
ADSL
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
18
ENTÄ SE KUVA?
19
HTTP
20
GET /jsuvileh/jotime/esimerkki.html HTTP/1.1Host: www.cse.tkk.fiUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8Accept-Language: en-us,en;q=0.5Accept-Encoding: gzip,deflateAccept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7Keep-Alive: 300Connection: keep-alive
HTTP/1.x 200 OKDate: Thu, 21 Jan 2010 12:57:12 GMTServer: Apache/1.3.41 (Unix) PHP/4.4.7 DAV/1.0.3 mod_ssl/2.8.31 OpenSSL/0.9.8jEtag: "2f80a6-1d9-4b585a30"Accept-Ranges: bytesKeep-Alive: timeout=15, max=100Connection: Keep-AliveContent-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> <!-- Tämä on kommentti, se ei näy tekstissä --> <h1>Otsikko</h1> <p>Tämä on erittäin yksinkertainen webbisivu.</p> <div><img src="http://www.aalto.fi/style_aaltofi/img/aalto-logo-1-fi.gif"alt="Aalto-yliopiston logo"/></div></body></html>
Selaimelta palvelimelle:
Palvelimelta selaimelle:
Nettiselailu
21
Asiakas(käyttäjä, työasema ja selainohjelma)
www.cse.tkk.fi
sivu http://www.cse.tkk.fi/~jsuvileh/jotime/esimerkki.html kuvahttp://www.aalto.fi/style_aaltofi/img/aalto-logo-1-fi.gif
Internet
www.aalto.fi
HTTP
22
GET /style_aaltofi/img/aalto-logo-1-fi.gif HTTP/1.1Host: www.aalto.fiUser-Agent:Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7Accept:image/png,image/*;q=0.8,*/*;q=0.5Accept-Language:en-us,en;q=0.5Accept-Encoding: gzip,deflateAccept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.7Keep-Alive:300Connection:keep-aliveReferer http://www.cse.tkk.fi/~jsuvileh/jotime/esimerkki.html
HTTP/1.0 200 OKDate:Thu, 21 Jan 2010 13:40:19 GMTServer:Apache/2.2.3 (Red Hat)Last-Modified:Mon, 21 Dec 2009 15:04:52 GMTEtag:"3bb63-832-47b3e6951cd00”Accept-Ranges:bytesContent-Length:2098Cache-Control:max-age=3600Expires:Thu, 21 Jan 2010 14:40:19 GMTContent-Type:image/gif
GIF89a..K....@@@[email protected]...... ```......pppPPP.........`...o.p...........0.. x.......P...e.......!.......,......K.....'.di.h..l..p,.tm.x..|....pH,....r..D.P.`.eD"..v..z.`.e3....4F......|.%x...>..U6.i..g.lD.y.2.x#...H...".x.=.......t..8{.{[email protected].."...w...w.<........./...x.4......n>.z..w#.......,.....$...}2......>.{.1...e...0..)t.`.4.2$..([email protected][email protected]'...\z0P.'M.....p.'P.JI.h.+......D.....[.8.&..D.h.].............Ir...(@.....H....g0t|Q. ....."...AU.d^)E.p....%..J{..^...0p...\.;^........xQ...y)..w.%-.,...!..:...dMvf.&.......p.........m...y9.{........P+...@...;.F.1I.p.b..6.f.......P.4...p...s.}.Rq.Q..m.....>..^*^.p.y.i`[email protected].}.....}4.SN.TV@{?...d.e.LQ..!..y....:R..\0~ $.\....{....(.'...5.R.:...F%...8/...2....zS.D.9..F..xp.L..LX@my,v.u#d..:]VZCu`.1..e......r.x.......7...*..*+...H..y.}...K2:.8!K......Z...X....f.GL(\...V\.........6T.D".P....Y.....^.....JW...W.N..#J.8B.....#[email protected].}......U..}u.P.&.(..l.& ......1T...8V../.Y&,4}1|..(.Q1..P..5..*.B= b%.......\[.y......G,1...1./...d.)U.0...j.tq7.....JQ&8....H;Q....%]...._.I..0.Z..{.=.c.(xs......W.....|..B.~...D*.p.>....Sv...c4..5..D......c...X..w.;K(....[).....T"....x.......>
...By...0.. .....o..y..y*...~6......>.a....A...@#..,.J..F0.X.....E......`.
.a.".
.<0.&.......Ba.-....v..@ ..q..E.C.H.!...<....e#.=L...p.T...{...d..%Z..Y..<..DT...d....H..2..t.(J..!..P1..0.......#.....z......t.. gP7i,g_...Z!.#.n...d..F...j....5NsAIz2..CE.E..T ..I..?.JH.2..$......T`vhAO+w).Y...#xe*bI.?.f..L..K..S.%<..A*)2.N*..J..4.9..x......`..r&....&..sH.............r.;\A8c..y...B..([email protected]#a...Zt|(...S`G....p.H.EGJ.....hL.IU..#...C.h4.....1....2a.S...|#.....G....!(PG......H.jw...y8s.J...........Qg....v.....X...1...;E.\....:..s....iWo....Bg_..N...;u.....X..T..!..(0..Z...l.f..P.v..d..fG[.zz..,.-!.J... .%|.lgK..`.9...k]......7..xr......3.i3s@.<......q.K]..v..m..RU.U.V../h..r \=l.....t...u...5..[T..4......*.;..b......G .~.@.{..........|M.yo....5..n.`..T.\W.....3......5@...).....$v..2F...8...1..K...x......L."...HN.....&;..P....Le9...;
Selaimelta palvelimelle:
HTTP-vastauksen otsakkeet
Data(GIF)
HTTP-pyyntö
HTTP-pyynnön otsakkeet
HTTP-vastaus
Binääridataa
23
Graphics Interchange Formateli GIF on binääriformaatti
Aalto-yliopiston logo on piirretty kuva (ei valokuva) joten se kannattaa tallentaa GIF tai PNG-formaatissa.
24
Tunniste Kuvan koko ja taustaväri
Kuvan alun sijaintiVarsinainen kuvadata (pakattuna)
Käytetyt värit
Logossa on paljon valkoista ja isoja samanvärisiäalueita, joten se pakkautuu hyvin.
451x75 = 33 825 pikseliäTiedostossa on 2098 tavua
Äärellinen tarkkuus
25
Multimedia voidaan tallettaa tietokoneeseen vain äärellisellä tarkkuudella. Rakastetun Johtajan kuvaa ei voi suurentaa äärettömiin tarkkuuden kärsimättä.
Sama rajoite pitää kaistanleveydet äärellisinä tiedonsiirrossa.
Scalable Vector Graphics<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" version="1.1"xmlns="http://www.w3.org/2000/svg">
<rect width="300" height="100"style="fill:rgb(0,0,255);stroke-width:1;stroke:rgb(0,0,0)"/>
</svg>
Tallennetaan vain tieto muodosta, ei yksittäisiä pikseleitä
Tuki vajavaista (esim. PowerPoint, LaTeX) SVG on XML-pohjainen formaatti, kuten XHTML
26
INTERNET-PROTOKOLLAPINO
27
TCP/IP-protokollapino
28
SovelluskerrosMiddleware: HTTP, SSL, XML...
Siirtokerros: TCP, UDP, ...
Verkkokerros: IPv4, IPv6
Linkkikerros: Ethernet, MPSL,WLAN, GPRS ...
Tiedonsiirtoyhden linkin yli
Tiedonsiirto päästä päähän,Internetin yli(end to end)
Asiakas/palvelin-sovellukset ja monenväliset palveluarkkitehtuurit
Nimiavaruudet
29
IP-osoite ja porttinumero
IP-osoite
MAC-osoite
Sähköpostiosoite, URL, DNS-nimi, jne.
SovelluskerrosMiddleware: HTTP, SSL, XML...
Siirtokerros: TCP, UDP, ...
Verkkokerros: IPv4, IPv6
Linkkikerros: Ethernet, MPSL,WLAN, GPRS ...
Viestien muoto
30
Yhteys
Paketit
Kehykset
Pyynnöt ja vastaukset
SovelluskerrosMiddleware: HTTP, SSL, XML...
Siirtokerros: TCP, UDP, ...
Verkkokerros: IPv4, IPv6
Linkkikerros: Ethernet, MPSL,WLAN, GPRS ...
SovelluskerrosMiddleware: HTTP, SSL, XML...
Siirotokerros: TCP, UDP, ...
Verkkokerros: IPv4, IPv6
Linkkikerros: Ethernet, MPSL,WLAN, GPRS ...
Toteutus ja rajapinnat
31
Verkkokortin firmware ja rauta
Käyttöjärjestelmän ytimessä
Prosesseina käyttäjätilassa
Laiteajurirajapinta
Socket API
Tyypillinen toteutus:
Tiimalasimalli
32
SovelluskerrosMiddleware: HTTP, SSL, XML...
Siirtokerros: TCP, UDP,...
IPv4, IPv6
Linkkikerros: Ethernet, MPSL,WLAN, GPRS ...
Alun perin vain yksi verkkokerroksen protokolla ja kaksi siirtokerroksen protokollaa
Laiteajurirajapinta
Socket API
Rajapinnat tekevät uusien sovellusten ja linkkityyppien lisäämisen helpoksi
Lähitulevaisuudessa 29.01 sovelluskerrosta 05.02. siirto- ja verkkokerrosta 12.02. linkkikerrosta 19.02. tietoturvaa 26.02. televerkko, GSM, UMTS ja miljoona
muuta lyhennettä
33
Kauempana tulevaisuudessa 05.03 N.N.
– Tiedon tallentamisen perusteet, teksti ja pakkaamaton kuva 19.03. Petri Vuorimaa
– Tiedon pakkaaminen (feat. Fourier- ja muut taajuusmuunnokset)
– Multimedia 26.03. Timo Tossavainen
– Tietokonegrafiikan perusteet 09.04. Kai Puolamäki
– Virtuaalitodellisuus– Lisätty todellisuus
16.04. Vesa Kantola– Digitaalisten tuotteiden konseptointi
23.04. Sakari Luukkainen– Verkkoliiketoiminta
34