Il livello Applicazione Unità di apprendimento1 Lezione 1
Il livello di applicazione nei
modelli ISO-OSI e TCP-IP In questa lezione impareremo: Richiamo alla architettura stratificata ISO-OSI e TCP-IP Il concetto di applicazione di rete Le tipologie di applicazioni I modelli Pear-To-Pear (P2P) e Client- Server Il modello OSI e il modello TCP/IP (o Internet) Dal messaggio al frame Ad ogni passaggio vengono aggiunte le informazioni necessarie a ciascun protocollo per poter portare a termine i proprio compiti: al livello applicazione viene elaborato il tipo di dato messaggio; al livello trasporto viene elaborato il tipo di dato segmento; al livello rete viene elaborato il tipo di dato datagram; al livello collegamento (link) viene elaborato il tipo di dato frame; al livello fisico non corrisponde alcun tipo di dato (ma solo un segnale fisico). Il livello Applicazione Nel livello applicazione la comunicazione client-server avviene tramite una connessione logica come se esistesse un collegamento diretto tar client e server
A gestire tutto il resto sono i livelli inferiori
Il livello Applicazione
Un programma (applicazione) che vuole comunicare con un altro
programma, deve gestire i primi quattro livelli TCP/IP per aprire la connessione, inviare/ricevere dati e chiudere la connessione. Blocchi di istruzioni di questo tipo vengono chiamate API (Application Programming Interface) o Socket Socket Un socket è formato dalla coppia <indirizzo IP:numero della porta>; si tratta di un identificatore analogo a una porta, cioè a un punto di accesso/uscita: un processo che vuole inviare un messaggio lo fa uscire dalla propria “interfaccia” (socket del mittente) sapendo che un’infrastruttura esterna lo trasporterà attraverso la rete fino alla “interfaccia” del processo di destinazione (socket del destinatario). Multiplazione Ogni canale virtuale è individuato da una coppia SORGENTE <indirizzo_ip:porta> DESTINAZIONE <indirizzo_ip:porta> Quali sono i protocolli di applicazione più usati? DSNMP: Simple Network Management Protocol; SMTP: Simple Mail Transfer Protocol; POP3: Post Office Protocol; FTP: File Transfer Protocol; HTTP: HyperText Transfer Protocol (porta 80); HTTPS: HyperText Transfer Protocol Secure (porta 443); DNS: Domain Name System; SSH: Secure Shell (porta 22); Telnet (porta 23). DHCP:Dynamic Host Configuration Protocol (porta 67, 68) DNS: Domain Name Service (porta 53) Architetture delle applicazioni di rete Client-server: – Accesso ai siti tradizionali
Architettura client-server Nella architettura client-server la caratteristica principale è che deve sempre esserci un server attivo che offre un servizio, restando in attesa che uno o più client si connettano a esso per poter rispondere alle richieste che gli vengono effettuate. Architettura peer-to-peer (P2P) Nelle architetture peer-to-peer (P2P) abbiamo coppie di host chiamati peer (persona di pari grado, coetaneo) che dialogano direttamente tra loro. Nei sistemi P2P gli host possono essere visti come una comunità che collabora con il binomio dare e ricevere: ogni peer fornisce una risorsa e ottiene in cambio altre risorse. P2P decentralizzato Nella architettura completamente decentralizzata un peer ha sia funzionalità di client che di server (funzionalità simmetrica = servent), ed è impossibile localizzare una risorsa mediante un indirizzo IP statico: vengono effettuati nuovi meccanismi di indirizzamento, definiti a livello superiore rispetto al livello IP. P2P centralizzato Il P2P centralizzato è un compromesso tra il determinismo del modello client server e la scalabilità del sistema puro: ha un server centrale (directory server) che conserva informazioni sui peer (index, cioè il mapping resorse-peer) e risponde alle richieste su quelle informazioni effettuando quindi la ricerca in modalità centralizzata. P2P ibrido (o parzialmente centralizzato) Il P2P ibrido è un P2P parzialmente centralizzato dove sono presenti alcuni peer (detti supernodi o super-peer o ultra- peer) determinati dinamicamente (tramite un algoritmo di elezione) che hanno anche la funzione di indicizzazione: gli altri nodi sono anche chiamati leaf peer. Applicazioni P2P Servizi offerti dallo strato di trasporto alle applicazioni Trasferimento dati affidabile (o quasi); Ampiezza di banda (bandwidth) o throughput Temporizzazione; Sicurezza Servizi offerti dallo strato di trasporto alle applicazioni A seconda dell’applicazione si può decidere se adottare un protocollo di trasporto – UDP senza connessione e la perdita dati accettabile – TCP perdita dati inaccettabile, controllo di flusso se il ricevente è più lento del mittente; non garantisce banda minima o ritardo minimo