Concetti Chiave
- Il livello applicativo fornisce vari servizi agli utenti attraverso un insieme di protocolli, come SNMP, SMTP, POP3, FTP, DNS, HTTP, e Telnet, ciascuno con specifiche funzioni e modalità d'uso.
- Le applicazioni di rete possono seguire architetture client-server o peer-to-peer, influenzando la modalità di comunicazione e l'allocazione delle risorse.
- I protocolli di trasporto come TCP e UDP sono scelti in base a parametri come affidabilità, banda minima e sicurezza, adattando il servizio al tipo di trasferimento richiesto.
- Il protocollo HTTP e la sua versione sicura HTTPS sono fondamentali per il web, gestendo le richieste e risposte tra client e server con potenziale crittografia dei dati per protezione.
- Il sistema DNS traduce nomi di dominio simbolici in indirizzi IP, utilizzando una rete di nameserver distribuiti e organizzati in una struttura gerarchica globale.
Il livello application
Introduzione
È in grado di fornire diversi servizi agli utenti, ciascuno dei quali è gestito da uno o più protocolli con possibilità di espansione continua di queste opportunità.I principali protocolli
• SNMP: consente la gestione della rete da parte dell’amministratore
• SMTP: per gestire la posta elettronica
• POP3: consente all’utente di accedere alla posta elettronica
• FTP: fornisce un servizio di trasferimento file non solo tra client e server ma anche peer to peer
• DNS: servizio per associare gli IP al nome di dominio
• HTTP: è un servizio che consente di trasferire dati ipertestuali descritti attraverso l’HTML servendosi del browser
• Telnet: Offre servizio per consentire una comunicazione non criptata e bidirezionale tra due host consentendo di lavorare su una macchina remota come se fosse il proprio computer
Nel processo di comunicazione per ottenere questi servizi, che copre i primi quattro livelli dello standard ISO-OSI e i primi due dello standard TCP-IP, vengono gestite le regole per aprire, mantenere e chiudere la connessione attraverso delle API (Application Programming Interface) utilizzando i socket.
Per ogni servizio e relativo protocollo sarà scelto il tipo di protocollo di trasporto che è più adatto a svolgere quel tipo di operazione.
Un’applicazione di rete è costituita da un insieme di programmi che si poissono trovare su due o più host, e quindi l’accesso ad essa viene fatto con i principi di concorrenza a risorse comuni e in particolare può essere necessario l’accesso ad un database che viene messo a disposizione di più processi.
L’applicazione di rete viene detta distribuita poiché viene eseguita su più computer. L’identificazione del servizio offerto e quindi del processo da mandare in esecuzione avviene attraverso l’indirizzo di socket, il mittente ha il suo socket attraverso il cui effettuerà la richiesta che arriverà al socket del destinatario.
Architetture per le applicazioni di rete
Prima di progettare un’applicazione di rete bisogna scegliere l’architettura in cui andrà ad operare.
Le principali sono:
• Client-Server dove deve esserci sempre un server attivo che offre il servizio a uno o più client che si connettono ad esso.
Nel WWW esisitono molteplici server che formiscono pagine dinamiche che saranno inviate ai client e interpretate dal browser.
I server hanno indirizzi IP statici mentre i client hanno di solito indirizzi IP dinamici.
I client, possono comunicare tra loro attraverso i server.
• Peer to Peer Dove ci sono hosto chiamati Peer che dialogano tra loro fornendo risorse e ricevendo risorse dagli altri host che compongono l’architettura.
Ogni applicazione richiede a livello di trasporto una modalità di trasferimento specifica che può essere realizzata attraverso i protocolli TCP o UDP.
La scelta si basa su alcuni parametri fondamentali che sono:
• Trasferimento affidabile o no
• Necessità di una larghezza di banda minima
• Sicurezza nel trasferimento
Alcuni dei principali protocolli
Protocollo WWW
È un insieme di pagine multimediali gestibili attraveso dei link e considerate come un ipertesto multimediale distribuito.
La richiesta viene effettuata dal client verso il server web che fornisce una risposta interpretata poi dal browser web del client, che si occupa non solo dell’interpretazione, ma anche della navigazione di rete.
Il codice sorgente delle pagine web è scritto in HTML
Protocollo URL
Questo protocollo consente di localizzare una risorsa in rete che per individuare il file richiesto indicando il protocollo, il nome simbolico del dominio o l’IP, il pathname del file sul server.
Protocollo URI
In alcunic casi quesa operazione viene chiamata URI perché può essere usata per individuare risorse di protocolli non standard.
Protocollo HTTP
Usa l’architettura Client-Server per trasferire dati ipertestuali che avviene tramite uno scambio di messaggi tra il client e il server.
Il processo di comunicazione prevede di aprire prima una connessione tramite il protocollo TCP, il browser chiede una risorsa di tipo HTTP, il server elabora la richiesta e fornisce una risorsa se possibile, la connessione viene chiusa ma non è detto che venga chiusa anche la sessione di lavoro. Ciò dipende dal tipo di HTTP che si sta utilizzando
Protocollo HTTPS
È un protocollo che incapsula le richieste HTTP in una connessione cifrata col il server relativo per proteggere i dati sensibili legati alla richiesta che potrebbe prevedere transazioni commerciali in rete oppure delle fasi di autenticazione.
Se lo utilizziamo per fare un acquisto su un sito usando un’autenticazione, prima di arrivare a destinazione, vengonoi inviate attraverso un numero imprecisato di nodi e potrebbero essere intercettati da programmi chiamati packet sniffer, che in realtà non sono fatti per intercettare dati sensibili, ma servono per risolvere proiblemi di rete, o per controllare la quantità di traffico dati.
Questo problema viene risolto attraverso l’HTTPS che utilizza una connessione cifrata.
Protocollo Cookie
Sono file memorizzati nel computer client, contenenti informazioni delle pagine relative al sito.
In genere, quando il client fa una richiesta ad un server, tale file viene inviao ad esso per estrarre in maniera più rapida le informazioni rilevanti.
Alcuni browser costruiscono più file di cookies a seconda dei server visitati, mentre ad esempio Firefox inserisce tutti i cookie in un solo file.
La memorizzazione di questo file sul computer client richiede la sua autorizzazione, come pure la memorizzazione dei cookie di un client da parte di altri server.
Protocollo FTP
Serve per il trasferimento di file tra host della rete ed è un programma che si deve trovare sulla macchina server o perché fornito di default o perché viene installato successivamente.
Nel ruolo degli host che si scambiano file deve essitere per ciascuno di essi sia l’FTP client che l’FTP server.
Esso si basa su due canali separati di tipo TCP che si servono di due connessioni:
• La prima connessione spedisce informazioni di controllo tra client e server, come nome utente, password, etc. e viene chiamata command channel.
• La seconda, viene usata per il trasferimento del file e viene chiamata data channel.
L’FTP server, viene fornito dalle aziende sia open source (come filezilla) o su licenza, mette a disposizione dei suoi client una serie di opzioni per usare i file condivisi come per esempio download e upload di file, creazione di directory, navigazione tra le directory.
L’accesso al file system viene effettuato dopo l’autenticazione e a ciascun client possono essere assegnati uno o più privilegi sull’uso dei file.
Ci sono dei casi in cui non è necessaria l’autenticazione (sessione anonima) e in questo caso l’accesso ai file è in sola lettura.
La connessione dell’FTP client usa un software gratuito ed è in grado di connettersi al server e caricargli i file dal proprio computer verso il server, ad esempio una pagina web oppure scaricare i file dal server.
È costituito da due elementi:
• Una parte che implementa il protocollo FTP
• Una parte che costituisce l’interfaccia utente facilita l’interazione
Il trasferimento da server a file si chiama GET
il trasferimento da client a server si chiama PUT
la disconnessione usa il metodo BYE
Protocollo FTPS
Usa per il trasferimento algoritmi di cifratura negoziati con il server.
Se è impostato, nella finestra di trasferimento ci sarà il simbolo di un lucchetto.
Protocollo Telnet
Il telnet è un protocollo applicazione client-server che si basa su comunicazione TCP.
Consente di aprire una comunicazione bidirezionle tra due host e consente al client di lavorare sulla macchina remota come se fosse il proprio computer.
La richiesta viene fatta sulla porta 23 e di solito viene realizzata con le linee di comando.
La comunicazione avviene con un protocollo bidirezionale half duplex e il suo uso avviene soprattutto nelle fasi di debug di alcuni servizi usati più di frequente come l’SMTP e l’HTTP.
SSH
La sua evoluzione è diventato il protocollo SSH che usa per la comunicazione la cifratura dei dati e l’autenticazione con una chiave pubblica.
Si crea un canale crittato che permette di proteggere i dati da intercettazioni grazie alla scelta di un algoritmo di crittografia e ha una mutua autenticazione che deve durare per tutta la sessione di lavoro
Servizio E-mail
È il servizio più usato dagli utenti sia privati che pubblici, in partocolare dalle aziende per inviare tra stazioni commerciali, o per inviare messaggi commerciali detti anche SPAM dato che il costo è nullo.
Gli indirizzo sono formati secondo [nome utente]@[dominio].[TLD].
L’indirizzo di posta elettronica è basato sulle caselle. Ogni utente puo avere più casalle e più nomi utenti possono essere associati ad una casella di posta.
Ci sono due tipi di funzionalità:
• POP mail: permette di leggere e inviare messaggi da computer nel quale è installato il programma o client di posta che può essere ad esmpio Outlook, Mozilla, Incredimail
• WEB mail: la possibilità di accedere alla casella di posta elettronica attraverso il browser, connettendosi ad un sito dedicato e consente la connessione di qualsiasi tipo di dispositivo con lo stesso indirizzo di posta elettronica.
La realizzazione della posta elettronica viene implementata con due sottosistemi:
• Mail User Agent (MUA) che è il programma in esecuzione sul client che mediante un’interfaccia grafica offre tutte le funzionalità necessarie all’utente per gestire la posta, usa il protocollo SMTP.
• Mail Transpost Agent (MTA) che si occupa della composizione e invio dei messaggi ed è quindi completeta dalla MUA, ed è quella che viene indicata come mail server ed ofre i seguenti servizi:
o Spedizione e ricezione dei messaggi tramite SMTP
o Accesso alla posta elettronica tramite POP3
o Sicronizzazione della posta tramite IMAP
Il mittente invia una richiesta tramite SMTP al proprio server, questo si mette in contatto con il server del destinatario tramite il server SMTP e tramite il protocollo POP3 il messaggio arriva al destinatario
Il protocollo SMTP (porta 25)
Il protocollo SMTP, usa il TCP per consegnare in modo affidabile i messaggi in uscita tra client e server di posta.
Il protocollo POP3
Il protocollo POP3 server per ricevere i messaggi contenuti nella propria casella di posta elettronica attraverso il proprio server e servendosi della propria mail box. Ogni operazioni prevede di caricare sul proprio PC il contenuto dei messaggi a cui siamo interessati
IMAP
È un protocollo usato soprattutto da utenti mobili e consente accesso alla posta elettronica sia online che ofline che consnete delle manipolazioni della posta in entrata prima di prelevarla dal server, come ad esempio leggere l’intestazione di un messaggio e decidere di cancellarlo, prelevare soltanto porzioni di messaggi. La versione poù recente è IMAP 4 che consente anche di creare cartelle sul server ed è stata integrata con la tecnologia MIME (Multipurpose Internet Mail Extension) che consente di inviare anche gli allegati
Servizio DNS
Consente la traduzione dei nomi simbolici in indirizzi IP attraverso il protocollo DNS.
Ogni host o router in internet ha un indirizzo unico nella rete pubblica, ma un sito internet è di solito individuato da un nome mnemonico. Anche in una LAN si potrebbe assegnare un nome mnemonico ad ogni indirizzo IP presente in essa.
In internet la traduzione dei nomi simbolici in indirizzi IP viene fatta la traduzione dal DNS che è costituito da:
• Un database distribuito che memorizza le coppie su più nodi della rete (nameservers)
• Un protocollo che regola la comunicazione tra host e nameservers.
I nameserver
Se un nameserver locale non riesce a tradurre un nome simbolico con un indirizzo IP, contatta il DNS radice che a sua volta conoscendo la mappatura degli altri server, riesce a rintracciare qual’è quello interessato.
Nel mondo esistono 13 nameserver radice chiamati root server da A ad M e sono detti Top Level Domain (TLD) che a loro volta sono collegati ad altri server generando una struttura ad albero.
I domini
In particolare, i nomi di primo livello si classificano secondo tre tipi di caratteristiche:
1. Organizzazione: .com, .edu, .gov ...
2. Geografia: co.uk, .it, .de, .nl
3. Generico: .org, .coop, .info, .museum, .club
Per ciascuno dei server abbinati ai nomi simbolici, esistono una serie di server che corispondono ai vari host appartenenti a quel dominio.
La classificazione può essere fatta in base ad altri criteri, dividendo i domini in altre due categorie:
• Generici (organizzazione e generico)
• Countrycode domain (geografica)
I nomi di dominio possono essere al massimo di 63 caratteri
Nell’interpretazione di un nome di dominio si parte nella ricerca da destra verso sinistra, per esempio: www.google.com si parte dal TLD (.com), poi si passa al nome di dominio (google), infine alla risorsa richiesta (www.)
Domande da interrogazione
- Quali sono i principali protocolli del livello application e i loro scopi?
- Quali sono le principali architetture per le applicazioni di rete?
- Come funziona il protocollo HTTP e quali sono le sue caratteristiche principali?
- Qual è la differenza tra il protocollo FTP e FTPS?
- Come funziona il servizio DNS e qual è la sua struttura?
I principali protocolli del livello application includono SNMP per la gestione della rete, SMTP e POP3 per la gestione della posta elettronica, FTP per il trasferimento di file, DNS per l'associazione di IP ai nomi di dominio, HTTP per il trasferimento di dati ipertestuali, e Telnet per la comunicazione bidirezionale non criptata tra host.
Le principali architetture per le applicazioni di rete sono Client-Server, dove un server attivo offre servizi a uno o più client, e Peer to Peer, dove host chiamati Peer dialogano tra loro fornendo e ricevendo risorse.
Il protocollo HTTP utilizza l'architettura Client-Server per trasferire dati ipertestuali tramite uno scambio di messaggi tra client e server. La comunicazione prevede l'apertura di una connessione tramite TCP, l'elaborazione della richiesta da parte del server, e la chiusura della connessione, che può variare a seconda del tipo di HTTP utilizzato.
Il protocollo FTP è utilizzato per il trasferimento di file tra host della rete e si basa su due canali TCP separati. FTPS, invece, utilizza algoritmi di cifratura negoziati con il server per garantire la sicurezza del trasferimento dei file.
Il servizio DNS traduce i nomi simbolici in indirizzi IP attraverso un database distribuito e un protocollo di comunicazione tra host e nameservers. La struttura del DNS include nameserver locali e root server, con 13 root server globali che formano una struttura ad albero per la risoluzione dei nomi di dominio.