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

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

Protocolli applicativi: FTP

Modulo 1: Posta elettronica

Dal protocollo IP ai livelli superiori

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

Reti di Calcolatori:

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

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni client

Transmission Control Protocol

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

Le Reti Informatiche

Reti di Telecomunicazione Lezione 8

OSOR. Applicazioni di Rete

Informatica per la comunicazione" - lezione 8 -

appunti delle lezioni Architetture client/server: applicazioni client

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

Reti di Calcolatori. Il software

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

Protocolli per le . Impianti Informatici. Protocolli applicativi

PARTE 1 richiami. SUITE PROTOCOLLI TCP/IP ( I protocolli di Internet )

Lo scenario: la definizione di Internet

Reti commutate. Reti commutate. Reti commutate. Reti commutate. Reti e Web

Corso di Sistemi di Elaborazione delle informazioni. Reti di calcolatori 2 a lezione a.a. 2009/2010 Francesco Fontanella

Reti di Telecomunicazione Lezione 6

Standard di comunicazione

Internet e protocollo TCP/IP

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

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

Applicazioni e protocolli a livello applicazione

MANUALE UTENTE FORMULA PEC

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

Aspetti SW delle reti di calcolatori. L architettura del sistema. La struttura di Internet 22/04/2011

Protocolli per il Web. Impianti Informatici. Protocolli applicativi

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

Architetture Web Protocolli di Comunicazione

Reti di calcolatori. Reti di calcolatori

Capitolo 16 I servizi Internet

Introduzione alle applicazioni di rete

Reti di Calcolatori. Il Livello delle Applicazioni

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

Introduzione alla rete Internet

Livello applicazione: Sessioni HTTP, FTP, Posta Elettronica

Informatica per la comunicazione" - lezione 9 -

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

UDP. Livello di Trasporto. Demultiplexing dei Messaggi. Esempio di Demultiplexing

Reti e Internet: introduzione

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione

I protocolli di posta elettronica

Elementi di Informatica e Programmazione

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

Programmazione in Rete

InterNet: rete di reti

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Parte II Lezione 5

Architettura client-server

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

Livello Applicazione. Davide Quaglia. Motivazione

TCP/IP: INDIRIZZI IP SIMBOLICI

INFORMATICA DISTRIBUITA. lez 6 World Wide Web (cont)

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Parte II Lezione 5

Introduzione alla rete Internet

HTTP adaptation layer per generico protocollo di scambio dati

FTP. Appunti a cura del prof. ing. Mario Catalano

La posta elettronica. Informazioni di base sul funzionamento

12.5 UDP (User Datagram Protocol)

Posta Elettronica. Comunicare con . Definizione di . metodo di trasmissione dei messaggi tramite Internet:

Introduzione alla rete Internet

PROTOCOLLI APPLICATIVI PER INTERNET

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

Livello di Applicazione in Internet

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

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

SUITE PROTOCOLLI TCP/IP ( I protocolli di Internet )

Oreste Signore, Responsabile Ufficio Italiano W3C Area della Ricerca CNR - via Moruzzi, Pisa

TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI

ESERCITAZIONE Semplice creazione di un sito Internet

Reti di Telecomunicazione Lezione 7

Posta elettronica DEFINIZIONE

Elementi di Informatica e Programmazione

MODELLI ISO/OSI e TCP/IP

prof. Mario Dalessandro

Posta Elettronica e Web

Sicurezza delle applicazioni web: protocollo HTTP

Elementi di Informatica e Programmazione

Elementi sull uso dei firewall

Approfondimento di Marco Mulas

Parte II: Reti di calcolatori Lezione 9

Internet. Internet. Internet Servizi e Protocolli applicativi. Internet. Organizzazione distribuita

Introduzione alle Architetture di Rete

Internet e Tecnologia Web

Topologia delle reti. Rete Multipoint: ogni nodo è connesso agli altri tramite nodi intermedi (rete gerarchica).

Programmazione Web. Introduzione

Reti. Reti e interconnessione di reti - Internetwork WAN 1 WAN 1. Router multiprotocollo (gateway) Terminologia

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

INFORMATICA DISTRIBUITA. lez 4 Livello applicazione

Realizzazione siti web. Protocolli Internet

Identità sulla rete protocolli di trasmissione (TCP-IP) L architettura del sistema. Dal livello A al livello B

Il livello delle applicazioni. Si trattano qui i servizi proposti agli utenti dalle reti

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

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

- Corso di computer -

Transcript:

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

Applicazione Unità di trasmissione dati a livello applicazione Applicazione Presentazione Unità di trasmissione dati a livello presentazione Presentazione Sessione Unità di trasmissione dati a livello sessione Sessione Trasporto Unità di trasmissione dati a livello trasporto Trasporto Limite della sottorete di interconnessione Rete Pacchetto Rete Pacchetto Rete Pacchetto Rete Frame Frame Frame Data link Data link Data link Data link Fisico Bit Fisico Bit Fisico Bit Fisico HOST A Router Router HOST B

Protocolli TCP/IP Coprono 2 livelli Trasporto: controlla l affidabilità del trasporto end-to-end Rete: protocollo IP di invio ed instradamento dei singoli pacchetti di dati sulla rete Indirizzo IP = indirizzo dei dispositivi in rete

La struttura di Internet il contenuto della comunicazione protocollo applicativo: livello applicativo Posta elettronica Accesso remoto SMTP/POP TELNET Copia di file World Wide Web FTP HTTP protocolli di trasmissione: livello di trasmissione TCP UDP protocollo di instradamento: livello di rete IP infrastruttura di connessione: livello di connessione fisica

Protocolli TCP e IP Il TCP Suddivide i dati in uscita in pacchetti a cui viene aggiunta un intestazione (header) con tutte le informazioni sulla destinazione (Internet è una rete a commutazione di pacchetto) I singoli pacchetti (datagrammi) hanno piccole dimensioni (<1500 byte) I pacchetti sono spediti separatamente e poi riassemblati dal ricevente TCP controlla se la comunicazione va a buon fine conferma esplicita (ack) di avvenuta ricezione in assenza di ack la trasmissione viene ripetuta L IP provvede all instradamento dei messaggi.

Indirizzi TCP/IP Livello Applicazione HOST A HOST B Livello Applicazione App. Y App. Y App. X App. X Livello TCP Punti di accesso al servizio (porte) Connessione logica (TCP) Livello TCP Livello IP Protocollo di accesso alla rete 1 Livello Fisico (collegato a rete 1) Indirizzo di rete (globale) Indirizzo del punto di collegamento alla sottorete ROUTER Livello IP Protocollo di accesso alla rete Livello IP Protocollo di accesso alla rete 2 Livello Fisico (collegato a rete 2) Rete 1 Livello Fisico Rete 2

Da un livello all altro Ogni livello attraversato aggiunge un intestazione (header) (contiene informazioni utili alle funzioni proprie di quel livello): TCP (porta TCP, checksum, numero d ordine, ) IP (indirizzo host destinazione, indirizzo host mittente, ) Rete (indirizzo MAC destinazione, indirizzo MAC mittente, ) Dati utente Flusso dati proveniente dall applicazione Intestazione TCP Unità dati a livello TCP Intestazione IP Unità dati a livello IP (datagramma) Intestazione di rete Unità dati a livello rete (frame) Nota: indirizzo MAC (Medium Access Control) assegnato in modo univoco dal produttore ad ogni scheda di rete

Affidabilità su TCP/IP IP è un protocollo connectionless (non orientato alla connessione) frammenta il flusso dei dati in pacchetti; ogni pacchetto inviato a destinazione lungo percorsi (potenzialmente) distinti; il controllo di integrità (checksum) consente soltanto la verifica dell intestazione non dei dati; attenzione: non c è garanzia che tutti i pacchetti arrivino a destinazione né che arrivino in ordine la correttezza e l ordine di ricezione dei dati devono essere assicurati da protocolli di livello più elevato.

Affidabilità su TCP/IP TCP è un protocollo connection-oriented (orientato alla connessione) Stabilisce preliminarmente una connessione garantisce la consegna di un flusso di dati completo di tutte le sue parti, ordinato correttamente e senza duplicazioni il controllo di integrità riguarda sia l intestazione TCP sia i dati il protocollo gestisce le situazioni di congestione del traffico

Affidabilità su TCP/IP La combinazione delle due modalità permette di ottenere sia una buona efficienza di trasmissione sia una elevata affidabilità: OK per applicazioni client-server; Non necessaria dove l affidabilità è requisito meno essenziale della leggerezza del protocollo. In questi casi che corrispondono, ad esempio a trasmissione in streaming o comunicazioni VoIP, il TCP può essere sostituito con altri protocolli (e.g., UDP - User Datagram Protocol).

Pagina Web: È costituita da oggetti (di solito: pagina HTML iniziale+oggetti indirizzati) È indirizzata da un URL Uniform Resource Locator Identifica un oggetto nella rete e specifica il modo per accedere ad esso World Wide Web: terminologia essenziale Ha due componenti: nome dell host e percorso nell host: http://www.cersi.it/testcenter Il browser è un user agent per il Web : MS Internet Explorer Firefox Chrome Safari etc. Un server per il Web è detto semplicemente Web server: Apache (open source) MS Internet Information Server etc.

Application layer: World Wide Web Si basa sul protocollo HTTP (HyperText Transfer Protocol) che gestisce l interazione tra un user agent (browser) e un server web Client e server si scambiano dei messaggi Richieste da parte del client Risposte da parte del server Più precisamente: L utente richiede una pagina residente su un server Il browser richiede una connessione TCP con il server Il server accetta la connessione iniziata dal browser Il browser ed il server si scambiano messaggi La connessione viene chiusa

URL (Uniform Resource Locator) http://docenti.luiss.it/naldi/informatica-canale-b/ protocollo://indirizzo_ip[:porta]/cammino/file (http)

Il Web: protocollo HTTP http: HyperText Transfer Protocol Protocollo di livello applicativo per il Web Usa il modello client/server client: browser che richiede, riceve e mostra oggetti Web server: Web server che invia oggetti in risposta alle richieste PC running Chrome Server con Apache Web server Mac running Firefox

Il protocollo HTTP HTTP: usa TCP: Il client inizia una connessione TCP (crea un socket) verso il server sulla porta 80 Il server accetta la connessione TCP dal client Vengono scambiati messaggi http (messaggi del protocollo di livello applicativo) tra il browser (client http) e il Web server (server http) La connessione TCP è chiusa HTTP è stateless Il server non mantiene informazioni sulle richieste precedenti del client I protocolli che mantengono informazione di stato sono complessi (e.g., TCP)!

Esempio HTTP L utente accede alla URL www.cersi.it/ecdl.html 1a. Il client http inizia una connessione TCP verso il server (processo) HTTP sull host www.cersi.it. La porta 80 è quella standard (default) per i server HTTP. 2. Il client http invia un messaggio di richiesta HTTP (request message) del tipo Tempo GET ecdl.html (contiene testo e Immagini) 1b. Il server HTTP presso l host www.cersi.it è in ascolto sulla porta 80. Accetta la richiesta di connessione e ne dà conferma al client 3. Il server HTTP riceve il messaggio di richiesta, costruisce un messaggio di risposta (response message) contenente l oggetto richiesto (ecdl.html), inoltra il messaggio nel socket

Esempio HTTP (cont.) 4. Il client http riceve il messaggio di risposta contenente il file HTML. Analizzando il file HTML, il browser trova i riferimenti a 10 oggetti jpeg ed invia una richiesta GET per gli oggetti JPEG 6. Il client invia l ultimo ACK per TCP 5. Il server HTTPriceve il messaggio di richiesta, costruisce un messaggio di risposta (response message) contenente l oggetto richiesto (ecdl.html), inoltra il messaggio nel socket 7. Il server HTTP chiude la connessione TCP. Tempo

Socket (lato server) Un socket (presa, attacco) è uno dei terminali di un collegamento bidirezionale tra due applicazioni di rete. Un socket è legato (bind) a una porta così che il livello TCP possa identificare l applicazione a cui sono destinati i dati: l indirizzo di un socket è la combinazione dell indirizzo IP e del numero di porta (# telefono, interno). Ogni servizio utilizza un socket connesso ad uno specifico numero di porta La porta 25 è utilizzata per l email La porta 80 per il web Il servizio mette in ascolto (listen) il socket in attesa che un cliente inoltri una richiesta di connessione.

Socket (lato client) Un client che vuole usufruire del servizio: crea un socket si connette (connect) al servizio in ascolto specifica l indirizzo IP del server ed il numero di porta corrispondente al servizio di cui vuole usufruire invia sul socket la sua richiesta rimane in attesa della risposta al termine chiude il socket.

Socket

Formato dei messaggi HTTP Due tipi di messaggi HTTP: request, response Messaggio HTTP request: ASCII (formato testo leggibile) Richiesta (GET, POST, HEAD commands) header lines Carriage return, line feed indica fine richiesta GET /somedir/page.html HTTP/1.1 Host: www.cersi.it 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

status line (protocol codice di ritorno status phrase) Formato dei messaggi HTTP header lines (response) 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., l oggetto html richiesto 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

Sintesi del flusso dei messaggi HTTP

Posta elettronica outgoing message queue Tre componenti principali : User agent (client) Server di posta Simple Mail Transfer Protocol: SMTP User Agent Interfaccia utente per l email Composizione e lettura di messaggi di posta Es., Eudora, Outlook, elm, (oppure interfaccia web: gmail) I messaggi in ingresso/uscita memorizzati sul server mail server SMTP mail server user agent user agent SMTP SMTP user agent mail server user mailbox user agent user agent user agent

Posta elettronica: mail server Mail Server Mailbox contenente messaggi (non ancora letti) per l utente (nella casella di posta) Coda di messaggi in uscita (non ancora spediti) Protocollo SMTP tra i mail server per il recapito dei messaggi client : mail server che invia il messaggio server : mail server che riceve il messaggio mail server SMTP mail server user agent user agent SMTP SMTP user agent mail server user agent user agent user agent

Come viene recapitato un messaggio di posta elettronica 1. Alice compone un messaggio e lo inoltra al suo Mail Server 2. Mail Server dispone il messaggio nella coda di messaggi in uscita 3. Mail Server di Alice apre una connessione smtp con il Mail Server di Bob ed inoltra il messaggio 4. Se il contatto fallisce, l invio è ripetuto ogni trenta minuti 5. Se l invio fallisce per diversi giorni (in genere 5), mail di notifica inviata ad Alice 6. Mail Server di Bob riceve il messaggio dal Mail Server di Alice e lo salva nella Mailbox (casella di posta) di Bob 7. Bob accede la propria Mailbox specificando Username e Password 8. Messaggi possono essere trasferiti dalla Mailbox all host da cui Bob ha effettuato l accesso (attraverso il POP) o consultati direttamente sull server (IMAP) 9. Bob legge il messaggio di Alice

Posta elettronica: SMTP [RFC 821] (1982!) Usa TCP per il trasferimento affidabile dei messaggi da client a server, porta 25 Il trasferimento può coinvolgere più server Ad ogni passaggio (hop) si ripete la procedura Tre fasi Handshaking (saluto) Trasferimento di uno o più messaggi (connessione permanente) Chiusura Interazione mediante comandi/risposte Comando: testo ASCII HELLO, MAIL FROM, RCPT TO, etc. Risposta: codice di stato (200, 354, etc,) e frase Attenzione: I messaggi devono essere comunque inviati in formato ASCII a 7 bit, anche i dati multimediali.

Formato dei messaggi SMTP: protocollo per lo scambio di messaggi di posta RFC 822: standard per il formato dei messaggi inviati: header, ad esempio To: From: Subject: Diversi dai comandi smtp! body Il messaggio vero e proprio, solo caratteri ASCII header body Linea vuota

SMTP Connessioni TCP persistenti Richiede che il messaggio (header & corpo) sia in formato ascii 7-bit Alcune sequenze di caratteri non consentite (es., <CRLF>.<CRLF>). Conseguenza: il messaggio deve essere codificato Il server smtp usa <CRLF>.<CRLF> per determinare la fine del messaggio Confronto con HTTP http: pull email: push 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

Protocolli di accesso alla posta Soluzione tradizionale: l utente legge direttamente la posta sul Mail Server L host su cui è attivo il Mail Server deve essere sempre attivo I client di posta permettono di trasferire l email dal Mail Server al computer dell utente Possibile visualizzare file multimediali e di specifiche applicazioni Occorre un protocollo Pull per accedere alla Mailbox collocata sul Mail Server

Protocolli di accesso alla posta user agent SMTP SMTP POP3 o IMAP user agent mail server del mittente mail server del ricevente SMTP: consegna al / memorizzazione nel server di posta del ricevente Protocollo di accesso: recupero della posta dal server locale POP: Post Office Protocol [RFC 1939] Autenticazione (agent <-->server) e scaricamento IMAP: Internet Mail Access Protocol [RFC 1730] Manipolazione dei messaggi memorizzati sul server attraverso client di posta, es.: outlook HTTP: Interfaccia web, es: Hotmail, Yahoo! Gmail,...

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 ricerche nei messaggi Scarica e conserva: 1. User Agent conserva la posta sulla Mailbox 2. Utente può leggere i messaggi da host diversi 3. POP3 stateless: non permette di strutturare i messaggi in cartelle Si può ottenere lo stesso effetto con altre applicazioni

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

Un esempio moderno: Whatsapp Servizio di messaggistica istantanea Oltre a messaggi testo può inviare immagini, video, file audio, etc. Utilizza una versione proprietaria di un protocollo open: Extensible Messaging and Presence Protocol (XMPP). XMPP: specificamente sviluppato per Messaggistica real-time Fornire informazioni sulla disponibilità e la localizzazione Mantenimento della lista di contatti Originariamente proposto nel 1999! Utilizza il TCP come protocollo di trasporto, porta 5222 L applicazione notifica la ricezione di messaggi

Un esempio moderno: Whatsapp Multipiattaforma: ios, Android, MS Windows Phone, Blackberry, Symbian, etc. Creazione automatica di un utenza all atto dell installazione: [numero_di_telefono]@s.whatsapp.net La password dipende dallo specifico dispositivo Centinaia di milioni di utenti!