INFORMATICA DISTRIBUITA prof. lez 4 Livello applicazione Università degli Studi di Milano Scienze e Tecnologie della Comunicazione Musicale a.a. 2009-2010
applicazioni di rete Processo: programma in esecuzione su un host processi in esecuzione su host differenti comunicano con un application-layer protocol user agent: intermediario tra utente ( sopra ) e network ( sotto ) implementa la user interface e applicationlevel protocol Web: browser E-mail: mail reader streaming audio/video: media player
App-layer protocol Tipo dei messaggi scambiati Sintassi dei messaggi quali campi e come sono delimitati Semantica dei campi il significato dell informazione nei campi Le regole che determinano quando e come rispondere a messaggi
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
Identificare processi Un processo (programma), per ricevere un messaggio deve essere nominabile Bisogna poter dire su che macchina (host) è in esecuzione Problema risolto vedremo con gli indirizzi IP quale processo tra quelli in esecuzione Il sistema operativo usa un identificatore (PID) ma questo non è conoscibile a priori Si aggiunge un numero di porta per indicare il tipo di servizio Ai servizi più comuni si è assegnato una porta standard HTTP server: 80, Mail server: 25
Socket: livello programmativo processi spediscono e ricevono messaggi host or server host or server attraverso socket socket sono collegate alle porte Si può scegliere il protocollo di trasporto process socket TCP with buffers, variables controlled by app developer Internet process socket TCP with buffers, variables Fissare alcuni parametri controlled by OS Spedire su una socket un messaggio
Che tipo di servizio serve? Data loss Possono essere tollerate? In che percentuale? Timing Hanno vincoli temporali stretti? Un pacchetto che arriva in ritardo è ancora utile? Bandwidth E necessario garantire una minima quantità di dati al sec affinché la applicazione possa funzionare?
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
WEB e HTTP un protocollo Client-Server
World Wide Web Contenuto Le pagine Web Scritte tipicamente in HTML (Hypertext Markup Language) Possono contenere link ad altre pagine (su altri server) Possono contenere altri oggetti Immagini (vari formati), applet Java, file audio Referenziabili attraverso una URL Non c è una gestione globale dei link Infrastruttura Circa il 30% dei link sono broken Web servers distribuiti su Internet Client e server dialogano attraverso il protocollo applicativo HTTP
Uniform Resource Locator (URL) Ogni oggetto è riferibile attraverso un URL protocol://hostname [:port ]/path [?query ] http://bellettini.usr.dico.unimi.it/~belletc/bb2/viewforum.php? f=5 protocol: http hostname: bellettini.usr.dico.unimi.it port: [opzionale] default 80 per http. path: ~belletc/bb2/viewforum.php query:?f=5 dati aggiuntivi, parametri
Protocolli usabili nelle URL http: ftp: file: http://www.dico.unimi.it/ ftp://ftp.ibm.com/pub/readme news: file:/usr/homes/belletc/.bashrc news:comp.os.linux mailto: Se un protocollo non è direttamente supportato molti browser permettono di definire la applicazione da lanciare per gestirlo mailto:bellettini@unimi.it telnet: telnet:bellettini.usr.dico.unimi.it