Tecnologie per la Comunicazione Aziendale



Documenti analoghi
Reti di Calcolatori:

Esempi di applicazioni internet. WEB Trasferimento File Posta Elettronica Sistema dei nomi di dominio (DNS)

. SMTP, POP, IMAP. mail server. smtp [RFC 821] Tre componenti: user agent mail server simple mail transfer protocol: smtp

RETI E SISTEMI INFORMATIVI Domain Name System. Prof. Andrea Borghesan

Flavio De Paoli ITIS Lab

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori (a.a. 2011/12)

INFORMATICA DISTRIBUITA. lez 6 World Wide Web (cont)

Programmazione in Rete

Livello applicativo. Obiettivi specifici: ! Protocolli specifici: " http " ftp " smtp " pop " dns " Programmazione di applicazioni

Livello applicativo. Obiettivi specifici: Protocolli specifici: Obiettivi generali:

Modulo 1: Posta elettronica

Web e HTTP. path name. host name Realizzato da Roberto Savino.

Servizi di rete e web. Prof. Maurizio Naldi A.A. 2015/16

Tecnologie per la Comunicazione Aziendale

Livello applicazione: Sessioni HTTP, FTP, Posta Elettronica

Reti di calcolatori e Internet (Parte II) Sistemi e Tecnologie Informatiche

2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine.

OSOR. Applicazioni di Rete

Protocolli applicativi: FTP

Dal protocollo IP ai livelli superiori

Reti di Calcolatori AA 2011/2012. Protocolli di applicazione. Livello di applicazione (2) Capitolo 2: Livello applicazione (2)

Parte II: Reti di calcolatori Lezione 9

Protocolli di applicazione

Application Layer FTP, SMTP, POP3, IMAP. Ricapitolando. FTP: File Transfer Protocol [RFC 959] porta 80

Application Layer FTP, SMTP, POP3, IMAP

Il Livello Applicazione

Reti di Calcolatori. Master "Bio Info" Reti e Basi di Dati Lezione 2

Reti di Telecomunicazione Lezione 6

Comunicazione remota asincrona

Reti di Telecomunicazione Lezione 7

Introduzione. Sommario: Obiettivo:

Che tipo di transport service è necessario per una applicazione? Protocolli application-layer (cont). Applicazioni e protocolli application-layer

Programmazione in Rete

Le Reti Informatiche

Capitolo 2 - parte 5. Corso Reti ed Applicazioni Mauro Campanella

INFORMATICA DISTRIBUITA. prof. Carlo Bellettini. lez7 (cont)

Reti di Calcolatori. Il Livello delle Applicazioni

Nelle reti di calcolatori, le porte (traduzione impropria del termine. port inglese, che in realtà significa porto) sono lo strumento

Introduzione alla rete Internet

Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4)

Introduzione alle Architetture di Rete

Introduzione alla rete Internet

Università degli Studi di Bergamo

Strato Applicazione. strato applicazione

Parte II: Reti di calcolatori Lezione 7

Lo scenario: la definizione di Internet

Reti di Calcolatori. Vantaggi dell uso delle reti. Cosa è una rete? Punto di vista logico: sistema di dati ed utenti distribuito

Il Protocollo HTTP e la programmazione di estensioni Web

Processi dell applicazione, socket e il sottostante protocollo di trasporto. Protocolli application-layer (cont).

Introduzione alla rete Internet

Programmazione in Rete

Introduzione alle applicazioni di rete

Reti di calcolatori. Reti di calcolatori

Lezione n 1! Introduzione"

Livello applicazione: (RFC), protocollo FTP, protocollo Posta Elettronica, servizi di trasporto

Protocolli applicativi: FTP, SMTP, POP/IMAP

Protocolli applicativi: FTP ed SMTP

Reti di Calcolatori:

Applicazioni web centrati sui dati (Data-centric web applications)

Siti web centrati sui dati (Data-centric web applications)

ARP (Address Resolution Protocol)

Programmazione in Rete

SMSPortal. SMS-Gateway interfaccia SMTP. Versione , 2005, 2006 SMSPortal. Digitel Mobile Srl Via Raffaello, Pescara (Italy)

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori (a.a. 2010/11)

Esercitazione. Formato di compitini e compiti: domande ed esercizi "closed book" G. Ferrari - Reti di calcolatori.

Reti di Telecomunicazione Lezione 8

Posta Elettronica e Web

Reti di Calcolatori. una rete di calcolatori è costituita da due o più calcolatori autonomi che possono interagire tra di loro una rete permette:

CORSO DI RETI SSIS. Lezione n.2. 2 Novembre 2005 Laura Ricci

TCP/IP: INDIRIZZI IP SIMBOLICI

Posta elettronica DEFINIZIONE

Reti di Calcolatori:

Livello di applicazione. Reti di Calcolatori. Corso di Laurea in Ingegneria Informatica. Livello di applicazione DNS A.A.

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

Protocolli per le . Impianti Informatici. Protocolli applicativi

Livello Applicazione. Davide Quaglia. Motivazione

Indirizzi Internet e. I livelli di trasporto delle informazioni. Comunicazione e naming in Internet

Livello di Applicazione in Internet

INFORMATICA DISTRIBUITA. lez 4 Livello applicazione

Configurazione di Outlook Express

Livello applicativo: (RFC), protocollo FTP, protocollo Posta Elettronica

Reti di Calcolatori. Corso di Informatica. Reti di Calcolatori. Reti di Calcolatori. Corso di Laurea in Conservazione e Restauro dei Beni Culturali

Applicazioni e protocolli a livello applicazione

b) Dinamicità delle pagine e interattività d) Separazione del contenuto dalla forma di visualizzazione

INFORMATICA DISTRIBUITA. lez 5 World Wide Web (cont)

Internet e Tecnologia Web

Comprendere cosa è Internet e sapere quali sono i suoi principali impieghi. 25/09/2011 prof. Antonio Santoro

La posta elettronica. Informazioni di base sul funzionamento

Cenni di programmazione distribuita in C++ Mauro Piccolo

INFORMATICA DISTRIBUITA. prof. Carlo Bellettini. lez 9 Distribuzione dei contenuti

Livello applicativo. Obiettivi generali: Obiettivi specifici: Protocolli specifici:

Introduzione. Livello applicativo Principi delle applicazioni di rete. Stack protocollare Gerarchia di protocolli Servizi e primitive di servizio 2-1

Finalità delle Reti di calcolatori. Le Reti Informatiche. Una definizione di Rete di calcolatori. Hardware e Software nelle Reti

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00

Reti di Calcolatori. Seconda lezione. Realizzato da Roberto Savino: 1

Come funziona il WWW. Architettura client-server. Web: client-server. Il protocollo

Il seguente Syllabus è relativo al Modulo 7, Reti informatiche, e fornisce i fondamenti per il test di tipo pratico relativo a questo modulo

Dalla connessione ai social network. Federico Cappellini

Reti di Telecomunicazioni Mobile IP Mobile IP Internet Internet Protocol header IPv4 router host indirizzi IP, DNS URL indirizzo di rete

MANUALE UTENTE FORMULA PEC

Transcript:

Tecnologie per la Comunicazione Aziendale Flavio De Paoli AA 2008/09 Parte I: Introduzione Obiettivi: Avere una visione di insieme del contesto Aspetti concettuali/ implementativi dei protocolli applicativi Paradigma client Modelli dei servizi Rassegna prima lezione: cosa è Internet cosa è il Web Architettura client/ cosa è un protocollo Il protocollo HTTP Indirizzi URL Processi e programmi 1: Introduction 2

Breve storia del Web/Internet NCSA s HTTPd Web Server allows CGI Scripts NCSA s Browser MOSAIC hits the web Surfing the Internet Coined by Jean Armour Polly Amazon.com Sun releases Java Microsoft shifts to Internet Netscape born Tim Berners-Lee Dotcom Era releases WWW Web Services B2B Broadband Portals Components. e-security 2001 2002 Web 2.0 2003 2004 1991 1992 1993 1994 1995 1996 1: Introduction 3 Diffusione di Internet

Diffusione di internet Persone on-line Internet users: 1.319.872.109 [28.04.2008]

Attività in rete Principali attività in rete [Ofcom, Q1, 2005] Attività in rete in USA Percent of Internet users who report this activity Send or read email 92 Use a search engine to find information 89 Search for a map or driving directions 86 Look for info on a hobby or interest 83 Research a product or service before buying 81 Check the weather 80 Look for health/medical info 75 Get travel info 73 Get news 73 Buy a product 71 Visit a local, state, or federal government website 66 Buy or make a reservation for travel 64 Surf the Web for fun 62 Go to a website that provides info or support for a specific medical condition or personal situation 58 Research for school or training 57 Watch a video clip or listen to an audio clip 56 Look for "how-to," "do-it-yourself," or repair information 55 Look online for news or information about politics or the upcoming campaigns 55 Look up phone number or address 54 Do any banking online 53 Watch a video on a video-sharing site like YouTube or GoogleVideo 52 Take a virtual tour of a location online 51 Do any type of research for your job 51 Look online for info about a job 47 Get sports scores and info online 45 Get info online about a college, university, or other school you or a family member might attend 45 Download other files such as games, videos, or pictures 42 Get financial info online, such as stock quotes or mortage interest rates 41 Send instant messages 40 Look for info about a place to live 39 Download computer programs from the Internet 39 Pay bills online 38 Download music files to your computer 37 Upload photos to a website so you can share them with others online 37 Look for information on Wikipedia 36 Send or receive text messages using a cell phone 35 Look for religious/spiritual info 35 Play online games 35 Listen to music online at a website 34 Read someone else's online journal, web log, or blog 33 Rate a product, service, or person using an online rating system 32 Use online classified ads or sites like Craig's list 32 Log on to the internet using a wireless device 30 Listen to a live or recorded radio broadcast online, such as a newscast, sporting event, or radio show 29 Categorize or tag online content like a photo, news story, or blog post 28 Search for info about someone you know or might meet 28 Pay to access or download digital content online 28 Share files from own computer with others 27 Download video files to your computer 27 Participate in an online auction 26 Research your family's history or genealogy online 25 Download screensavers from the Internet 23 Chat in a chat room or in an online discussion 22 Download computer games from the Internet 21 Create content for the Internet 19 Download a podcast so you can listen to it or view it at a later time 19 Make a donation to a charity online 18 View live images online of a remote location or person, using a webcam 17 Use an online social networking sites like MySpace, Facebook, or Friendster 16 Sell something online 15 Visit an adult website 13 Take a class online just for personal enjoyment or enrichment 13 Participate in an online discussion, a listserv, or other online group that helps people with personal issues or health problems 12 Send or receive an invitation to a meeting or party using an online invitation service 12 Take a class online for credit toward a degree of some kind 12 Create or work on your own online journal or blog 12 Take material you find onlineñlike songs, text, or imagesñand remix it into your own artistic creation 11 Buy or sell stocks, bonds, or mutual funds 11 Make a phone call online 8 Go to a dating website or other site where you can meet people online 6 Create an avatar or online representation of yourself 6 Download or share adult content online 4 Source: Pew Internet & American Life Project tracking surveys (July 22, 2008). 8

Classifica per nazioni Penetrazione nell Unione Europea Internet Users in the European Union Penetrati User EUROPEAN Internet Population ( Users, on (% Populati Growth (2000- Users % UNION 2008 Est. ) Latest Data on) 2008) Table Finland 5,244,749 4,353,142 83.00% 125.90% 1.50% Netherlands 16,645,313 13,791,800 82.90% 253.60% 4.60% Sweden 9,045,389 7,295,200 80.70% 80.20% 2.50% Denmark 5,484,723 4,408,100 80.40% 126.10% 1.50% Luxembourg 486,006 363,900 74.90% 263.90% 0.10% United Kingdom 60,943,912 43,221,464 70.90% 180.70% 14.60% Austria 8,205,533 5,601,700 68.30% 166.70% 1.90% Belgium 10,403,951 7,006,400 67.30% 250.30% 2.40% Germany 82,369,548 55,221,183 67.00% 130.10% 18.60% Spain 40,491,051 27,028,934 66.80% 401.70% 9.10% Estonia 1,307,605 854,600 65.40% 133.10% 0.30% Slovenia 2,007,711 1,300,000 64.80% 333.30% 0.40% France 62,150,775 40,128,178 64.60% 372.10% 13.50% Latvia 2,245,423 1,324,800 59.00% 783.20% 0.40% Lithuania 3,565,205 2,103,471 59.00% 834.90% 0.70% Ireland 4,156,119 2,410,549 58.00% 207.50% 0.80% Hungary 9,930,915 5,215,400 52.50% 629.40% 1.80% Poland 38,500,696 20,020,362 52.00% 615.00% 6.70% Slovakia 5,455,407 2,705,882 49.60% 316.30% 0.90% Czech Republic 10,220,911 4,991,300 48.80% 399.10% 1.70% Italy 58,145,321 28,255,100 48.60% 114.10% 9.50% Greece 10,722,816 4,932,495 46.00% 393.20% 1.70% Cyprus 792,604 324,880 41.00% 170.70% 0.10% Portugal 10,676,910 4,249,200 39.80% 70.00% 1.40% Romania 22,246,862 7,430,000 33.40% 828.80% 2.50% Bulgaria 7,262,675 2,368,000 32.60% 450.70% 0.80% Malta 403,532 95,000 23.50% 137.50% 0.00% European Union 489,111,662 297,001,040 60.70% 214.60% 100.00% 10

Crescita nell Unione Europea Internet Users in the European Union Penetrati User EUROPEAN Internet Population ( Users, on (% Populati Growth (2000- Users % UNION 2008 Est. ) Latest Data on) 2008) Table Lithuania 3,565,205 2,103,471 59.00% 834.90% 0.70% Romania 22,246,862 7,430,000 33.40% 828.80% 2.50% Latvia 2,245,423 1,324,800 59.00% 783.20% 0.40% Hungary 9,930,915 5,215,400 52.50% 629.40% 1.80% Poland 38,500,696 20,020,362 52.00% 615.00% 6.70% Bulgaria 7,262,675 2,368,000 32.60% 450.70% 0.80% Spain 40,491,051 27,028,934 66.80% 401.70% 9.10% Czech Republic 10,220,911 4,991,300 48.80% 399.10% 1.70% Greece 10,722,816 4,932,495 46.00% 393.20% 1.70% France 62,150,775 40,128,178 64.60% 372.10% 13.50% Slovenia 2,007,711 1,300,000 64.80% 333.30% 0.40% Slovakia 5,455,407 2,705,882 49.60% 316.30% 0.90% Luxembourg 486,006 363,900 74.90% 263.90% 0.10% Netherlands 16,645,313 13,791,800 82.90% 253.60% 4.60% Belgium 10,403,951 7,006,400 67.30% 250.30% 2.40% Ireland 4,156,119 2,410,549 58.00% 207.50% 0.80% United Kingdom 60,943,912 43,221,464 70.90% 180.70% 14.60% Cyprus 792,604 324,880 41.00% 170.70% 0.10% Austria 8,205,533 5,601,700 68.30% 166.70% 1.90% Malta 403,532 95,000 23.50% 137.50% 0.00% Estonia 1,307,605 854,600 65.40% 133.10% 0.30% Germany 82,369,548 55,221,183 67.00% 130.10% 18.60% Denmark 5,484,723 4,408,100 80.40% 126.10% 1.50% Finland 5,244,749 4,353,142 83.00% 125.90% 1.50% Italy 58,145,321 28,255,100 48.60% 114.10% 9.50% Sweden 9,045,389 7,295,200 80.70% 80.20% 2.50% Portugal 10,676,910 4,249,200 39.80% 70.00% 1.40% European Union 489,111,662 297,001,040 60.70% 214.60% 100.00% 11 Evoluzione della percezione della rete Information Medium Static Web Pages Online Catalogues Intranet Business Transport B2B Portals... Business Integration Web Services Social Compiting 1: Introduction 12

Un esempio si applicazione Processo di pagamento Autorizzazione e transazione Autorizzazione Verifica che la carta di credito sia attiva Verifica che il cliente abbia credito Aggiornamento della disponibilità di credito (Open- To-Buy) Aggiornamento dell estratto conto Settlement Ottenere l autorizazione (operazione batch) Prelevare dal conto dell acquirente Deposito sul conto della Banca d Affari 1: Introduction 13 Processo di pagamento: Componenti Cliente/ possessore di carta di credito Processore Banca di Appoggio Gateway di pagamento Transazione Banca d acquisto Gestori Carte Credito Banca d affari Mercante 1: Introduction 14

Putting it all together: Authorization Mercante Payment Gateway Cardholder / Customer Processor Merchant Cardholder Issuing Bank Payment Gateway Processor 1: Introduction 15 Putting it all together: Settlement Merchant Bank Acquiring Bank Merchant Payment Gateway Processor Cardholder Issuing Bank Cardholder / Customer 1: Introduction 16

Internet: rete di reti Grossolanamente gerarchica Backbone gestiti da provider nazionali/internazionali (NBPs) Es. Telecom Interconnessi mediante punti di accesso privati o pubblici (Network Access Point o NAP) Internet Service Provider regionali Connessi a NBP Internet Service Provider locali, compagnie Connessi a ISP regionali NAP ISP regionale ISP locale NBP B NBP A ISP locale ISP regionale NAP 1: Introduction 17 National Backbone Provider e.g. BBN/GTE US backbone network 1: Introduction 18

Cosa è Internet: hardware \ milioni di dispositivi collegati: hosts, endsystems PC, workstation, Palmari, telefoni eseguono appl. di rete mezzi trasmissivi fibra, rame, radio, satellite router: inviano pacchetti (packets) di dati attraverso la rete router local ISP company network workstation mobile regional ISP 1: Introduction 19 Cosa è Internet Internet: rete di reti Struttura parzialmente gerarchica Segmenti pubblici e intranet private protocolli: regolano la comunicazione tra sistemi e.g., TCP, IP, HTTP, FTP, PPP Standard Internet RFC: Request for comments IETF: Internet Engineering Task Force http://www.ietf.org router local ISP company network workstation mobile regional ISP 1: Introduction 20

Cosa è Internet : i servizi la rete di comunicazione permette di eseguire applicazioni: WWW, email, giochi, e- commerce, basi di dati ecc. comunicazione: basata sul concetto di protocollo 1: Introduction 21 Cosa è un protocollo? protocolli umani: che ora è? Ho una domanda invio di specifici messaggi in corrispondenza ai quali vengono prese opportune azioni anche altri eventi protocolli di rete: macchine tutte le comunicazioni in Internet governate da protocolli i protocolli definiscono il formato, l ordine di invio e di ricezione dei messaggi tra i dispositivi e le azioni prese quando si riceve un messaggio 1: Introduction 22

Cosa è un protocollo (cont.)? due esempi : ciao ciao sai l ora? 2:00 tempo richiesta di connessione TCP risposta di connessione TCP get (prendi) http://era.dis.uniroma1.it/ ~impianti/programma <file> 1: Introduction 23 Paradigma client- App. di rete tipica consiste di due parti: client e Client: Inizia il dialogo col ( speaks first ) Di solito richiede un servizio Nel caso del Web, il client è integrato nel browser Server: Fornisce il servizio al client, su richiesta Es., un Web invia una pagina Web richiesta, un mail accede alla casella di posta elettronica application transport network data link physical richiesta risposta application transport network data link physical

Il Web: protocollo http http: hypertext transfer protocol Protocollo di livello applicativo per il Web Usa il modello client/ client: browser che richiede, riceve e mostra oggetti Web : Web che invia oggetti in risposta alle richieste http1.0: RFC 1945 http1.1: RFC 2068 PC running Explorer Mac running Firefox Server con NCSA Web WWW: terminologia essenziale Uno user agent per il Web è detto browser: MS Internet Explorer Firefox Safari un per il Web è detto Web : Apache (open source) MS IIS - Internet Information Server Pagina Web: È costituita da oggetti (di solito: pagina HTML iniziale + oggetti indirizzati) Problema: come viene identificata una risorsa? È indirizzata da una URL che indica il Web Server su una macchina e la pagina desiderata

URL (Uniform Resource Locator) D: come può un processo identificare quello con cui intende comunicare? Indirizzo IP dell host su cui l altro processo è in esecuzione Numero di porta (port number) permette all host ricevente di identificare il processo locale destinatario del messaggio URL Identifica un oggetto nella rete e specifica il modo per accedere ad esso: il protocollo Ha tre componenti: nome del protocollo, indirizzo dell host e percorso nell host protocollo://indirizzo_ip[:porta]/cammino/file www.someschool.edu/somedept/pic.gif http://www.someschool.edu/somedept/pic.gif http://www.someschool.edu:80/somedept/pic.gif ftp://www.adobe.com/dawnload/acroread.exe Processi e programmi I programmi vengono eseguiti dai processi Programma = sequenza di istruzioni eseguibili dalla macchina I processi sono entità gestite dal Sistema Operativo Processo = area di memoria RAM per effettuare le operazioni e memorizzare i dati + registro che ricorda la prossima istruzione da eseguire + canali di comunicazione Ogni processo cumunica attraverso canali Un canale gestisce flussi di dati in ingresso e in uscita (dati in formato bianrio o testuale) Per esempio lo schermo, la tastiera e la rete sono canali Dall esterno ogni canale è identificato da un numero intero detto porta

Il protocollo http (cont.) http: usa TCP: Il client inizia una connessione TCP (crea un socket) verso il sulla porta 80 Il accetta la connesione TCP dal client Vengono scambiati messaggi http (messaggi del protocollo di livello applicativo) tra il browser (client http) e il Web ( http) La connessione TCP è chiusa http è stateless Il non mantiene informazione sulle richieste precedenti del client I protocolli che mantengono informazione di stato sono complessi (es. TCP)! Tempo Esempio http L utente accede alla URL www.someschool.edu/somedepartment/home.index 1a. Il client http inizia una connessione TCP verso il (processo) http sull host www.someschool.edu. La porta 80 è quella standard (default) per i http. 2. Il client http invia un messaggio di richiesta http (request message) contenente la URL (contiene testo e i riferimenti a 10 immagini jpeg) 1b. Il http presso l host www.someschool.edu è in ascolto sulla porta 80. Accetta la richiesta di connessione e ne dà conferma al client 3. Il http riceve il messaggio di richiesta, costruisce un messaggio di rispota (response message) contenente l oggetto richiesto (somedepartment/ home.index), invia il messaggio

Esempio http (cont.) 5. Il client http riceve il messaggio di risposta contenente il file html, visualizza la pagina html. Analizzando il file html, il browser trova i riferimenti a 10 oggetti jpeg 4. Il http chiude la connessione TCP. Tempo 6. I passi 1-5 sono ripetuti per ciascuno dei 10 oggetti jpeg Connessioni persistenti e non-persistenti Non-persistente HTTP/1.0 Il analizza la richiesta, risponde e chiude la connessione TCP Deve riconnettersi per ricevere ciascun oggetto Ogni oggetto subisce lo slow start TCP E possibile parallelizzare le richieste agli oggetti di una pagina Persistente default per HTTP/1.1 Sulla stessa connessione TCP : il analizza una richiesta, risponde, analizza la richiesta successiva,.. Il client invia richieste per tutti gli oggetti appena riceve la pagina HTML iniziale. Connessione incanalata: non si attende la risposta alla richiesta prededente prima di inviare la successiva. Richiesta successiva a ridosso della precedente cosi come le risposte del.

Formato dei messagi http Due tipi di messaggi http: request, response Messaggio http request: ASCII (formato testo leggibile) Request line (GET, POST, HEAD commands) Carriage return, line feed indica fine messaggio header lines GET /somedir/page.html HTTP/1.1 Host: www.someschool.edu Connection: close User-agent: Mozilla/4.0 Accept: text/html, image/gif,image/jpeg Accept-language:fr (extra carriage return, line feed) Chiudi la connessione al termine della richiesta Message http request : formato generale

Message http request: formato generale Metodo GET Usato per richiedere una pagina Web Metodo POST: Usato quando l utente compila una form. Il contenuto dei campi sono disposti nell Entitiy Body Il comando richiede una pagina Web il cui contenuto dipende dalle informazioni nel campo body Esempio: Query inviata ad un motore di ricerca Metodo HEAD: Simile al metodo get ma viene restituito solo l Head della pagina Web Spesso usato in fase di debugging Formato del messaggio http response status line (protocol status code status phrase) header lines HTTP/1.1 200 OK Connection: close Date: Thu, 06 Aug 1998 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun 1998... Content-Length: 6821 Content-Type: text/html data, e.g., requested html file data data data data data... Client HTTP 1.0: Server chiude connessione al termine della richiesta Client HTTP 1.1: mantiene aperta la connessione oppure chiude se Connection: close

Risposta: codici di stato Prima riga del messaggio di risposta ->client. Alcuni esempi: 200 OK Successo, oggetto richiesto più avanti nel messaggio 301 Moved Permanently L oggetto richiesto è stato spostato. Il nuovo indirizzo è specificato più avanti (Location:) 400 Bad Request Richiesta incomprensibile al 404 Not Found Il documento non è stato trovato sul 505 HTTP Version Not Supported Tipi MIME MIME: Multipupose Internet Mail Extension, o Mutuato dal protocollo di email SMTP (vedi oltre) o RFC 2045, 2056. Qualifica dati multimediali e di specifiche applicazioni Text Esempi di sottotipi: plain, html Image Esempi di sottotipi : jpeg, gif Audio Esempi di sottotipi : basic (8-bit mu-law encoded), 32kadpcm (32 kbps coding) Video Esempi di sottotipi : mpeg, quicktime Application Dati che devono essere processati da un applicazione prima di essere visibili Esempi di sottotipi : msword, octet-stream 38

Prova (client) 1. Telnet verso un Web : telnet www.xxx.unimib 80 Apre connessione TCP verso la porta 80 (default) prsso www.dis.uniroma1.it. Tutto quanto viene digitato è inviato alla porta 80 di www.dis.uniroma1.it 2. Si digita una richiesta http GET: GET /prova/index.html HTTP/1.0 Digitando ciò (carriage return due volte), si invia una richiesta GET al http 3. Si osservi la risposta! Autenticazione Obiettivo: controllare l accesso ai documenti sul stateless: il client deve autenticare ogni richiesta autenticazione: tipicamente log e password authorization: riga nell header del messaggio di richiesta Senza autenticazione il rifiuta la connessione WWW authenticate: Nell header client Il browser memorizza nome & password in modo che l utente non debba digitarli ogni volta. usual http request msg 401: authorization req. WWW authenticate: usual http request msg + Authorization:line usual http response msg usual http request msg + Authorization:line usual http response msg Tempo 2: Application Layer 40

Cookie Il invia un cookie al client con la risposta Set-cookie: 1678453 Il client presenta il cookie in accessi successivi cookie: 1678453 Il controlla il cookie presentato Autenticazione Traccia delle preferenze dell utente client usual http request msg usual http response + Set-cookie: # usual http request msg cookie: # usual http response msg usual http request msg cookie: # usual http response msg cookiespectific action cookiespectific action 2: Application Layer 41 GET condizionale (conditional GET) Obiettivo: non inviare oggetti che il client ha già in cache client: data dell oggetto memorizzato in cache If-modified-since: <date> : la risposta è vuota se l oggetto in cache è aggiornato: HTTP/1.0 304 Not Modified client http request msg If-modified-since: <date> http response HTTP/1.0 304 Not Modified http request msg If-modified-since: <date> http response HTTP/1.1 200 OK <data> object not modified object modified 2: Application Layer 42

Web Cache (proxy ) Obiettivo: rispondere alle richieste evitando di accedere al remoto L utente configura il browser: accesso attraverso web cache Il client invia tutte le richieste al proxy La cache restituisce l oggetto se presente Altrimenti l oggetto è richiesto prima al e poi è restituito al client client client Server proxy Server di origine Server di origine 2: Application Layer 43 Perché il Web Caching? Assunzione: la cache è vicina al client (es., stessa rete locale) Tempo di risposta minore: Percorso più breve Rete più veloce Diminuisce il traffico verso lontani Il link di uscita dalla rete di un ISP istituzionale/locale è spesso un collo di bottiglia Rete locale Internet Link di acesso a 1.5 Mbps LAN a 10 Mbps Cache locale di origine 2: Application Layer 44

ftp: File transfer protocol Utente su un host FTP User interface FTP client local file system file transfer FTP remote file system Trasferimento file da/verso un host remoto Usa il modello client/ client: parte che richiede il trasferimento (da/ verso l host remoto) : host remoto ftp: RFC 959 ftp : porta 21 2: Application Layer 45 ftp: connessioni controllo e dati separate Il client contatta il sulla porta 21, specificando TCP come protocollo di trasporto due connessioni TCP parallele: controllo: scambio di messaggi di controllo tra client e. controllo fuori banda dati: trasferimento dati da/ verso il Entrambi le connessioni aperte dal client Il ftp mantiene info di stato : directory corrente, autenticazione Una nuova connessione per ogni file trasferito FTP client Connessione di controllo TCP porta 21 TCP data connection porta 20 FTP 2: Application Layer 46

ftp comandi, risposte Esempi di comandi: Inviati come testo ASCII mediante il canale di controllo USER username PASS password LIST richiede la lista dei file nella directory corrente (ls) RETR <file> richiede (get) un file STOR <file> scarica (put) un file sull host remoto Esempi di codici Codice di stato e frase (come in http) 331 Username OK, password required 125 data connection already open; transfer starting 425 Can t open data connection 452 Error writing file 2: Application Layer 47 Posta elettronica Tre componenti principali : User agent Server di posta Simple Mail Transfer Protocol: SMTP User Agent Lettore di posta Composizione e lettura di messaggi di posta Es., Eudora, Outlook, elm, Netscape Messenger I messaggi in ingresso/ uscita memorizzati sul mail SMTP mail user agent user agent SMTP SMTP user agent outgoing message queue mail user mailbox user agent user agent user agent 2: Application Layer 48

Posta elettronica: mail Mail Server Mailbox contenente messaggi (non ancora letti) per l utente Coda di messaggi in uscita (non ancora spediti) Protocol smtp tra i mail per il recapito dei messaggi client: il che invia il messaggio : che riceve il messaggio Nota: solo una distinzione di ruoli mail SMTP mail user agent user agent SMTP SMTP user agent mail user agent user agent user agent 2: Application Layer 49 Recapito di un messaggio di posta elettronica Alice compone un messaggio e lo inoltra al suo Mail Server Mail Server dispone il messaggio nella coda di messaggi in uscita Mail Server di Alice apre una connessione smtp con il Mail Server di Bob ed inoltra il messaggio Se il contatto fallisce, l invio è ripetuto ogni trenta minuti Se l invio fallisce per diversi giorni, mail di notifica inviato ad Alice Mail Server di Bob riceve il messaggio dal Mail Server di Alice e lo salva nella Mailbox di Bob Bob accede la propria Mailbox specificando Username e Password Messaggi possono essere trasferiti dalla Mailbox all host da cui Bob ha acceduto la Mailbox e/o lasciati sul Bob legge il messaggio di Alice 2: Application Layer 50

Posta elettronica: smtp [RFC 821] (1982!) Usa tcp per il trasferimento affidabile dei messagi da client a, porta 25 Trasferimento diretto: da a, non si usano intermedi di posta Tre fasi Handshaking (saluto) Trasferimento di uno o più messaggi (connessione permanente) Chiusura Interazione mediante comandi/risposte Comando: testo ASCII Risposta: codice di stato e frase Attenzione: I messaggi devono essere comunque riportati in formato ASCII a 7 bit, anche dati multimediali 2: Application Layer 51 Esempio di interazione SMTP S: 220 hamburger.edu C: HELO crepes.fr S: 250 Hello crepes.fr, pleased to meet you C: MAIL FROM: <alice@crepes.fr> S: 250 alice@crepes.fr... Sender ok C: RCPT TO: <bob@hamburger.edu> S: 250 bob@hamburger.edu... Recipient ok C: DATA S: 354 Enter mail, end with "." on a line by itself C: Do you like ketchup? C: How about pickles? C:. S: 250 Message accepted for delivery C: QUIT S: 221 hamburger.edu closing connection 2: Application Layer 52

Prova telnet name 25 Attendi 220 risposta dal Inserisci HELO, MAIL FROM, RCPT TO, DATA, QUIT Comandi permettono di inviare email senza usare un User Agent 2: Application Layer 53 SMTP: conclusioni Connessioni TCP persistenti Richiede che il messaggio (header & corpo) sia in formato ascii 7-bit Alcune sequenze di caratteri non consentite nel messaggio (es., CRLF.CRLF). Conseguenza: il messaggio deve essere codificato Il smtp usa CRLF.CRLF per determinare la fine del messaggio Confronto con http http: pull Il client prende i dati email: push Il client manda i dati Entrambi usano un interazione mediante comandi/risposta in testo ASCII e codici di stato http: ogni oggetto incapsulato nel messaggio di risposta smtp: un messaggio con più oggetti è inviato mediante un messaggio in più parti 2: Application Layer 54

Formato dei messaggi smtp: protocollo per lo scambio di messaggi di posta RFC 822: standard per il formato dei messaggi inviati: header, es., To: From: Subject: Diversi dai comandi smtp! body Il messaggio vero e proprio, solo caratteri ASCII header body Linea vuota 2: Application Layer 55 Formato: estensioni multimediali MIME: multipupose internet mail extension, RFC 2045, 2056. Dati Multimediali e di specifiche applicazioni Righe addizionali dell header specificano il tipo del contenuto MIME Versione MIME Metodo di codifica Tipo di dato multimediale, sottotipo, dichiarazione di parametri Dati codificati From: alice@crepes.fr To: bob@hamburger.edu Subject: Picture of yummy crepe. MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encoded data.........base64 encoded data 2: Application Layer 56

Tipo Multipart From: alice@crepes.fr To: bob@hamburger.edu Subject: Picture of yummy crepe. MIME-Version: 1.0 Content-Type: multipart/mixed; boundary=98766789 --98766789 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain Dear Bob, Please find a picture of a crepe. --98766789 Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encoded data.........base64 encoded data --98766789-- E-mail contenenti più oggetti. Boundary character: delimitano i messaggi. Content-Transfer- Encoding e Content- Type per ogni oggetto 2: Application Layer 57 Messaggio ricevuto Received: from crepes.fr by hamburger.edu; 6 Oct 2003 From: alice@crepes.fr To: bob@hamburger.edu Subject: Picture of yummy crepe. MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Type: image/jpeg Received indica i Mail Server che hanno recapitato il messaggio Più linee Received se il messaggio è stato inoltrato da più SMTP lungo il percorso da mittente a destinatario 2: Application Layer 58

Protocolli di accesso alla posta Soluzione tradizionale: utente legge direttamente la posta sul Mail Server L host su cui è disposto il Mail Server deve essere sempre attivo Agenti di posta permettono di trasferire la posta dal Mail Server all host locale al ricevente Possibile visualizzare file multimediali e di specifiche applicazioni Occorre un protocollo Pull per accedere alla Mailbox collocata sul Mail Server 2: Application Layer 59 Protocolli di accesso alla posta SMTP SMTP POP3 o user agent IMAP user agent mail del mittente mail del ricevente SMTP: consegna al/memorizzazione nel di posta del ricevente Protocollo di accesso: recupero della posta dal locale POP: Post Office Protocol [RFC 1939] Autenticazione (agent <-->) e scaricamento IMAP: Internet Mail Access Protocol [RFC 1730] Più possibilità (più complesso) Manipolazione dei messaggi memorizzati sul HTTP: Hotmail, Yahoo! Mail, ecc. 2: Application Layer 60

Protocollo POP3 Fase di autorizzazione Comandi del client: user: nome utente pass: password Risposte del +OK -ERR Fase di transazione, client: list: lista numeri e dim. msg retr: scarica messaggio in base al numero dele: cancella quit S: +OK POP3 ready C: user alice S: +OK C: pass hungry S: +OK user successfully logged on C: list S: 1 498 S: 2 912 S:. C: retr 1 S: <message 1 contents> S:. C: dele 1 C: retr 2 S: <message 1 contents> S:. C: dele 2 C: quit S: +OK POP3 signing off 2: Application Layer 61 Protocollo POP3 Scarica ed elimina: 1. User Agent elimina la posta dalla Mailbox dopo averla scaricata 2. Un utente disperde la posta sui diversi host da cui accede la Mailbox 3. User Agent permette di creare cartelle, spostare messaggi, effettuare ricerce nei messaggi Scarica e conserva 1. User Agent conserva la posta sulla Mailbox 2. Utente può leggere i messaggi da macchine diverse 3. POP3 stateless, non permette di strutturare i messaggi in directory 2: Application Layer 62

Protocollo IMAP Permette di gestire cartelle di posta remote come se fossero locali IMAP deve mantenere una gerarchia di cartelle per ogni utente Permette allo User Agent di scaricare solo parti del messaggio: Intestazione Solo intestazione file MIME Multipart Messaggi di dimensione piccola per utenti a banda limitata Stati: Non-authenticated: utente deve fornire username e password per la connessione Authenticated State: utente deve specificare una cartella prima di eseguire comandi che influiscono sul messaggio Selected State: utente può dare comandi che influiscono sul messaggio, e.g. elimina, salva, sposta Logout State: sessione terminata 2: Application Layer 63 DNS: Domain Name System Persone: molte mezzi di identificazione: CF, nome, # Passaporto Host, router Internet: Indirizzi IP (32 bit) usati per indirizzare i datagrammi IP Nome, es., gaia.cs.umass.edu usati dagli utenti Q: corrispondenza tra indirizzo IP e nome? Domain Name System: Database distribuito implementato come una gerarchia di molti name Protocollo applicativo usato da host, router, name per comunicare allo scopo di risolvere (tradurre) i nomi in indirizzi IP Nota: funzione di base di Internet implementata come protocollo applicativo La complessità trasferita al bordo della rete 2: Application Layer 64

Funzione del DNS Utilizzato da diverse aplicazioni: HTTP, SMTP, FTP Connessione TCP richiede la conoscenza dell indirizzo IP corrispondente all hostname Applicazione interroga un sever DNS per ottenere l indirizzo IP Opportuno utilizzare la cache per ridurre il ritardo Utilizza UDP UNIX: gethostbyname() Fornisce l hostname corrispondente ad un alias Alias di posta: fornisce l indirizzo IP o l hostname del Mail Server di un dominio Distribuzione del carico tra Server replicati. IL DNS fornisce un gruppo di indirizzi alternando l ordine Permette di dirigere un client al più vicino 2: Application Layer 65 Name DNS Perché non un DNS centralizzato? Minore tolleranza ai guasti Traffico eccessivo Database centrale troppo distante in molti casi Scarsa scalabilità! Autorizzazione ed accesso per registrare nuovo host Nessun name contiene tutte le associazioni nome simbolico/indirizzo IP Name locali : Ogni ISP o compagnia ha un name locale (default) La richiesta di traduzione (mapping) di un host è prima rivolta al name locale Name di riferimento : Per un host: per definizione è quello che è sempre in grado di eseguire la traduzione (mapping) nome simbolico/indirizzo IP dell host 2: Application Layer 66

DNS: Root name s Contattato dal name locale che non riesce a risolvere un nome root name : Contatta il name di riferimento (authoritative) se la traduzione non è nota Ottiene la traduzione Restituisce la traduzione al name locale ~ una dozzina di root name nel mondo 2: Application Layer 67 Esempio: schema ricorsivo root name L host surf.eurecom.fr vuole l indirizzo IP di gaia.cs.umass.edu 1. Contatta il DNS locale, dns.eurecom.fr 2. dns.eurecom.fr contatta il root name, se necessario 3. Il root name contatta il name di riferimento o assoluto, dns.umass.edu, se necessario 4. Ogni host è registrato in almeno due name assoluti local name dns.eurecom.fr Host che inoltra la 4. Il name assoluto può coincidere con il neame richiesta locale. surf.eurecom.fr 1 2 6 5 3 4 authorititive name dns.umass.edu gaia.cs.umass.edu 2: Application Layer 68

Esempio (2) Root name : Può non essere a conoscenza di un name di riferimento Può tuttavia conoscere un name intermedio che contatta per avere raggiungere quello di riferimento local name dns.eurecom.fr 1 2 8 Host che inoltra la richiesta surf.eurecom.fr root name 7 3 6 Name intermedio dns.umass.edu 4 5 Name di riferimento dns.cs.umass.edu gaia.cs.umass.edu 2: Application Layer 69 DNS: richieste ripetute (iterated queries) root name Richieste ricorsive (recursive query): Trasferisce il carico della traduzione al name contattato Carico eccessivo? Richieste ripetute (iterated query): Il name contattato risponde con l indirizzo del prossimo name da contattare Non conosco questo nome, ma prova a rivolgerti a quest altro Name locale dns.eurecom.fr 1 2 8 Host che inizia la richiesta surf.eurecom.fr 3 4 7 Richiesta ripetuta Name intermedio dns.umass.edu 5 6 authoritative name dns.cs.umass.edu gaia.cs.umass.edu 2: Application Layer 70

DNS: caching e aggiornamento Quando un qualsiasi name apprende una traduzione la memorizza localmente (caching) Le traduzioni memorizzate nella cache (cache entries) scadono (timeout) dopo un certo tempo (di solito un paio di giorni) Se possibile, richieste successive vengono servite usando la traduzione presente in cache I meccanismi di aggiornmento/modifica in studio da parte dell IETF RFC 2136 http://www.ietf.org/html.charters/dnsind-charter.html 2: Application Layer 71 Record DNS DNS: database distribuito che memorizza Resource Record (RR) Formato RR: (nome, valore, tipo, ttl) Tipo=A nome è il nome dell host valore è l indirizzo IP Tipo=NS nome è il dominio (es. foo.com) valore è l indirizzo IP del name di riferimento per questo dominio Tipo=CNAME nome è un alias di qualche nome reale ( canonico ) valore è il nome canonico Tipo=MX valore è il nome di un mail associato a nome 2: Application Layer 72

Protocollo DNS, messaggi Protocollo DNS : messaggi di richiesta (query) e risposta (reply), client Header di messaggio identification: numero a 16 bit per la richiesta, la risposta usa lo stesso numero flags: Richiesta o risposta Chiesta la ricorsione (Q) Ricorsione disponibile (R) Il che risponde è di riferimento per la richiesta (R) Nota: richiesta e risposta hanno lo stesso formato 2: Application Layer 73 Protocollo DNS, messaggi (2) Nome, campi tipo per una richiesta RR in risposta a una richiesta Record per di riferimento Informazioni addizionali Es.: RR di tipo A contenente indirizzo IP di un mail il cui nome canonico è contenuto nella answer section 2: Application Layer 74