I protocolli del livello di applicazione.doc

I protocolli del livello di applicazione.pdf

I protocolli del livello di applicazione.zip

 

I protocolli del livello di applicazione

Porte

Nelle reti di calcolatori, le porte (traduzione impropria del termine port inglese, che in realtà significa porto) sono lo strumento utilizzato per permettere ad un calcolatore di effettuare più connessioni contemporanee verso altri calcolatori, facendo in modo che i dati contenuti nei pacchetti in arrivo vengano indirizzati al processo che li sta aspettando.

Le porte sono numeri (in TCP sono a 16 bit) utilizzati per identificare una particolare connessione di trasporto tra quelle al momento attive su un calcolatore. I pacchetti appartenenti ad una connessione saranno quindi identificati dalla quadrupla [<indirizzo IP sorgente>, <indirizzo IP destinazione>, <porta sorgente>, <porta destinazione>]. I pacchetti nella direzione opposta avranno ovviamente sorgente e destinazione scambiati.

Il livello di trasporto (tipicamente realizzato dal sistema operativo) associa a ciascuna porta utilizzata un punto di contatto, utilizzato da uno (o più) processi applicativi per trasmettere e/o ricevere dati.

Per poter inviare con successo un pacchetto con una certa porta destinazione, ci deve essere un processo che è "in ascolto" su quella porta, ovvero che ha chiesto al sistema operativo di ricevere connessioni su quella porta. L'operazione di impegnare una porta TCP da parte di un processo è detta "bind".

La porta sorgente utilizzata in una connessione viene scelta dal calcolatore che inizia la connessione tra una di quelle al momento non impegnate.

In Internet, c'è una convenzione per cui ad alcuni numeri di porta sono associati determinati protocolli di livello applicativo. Ad esempio, se voglio contattare il server HTTP eventualmente in esecuzione su un certo calcolatore, si deve tentare di stabilire una connessione verso la porta 80.

Le porte da 0 a 1023 sono considerate "privilegiate", e nella maggior parte dei sistemi operativi un processo ha bisogno di privilegi amministrativi per mettersi in ascolto su una di queste porte.

Http

HTTP è l'acronimo di Hyper Text Transfer Protocol (protocollo di trasferimento di un ipertesto), usato come principale sistema per la trasmissione di informazioni sul web. La prima versione effettivamente disponibile del protocollo, la HTTP/1.0, venne implementata dallo stesso Berners-Lee nel 1991 e proposta come RFC 1945 . Il protocollo venne quindi esteso nella versione HTTP/1.1, presentato come RFC 2068 nel 1997 e successivamente aggiornato nel 1999 come descritto dal RFC 2616.

L'HTTP funziona su un meccanismo richiesta/risposta (client/server): il client esegue una richiesta ed il server restituisce la risposta. Nell'uso comune il client corrisponde al browser ed il server al sito web. Vi sono quindi due tipi di messaggi HTTP: messaggi richiesta e messaggi risposta.

HTTP differisce da altri protocolli del livello di applicazione come FTP, per il fatto che le connessioni vengono generalmente chiuse una volta che una particolare richiesta (o una serie di richieste correlate) è stata soddisfatta. Questo comportamento rende il protocollo HTTP ideale per il World Wide Web, in cui le pagine molto spesso contengono dei collegamenti (link) a pagine ospitate da altri server. Talvolta però pone problemi agli sviluppatori di contenuti web, perché la natura senza stato (stateless) cioè il fatto che tale protocollo non conserva informazioni, costringe ad utilizzare dei metodi alternativi per conservare lo stato dell'utente. Spesso questi metodi si basano sull'uso dei cookie . cookies (letteralmente "biscottini") sono piccoli file di testo che i siti web utilizzano per immagazzinare alcune informazioni nel computer dell'utente. I cookie sono inviati dal sito web e memorizzati sul computer. Sono quindi re-inviati al sito web al momento delle visite successive. Le informazioni all'interno dei cookie sono spesso codificate e non comprensibili. Anche il motore di ricerca Google spedisce un cookie che immagazzina dati riguardanti le ricerche, le parole chiave delle ricerche e le abitudini dell'utente.

SMTP

Simple Mail Transfer Protocol (SMTP) è il protocollo standard per la trasmissione via internet di e-mail. In italiano si potrebbe tradurre come "Protocollo elementare di trasferimento postale".

È un protocollo relativamente semplice, testuale, nel quale vengono specificati uno o più destinatari di un messaggio, verificata la loro esistenza, il messaggio viene trasferito. L'SMTP usa il protocollo di trasmissione TCP e, per accedervi, la porta 25. L'SMTP iniziò a diffondersi nei primi anni '80. Fino al 2001 sono stati scritti almeno 50 programmi che implementano il protocollo SMTP come client (mittente dei messaggi) o server (destinatario del messaggio). Poiché SMTP è un protocollo testuale basato sulla codifica ASCII, non è permesso trasmettere direttamente testo composto con un diverso set di caratteri e tantomeno file binari. L'SMTP è un protocollo che permette soltanto di inviare messaggi di posta, ma non di richiederli ad un server: per fare questo il client di posta deve usare altri protocolli, quali il POP3.

POP3

Il Post Office Protocol (detto anche POP) è un protocollo che ha il compito di permettere, mediante autenticazione, l'accesso ad un account di posta elettronica presente su di un host per scaricare le e-mail del relativo account. Il pop (nella versione 3) rimane in attesa sulla porta 110 dell'host (di default, ma può anche essere diversa) per una connessione TCP da parte di un client. I messaggi di posta elettronica, per essere letti, devono essere scaricati sul computer anche se è possibile lasciarne una copia sull'host. Il protocollo POP3 non prevede alcun tipo di cifratura, quindi le password utilizzate per l'autenticazione fra server e client passano in chiaro.

FTP

L'FTP, acronimo di File Transfer Protocol (protocollo di trasferimento file), è un servizio che fornisce gli elementi fondamentali per la condivisione di file tra host e soprattutto di trasferire dati in maniera affidabile ed efficiente.

L'FTP ha subito una lunga evoluzione negli anni: il primo meccanismo di trasmissione file risale al 1971. La figura seguente rappresenta il modello di una comunicazione ftp

Modello FTP

Dove:

PI (protocol interpreter) è l'interprete del protocollo

DTP (data transfer process) è il processo di trasferimento dati, che stabilisce e gestisce la connessione dati. Può essere attivo o passivo.

Server PI è il PI del server, che ascolta la porta L in attesa di una connessione dallo User PI e stabilisce la connessione di controllo della comunicazione. Riceve comandi standard FTP dallo User PI, manda risposte e governa il Server DTP.

Server DTP è il DTP del server, che nello stato normale attivo stabilisce la connessione con la porta in ascolto. Setta i parametri per il trasferimento e lo stoccaggio, e trasferisce i dati a comando. Può essere messo in stato passivo per ascoltare, piuttosto che iniziare una connessione sulla porta dati.

L'FTP usa il TCP per creare una connessione per le informazioni di controllo (detta out of band in quanto 'secondaria' a quella dati), poi crea una seconda connessione sempre TCP per il trasferimento dei dati. Per effettuare una connessione c'è bisogno che ci sia un server in ascolto sulla porta 21 (porta di default per la connessione out of band) e in seguito alla richiesta c'è bisogno di mandare informazioni riguardanti l'autenticazione, in genere login e password.