Il servizio Telnet permette di utilizzare il proprio computer come se fosse un terminale (monitor e tastiera) di un computer remoto; in pratica permette di effettuare operazioni sul computer remoto come se il computer fosse locale, cioè come se si stesse utilizzando direttamente quel computer.
Il client Telnet svolge la funzione di emulazione di terminale e stabilisce una sessione di comunicazione con il computer che esegue l’applicazione server di Telnet.
Funzione di emulazione di terminale significa che definisce le funzioni utilizzabili a ciascun estremo della sessione di comunicazione; in questo modo è possibile usare sempre le funzioni disponibili con un tipo specifico di terminale (per esempio DEC VT 100, DEC VT 52 o TTY) pur avendo hardware e software di client e server diversi.
Il servizio Telnet permette solo lo scambio di sequenze di caratteri (non di grafica).
Viene usato il set di caratteri US ASCII per rappresentare tutti i caratteri.
Per collegarsi a un computer remoto bisogna specificare l’indirizzo del computer remoto (indirizzo IP o nome simbolico).
Per il collegamento usa il protocollo TCP e per default la porta 23.
Ci si può collegare specificando l’host e la porta con:
telnet [nomehost[:porta]]
Poi bisogna effettuare l’autenticazione: bisogna avere un account su quel computer; il server chiede il nome di login e la password (che di solito vengono trasmessi come testo in chiaro). Un server può rendere disponibile l’accesso anonimo; in tal caso di solito l’account è guest, senza password.
Durante l’inizializzazione della sessione viene effettuato un processo di negoziazione delle opzioni, in modo trasparente per l’utente.
Dopo essersi collegati ciò che si può fare dipende dai permessi assegnati al proprio account dal sistema che ospita il server Telnet.
Telnet mette a disposizione un terminale di rete virtuale (NVT – Network Virtual Terminal) che definisce quali funzioni sono utilizzabili. Dato che client e server possono usare hardware e software diversi sono definite delle funzioni di controllo standard (devono essere le stesse sui due sistemi ma possono essere implementate in modo diverso); viene fornito un insieme standard minimo di funzionalità; poi client e server possono negoziare altre opzioni.
I comandi emessi in una sessione Telnet sono in pratica sequenze di due comandi; il primo è in ogni caso il carattere escape o IAC (Interpret As Command); il secondo è il codice effettivo del comando; l’uso del carattere escape è obbligatorio, altrimenti il secondo comando verrebbe interpretato come una sequenza di dati inviati al computer remoto.
Quando ci si collega, il server risponde con un messaggio di connessione avvenuta e indica anche il carattere di escape da utilizzare durante la connessione.
I comandi Telnet più comuni sono:
-
IAC carattere di escape;
-
BRK (Break) usato per indicare se è stato premuto il tasto pause;
-
EC (Erase Character) cancella l’ultimo carattere (modifica l’input prima di inviarlo al server);
-
DEL (Erase Line) cancella l’ultima linea;
-
IP (Interrupt Process) interrompe il processo sul server;
-
AO (Abort Output) arresta l’invio dell’output allo schermo del client ma non fa terminare il processo;
-
AYT (Are You There) permette di determinare se la connessione è ancora in funzione;
-
DM (Data Mark) parte dati di una operazione SYNCH (Synchronize); SYNCH permette all’utente di recuperare il controllo della sessione nel caso il processo sia andato fuori controllo; consiste di un segmento TCP con il flag Urgent attivato e del comando Telnet Data mark (DM) che elimina tutti i caratteri tra il client e il server;
-
WILL [codice opzione] usato per la negoziazione delle opzioni;
-
WON’T usato per la negoziazione delle opzioni;
-
DO usato per la negoziazione delle opzioni;
-
DON’T usato per la negoziazione delle opzioni.
Poiché tutti i protocolli di applicazione utilizzano messaggi testuali (protocolli ASCII), si può usare una connessione Telnet per accedere a server di altre applicazioni e usare i comandi del protocollo relativo (SMTP, POP3, FTP, HTTP ecc.).
Per esempio si può usare Telnet per collegarsi a un server SMTP e mandare un messaggio di posta elettronica o per collegarsi a un server Web e richiedere una pagina Web tramite il comando GET del protocollo HTTP (si ottiene il codice HTML della pagina, perché non c’è il browser ad interpretarlo).
Uso di Telnet per l’invio di un messaggio di posta
Il client richiede la connessione con il server SMTP; si può indicare il nome o l’indirizzo IP del server (per default si usa la porta 25):
telnet ServerSMTP
Se accetta la connessione il server risponde con:
220 <Ready>
Il client si presenta:
HELO nomeDominio
Il server risponde:
250 <OK>
Il client indica l’indirizzo di posta del mittente:
MAIL FROM: <indirizzo>
Il server risponde:
250 <OK>
Il client indica l’indirizzo di posta del destinatario:
RCPT TO: <indirizzo>
Il server risponde:
250 <OK>
Se ci sono altri destinatari il client invia un messaggio RCPT TO per ognuno di essi.
Il client indica che è pronto a inviare il testo del messaggio:
DATA
Il server risponde:
250 <OK>
Il client inserisce il testo del messaggio usando caratteri ASCII a 7 bit.
Se il client ha un altro messaggio può ricominciare da MAIL FROM.
Il client chiede di terminare la sessione:
QUIT
Il server risponde:
221 <Closing>