I protocolli del livello Applicazione
Il protocollo Telnet
Il protocollo Telnet è un protocollo standard che permette l'interfacciamento di terminali attraverso le applicazioni Internet. Questo protocollo fornisce le regole di base per permettere di collegare un client (sistema composto da un monitor e da una tastiera) a un interprete di comandi (lato server).
Il protocollo Telnet si basa su una connessione TCP per inviare dei dati e delle sequenze di controllo, fornisce un sistema orientato alla comunicazione, bidirezionale (half-duplex) di facile utilizzo.
Infatti questo protocollo è un protocollo di base, utilizzato da altri protocolli del livello applicazione di TCP/IP come FTP, SMTP, POP3.
Le specifiche di Telnet non prevedono il controllo dell'autenticazione, dato che Telnet è totalmente separato dalle applicazioni che lo usano (il protocollo FTP definisce una sequenza di autenticazioni al di sopra di Telnet). Inoltre il protocollo Telnet è un protocollo di trasferimento di dati in modalità non sicura, cioè i dati che veicola circolano in chiaro sulla rete (in modo non cifrato).
Un server Telnet ascolta di default sulla porta 23 le richieste di connessione da parte dei client Telnet .
La trasmissione di dati attraverso Telnet consiste unicamente nel trasmettere i byte nei flussi TCP, di default i dati devono essere bufferizzati prima di essere inviati, questo significa che i dati sono trasmessi o alla pressione del tasto “Invio” (cr/lf) o quando il buffer è pieno.
Il protocollo HTTP
Il protocollo HTTP (HyperText Transfer Protocol) è il protocollo più usato su Internet.
Lo scopo del protocollo HTTP è di permettere un trasferimento di file (essenzialmente in formato HTML) localizzati grazie ad una stringa di caratteri detta URL , tra un browser (il client) e un server web (detto httpd sui terminali UNIX).
Il protocollo SNMP
Il protocollo SNMP (Simple Network Management Protocol) permette agli amministratori di rete di gestire le apparecchiature di rete e di diagnosticare i problemi di rete.
Il sistema di gestione di rete è basato su due elementi principali: un supervisore e degli agenti. Il supervisore è la console che permette all'amministratore di rete di eseguire delle richieste di gestione. Gli agenti sono delle entità che si trovano a livello di ogni interfaccia che connette l'apparecchiatura gestita sulla rete e che permette di recuperare delle informazioni su diversi oggetti.
Switch, hub, router e server sono degli esempi di apparecchiature contenenti degli oggetti gestibili.
Questi oggetti gestibili possono essere delle informazioni hardware, dei parametri di configurazione, delle statistiche di performance o altro direttamente legato al comportamento in corso dell'apparecchiatura in questione. Questi oggetti sono classificati in una sorta di database detto MIB ("Management Information Base"). SNMP permette il dialogo tra il supervisore e gli agenti per raccogliere gli oggetti voluti nel MIB.
L'architettura di gestione di rete proposta dal protocollo SNMP è quindi basata su tre elementi principali :
• Le apparecchiature gestite (managed devices) sono degli elementi di rete (bridge, hub,
router o server), che contengono degli "oggetti di gestione" (managed objects) che possono
essere delle informazioni sull'hardware, degli elementi di configurazione o delle
• Gli agenti, cioè un'applicazione di gestione di rete che risiede in una periferica e incaricata di trasmettere i dati locali di gestione della periferica in formato SNMP;
• I sistemi di management della rete (network management system sigla NMS), cioè una console attraverso la quale gli amministratori possono realizzare dei compiti amministrativi.
Il protocollo SMTP
Il protocollo SMTP (Simple Mail Transfer Protocol) è il protocollo standard che permette di trasferire la posta da un server ad un altro con una connessione point to point.
Si tratta di un protocollo funzionante in modalità connessa, incapsulato in una trama TCP/IP. La posta è consegnata direttamente al server di posta destinatario. Il protocollo SMTP funziona grazie a dei comandi testuali inviati al server SMTP, che ascolta di default sulla porta 25. Ognuno dei comandi inviati dal client (confermato dalla sequenza CR/LF, equivalente ad un pressione del tasto invio) è seguito da una risposta del server SMTP, composta da un numero e da un messaggio descrittivo.
Elenco dei principali comandi SMTP:
Comando Esempio Descrizione
HELO ( EHLO) EHLO lab.fauser.edu Identificazione attraverso l'indirizzo IP o il nome del dominio del computer mittente
MAIL FROM: MAIL FROM: valeria@fauser.edu Identificazione dell'indirizzo del mittente RCPT TO: RCPT TO: valeria@fauser.it Identificazione dell'indirizzo del destinatario
DATA DATA message Corpo della mail
QUIT QUIT Uscita del server SMTP
HELP HELP Lista di comandi SMTP supportata dal server
Di seguito uno scenario di richiesta di invio di mail ad un server SMTP
• All'apertura della sessione SMTP, il primo comando da inviare è HELO seguito da uno spazio (sigla <SP>) e dal nome del dominio del vostro terminale (come dire"buongiorno sono il tal terminale"), poi validare con invio (sigla <CRLF>). Dall'aprile del 2001, le specifiche del protocollo SMTP definite nella RFC 2821, impongono che il comando HELO sia sostituito dal comando EHLO.
• Il secondo comando è "MAIL FROM:" seguito dall'indirizzo email del mittente. Se il comando è accettato il server rinvia il messaggio "250 OK"
• Il comando seguente è"RCPT TO:" seguito dall'indirizzo email del destinatario. Se il comando è accettato il server rinvia il messaggio "250 OK"
• Il comando DATA è la terza tappa dell'invio. Esso annuncia l'inizio del corpo del messaggio.
Se il comando è accettato il server rinvia un messaggio intermedio numerato 354 che indica che l'invio del corpo della mail può cominciare e considera l'insieme delle linee seguenti fino alla fine del messaggio individuata da una linea contenente unicamente un punto. Il corpo della mail contiene eventualmente alcune delle seguenti intestazioni :
• Date
• Subject
• Cc
• Bcc
• From
Se il comando è accettato il server rinvia il messaggio" 250 OK"
E' possibile inviare una mail grazie ad un semplice telnet sulla porta 25 del server SMTP.
Un esempio di colloquio tra un client (C) e un server SMTP (S):
S: 220 mail.fauser.edu ESMTP Sendmail 8.13.8/8.13.8; Wed, 3 Mar 2010 12:00:50 +0100 C: HELO lab.fauser.edu
S: 250 roy.fauser.edu Hello lab.fauser.edu [87.250.77.207], pleased to meet you C: MAIL FROM: valeria@fauser.edu
S: 250 2.1.0 valeria@fauser.edu... Sender ok C: RCPT TO: tizio@fauser.it
S: 550 5.1.1 tizio@fauser.it... User unknown C: RCPT TO: valeria@fauser.it
S: 250 2.1.5 valeria@fauser.it... Recipient ok C: DATA
S: 354 Enter mail, end with "." on a line by itself C: prova
C:
C: di invio C: .
S: 250 2.0.0 o23B0opL007629 Message accepted for delivery C: QUIT
S: 221 2.0.0 mail.fauser.edu closing connection
Il protocollo POP3
Il protocollo POP (Post Office Protocol) permette di andare a recuperare la propria posta su un server remoto (server POP).
Il protocollo POP3 è associato alla porta 110 e, esattamente come nel caso del protocollo SMTP, il protocollo POP3 funziona grazie a dei comandi testuali inviati al server POP. Ciascuno dei comandi inviati dal client (validato dalla sequenza CR/LF) è composto da una parola-chiave, eventualmente accompagnata da uno o più argomenti, ed è seguito da una risposta del server POP composta da un numero e da un messaggio descrittivo.
Elenco dei principali comandi POP3:
Comando Descrizione
USER
identificativo Questo comando permette di autentificarsi. Esso deve essere seguito dal nome dell'utente. cioè da una stringa di caratteri che identificano l'utente sul server.
PASS password Il comando PASS permette di indicare la password dell'utente il cui nome è specificato ad un comando User precedente.
STAT Restituisce il numero di messaggi presenti e lo spazio da essi occupato RETR msg Visualizza il messaggio indicato
DELE msg Cancella dal server il messaggio indicato
LIST [msg] Senza parametri indica la dimensione di ogni messaggio, altrimenti solo quella del messaggio indicato
NOOP Permette di mantenere le connessioni aperte in caso di inattività, non esegue nessuna operazione restituisce solo un messaggio +OK se il server risponde TOP msg n
Comando che visualizza n linee di messaggio, il cui numero è dato in argomento.
In caso di risposta positiva da parte del server, questo rinvia le intestazioni del
UIDL [msg]
Richiesta al server di rinviare una linea contenente delle informazioni sul messaggio eventualmente dato in argomento. Questa linea contiene una stringa di caratteri, detta listing d'identificatore unico, che permette di identificare in modo univoco il messaggio sul server, indipendentemente dalla sessione. L'argomento opzionale è un numero corrispondente ad un messaggio esistente sul server POP, cioè un messaggio non cancellato).
RSET Annulla le operazioni di cancellazione DELE in precedenza inviate al server QUIT Il comando QUIT chiede l'uscita del server POP3. Esso implica la cancellazione di
tutti i messaggi segnati come eliminati e rinvia lo stato di questa azione.
Il protocollo POP3 gestisce l'autenticazione attraverso il nome utente e password, ma non è invece sicuro, dato che le password, come le mail, circolano in chiaro (in modo non cifrato), sulla rete.
Si può anche accedere alla propria posta grazie ad un semplice telnet sulla porta 110 del server POP.
S: +OK POP3 lab.fauser.edu v2001.78rh server ready C: USER valeria
S: +OK User name accepted, password please C: PASS lamiapassword
S: +OK Mailbox open, 2 messages C: STAT
S: +OK 2 1110 C: LIST 1 S: +OK 1 532 C: RETR 1 S: +OK 532 octets
S: Visualizza l'intera mail C: quit
S: +OK