Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
LIVELLO APPLICATIVO
Alcune applicazioni di rete: WWW (http), Posta Elettronica (SMTP, Gmail...), Social Networking, P2P file sharing, video streaming...
Creare un'applicazione di rete significa creare un software che possa essere eseguito sui diversi terminali e che possa comunicare attraverso la rete. Per creare un'applicazione non è necessario cambiare il software di rete, i nodi non hanno software applicativo. Le applicazioni sono terminali e possono essere sviluppate e diffuse facilmente.
Comunicazione tra processi: Host è dispositivo dell'utente, Processo è un programma software in esecuzione sull'host. Comunicazione inter-processo (IPC) sono tecnologie software finalizzate a consentire a diversi processi di comunicare tra di loro. Per far comunicare processi che risiedono su host diversi occorre una rete. Affinché possa avvenire la comunicazione tra processi...
remoti è necessario conoscere l'indirizzamento dei processi e il protocollo di scambio dei dati. Indirizzamento di processi applicativi: lo scambio di messaggi tra processi applicativi avviene utilizzando dei livelli inferiori attraverso i SAP (Service Access Point). Ogni processo è associato a un SAP. Dunque, per identificare il processo che sta avvenendo sul mio host mi occorre sapere l'indirizzo IP del mio host (univoco di 32 bit) e l'indirizzo del SAP del processo, che corrisponde al numero di porta. Indirizzo di un processo in esecuzione: indirizzo IP + numero di porta = SOCKET. Porte di comunicazione, il processo trasmittente mette il messaggio fuori dalla porta, la rete lo raccoglie e lo trasporta fino alla porta del destinatario. Requisiti delle applicazioni: - AFFIDABILITÀ: alcune applicazioni possono tollerare perdite parziali, altre no. - BANDA: alcune applicazioni richiedono un minimo di velocità, altre si adeguano. - RITARDO: alcune applicazioni richiedono un ritardo minimo, altre no.possono essere dispositivi mobili. L'architettura client-server è utilizzata per applicazioni come il web, l'email, il file sharing, etc. Architettura P2P: i dispositivi sono sia client che server, possono comunicare direttamente tra di loro senza passare attraverso un server centrale. Ogni dispositivo può fornire e richiedere risorse. L'architettura P2P è utilizzata per applicazioni come il file sharing peer-to-peer, la messaggistica istantanea, etc. Architettura ibrida: combina caratteristiche dell'architettura client-server e P2P. Alcuni dispositivi agiscono come server centralizzati, mentre altri agiscono come nodi P2P. Questa architettura è utilizzata per applicazioni come il cloud computing, la distribuzione di contenuti, etc.Non comunicano con altri client e possono inviare molte richieste allo stesso server.
Architettura P2P: non ci sono server connessi sempre, i terminali comunicano direttamente e sono collegati in modo intermittente e possono cambiare indirizzo IP.
IL SERVIZIO DI WEB BROWSING
Le pagine web sono fatte di oggetti, che possono essere file HTML, immagini JPEG…
Generalmente le pagine web hanno un file HTML che chiama gli altri oggetti, e ogni oggetto è indirizzato da una Uniform Resource Locator (URL).
LA COMUNICAZIONE HTTP:
Nell'architettura client/server, il client effettua richieste HTTP di pagine web, le riceve e le mostra all'utente. Il server invece invia gli oggetti richiesti tramite risposte HTTP.
Non viene mantenuta nessuna memoria sulle richieste ricevute da un client. HTTP usa il servizio di trasporto TCP: il client inizia una connessione TCP verso il server, il server accetta la connessione TCP, si scambiano informazioni e la connessione viene chiusa.
Slide 22-23 es connessione non persistente.
24Alessandro Alfier prof. Antonio Capone Fondamenti di Com. e Internet
Stima del tempo di trasferimento in HTTP: Round trip time, tempo per andata e ritorno. Dobbiamo calcolare: un RTT per iniziare la connessione, uno per inviare i primi byte della richiesta http e ricevere i primi byte di risposta, tempo di trasmissione dell'oggetto. es. slide 25
I messaggi http sono codificati in ASCII (human-readable)
Metodi http: (esempi)
Esempi di header http: gli header servono per scambiare una info di servizio aggiuntiva, ed è possibile avere più linee di header per messaggio. 25Alessandro Alfier prof. Antonio Capone Fondamenti di Com. e Internet
Risposte http sono accompagnate da codici: 1xx per informazione, 2xx per successo, 3xx per redirezione, 4xx errore lato client, 5xx errore lato server.
GUARDO! slide dalla 31
Conditional GET obiettivo è non inviare un oggetto richiesto se già presente presso il client; si inserisce nella richiesta la data dell'oggetto
presente in cache locale tramite l'header. La risposta non contiene l'oggetto richiesto se la copia presente al client è aggiornata.
Analisi del traffico http molti browser offrono strumenti per la visualizzazione, analisi e valutazione delle prestazioni del traffico http.
COOKIES ingredienti: un header cookie nelle risposte http, un header cookie nella prossima richiesta http, una lista di cookie mantenuta sull'host dal browser, un database cookie mantenuto dal sito web.
PROXY http: Cache di rete obiettivo: rispondere alle richieste http senza coinvolgere i server http: il client invia tutte le richieste http a un proxy http, se l'oggetto richiesto è disponibile nella cache del proxy server, il proxy server risponde con l'oggetto, altrimenti recupera l'oggetto dal server d'origine e lo restituisce al client. I proxy sono degli instradatori di messaggi di livello applicativo, sono sia client (verso i server d'origine) sia
server (verso i client). Il server d’origine vede arrivare tutte le richieste dal proxy.
DIFFERENZE TRA http/2 e http/1.1 obiettivo è ridurre la latenza di pagine web e risolvere alcuni problemi di http/1.1
http/2 è in formato binario, ha una connessione TCP per stream multipli, comprime gli header, è un servizio di server push, controlla il flusso a livello applicativo, si appoggia su TLS (disponibile anche versione in chiaro).
Lo scambio di frame tra client e server è organizzato in stream, sequenze logiche di frame, e ognuno di essi ha una certa priorità, impostata dal browser.
Server push: il server può inviare informazioni al client senza che esso lo richieda.
Si può rendere sicuro http, arrivando ad https. Se gli acquisti amazon fossero “trasportati” da http, un malintenzionato potrebbe catturare i messaggi http che contengono i dati della carta di
credito usata, o modificare i messaggi httpdell’acquisto facendo recapitare merce diversa, o più merce… O addirittura fingersiAmazon e truffare il cliente.
Soluzioni: Secure Socket Layer (SSL) e Transport Layer Security (TLS) aggiungonoconfidenzialità, integrità e autenticazione alle connessioni TCP.
Connessioni SSL/TLS
Handshake fase in cui i server (e client) si autenticano e si mettono d’accordo sultipo di cifratura da applicare ai dati.
Trasferimento dati i dati applicativi sono suddivisi in record (PDU) ciascuno dei qualiè cifrato con l’algoritmo scelto nella fase di handshake.
Chiusura connessione viene usato un messaggio speciale per chiudere laconnessione in modo sicuro.
FASE DI HANDSHAKE: scambio di certificato tra server e client (e viceversa) checertifica l’identità del server (o del client). Certificato è generato da una certificationauthority (CA) e contiene:-chiave pubblica
dell'entità certificata-info aggiuntive (indirizzo IP, nome...)-firma digitale della CA
Generazione e scambio delle chiavi simmetriche per la cifratura del trasferimento dati.
Lo scambio delle chiavi simmetriche avviene su una connessione a sua volta cifrata con chiavi asimmetriche.
SERVIZIO DI POSTA ELETTRONICA
Client d'utente aka User agent, Mail server, Simple Mail Transfer Protocol SMTP: per trasferire email dal client d'utente fino al mail server del destinatario, Protocolli d'accesso ai mail server: per scaricare email dal proprio mail server (POP3, IMAP)
I mail server contengono per ogni client controllato:
- una coda di e-mail in ingresso
- una coda di mail in uscita
Mail server ricevono mail in uscita da tutti i client d'utente che controllano, ricevono da altri mail server tutte le mail destinate ai client d'utente controllati. Essi "parlano" SMTP con altri mail server e con i client d'utente in uplink, POP3/IMAP con i
client d'utente in downlink. SMTP è un protocollo applicativo client-server. Quando una mail riceve un messaggio da un client d'utente: 1. mette il messaggio in coda 2. apre una connessione TCP con la porta 25 del mail server del destinatario 3. trasferisce il messaggio 4. chiude la connessione TCP. L'interazione tra client SMTP e server SMTP è di tipo comando/risposta. Comandi e risposte sono testuali. Richiede che anche il corpo dei messaggi sia ASCII. Esempio trasferimento SMTP: Il formato dei messaggi inviati (tutto ciò che segue il comando SMTP DATA) è specificato (RFC 882): Header To: From: Subject: Body il contenuto dell'email (deve essere ASCII!) Il formato MIME (Multipurpose Internet Mail Extensions) (RFC 2045-2046) estende il formato dei messaggi email per supportare contenuti multimediali. Definisce header per specificare il tipo di contenuto e il tipo dicodifica.PROTOCOLLI DI ACCESSO AL MAILBOX diversi protocolli sono stati sviluppati per il colloquio tra user agent e server in fase di lettura dei messaggi presenti nel mailbox.
-POP3 (post office protocol 3): download dei messaggi
-IMAP (Internet Mail Access Protocol): download dei messaggi, gestione della mailbox sul mail server.
-HTTP
RISOLUZIONE DI NOMI SIMBOLICI (DNS)
Doamin name system è un'applicazione, è l'equivalente della consultazione delle pagine gialle per trovare un indirizzo e non i numeri di telefono. Gli indirizzi simbolici, infatti, sono più comodi. DNS fa una mappatura tra indirizzi IP e i nomi simbolici. Ogni volta che ho un nome simbolico da "risolvere" (trasformare in indirizzo IP) interrogo il DNS.
28 Alessandro Alfier prof. Antonio Capone Fondamenti di Com. e Internet