• Ei tuloksia

• Nämä protokollat yhdistävät sovelluksia ja käyttävät alempien tasojen protokollia hyväkseen

N/A
N/A
Info
Lataa
Protected

Academic year: 2022

Jaa "• Nämä protokollat yhdistävät sovelluksia ja käyttävät alempien tasojen protokollia hyväkseen"

Copied!
36
0
0

Kokoteksti

(1)

Sovelluskerros

Kirja sivut 354-399

(2)

Sovelluskerros

• Nämä protokollat yhdistävät sovelluksia ja käyttävät alempien tasojen protokollia hyväkseen

– Sovellukset kommunikoivat käyttäen sovellusprotokollaa – Sovellukset hyödyntävät TCP:tä, UDP:ta ja niiden kautta

IP:tä palveluksina

– Sovelluksen on ymmärrettävä jotain portti- ja IP-osoitteista

• Sovelluskerroksen protokollat on yleensä suunniteltu vastaamaan sovelluksen tietoliikennetarpeita

– Tosiaikaisuus tai asynkroninen viestintä...

– Viestinvälitys, tiedostonkopiointi, pääteistunto, mittausdata...

(3)

Sovellusarkkitehtuuri

• Sovellusarkkitehtuuri määrittelee sovelluksen rakenteen

– Mitä informaatiota on missäkin

– Mikä tehtävä sovelluksen eri osilla on – Mitä protokollaa käytetään tiedon siirtoon – Mitä dataformaatteja käytetään

• Tämän kurssin puitteissa tyydytään tarkastelemaan olemassaolevia arkkitehtuureja, kuten

– Asiakas-palvelin – Vertaisverkot

(4)

WWW ja HTTP

• World Wide Web on 1990-luvun alussa yleistynyt hypertekstipohjainen multimediajärjestelmä

– On sekä sovellus itsessään, että alusta sovelluksille – Perustui alkuvaiheessa HTML-kielisten tiedostojen

kopiointiin HTTP-protokollalla

• HyperText Markup Language

• HyperText Transfer Protocol

– Tiedostot sijaitsevat palvelimessa, asiakasohjelma kopioi tiedostoja ja näyttää ne käyttäjällä

• Toteuttaa asiakas-palvelin arkkitehtuuria

– Palvelin odottaa palvelupyyntöjä

– Asiakas ottaa yhteyttä palvelimeen ja pyytää palvelua

(5)

Asiakkaan HTTP-viestintä

• Asiakas (selain) saa URL-osoitteen ja tulkitsee sen

protokolla://koneen_nimi:portti/hakupolku

• Asiakas avaa TCP-yhteyden palvelimeen

– DNS-kysely nimestä IP-osoitteeksi

– Komento käyttöjärjestelmän TCP:lle avata yhteys

• Asiakas antaa HTTP-protokollan mukaisen hakupyynnön

GET hakupolku HTTP/1.0 Host: koneen_nimi

...

(6)

Palvelimen HTTP-viestintä

• Palvelin on varannut tietyn TCP-portin tai portteja ja kuuntelee näitä portteja, odottaen yhteyksiä

• Käyttöjärjestelmä yhdistää tulevan yhteyden ja viestii palvelimelle uudesta yhteydestä

• Palvelin tulkitsee pyynnön ja antaa pyyntöön vastauksen

HTTP/versio status-koodi viesti – Jos hakupyyntöä vastaava tietoalkio löytyy

– HTTP/1.1 200 OK – Date: ...

• Sekä ko. tietoalkio

• Palvelimen vastaus saattaa olla HTML-tiedosto, kuva,

äänitiedosto jne.

(7)

Asiakas-palvelinmalli

• Asiakas-palvelinmallissa palvelimella on jokin

tarvittava resurssi (dataa, laskentakapasiteettia) ja palvelin odottaa passiivisena asiakkaan

palvelupyyntöjä

• Usein puhutaan ohuista (thin) ja paksuista (fat) asiakkaista

– Ohut asiakas ei prosessoi dataa kovinkaan paljoa

• Esim. pääte-emulaattori, WWW-selain – Paksu asiakas prosessoi dataa

• Esim. WWW-liittymä sähköpostiin, joka on sähköpostijärjestelmän näkökulmasta asiakas

(8)

HTTP:n rakenne

Method to send a document to server PUT

Method to send data to server POST

Method to request document headers HEAD

Normal method to request documents GET

Explanation Command

• Protokolla perustuu määrämuotoiseen kommunikointiin TCP- yhteyden ylitse

• Asiakkaan tärkeimmät komennot (metodit):

(9)

HTTP-asiakkaan otsaketietueet

• Asiakas täsmentää komentoa näillä (muutama yleinen):

Host and port as listed in the original URL Host

Conditional GET If-Modified-Since

Specifies URL of the page that contained the cross-reference

Referer

Returns information supplied via a Set-Cookie header (in previous connection)

Cookie

If Keep-Alive used connection is not closed after each request on HTTP/1.0 (default behavior for HTTP/1.1)

Connection

Usually username:password encoded in base64 Accept

Explanation Header

(10)

HTTP-palvelimen vastausviesti

HTTP/Version Status-Code Reason-Phrase

• Vastausviestit on jaettu luokkiin, samantapaisia käytetään useiden muidenkin Internet-protokollien yhteydessä

– Esim. SMTP ja NNTP muistuttavat tätä käytäntöä

1xx: Tiedoksi, esim. pyynnön osa hyväksytty 2xx: Onnistunut transaktio

3xx: Uudelleenohjaus 4xx: Asiakkaan virhe 5xx: Palvelimen virhe

(11)

HTTP/1.1 vastauskoodit

"200" ; OK

"201" ; Created

"202" ; Accepted

"203" ; Non-Authoritative Information

"301" ; Moved Permanently

"400" ; Bad Request

"404" ; Not Found

"500" ; Internal Server Error

"505" ; HTTP Version not supported

(12)

HTTP-vastauksen otsakkeet

• Muutama tavallisin lisätieto vastauksessa:

Gives authorization type and realm that the client has to supply in an Authorization header

WWW-

Authenticate

name/value pair to be stored by browser. This pair will be transmitted in the Cookie header in future requests to the same URL

Set-Cookie

New location of the requested document Location

Time and date when document was changed last time

Last-Modified

MIME type and subtype Content-Type

Number of bytes in the file Content-

Length

Describes the decoding mechanism that must be used to obtain the MIME media type specified in the Content-Type header

Content- Encoding

(13)

Internetin sähköposti

• Sähköposti on WWW:tä vanhempi palvelu

– Verkkokäytössä vuodesta 1972

• Sähköposti perustuu myös palvelimiin, eroaa WWW:stä

– Multimediatiedostojen sijaan välitetään viestejä

• Sähköpostiviestiä työnnetään (push) SMTP-

protokollalla kohti vastaanottajan palvelinta, josta vastaanottaja hakee (pull) sen POP tai IMAP-

protokollalla

– Simple Mail Transfer Protocol – Post Office Protocol

– Internet Message Access Protocol

(14)

Sähköpostin matka

Sender Sender's

local server

Receiver Host sends

e-mail using SMTP

Server forwards

mail using SMTP Client retrieves mail using POP or IMAP

Receiver's local server

(15)

Asiakas vai palvelin

• Sähköpostipalvelin ottaa samanaikaisesti sekä asiakkaan että palvelimen roolin

– TCP-portissa 25 tulevaa postia odottava prosessi on palvelin – Kun sama prosessi ottaa yhteyden toiseen palvelimeen se

on asiakas

• Roolit eivät siis ole välttämättä kiinteitä

• Sama prosessi voisi myös toimia IMAP ja POP- palvelimena

– Yleensä sähköposti talletetaan käyttäjän postilaatikkoon (tiedosto) ja eri ohjelmisto tarjoaa lukemispalvelun

• Meillä on siis vaihtuvat roolit ja ero palvelimen

sisäisen ja ulkoisen arkkitehtuurin välillä

(16)

Työntäminen ja vetäminen

• Kun viestiä välitetään SMTP:llä eteenpäin, sitä työnnetään (push)

– Vastaanottava palvelin ei voi tietää mistä viesti olisi tulossa

• Sähköpostin lukuohjelma voisi myös olla postia odottava palvelin

– Mutta työasemat eivät ole luotettavasti päällä ja käyttäjä saattaa haluta käyttää useita asiakasohjelmia

– Joten posti jää vastaanottajan palvelimelle, josta se haetaan (pull)

• Myös WWW:n HTTP on pull-protokolla

– Asiakasohjelma käy säännöllisesti kyselemässä (poll) palvelimelta uutta postia

(17)

Internet-sähköpostin roolit tarkemmin

• Mail User Agent on käyttöliittymän tarjoava ohjelma

– Ohjelma, josta posti lähtee ja jonne se tulee

– Pine, Microsoft Outlook, MH, Mozilla, Elm, mail, Firefox jne.

• Mail Transfer Agent siirtää postia verkossa

– Reitittää viestin MUA:den välillä vastaanottajan osoitteen perusteella

• Sovellustason reititystä, ei suoraan suhteesa IP- reititykseen

– MTA saattaa muuttaa vastaanottajan osoitetta ja ottaa viestin uuteen käsittelyyn

– Esim. aliakset, .forward

(18)

Sähköpostin matka tarkemmin

• SMTP-viestissä on kaksi osaa

– Kuori, jota SMTP-protokolla käyttää viestin välitykseen – Sisältö, viesti otsikkoineen

• MUA vastaanottaa viestin käyttäjältä ja luo kuoren

• MUA välittää viestin palvelevalle MTA:lle (asetusten mukaan)

– MTA ottaa viestin vastaan ja yleensä tallettaa sen spool- hakemistoon odottamaan edelleen välitystä

– Lopullisen vastaanottajan MTA tallettaa viestin vastaanottajan postilaatikkoon

• Postilaatikko on tiedosto, tietokanta tms.

(19)

Store and Forward-konsepti

• Suom. etappivälitys

• Vastaanottaja tallettaa viestin ennen eteenpäinlähetystä

– Muistiin tai levylle

• IP-reittimet ottavat IP-paketin vastaan ennen kuin katsovat mihin lähtevään jonoon se sijoitetaan

– Jos jono on täynnä, paketti tuhotaan

• Sähköpostipalvelimet ottavat viestin vastaan,

tallettavat spool-hakemistoon ja kuittaavat saaneensa viestin

– Vastuu siirtyy, vikatilanteessa voidaan käydä palvelimien lokitiedostot läpi ja etsiä missä viesti katosi

(20)

Esimerkki SMTP-istunnosta

morphine ~ 1$ telnet mail.tml.hut.fi 25

Connected to mail.tml.hut.fi (130.233.47.34).

220 mail.tml.hut.fi ESMTP helo morphine.tml.hut.fi 250 mail.tml.hut.fi

mail from: joulupukki@korvatunturi.fi 250 Ok

rcpt to: kiravuo@tml.hut.fi 250 Ok

data

354 End data with <CR><LF>.<CR><LF>

From: Joulupukki@Korvatunturi.fi To: Kaikki kiltit lapset

Subject: Joulu tulee

Muistakaa olla kiltteja, pukki valvoo.

T. joulupukki .

250 Ok: queued as 9C5773A2CCC quit

221 Bye

(21)

Vastaanotettu viesti

Return-Path: <joulupukki@korvatunturi.fi>

Received: from mail.tml.hut.fi (mail.tml.hut.fi

[130.233.47.34]) by tml-yp-4.tml.hut.fi (Cyrus v2.2.12) with LMTPA; Tue, 20 Feb 2007 14:11:19 +0200

Received: from morphine.tml.hut.fi (morphine.tml.hut.fi

[130.233.45.7]) by mail.tml.hut.fi (Postfix) with SMTP id 9C5773A2CCC for <kiravuo@tml.hut.fi>; Tue, 20 Feb 2007 14:10:11 +0200 (EET)

From: Joulupukki@Korvatunturi.fi

To: Kaikki@tml.hut.fi, kiltit@tml.hut.fi, lapset@tml.hut.fi Subject: Joulu tulee

Message-Id: <20070220121011.9C5773A2CCC@mail.tml.hut.fi>

Date: Tue, 20 Feb 2007 14:10:11 +0200 (EET) Muistakaa olla kiltteja, pukki valvoo.

T. joulupukki

(22)

Viestin rakenne

• Kuoressa on MTA:n näkemys lähettäjästä ja vastaanottajasta

– Eri asia kuin viestissä oleva lähettäjä (From:) ja vastaanottaja

– Virukset ja spam väärinkäyttävät tätä ominaisuutta – SMTP:n MAIL FROM ja RCPT TO hyödyntävät näitä

• Otsakkeet

– Viestin alusta ensimmäiseen tyhjään riviin saakka

• Viestin runko

– Otsakkeiden jälkeen

(23)

SMTP ja DNS

• MX-tietueet

– Mail eXchanger - tietueet DNS-järjestelmässä

– Kertovat minne tietyn osoitteen sähköposti ohjataan

– Mahdollistavat palvelimien priorisoinnin ja varapalvelimien esittelemisen

– Esim: sral.fi:n MX-tietueen

– sral.fi. IN MX 10 bar.foo.fi.

– sral.fi. IN MX 20 smtp3.kolumbus.fi.

• Logiikka: postia siirretään MX-listassa pienimmälle arvon omaavalle palvelimelle, johon saadaan yhteys

– Jos yhtään MX-tietuetta ei ole määritelty, kokeillaan A- tietuetta (IP-osoite)

(24)

Postin lukeminen verkossa

• Saman koneen (esim. Unix-palvelin) sisällä posti luetaan suoraan postilaatikosta

– Tiedosto, esim. /var/spool/mail-hakemistossa

• MUA ottaa yhteyttä palvelimeen ja pyytää asiakkaan viestejä

– Välittää käyttäjätunnuksen ja salasanan – Saattaa käyttää SSL-salausta

• POP, Post Office Protocol

– TCP-portissa 110 (versio 3)

– Käytetään yleensä vain postin noutamiseen

• IMAP, Internet Message Access Protocol

– TCP-portissa 143

– Tukee useita kansioita (hakemistoja) palvelimella

(25)

Sähköpostin kokonaisarkkitehtuuri

• Sähköpostin arkkitehtuuri koostuu siis monista osista ja sitä voidaan tarkastella eri tavoin

– Abstraktisti, MTA, MUA, viestin rakenne

– Konkreettisesti, SMTP, POP, IMAP, RFC-2822:n määrittelemä viestin muoto

– Roolien ja ohjelmaprosessien vaatimuksien mukaan

• Arkkitehtuurin olennainen hyöty on osien

vaihdettavuus ja sisäisen rakenteen piilottaminen

– Postilaatikon sisäinen rakenne ei vaikuta muiden ohjelmien toimintaan, jos sen kanssa asioidaan vain SMTP:llä ja

IMAP:lla

– Kun järjestelmällä on arkkitehtuuri sen yksittäisiä osia voidaan kehittää koskematta muihin

(26)

Multipurpose Internet Mail Extensions

• Esimerkki uusien ominaisuuksien tuomisesta olemassaolevaan järjestelmään

• Alunperin postijärjestelmä oli määritelty vain 7- bittiselle ASCII-merkistölle

– Joka ei riitä edes englanninkielelle, saatikka kuvien siirtoon

• MIME tuo laajennuksia eri merkistöjen,

vaihtoehtoisten formaattien ja liitetiedostojen välittämiseen

• MIME-määrittelyjä käytetään muidenkin protokollien

kuten HTTP:n yhteydessä

(27)

MIME-viesti (typistetty)

FROM: "MS Security Center" <aytnddhiqp@support_msdn.net>

TO: "Partner" <partner@support_msdn.net>

SUBJECT: Current Net Security Patch Mime-Version: 1.0

Content-Type: multipart/mixed; boundary="dqrvzwnprd"

--dqrvzwnprd

Content-Type: multipart/related; boundary="jtdukndxczlsbnv";

type="multipart/alternative"

--jtdukndxczlsbnv

Content-Type: text/plain

Content-Transfer-Encoding: quoted-printable Microsoft Partner

this is the latest version of security update, the...

(28)

MIME-viesti jatkuu

--jtdukndxczlsbnv

Content-Type: text/html

Content-Transfer-Encoding: quoted-printable

<HTML>...

--jtdukndxczlsbnv-- --dqrvzwnprd

Content-Type: image/gif

Content-Transfer-Encoding: base64

R0lGODlhaAA7APcAAP///+rp6puSp6GZrDUjUUc6Zn53mFJMdb...

--dqrvzwnprd

Content-Type: application/x-msdownload; name="Install65.exe"

Content-Transfer-Encoding: base64

TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAA...

--dqrvzwnprd--

(29)

MIME

• Viestin rungossa voi olla useita dataobjekteja

– Osa objekteista vaihtoehtoisia, esim. viesti tekstinä ja HTML- koodattuna

– Lähettäjä ei yleensä tunne vastaanottajan MUA:n ominaisuuksia

• Binääridata koodataan siten, että se läpäisee 7-bittisen järjestelmän

– Kaikki SMTP MTA:t eivät tue 8-bittistä dataa – Base-64 on tyypillinen koodaus datalle

– Quoted-printable -koodaus yksittäisille tekstissä oleville 8-bittisille merkeille

• Otsikkokentille oma koodaus välitystä varten

From: =?GB2312?B?za/R1cHB18s=?= <info@shanghaity.com>

Subject: =?GB2312?B?za/R1cHB18vT68T6ubK2ybn6x+w=?=

(30)

Spam

• Mainontaa, jota ei haluta ottaa vastaan

– Huomattava ongelma määrän takia (100-200 viestiä päivittäin)

• Lähetetään eri tavoin

– Lähettävällä yrityksellä on omat postipalvelimet

– Käytetään suurta joukkoa tavallisia kotikoneita, jotka on otettu haltuun

– Löydetään sähköpostipalvelin, joka suostuu releoimaan viestin, joka ei ole sen palvelemasta osoitteesta eikä sen palvelmaan

osoitteeseen

• Viestissä on usein väärennetyt lähettäjän ja vastaanottajan tiedot

• Usein annetaan yhdelle viestille suuri (tuhansia) määrä vastaanottajia, jolloin edelleenlähetyksen kuorma jää postipalvelimelle

(31)

Spamin torjunta

• Sähköpostipalvelimeen releoinnin esto

– Viestin oltava tulossa tai menossa omaan domainiin

• Kotikoneiden suojaus

• Mustat listat sähköpostipalvelimeen

– Lista tunnetuista spam-lähteistä

• Bayesilainen suodatus (tekoälyä)

– Oppii tunnistamaan spamin

– Tällä hetkellä tuottavimmalta vaikuttava ratkaisu

• Juridiset ratkaisut

• Lisää tietoa: http://spam.abuse.net/

(32)

Keskusteluryhmät ((Usenet) News)

• Sähköposti on pienen ryhmän kaksisuuntaista viestintää ja WWW suuren joukon yksisuuntaista viestintää

• News-järjestelmä kehittyi 1980-luvulla (ennen

WWW:tä) laajaksi hajautetuksi keskustelufoorumiksi

• Keskustelu on jaettu ryhmiin ja artikkeleihin

– Sama artikkeli voidaan lähettää useaan ryhmään – Ryhmillä on nimet

• sfnet.harrastus.retkeily

– Artikkeleilla on uniikit tunnisteet

Message-ID: <Pine.GSO.1.64.0702014510.4033@hila.hut.fi>

• Palvelimet vaihtavat artikkeleita keskenään

(33)

News-järjestelmän arkkitehtuuri

• Palvelimille on annettu tieto toisista palvelimista

• Ne ottavat säännöllisesti yhteyksiä toisiinsa ja vaihtavat artikkeleita

– Message-ID:n perusteella palvelin voi päätellä onko sillä jo kyseinen artikkeli

– Käytetty protokolla on NNTP, Network News Transfer Protocol

• Palvelimet muodostavat vertaisverkon, jossa uusi artikkeli leviää verkon kaikkiin palvelimiin (flooding)

• Käyttävät lukevat artikkeleita asiakasohjelmilla

vertaisverkon palvelimilta

(34)

Vertaisverkot

• P2P (Peer to Peer) verkoissa koneet ovat suhteellisen tasa-arvoisia keskenään

– Eroaa siis asiakas-palvelinmallista

• Käytetyt protokollat saattavat erottaa asiakkaan ja palvelimen roolin

– Tyypillisesti yksi kone ottaa yhteyttä toiseen

– Sisällöllisesti viestintä on kuitenkin tasa-arvoista

– Yleensä yhdessä sovelluksessa on sekä asiakkaan että

palvelimen ominaisuudet ja se voi toimia kummassa tahansa roolissa

• Arkkitehtuuri on yleensä hajautettu ja dynaaminen

– News-palvelimet tuntevat vain naapurinsa, uusien liittyminen on helppoa

(35)

Tiedostonjakoverkot

• Uudempaa kehitystä kuin News-järjestelmä

• Tavalliset käyttäjät voivat jakaa tiedostoja keskenään

• Halutun tiedoston löytäminen on arkkitehtuurin ydinkysymys – P2P-mallin rikkova indeksipalvelin

– Tiedostoon viittaava tunniste ja algoritmi, joka kyselee muilta palvelimilta tietoa tiedostosta

– Tiedoston pilkkominen palasiin ja (redundanttien) palasten löytäminen kuten tiedoston, kunnes koko tiedosto on koossa

• Tiedostonjakoverkkojen teknologiat kehittyvät parhaillaan ja mahdollistavat mm. tiedoston salaamisen ja jakamisen siten, että kukaan ei tiedä missä tiedoston osat ovat, mutta se löytyy vertaisverkosta

(36)

Protokollat ja rajapinnat

• Protokollat mahdollistavat verkon olioiden tiedonvaihdon

– Firefox OS X:ssä voi lähettää sähköpostia Sendmailille Unixissa, josta vastaanottaja lukee Outlookilla Windowsissa

– Yhteinen kieli peittää toteutuksien erot

• Protokollat käyttävät alempien tasojen palveluita rajapintojen kautta

– Sovellukset puhuvat sovellusprotokollia socket-rajapinnan kautta TCP/IP:lle

– Ethernet-käsittelijä puhuu ethernet-kortille laiteohjainrajapinnan kautta

– Rajapinnat ovat yleensä käyttöjärjestelmäkohtaisia

• Rajapinnalla ei ole merkitystä protokollan toiminnalle, vaikuttaa lähinnä ohjelmien siirrettävyyteen

• Internet-protokollaperhe tarjoaa abstraktiokerroksen, joka peittää eri fyysisten tietoliikennekerrosten ominaisuudet

• Ylemmän tason protokollat luottavat alemman tason protokollien palveluihin

Viittaukset

LIITTYVÄT TIEDOSTOT

käsittelee. Vastaanottajan kiinnostusta voi myös herättää asiakaslupauksella, eli kertoa miksi viestin lukemista kannattaa jatkaa. Tämän jälkeen lähettäjän tulisi

Hänen mukaan ihmiset käyttävät luontoa hyväkseen ja he käyttävät myös toisia ihmisiä hyväkseen (Graham 2012, 167; Bookchin 1974). Kuten Bookchin väittää,

Lähetettävässä sanomassa ei ole lähettäjän tai vastaanottajan osoitetta vaan sanoman numero. Kuvassa 10.a on sanoman lähetyksen ja vastaanoton periaate. Jokin anturi voi

Itsenäistymisen jälkeen monet am- bot, jotka aiemmin tunnettiin heidän vieras- peräisillä nimillään, ovat alkaneet käyttää afrikkalaisia nimiään myös

•  Lähettävä sähköpostipalvelin toimii myös SMTP-protokollan asiakkaana (client) ja “työntää” (push) viestin vastaanottajan palvelimelle, jonka ohjelmiston

Antamalla työntekijöille päätösvaltaa esimiehet käyttävät tehokkaammin hyväkseen työntekijöiden tietoa ja taitoja, jolloin yrityksen oma tulos paranee: samalla saattaa nousta

Mitä hän mahdollisesti haluaisi lisätä siihen tai ottaa pois/muuttaa siinä?’ Jos asiakas kertoo, että hän haluaisi muuttaa kuvaa, niin hän voi tehdä muutokset

Lauseen 3.1 nojalla taas tiedetään, että verkoston N suurimman mahdollisen virtauksen arvo on sama kuin pienimmän mahdollisen leikkauksen kapasitee- tin arvo. Lemman 5.3