I protocolli affidabili come TCP rendono possibile l'uso interattivo delle macchine remote.
TELNET è un semplice protocollo di rete che consente di collegarsi a un computer remoto attraverso un'inter-rete.
Per estensione, telnet è anche il nome di un programma che un utente può usare per avviare una sessione telnet ad un host remoto; il programma telnet implementa la parte client del protocollo (telnet client). I client telnet sono stati disponibili sulla maggior parte dei sistemi Unix per parecchi anni e sono disponibili per qualsiasi tipo di computer.
Il protocollo Telnet può essere diviso in una parte principale ed in un set di estensioni. La parte principale è descritta dalle RFC 854 e RFC 855 dell'IETF e definiscono le caratteristiche base del protocollo ed il modo di implementare le estensioni. Ci sono varie estensioni di Telnet, la maggior parte delle quali sono molto diffuse, e alcune sono state adottate come Standard Internet.
TELNET stabilisce una connessione TCP e poi passa le sequenze dei tasti dalla tastiera dell'utente direttamente al computer remoto come se fossero state digitate su un terminale collegato alla macchina remota.
TELNET trasporta anche l'output dalla macchina remota allo schermo dell'utente.
Una sessione telnet necessita di un Telnet Server in ascolto sulla porta 23.
Il client TELNET consente all'utente di specificare una macchina remota dando il suo nome di dominio o l'indirizzo IP.
Quando un utente attiva TELNET, un programma applicativo sulla sua macchina diventa client e stabilisce una connessione TCP al server.
Una volta che il collegamento è stato stabilito, il client accetta le sequenze dei tasti dalla tastiera dell'utente e le invia al server, mentre contemporaneamente accetta i caratteri che il server rinvia e li visualizza sullo schermo dell'utente.
Due host che comunicano tramite una sessione telnet sono caratterizzati da i seguenti servizi:
Network Virtual Terminal (NVT)
Come indica il nome, è un ambiente virtuale creato ai due estremi della connessione, dove operano rispettivamente il client ed il server Telnet. NVT definisce un terminale di rete virtuale che fornisce un'interfaccia standard ai sistemi remoti.
Le funzioni disponibili per la connessione sono negoziate tra i due host partendo da un insieme minimo, il quale deve essere necessariamente disponibile. In questo modo è possibile offrire un ambiente identico per i due host che instaurano la connessione in base alle caratteristiche comuni disponibili per ciascuno e preventivamente negoziate. Grazie a NVT, non è quindi necessario utilizzare software specifici sia dal lato client che da quello server.
Negoziazione delle opzioni
include un meccanismo che consente al client e al server di concordare le opzioni .
In quanto non tutti i client ed i server Telnet supportano le medesime funzioni, è stato implementato un meccanismo di negoziazione delle opzioni grazie al quale, una sessione può avvenire utilizzando le caratteristiche comuni ai due host. Le opzioni di base disponibili possono poi essere successivamente ampliate.
La negoziazione, che avviene solitamente all'inizio di una connessione, utilizza quattro tipi di richieste:
DO <codice opzione>: Richiede all'NVT ricevente di implementare l'opzione richiesta;
DON'T <codice opzione>: Richiede all'NVT ricevente di cessare l'utilizzo dell'opzione richiesta;
WILL <codice opzione>: Propone all'NVT ricevente di implementare l'opzione indicata
WON'T <codice opzione>: Propone all'NVT ricevente di cessare l'utilizzo dell'opzione indicata;
Viste simmetriche di terminali e processi
La capacità di negoziare le opzioni, essendo simmetrica può dare origine ad un ciclo infinto di richieste qualora uno dei due host interpretasse erronamente le richieste. Telnet prevede delle funzioni per evitare questo tipo di problema:
La richiesta di definizione di un'opzione può essere inviata ad un NVT solo se viene richiesto un cambiamento dello stato delle opzioni;
Se un NVT riceve una richiesta di definizione di un'opzione già definita non deve inviare nessun messaggio di accettazione al fine di evitare la possibile nascita di un loop senza fine;
E' possibile definire una nuova opzione anche quando il flusso dati della sessione è in corso. L'opzione sarà attiva dalla sua definizione in avanti;
Essendo tra gli obbiettivi del protocollo quello di definire uno metodo standard per la comunicazione, indipendentemente dal sistema su cui è in funzione il terminale, sono stati definite alcune funzioni di controllo standard:
Interrupt Process (IP): sospende un processo in corso su un server Telnet;
Break (BRK): indica che è stato premuto il tasto break;
Abort Output (AO): porta a termine il processo in esecuzione senza visualizzare l'output sul terminale utente;
Are You There (AYT): permette di sapere se l'host remoto è ancora online;
Erase Character (EC): permette di correggere i caratteri di una stringa di testo prima di inviarla al server;
Erase Line (EL): permette di cancellare una riga completa dall'input dei comandi
Synchronize (SYNCH): permette di riprendere il controllo della sessione in caso di problemi;
Ogni comando di controllo inviato da un client ad un server Telnet è composto da due parti: il codice di Escape detto anche IAC (Interpret As Command) ed il codice del comando. I codici di Escape hanno lo scopo di distinguere i comandi dai dati durante la sessione Telnet tra due host. Infatti l’ escare usa un ottetto riservato (in notazione decimale 255) per indicare che segue un ottetto di codice di controllo. Come esempio, rer richiedere che il server interrompa il programma in esecuzione, il client deve inviare la sequenza IAC 255 seguito da 244.
Di seguito alcuni dei principali comandi telnet client:
close : chiude la sessione corrente;
display : visualizza i parametri operativi della sessione;
open <host> <porta> : indica a quale server e su quale porta deve avvenire il collegamento;
quit : esce dal client telnet;
send <codice> : invia dei caratteri speciali al server;
set <parametro> : imposta i parametri operativi;
unset <parametro> : elimina l'impostazione di un parametro operativo;
status : visualizza lo stato della connessione;
? : visualizza l'help in linea;
Il server TELNET deve gestire più connessioni simultanee. Di solito, un processo primario aspetta nuovi collegamenti e crea un nuovo modulo secondario per gestire ogni connessione.
Tutto quanto riportato in questa pagina è a puro scopo informativo personale. Se non ti trovi in accordo con quanto riportato nella pagina, vuoi fare delle precisazioni, vuoi fare delle aggiunte o hai delle proposte e dei consigli da dare, puoi farlo mandando un email. Ogni indicazione è fondamentale per la continua crescita del sito.