Alla ricerca del malware perduto: progettazione e realizzazione di una Virtual Honeypot distribuita
INFORMATICA DISTRIBUITA
Transcript of INFORMATICA DISTRIBUITA
INFORMATICADISTRIBUITA
prof. Carlo Bellettini
Università degli Studi di MilanoScienze e Tecnologie della Comunicazione Musicalea.a. 2009-2010
lez 4Livello applicazione
Carlo BellettiniInformatica Distribuita
applicazioni di reteProcesso: programma in esecuzione su un hostprocessi in esecuzione su host differenti comunicano con un application-layer protocoluser agent: intermediario tra utente (“sopra”) e network (“sotto”)implementa la user interface e application-level protocol
Web: browserE-mail: mail readerstreaming audio/video: media player
Carlo BellettiniInformatica Distribuita
App-layer protocol
Tipo dei messaggi scambiati Sintassi dei messaggi
quali campi e come sono delimitati
Semantica dei campiil significato dell’informazione nei campi
Le regole che determinano quando e come rispondere a messaggi
Carlo BellettiniInformatica Distribuita
Client-server paradigm
Client:Colui che inizia una comunicazione (chi parla per primo)
Tipicamente richiede un servizio da un server
Server:Fornisce il servizio richiesto, e.g., Web server sends requested Web page, mail server delivers e-mail
Carlo BellettiniInformatica Distribuita
Identificare processi
Un processo (programma), per ricevere un messaggio deve essere nominabileBisogna poter dire
su che macchina (host) è in esecuzioneProblema risolto vedremo con gli indirizzi IP
quale processo tra quelli in esecuzione
Il sistema operativo usa un identificatore (PID) ma questo non è conoscibile a prioriSi aggiunge un numero di porta per indicare il tipo di servizio
Ai servizi più comuni si è assegnato una porta standardHTTP server: 80, Mail server: 25
Carlo BellettiniInformatica Distribuita
Socket: livello programmativo
processi spediscono e ricevono messaggi attraverso socket
socket sono collegate alle porte
Si può scegliere il protocollo di trasporto
Fissare alcuni parametri
Spedire su una socket un messaggio
process
TCP withbuffers,
variables
socket
host orserver
process
TCP withbuffers,
variables
socket
host orserver
Internet
controlledby OS
controlled byapp developer
Carlo BellettiniInformatica Distribuita
Che tipo di servizio serve?Data loss
Possono essere tollerate?
In che percentuale?
TimingHanno vincoli temporali stretti?
Un pacchetto che arriva in ritardo è ancora utile?
BandwidthE’ necessario garantire una minima quantità di dati al sec affinché la applicazione possa funzionare?
Carlo BellettiniInformatica Distribuita
Transport service requirements
Applicazione Perdita dati Banda Tempo
File transfer no elastica no
e-mail no elastica no
Web no elastica no
audio/video loss tolerant min garantito 0,1 - 1 sec
giochi online loss tolerant? poca 0,1 sec
IM no loss elastica un po’
Carlo BellettiniInformatica Distribuita
World Wide WebContenuto
Le pagine WebScritte tipicamente in HTML (Hypertext Markup Language)
Possono contenere link ad altre pagine (su altri server)
Possono contenere altri oggettiImmagini (vari formati), applet Java, file audio
Referenziabili attraverso una URL
Non c’è una gestione globale dei linkCirca il 30% dei link sono “broken”
InfrastrutturaWeb servers distribuiti su Internet
Client e server dialogano attraverso il protocollo applicativo HTTP
Carlo BellettiniInformatica Distribuita
Uniform Resource Locator (URL)
Ogni oggetto è riferibile attraverso un URLprotocol://hostname [:port ]/path [?query ]http://bellettini.usr.dico.unimi.it/~belletc/BB2/viewforum.php?f=5
protocol: httphostname: bellettini.usr.dico.unimi.itport: [opzionale] default 80 per http.path: ~belletc/BB2/viewforum.phpquery: ?f=5
dati aggiuntivi, parametri
Carlo BellettiniInformatica Distribuita
Protocolli usabili nelle URLhttp:
http://www.dico.unimi.it/
ftp: ftp://ftp.ibm.com/pub/README
file: file:/usr/homes/belletc/.bashrc
news: news:comp.os.linux
mailto: mailto:[email protected]
telnet: telnet:bellettini.usr.dico.unimi.it
Se un protocollo non è direttamente supportato molti
browser permettono di definire la applicazione da
lanciare per gestirlo