Telemat Lab's home page


Copyright © 1997 Università di Firenze. All rights reserved.

license available.

 

CORSO DI TELEMATICA
LOGIN REMOTO, TRASFERIMENTO FILE, POSTA ELETTRONICA

di: Massimo Pollini, Samuele Nasorri , Riccardo Antonelli



HYPER HOME Indice gen. Indice prec. Indice locale Indice succ.

Login remoto

 

 

slide 1






I protocolli affidabili di stream, come il TCP, rendono possibile anche l'uso interattivo di macchine remote. Per esempio, si può immaginare la costruzione di un server che fornisca un servizio remoto di editing di testi. Per implementare questo servizio, sarebbe necessario un server che accettasse le richieste per l'editing di un file ed un client per effettuare tali richieste. Il problema con l'impiego di un server per ogni servizio di elaborazione è che le macchine diventano rapidamente affollate di processi server. Si possono eliminare i server più specializzati e fornire più generalità permettendo all'utente di stabilire una sessione di login nella macchina remota e quindi eseguire i comandi. Con una facility di login remoto, gli utenti hanno accesso a tutti i comandi disponibili nella macchina remota, ed i progettisti di sistemi non hanno bisogno di fornire server specializzati.
TELNET è un semplice protocollo di terminale remoto che fa parte della suite di protocolli TCP/IP. Esso permette ad un utente in una postazione di stabilire una connessione TCP con un login server in un'altra postazione, dopodichè passa le battute di tasti direttamente alla macchina remota. Inoltre, TELNET trasporta l'output dalla macchina remota di nuovo al terminale dell'utente.
Il servizio è detto trasparente perchè dà l'impressione che il terminale dell'utente sia connesso direttamente alla macchina remota.
Solitamente, il software del client TELNET permette all'utente di specificare una macchina remota, fornendo il suo nome di dominio o l'indirizzo IP.




 

 

 

 

 

 

 

 

slide 2






TELNET impiega tre metodologie.
Primo, esso definisce un "terminale virtuale di rete" che fornisce un interfaccia standard a sistemi remoti. Quindi non è necessario che il client (o il server) conosca tutti i dettagli riguardanti i sistemi remoti.
Secondo, TELNET permette al client e al server di negoziare le opzioni e fornisce un insieme di opzioni standard (es: è possibile controllare se il trasferimento dei dati impiega l'insieme di caratteri ASCII a 7 o 8 bit).
Infine TELNET tratta simmetricamente entrambe le estremità della connessione; quindi ogni estremità può iniziare la negoziazione di un gruppo di opzioni.




 

 

 

 

 

 

 

 

 

slide 3






La slide illustra il cammino percorso dai dati in una sessione di terminale remoto TELNET da client a server (il viceversa è simmetrico).
Come mostrato nella slide, quando un utente chiama TELNET, si attiva un client nella macchina utente. Il client stabilisce col server una connessione TCP con cui comunicare. Una volta che tale connessione è stata stabilita, il client accetta le battute di tasti dal terminale dell'utente e le invia al server, mentre accetta in maniera concorrente i caratteri che il server rimanda indietro e li visualizza sul terminale dell'utente. Il server deve accettare una connessione TCP dal client e quindi ritrasmettere i dati fra la connessione TCP ed il sistema operativo locale.
Quello mostrato è un modello semplificato; in realtà infatti il server deve poter gestire più connessioni simultaneamente. Quello che fa è quindi creare un nuovo server per ciascuna connessione, rimanendo in ascolto di ulteriori richieste. Solo se il sistema operativo gestisce un'astrazione di pseudoterminale, il server TELNET può essere implementato.




 

 

 

 

 

 

 

 

 

slide 4






Per poter far fronte all'eterogeneità dei vari sistemi, TELNET definisce il modo in cui le sequenze di dati e di comandi sono inviate attraverso la rete. Tale definizione è nota come NVT (Network Virtual Terminal).
Come si vede dalla figura sopra, il software del client si preoccupa di convertire sequenze di dati e comandi dal formato utilizzato dal terminale dell'utente nel formato NVT e le invia al server. È poi compito del software del server di effettuare la conversione da NVT al formato richiesto dal terminale remoto. Il processo opposto avviene per i dati di ritorno.
La definizione del formato NVT è piuttosto immediata.
Tutta la comunicazione riguarda parole di 8 bit.
All' avviamento l'NVT impiega la rappresentazione standard USASCII di 7 bit per i dati e riserva i byte con il bit più significativo attivato per le sequenze di comandi. In particolare per i 95 caratteri stampabili di USASCII viene mantenuto lo stesso significato, mentre per i 33 codici di "controllo" viene assegnato un opportuno significato. Il sistema NVT, inoltre, definisce la terminazione della riga come una sequenza dei due caratteri CR-LF.




 

 

 

 

 

 

 

 

 

slide 5






L'NVT di TELNET gestisce le funzioni di controllo previste da un certo sistema operativo, definendo il modo con cui sono passate dal client al server.
Concettualmente è come se l'NVT accettasse l'input da terminali che possono generare più di 128 caratteri. In realtà la maggior parte dei terminali non dispone di tasti extra per i comandi, ma sono i singoli sistemi operativi a generarli in vari modi (es: il Control-C per il break).
I progettisti di NVT hanno scelto di tenere separati i comandi dal normale insieme di caratteri ASCII. In particolare, invece di utilizzare 7 bit per i dati e il più significativo per le sequenze di comandi (in modo tale da avere 128 caratteri per i dati e altrettanti per i comandi), si utilizzano tutti ed 8 per i dati. Ne consegue che per passare le funzioni di controllo attraverso la connessione TCP, TELNET le codifica mediante una sequenza di "escape", che usa un ottetto riservato per indicare che segue un ottetto di codice. In TELNET tale ottetto riservato è noto come IAC (Interpret As Command). In questo modo riesco ad ottenere un set esteso di caratteri per i dati, che possono essere, così, utilizzati opportunamente, garantendo, tuttavia, la possibilità di inviare le sequenze di comando.




 

 

 

 

 

 

 

 

 

slide 6






È importante evidenziare, però, che TELNET non può fare affidamento unicamente sulla stream di dati tradizionali per trasportare le sequenze di controllo per il client e il server, poichè un'applicazione malfunzionante che necessiti di essere controllata potrebbe bloccare inavvertitamente lo stream dei dati. Per ovviare a ciò TELNET impiega un "segnale fuori banda". Tale segnalazione è implementata con meccanismo URGENT in modo del tutto equivalente a quanto avviene nel TCP/IP. In pratica i segmenti che trasportano dati urgenti aggirano il controllo di flusso e raggiungono immediatamente il server.
Uno degli aspetti più complessi, ma interessanti di TELNET è la possibilità di negoziare un'ampia gamma di opzioni; alcune estendono le capacità principali, mentre altre hanno a che fare con i dettagli. Si può, ad esempio, stabilire la modalità di trasferimento (half-duplex, full-duplex), consentire al server in una macchina remota di determinare il tipo di terminale dell'utente, consentire al client e al server di trasmettere dati di 8 bit (solitamente 7 bit sono previsti per i dati e l'ottavo come controllo) e molte altre.




 

 

 

 

 

 

 

 

 

slide 7






La negoziazione delle opzioni avviene attraverso un protocollo simmetrico, infatti sia il client che il server possono iniziare una richiesta.
L'estremità ricevente risponde ad una richiesta (WILL X in terminologia TELNET) con un'accetazione (DO X) o con un rifiuto (DON'T X).
Un aspetto importante è che se una delle due parti tenta di negoziare un'opzione che l'altro non comprende, la parte che riceve la richiesta può semplicemente rifiutarla. Pertanto è possibile l'interoperabilità fra le versioni dei client e dei server di TELNET più recenti e raffinate con le versioni più vecchie e meno avanzate.
Se le nuove opzioni sono comprese sia dal client che dal server, allora essi potranno migliorare l'interazione, altrimenti torneranno ad uno stile meno efficente, ma funzionante.




 

 

 

 

 

 

 

 

 

slide 8






Il sistema UNIX 4BSD include un servizio di login remoto, rlogin, che gestisce gli host fidati. Esso consente agli amministratori di sistemi di scegliere un insieme di macchine, su cui vengono condivisi i nomi di login e le protezioni di accesso ai file, e di stabilire le equivalenze fra i login degli utenti. Costoro possono controllare l'accesso ai loro account autorizzando il login remoto in base all'host remoto ed al nome dell'utente remoto. Pertanto, è possibile che un utente abbia nome di login X su una macchina e Y su un'altra, e che tuttavia sia ancora in grado di collegarsi in un login remoto da una delle macchine all'altra senza digitare ogni volta una password.
La possibilità di un'autorizzazione automatica rende utili le facility di login remoto per programmi di applicabilità generale, oltre che per le interazioni umane.
Poichè i protocolli come rlogin comprendono sia l'ambiente di elaborazione locale che quello remoto, essi comunicano meglio dei protocolli di login remoto di applicabilità generale, come il TELNET.
Rlogin comprende le funzioni di contollo del terminale come i caratteri di controllo di flusso (solitamente, Control-S e Control-Q). Esso fa in modo di sospendere l'output immediatamente, senza aspettare il ritardo richiesto per effettuare la trasmissione attraverso la rete fino all'host remoto. Inoltre, rlogin esporta una parte dell'ambiente dell'utente alla macchina remota, incluse le informazioni sul tipo di terminale dell'utente (cioè, la variabile TERM). Come risultato, le sessioni di login remoto appaiono comportarsi esattamente come le sessioni di login locale.




Telemat Lab's home page

HYPER HOME Indice gen. Indice prec. Indice locale Indice succ.