Sovellukset Interne.ssä Jyry Suvilehto Herkkuja varaste7u Tancred Lindholmin ja Timo Kiravuon vastaavista kalvoista
Rakenne 1. Kertausta ja historiaa 2. Mitä tapahtuu kun lähetetään Noppa- uu.nen Web 2.0 ja Ajax RSS HTTP IMAP DNS 3. Peer- to- Peer protokollat Esimerkkinä BitTorrent 4. Muita protokollia
TCP/IP- protokollapino Sovelluskerros Middleware: HTTP, SSL, XML... Siirtokerros: TCP, UDP,... Verkkokerros: IPv4, IPv6 Linkkikerros: Ethernet, MPSL, WLAN, GPRS... Asiakas/palvelin- sovellukset ja monenväliset palveluarkkitehtuurit Tiedonsiirto päästä päähän, Interne.n yli (end to end) Tiedonsiirto yhden linkin yli 3
Nimiavaruudet Sovelluskerros Middleware: HTTP, SSL, XML... Siirtokerros: TCP, UDP,... Verkkokerros: IPv4, IPv6 Linkkikerros: Ethernet, MPSL, WLAN, GPRS... Sähköpos.osoite, URL, DNS- nimi, jne. IP- osoite ja porwnumero IP- osoite MAC- osoite 4
Vies.en muoto Sovelluskerros Middleware: HTTP, SSL, XML... Pyynnöt ja vastaukset Siirtokerros: TCP, UDP,... Yhteys Verkkokerros: IPv4, IPv6 Linkkikerros: Ethernet, MPSL, WLAN, GPRS... Pake.t Kehykset 5
Historiaa Jyry Tim Albert Kuva: Cernin kuva- arkistot
www = World Wide Web WWW kehitewin CERNissä tutkimustulosten välityskeinoksi Internet oli jo olemassa, mm. Usenet, sähköpos. Alunperin Interne.n killer- app oli sähköpos.: selkeä etu ei- sähköiseen verrokkiinsa Interne.n ääressä.edemiehiä, akateemikkoja Ikuinen syyskuu 1993 StaaWset,.edemiesten käsin pakertamat sivut
Web 2.0 Paitaa myy despair.com
NOPPA 9
Web 2.0 www:n suosion kasvoi 1990- luvun loppua kohden Paljon ei- akateemisia käy7äjiä Pää7eiden (.etokoneiden) suorituskyky räjäh. à Modernit www- sivut ovat monimutkaisia suorite7avia ohjelmia Kaikki haluavat tuo7aa.etoa, erityisiä taitoja ei vaadita
Noppa h7ps://noppa.tkk.fi 11
Noppa- palvelu Jyrsa HTTP(AJAX- kutsu) Noppa Opiskelija HTTP(RSS) IMAP Internet SMTP Kaikki yhteydet toteu7avat Asiakas- palvelin - mallia imap.niksula.hut.fi mail.niksula.hut.fi Kaikki.edonsiirto toteute7u TCP:llä (yhteydellistä) 12
Dynaaminen HTML <!DOCTYPE html PUBLIC "- //W3C//DTD XHTML 1.0 Transi.onal//EN" "h7p://www.w3.org/tr/xhtml1/dtd/xhtml1- transi.onal.dtd"> <!- - Applica.on: Noppa - - > <!- - Page: CourseNews - - > <!- - Generated: Thu Jan 21 16:44:38 EET 2010 - - > <html> <head> <meta name="generator" content="tapestry Applica.on Framework, version 4.1.3" /> <meta h7p- equiv="content" content="no- cache" /> <meta h7p- equiv="content- Type" content="text/html;charset=utf- 8" /> <script type="text/javascript" src="/noppa/assets/sta.c/dojo- 0.4.3/dojo.js"></script> Otteita edellisen kuvan sivun -lähdekoodista <script type="text/javascript" src="/noppa/assets/sta.c/dojo- 0.4.3/dojo2.js"></script><script type="text/javascript" src="/noppa/assets/sta.c/dojo- 0.4.3/dojo3.js"></script> <script type="text/javascript"> dojo.registermodulepath("tapestry", "/noppa/assets/sta.c/tapestry"); </script> <script type="text/javascript"><! func.on togglehelp(id, class_1, class_2) { if(document.getelementbyid(id).classname == class_1) { document.getelementbyid(id).classname = class_2; } else { document.getelementbyid(id).classname = class_1; } } dojo.require("tapestry.widget.widget"); dojo.require("dojo.event.common"); // - - ></script>... <div class="do7ed"> <!- - IE needs this comment - - ></div> <table> <tr> <th colspan="2" class="editboxownlinksheading">lisää linkki</th> <th></th> </tr> <tr class="ognl:beans.evenodd.next"> <td> <div class="editboxownlinkstitle">otsikko</div> <div class="editboxownlinkstitle">url</div> </td> <td> <input type="text" name="addownlinktitle" value="" id="addownlinktitle" class="editboxownlinksfield" tabindex="6" style="" /><br/> <input type="text" name="addownlinklink" value="" id="addownlinklink" class="editboxownlinksfield" tabindex="7" style="" /> </td> <td> 13
Dynaaminen HTML <!DOCTYPE html PUBLIC "- //W3C//DTD XHTML 1.0 Transi.onal//EN" "h7p://www.w3.org/tr/xhtml1/dtd/xhtml1- transi.onal.dtd"> <!- - Applica.on: Noppa - - > <!- - Page: CourseNews - - > <!- - Generated: Thu Jan 21 16:44:38 EET 2010 - - > <html> <head> <meta name="generator" content="tapestry Applica.on Framework, version 4.1.3" /> <meta h7p- equiv="content" content="no- cache" /> <meta h7p- equiv="content- Type" content="text/html;charset=utf- 8" /> <script type="text/javascript" src="/noppa/assets/sta.c/dojo- 0.4.3/dojo.js"></script> <script type="text/javascript" src="/noppa/assets/sta.c/dojo- 0.4.3/dojo2.js"></script><script type="text/javascript" src="/noppa/assets/sta.c/dojo- 0.4.3/dojo3.js"></script> <script type="text/javascript"> dojo.registermodulepath("tapestry", "/noppa/assets/sta.c/tapestry"); </script> <script type="text/javascript"><! func.on togglehelp(id, class_1, class_2) { if(document.getelementbyid(id).classname == class_1) { document.getelementbyid(id).classname = class_2; } else { document.getelementbyid(id).classname = class_1; } } dojo.require("tapestry.widget.widget"); dojo.require("dojo.event.common"); // - - ></script>... <div class="do7ed"> <!- - IE needs this comment - - ></div> <table> <tr> <th colspan="2" class="editboxownlinksheading">lisää linkki</th> <th></th> </tr> <tr class="ognl:beans.evenodd.next"> <td> </td> <td> <div class="editboxownlinkstitle">otsikko</div> <div class="editboxownlinkstitle">url</div> <input type="text" name="addownlinktitle" value="" id="addownlinktitle" class="editboxownlinksfield" tabindex="6" style="" /><br/> <input type="text" name="addownlinklink" value="" id="addownlinklink" class="editboxownlinksfield" tabindex="7" style="" /> </td> <td> Otteita edellisen kuvasivun -lähdekoodista <script type="text/javascript" src="/noppa/assets/sta.c/dojo- 0.4.3/dojo.js Nykyaikaiset webbisivut ovat interak.ivisia Javascript- ohjelmia, jotka kommunikoivat käy7äjän ja palvelimen kanssa if(document.getelementbyid(id).classname == class_1) 14
JavaScript HaluWin dynaamisia elemen7ejä newsivuihin Netscape kehiw 1995 JavaScript- nimisen kielen, ja lisäsi Netscape- selaimeen sille tulkki HTML- kieleen lisäwin <script> tägi, jonka sisällä olevaa Javascript- koodia selain suori7aa JavaScrip.llä ei ole mitään tekemistä Javan kanssa, nimi valiwin markkinoin.syistä Microsot esiw tämän jälkeen Jscript- kielen jossa (lähes?) idenwnen kielioppi C- tyylinen kielioppi Ajonaikainen tyypitys ( duck typing if it quacks like a duck...) 01/25/10
JavaScript Esimerkki <!DOCTYPE HTML PUBLIC "-// W3C//DTD HTML 4.01 Transitional// EN"> <html> <head> <title>javascript Esimerkki</title> </head> <body> <script> var lasku = 2*137+200/3; alert('tulos on ' + lasku); </script> </body> </html> 01/25/10
Noppa- palvelu Jyrsa 130.233.194.51 HTTP(AJAX- kutsu) Noppa 130.233.229.100 Opiskelija 62.237.152.1 HTTP(RSS) Internet SMTP IMAP mail.niksula.hut.fi 130.233.40.6 imap.niksula.hut.fi 130.233.40.6 17
RSS- syöte GET noppa/kurssi/t-110.1100/uutiset/rss HTTP/1.1 Host: noppa.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 HTTP/1.1 200 OK Date Thu, 21 Jan 2010 15:37:35 GMT Server Apache/2.2.3 (Red Hat) X-Powered-By Servlet 2.4; JBoss-4.0.5.GA (build: CVSTag=Branch_4_0 date=200610162339)/tomcat-5.5 Keep-Alive timeout=15, max=99 Connection Keep-Alive Transfer-Encoding chunked Content-Type application/rss+xml;charset=utf-8 <?xml version="1.0" encoding="utf-8"?> <rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http:// purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" version="2.0"> <channel> <title>t-110.1100 Johdatus tietoliikenteeseen ja multimediatekniikkaan</title> <link>https://noppa.tkk.fi/noppa/kurssi/t-110.1100/uutiset</link> <description /> <item> HTTP ei ota kantaa Kuten XHTML, RSS on XML- pohjainen formaaw. <title>tervetuloa kevään 2010 kurssille</title> <link>https://noppa.tkk.fi/noppa/kurssi/t-110.1100/uutiset?sni=21486</link> mitä <description>huomaathan sen päällä kuljetetaan. että kurssin tehtävät ovat pakollisia ja kurssin läpäisemiseksi kurssiin täytyy panostaa aikaa jo tammikuussa. Lisäksi tarvitsemme kaikkien opiskelijanumerot palautusjärjestelmää varten, joten kurssille tulee ilmoittautua Oodissa. Kevällä 2010 kurssia uudistetaan edellisenä vuonna saadun palautteen perusteella. Erityisesti multimediaosuudesta pyritään rakentamaan yhtenäisempi kokonaisuus. Lisäksi yhteyksiä eri multimedia- ja tietoliikenneosuuksien välillä pyritään osoittamaan selkeämmin. Analyysiä edellisen vuoden kurssipalautteesta voi lukea Nopasta. Pyrimme kehittämään kurssia vuosittain palautteen perusteella ja toivomme, että mahdollisimman moni opiskelija antaa kurssista palautetta. Virallinen kommunikointi kurssin kanssa tulee suorittaa kurssin sähköpostiosoitteeseen t-110.1100@tml.hut.fi. Erityisesti Noppa tykkää arpoa kurssihenkilökunnan henkilökohtaisia osoitteita uutisiin. Näihin osoitteisiin lähetettyihin kyselyihin vastataan vähintään viikon viiveellä, jos silloinkaan. <br></description> <pubdate>tue, 29 Dec 2009 15:34:23 GMT</pubDate> 18 <guid>https://noppa.tkk.fi/noppa/kurssi/t-110.1100/uutiset?sni=21486</guid>
HTTP HTTP = Hypertext transfer protocol (RFC 2616) Vies.ssä komento ja resurssi Myös selaimeen lii7yvää.etoa otsakkeissa (headers) Paluuvies.ssä.lannekoodi (status code) ja resurssin sisältö Myös otsakkeita joissa resurssin metadataa Tärkein vies. on GET + resurssi 01/27/10
HTTP Yleisimmät komennot GET x: hae resurssi x sisältö PUT x,y: tallenna data y resurssiin x (lue GETilla) POST x,y: kirjoita resurssiin x lii1yen data y (lomakkeen lähetys) GET voidaan toistaa useamman kerran ilman sivuvaikutuksia, muita ei 01/27/10
HTTP Yleisiä statuskoodeja 200 OK: kaikki meni hyvin 404 Not found: resurssia ei löydy 403 302 Moved temporarily: resurssi löytyy uudesta osoi7eesta Yleisiä otsakkeita Content- Length: resurssin koko tavuina (vastausvies.n alussa) Muita määrite7y RFC 2616 01/25/10
Jyrsa noppa.tkk.fi? 130.233.229.100 HTTP(AJAX- kutsu) Noppa- palvelu Noppa Opiskelija HTTP(RSS) IMAP Internet SMTP Hakemistopalvelu DNS kertoo palvelimen nimeä vastaavan IP- osoi7een ja vastaano7ajan sähköpos.osoite7a vastaavan SMTP- palvelimen nimen imap.tkk.fi smtp.hut.fi DNS- protokolla ei käytä sanomiensa siirtoon TCP:tä vaan UDP:tä 22
DNS- nimiavaruus. com net fi [.مصر] se Arpa in- addr aalto tkk hut 130 233 Yksi nimi voi osoi7aa useampaan IP- osoi7eeseen. Yhden IP- osoi7een takana voi olla monta nimeä. noppa www smtp 130.23 3.228.9 1 41 6 dusk.niksula.cs.hut.fi 130.23 3.228. 133 Kts. host- komento Unixissa
DNS Domain Name System on interne.n hakemistopalvelu Aikanaan yksi päätekijä interne.n voitossa muita.etoverkkoja vastaan 13 juurinimipalvelinta Yhdysvaltain vies.ntäministeriön hallinnassa Jokaisella maallaan oma Top Level Domain(TLD) Maailman ensimmäinen ei- ASCII TLD مص (Egyp.) 2009 DNS ei käytä TCP:tä vaan UDP:tä, se on siis yhteydetön protokolla DNS kertoo osoi7een lisäksi mm. domainin posteista vastaavan sähköpos.palvelimen
DNS- hierarkia Lähin nimipalvelin saa7aa joutua tekemään monta kyselyä. Se talle7aa tulokset vaivan säästämiseksi. 2. tkk.fi? Juurinimipalvelin (lähin Innopolissa) Lähin nimipalvelin ns1.songnet.fi fi- TLD:n nimipalvelin (vies.ntävirasto) ns1.hut.fi noppa.tkk.fi- osoi7eesta vastaava Authority pää7ää kauanko hakutulosta saa säily7ää
DNS (jatkoa) DNS- protokolla luo7aa välikäsiin.edon väli7ämisessä à ongelmapoten.aalia Kenen tahansa mahdollista väärentää.etoa DNS- järjestelmässä tosin kallista ja vaikeaa DNSSec tulossa Kansalaisiaan pelkäävät val.ot (Suomi, Kiina, Norja, Egyp. yleensä) pako7avat palveluntarjoajat tarjoamaan.etyille domaineille vääriä IP- osoi7eita Karkea, mu7a halpa tapa suoda7aa newä
SMTP HTTP(AJAX- kutsu) Jyry 130.233.194.51 Ajax- kutsun perusteella Noppa haluaa lähe7ää sähköpos.a opiskelijalle Teemu Teekkari Noppa 130.233.229.100 Opiskelija 62.237.152.1 Sähköpos.palvelimen nimi saadaan kuten IP- osoi7eet, DNS- palvelusta HTTP(RSS) IMAP Internet SMTP mail.niksula.hut.fi 130.233.40.6 imap.niksula.hut.fi 130.233.40.6 Koulun.etokanta sanoo, e7ä Teemu käy7ää osoite7a 7eekkar@niksula.cs.hut.fi Niksulan pos.t käsi7elee mail.niksula.hut.fi 27
SMTP From: tomcat@cho- han.hut.fi To: 7eekkar@niksula.cs.hut.fi Subject: Tervetuloa kurssille... Teemu voi hakea pos.nsa koska haluaa (tai jä7ää hakema7a) Teemu IMAP/POP3 smtp- 3.hut.fi SMTP??? Noppa Smtp- 3.hut.fi yri7ää lähe7ää sähköpos.n mail.niksula.hut.fi:lle kunnes saa kui7auksen onnistumisesta mail.niksula.hut.fi / imap.niksula.hut.fi 130.233.40.6 SMTP on push- protokolla (vrt. HTTP ja pull) 28
Noppa- palvelu Jyrsa 130.233.194.51 Opiskelija 62.237.152.1 HTTP, IMAP ja SMTP käy7ävät kaikki TCP:tä.edon siirtoon HTTP(AJAX- kutsu) HTTP(RSS) IMAP Internet form:coursenews newsitemtopic: Tervetuloa kurssille.. state:coursenews BrO0ABXceAAAAAQAAF2FkZE1hdGVyaWFsRGlhbG9nSGlkZ GVuc3IAEWphdmEubGFuZy5Cb29sZWFuzSBygNWc +u4caafaaav2ywx1zxhwaa== (huom. Arvailua) SMTP Noppa smtp.hut.fi 130.233.228.91 imap.tkk.fi 130.233.228.133 From: tomcat@cho- han.hut.fi To:12345X@students.hut.fi Subject: Tervetuloa... HTTP ja IMAP voidaan suojata käy7ämällä SSL:ää 29
P2P
Asiakas- palvelin Peer to peer
P2P Yritysasiakkaat maksavat käy7ämästään kaistasta, yksityisasiakkailla kiinteä kuukausimaksu à P2P- levitys tulee halvemmaksi Joissain tapauksissa selkeäs. tyhmää kierrä7ää liikenne7ä palvelimen kau7a (IP- puhelut, Skype) Toisissa tapauksissa asiakkaat au7avat tallentamaan verkon.etoja, joten ylläpitokustannukset ovat pienempiä (Spo.fy) Graafiteorian mukaan P2P- protokollien tarjoamat nopeudet huoma7avas. parempia BitTorrent on laajalle levinnyt P2P- protokolla, jolla voidaan siirtää.edostoja Spo.fy ja Skype ovat sulje7uja, niiden toteutuksen ei pitäisi olla helpos. saatavilla
BitTorrent torrent-.edoston voi saada mistä tahansa www.ubuntu- fi.org torrent.ubuntu.com Torrent-.edosto sisältää.edon käytetystä seurantapalvelimesta eli trackerista.
BitTorrent Tietyn pisteen jälkeen alkuperäinen lisääjä on tarpeeton. www.ubuntu- fi.org torrent.ubuntu.com Tiedoston voi hakea niin kauan kuin verkostossa on yksi kokonainen kopio ja tracker on pystyssä.
BitTorrent www.ubuntu- fi.org torrent-.edoston voi saada mistä tahansa torrent.ubuntu.com
BitTorrent www.ubuntu- fi.org Torrent-.edosto sisältää.edon käytetystä seurantapalvelimesta eli trackerista. torrent.ubuntu.com
BitTorrent Lisäykset alkuperäiseen protokollaan poistavat seurantapalvelimen tarpeellisuuden. www.ubuntu- fi.org torrent.ubuntu.com Protocols don t pirate sotware, people do
MUITA PROTOKOLLIA
News 1980- luvun keskusteluryhmät Jae7u ryhmiin Ryhmät organisoitu hierarkiaksi opinnot..k.media opinnot.k media Lähete7y vies. levitetään pikku hiljaa kaikkille maailman news- palvelimille Jokainen news- palvelin kyselee muutamalta muulta vies.listausta NTTP- protokollalla Serveri hakee vies.t, joita serverillä ei vielä ole
IRC 1980- luvun lopulla Suomessa kehite7y korvaamaan interne.ä vanhempaa Relay Chat protokollaa Nopeahko vies.nvälitys Vies.en jakelu kuten Newseissä, paitsi e7ä viestejä ei tallenneta Verkossa ei ole silmukoita, se voi siis katketa