[successivo] [precedente] [indice]

Protocolli di remote Login

Il login remoto e' una delle applicazioni interattive di rete piu' comuni. Due applicativi tipici implementano questo servizio cio protocolli TCP/IP:

Rlogin

Il protocollo Rlogin e' specificato da RFC1282.

Rlogin usa una connessione TCP singola tra client e server. Al termine dello stabilimento della connessione avvengono le seguenti operazioni:

Il client invia al server i caratteri digitati da tastiera dall'utente uno alla volta, e il server compie l'echo di ciascun carattere separatamente. Normalmente e' abilitato l'algoritmo di Nagle.

Il controllo di flusso software e' abilitato di norma (x/on - x/off o Ctrl-S/Ctrl-Q) ma esiste la possibilita' che il server informi il client che il controllo di flusso e' disabilitato. Alcuni applicativi (p.es. emacs) usano questi controlli per altri scopi.

All'atto dell'invio del carattere Ctrl-S puo' darsi che esistano gia' dati in transito nella rete, e quindi il controllo di flusso puo' essere ritardato.

Il carattere di interruzione del client e' abilitato e gestito, anchesso con possibili ritardi dovuti al tempo di transito in rete.

Comandi dal Server

Il server puo' inviare al client quattro comandi:

Comandi dal Client

L'unico comando definito e' l'invio della dimensione di finestra di terminale.

Il comando consiste nell'invio del byte 0xff due volte, seguito dal carattere S due volte e quindi da quattro valori a 16 bit in formato Big Endian:

Spesso gli ultimi due byte sono zero, p.es. per finestre non grafiche.

Comandi Escape

Il carattere tilde (~) seguito a breve distanza (tipicamente 1 secondo) da un altro caratter costituisce una sequenza di escape per comunicare operazioni al server. Il carattere che segue puo' essere:

Questi ultimi due caratteri sono possibili solo se e' abilitata la funzionalita' di Job Control sul client.

Telnet

Il documento di riferimento e' RFC854.

Telnet definisce le caratteristiche di un Network Virtual Terminal (NVT), un terminale immaginario a cui sia il client che il server mappano le proprie caratteristiche specifiche. Lo NVT e' dotato di video e tastiera: i caratteri sono forniti in input dal client tramite la tastiera NVT e sono inviati in output dal server al video NVT.

Il codice di caratteri usato e' ASCII a 7 bit, con l'ottavo bit settato a zero. Le linee sono terminate dalla coppia di caratteri CR e LF, il semplice Carriage Return e' codificato coi caratteri CR e NUL. Altri applicativi di rete usano lo NVT ASCII, come FTP, SMTP, Finger e Whois.

Vi e' una opzione in Telnet che predispone la comunicazione a 8 bit per carattere.

Telnet usa segnalazione comandi in banda in entrambe le direzioni. Il byte 0xff viene chiamato IAC (Interpret As Command) ed e' seguito dal byte di comando. Per inviare uno )xff letterale ne vengono inviati due.

I comandi Telnet sono i seguenti:

Alcuni dei comandi Telnet sono usati raramente.

Negoziazione Opzioni

Il primo scambio che avviene dopo lo stabilimento della connessione e' la negoziazione di opzioni.

Ogni opzione e' di tre byte:

Le opzioni possibili sono piu' di 40. Le piu' usate sono:

La negoziazione di opzioni e' simmetrica.

Modi di Operazione

Vi sono quattro modi di operazione:

  1. Mezzo Duplex

    E' il modo originale di default ma si usa raramente in questi giorni. Il server disabilita l'opzione Sopprimere il Go Ahead e Echo.

  2. Carattere per Volta

    Ogni carattere e' inviato in un pacchetto singolo. Il server compie di default un echo. Per entrare in questo modo il server deve abilitare l'opzione Sopprimere il Go Ahead e abilitare l'opzione Echo.

  3. Linea per Volta

    Chiamata anche l'opzione Kludge Line Mode. Il server entra questo modo quando e' disabilitata una delle due opzioni Sopprimere il Go Ahead o Echo.

  4. Linemode

    Linea per volta come definito nel documento RFC1184.

In realta' varie implementazioni di Telnet hanno default di modo diversi.

Segnale di Synch

Telnet definisce il Segnale di Synch come il comando Data Mark inviato in modalita' TCP urgente. Il comando informa il ricevente di ritornare in processamento dati normale da modo urgente. Il modo urgente viene usato per inviare comandi Telnet sulla connessione anche se i dati normali sono temporaneamente bloccati dal controllo di flusso.

Escape Cliente

Il carattere Control-] (cambiabile come settaggio) informa il client Telnet di entrare in modalita' comando. Viene fornito il pronto telnet> ed il client si attende uno di vari comandi interpretabili.