Copyright © 1986 Universita' di Firenze. All rights reserved.
Free license available.
NVT (Network Virtual Terminal)
Per permettere a TELNET di operare tra più sistemi possibili,
esso deve appianare le eterogeneità tra i computers ed i sistemi
operativi. A tale scopo, TELNET definisce il formato con cui le sequenze
di dati e comandi sono inviati su Internet; tale definizione è nota
come network virtual terminal NVT (terminale virtuale di rete).
Come è illustrato in figura, il software del client traduce i
comandi ed i caratteri digitati dall'utente nel formato NVT e li invia
al server, il cui software a sua volta lo convertirà nel formato
richiesto dal sistema remoto; il processo inverso sarà invece effettuato
per il flusso di dati che dal server raggiungerà il client.
NVT usa la rappresentazione standard USASCII a 7 bit
per i dati e riserva 8 bit solo per le sequenze dei comandi.
Il protocollo TELNET
Il complesso del protocollo TCP/IP può supportare un semplice
programma applicativo per l'accesso a terminale remoto a carattere detto TELNET.
Esso permette all'utente di un sito di stabilire una connessione TELNET con un server di login
di un altro sito. TELNET poi passa tutto ciò che è digitato sulla tastiera
dell'utente direttamente al computer remoto, come se fosse stato digitato sulla tastiera
della stessa macchina remota; inoltre TELNET visualizza sullo schermo dell'utente l'output
testuale della macchina remota. Il servizio è detto trasparente perchè si
ha come l'impressione che la tastiera ed il display dell'utente siano attaccati direttamente
alla macchina remota.
Il software del client TELNET permette all'utente di specificare la macchina remota
non solo usando il domain name ma anche l'indirizzo IP, permettendone perciò l'uso anche
quando non è possibile stabilire una corrispondenza nome-indirizzo.
TELNET offre tre servizi di base:
Nella figura seguente è illustrato come programmi applicativi implementino il client ed il
server TELNET:

L'inoltro dei comandi per controllare la parte remota
Il client riceve le funzioni di controllo dall'utente insieme ai dati, e li
passa al sistema del server dove devono essere interpretati. Generalmente ogni funzione di
controllo è legata ad un particolare carattere ASCII e quando questo viene invocato il
sistema operativo esegue l'opportuna azione invece di accettarlo come carattere di input.
Chiaramente sarà bene mantenere separati i caratteri ASCII normali dalle funzioni di
controllo per evitare ambiguità con i dati.
Alcune funzioni di controllo tra le più importanti sono riportate a titolo di esempio
nella seguente tabella:
| Segnale | Significato |
|---|---|
| IP | Interrupt Process (termina il programma corrente) |
| AO | Abort Output (scarta ogni output presente nel buffer) |
| EC | Erase Character (cancella il carattere precedente) |
| EL | Erase Line (cancella l'intera riga corrente) |
Negoziazione delle opzioni TELNET
Le opzioni TELNET rappresentano l'aspetto più complesso del protocollo.
Tali opzioni sono negoziabili, permettendo al client ed al server di riconfigurare la propria
connessione. Per esempio, una opzione permette di definire un flusso dati ad 8 bit invece dei
7 standard: entrambi dovranno accettare i termini della negoziazione perchè essa possa
avere effetto.
Il protocollo è simmetrico rispetto all'operazione di negoziazione perchè permette
ad entrambe le parti di effettuare una richiesta di una particolare opzione.
Se una delle due parti non è in grado di capire una richiesta di negoziazione, in quanto
adopera una implementazione NVT non aggiornata, declinerà semplicemente la richiesta come
se non l'avesse accettata.
La negoziazione assume un aspetto fondamentale, perchè permette di poter accedere a
quasi tutti i terminali senza che il client li conosca tutti.
Rlogin (BSD UNIX)
Sistemi operativi derivanti dal BSD UNIX contengono un servizio di login
remoto (rlogin), che supporta hosts fidati (che non necessitano cioè di password).
Esso permette all'amministratore di sistema di scegliere un set di macchine che condividono i
nomi di login e le protezioni all'accesso ai files. Gli utenti controllano l'accesso ai loro
accounts autorizzando un login remoto basato sull'host e sul nome dell'utente remoto.
E' possibile per un utente avere due nomi di login diversi su altrettante macchine ed essere
in grado di logarsi da una macchina ad un'altra senza dover specificare la password ogni volta.
Una variante del comando rlogin, il rsh, permette di invocare un interprete dei
comandi su una macchina UNIX remota e passare gli argomenti della linea di comando all'interprete
saltando così completamente il passo del login. Il formato è il seguente:
rsh machine command
Poichè l'utente può far si che rsh invochi comandi remoti senza dover
fare uso della password, esso può essere usato sia in programmi che digitato dalla
tastiera.
I protocolli come il rlogin comunicano meglio dei login remoti general-purpose come il
TELNET, in quanto interpretano sia gli sviluppi computazionali locali che remoti.
