Il protocollo TELNET

Riepilogo

Telnet offre agli utenti la possibilità di programmi in esecuzione in modalità remota e facilita l'amministrazione remota. Telnet è disponibile per praticamente tutti i sistemi operativi e facilita l'integrazione negli ambienti di rete eterogenei.

Ulteriori informazioni

Telnet viene compreso meglio nel contesto di un utente con un semplice terminale utilizzando il programma Telnet locale (noto come il programma client) per eseguire una sessione di accesso su un computer remoto cui esigenze di comunicazione dell'utente vengono gestite da un programma server Telnet.

Esso va tenuto presente che il server Telnet è possibile passare ai dati che ha ricevuto dal client per molti altri tipi di processi, incluso un server di accesso remoto. Questo è descritto in RFC854 e la pubblicazione iniziale nel 1983.

Il terminale di rete virtuale

La comunicazione viene stabilita tramite TCP/IP e si basa su una rete virtuale Terminal (caratteri NVT). Sul client, il programma Telnet è responsabile per la conversione dei codici di caratteri NVT in ingresso ai codici riconosciuti dal dispositivo di visualizzazione del client, nonché per conversione dei codici client generato della tastiera in codici di caratteri NVT in uscita.

I caratteri NVT utilizza codici a 7 bit per i caratteri. La periferica di visualizzazione, definita nella RFC, una stampante è necessario solo per visualizzare i caratteri di stampa standard ASCII rappresentati dai codici a 7 bit e per riconoscere ed elaborare alcuni codici di controllo. I caratteri a 7 bit vengono trasmessi come byte a 8 bit con il bit più significativo è impostato su zero. Una fine della riga viene trasmesso come l'avanzamento di un ritorno a capo (CR) seguito da una riga (LF). Se si desidera trasmettere un effettivo ritorno a capo, questo viene trasmesso come un ritorno a capo seguito da un carattere NUL (tutti i bit sono zero).

Caratteri NVT ASCII viene utilizzato da molti altri protocolli Internet come SMTP e FTP.

I seguenti codici di controllo sono è necessari essere comprensibile di caratteri NVT.

NomeCodiceValore decimaleFunzione
NULLNUL0Nessuna operazione
Avanzamento rigaLF10Sposta la riga di stampa successiva, mantenendo la stessa posizione orizzontale della stampante.
Ritorno a capoCR13Sposta la stampante al margine sinistro della riga corrente.


I seguenti codici di controllo ulteriore sono facoltativi, ma deve essere indicata definito effetto sulla visualizzazione.

NomeCodiceValore decimaleFunzione
CAMPANELLOBEL7Produce un segnale acustico o visibile (che non SI Sposta la testina di stampa.
Spazio posterioreBS8Sposta la posizione del carattere di una testina di stampa verso il margine sinistro. (Su una periferica di stampa, questo meccanismo veniva comunemente utilizzata per formare i caratteri compositi con la stampa di due caratteri di base su altra.)
Tabulazione orizzontaleHYPER-THREADING9Sposta la stampante alla successiva tabulazione orizzontale. Esso non viene specificato come delle parti determina o stabilisce dove si trovano tali punti di tabulazione.
Tabulazione verticaleVT11Sposta la stampante alla successiva tabulazione verticale. Esso non viene specificato come delle parti determina o stabilisce dove si trovano tali punti di tabulazione.
Modulo continuoFF12Sposta all'inizio della pagina successiva, mantenendo la stessa posizione orizzontale della stampante. (Su schermi, questo genere Cancella lo schermo e sposta il cursore nell'angolo superiore sinistro)
La tastiera di caratteri NVT viene specificata come in grado di generare tutti i codici ASCII 128 utilizzando i tasti, combinazioni di tasti o sequenze di tasti.

Comandi

Il protocollo Telnet utilizza vari comandi per controllare la connessione client-server. Questi comandi vengono trasmessi all'interno del flusso di dati. I comandi si distinguono dai dati impostando il bit più significativo a 1. (Ricordate che i dati vengono trasmessi come 7 bit con l'ottavo bit impostato su 0) Comandi vengono sempre introdotti da di interpretare come carattere di comando (IAC).

Di seguito è riportato l'elenco completo dei comandi:

NomeCodice decimaleSignificatoCommento
SE240Fine dei parametri subnegotiation
NOP241Nessuna operazione
DM242Indicatore di datiIndica la posizione di un evento di sincronizzazione all'interno del flusso di dati. Questo deve sempre essere accompagnato da una notifica urgente TCP.
BRK243InterruzioneIndica che il tasto "break" o "attenzione" non è alta.
IP244SospensioneInterrompere o interrompere il processo a cui è connesso il caratteri NVT.
AO245Interrompere l'outputConsente di eseguire fino al completamento del processo corrente, ma non invia l'output all'utente.
AYT246Ci seiInviare i caratteri NVT alcune prove visibile che è stato ricevuto il AYT.
CE247Cancellare i caratteriIl ricevitore è necessario eliminare l'ultimo carattere non eliminato precedente dal flusso di dati.
EL248Cancella rigaEliminare i caratteri dal flusso di dati al escluso il carattere precedente CRLF.
GA249ContinuaIn alcuni casi è utilizzati per indicare che è possibile trasmettere all'altra estremità.
SB250SubnegotiationSubnegotiation di opzione indicata di seguito.
VERRÀ251verràIndica la volontà di iniziare l'esecuzione, o conferma che in corso l'esecuzione, l'opzione indicata.
NON RIUSCITA252non riuscitaIndica il rifiuto di eseguire o continuare l'esecuzione, l'opzione indicata.
ESEGUIRE253eseguireIndica la richiesta che eseguono la controparte, o conferma che si aspetta l'altra parte da eseguire, l'opzione indicata.
NON254NonIndica la richiesta che la controparte interromperne o conferma che si prevede non è più l'interlocutore da eseguire, l'opzione indicata.
IAC255Viene interpretato come comandoViene interpretato come un comando

Opzioni di Telnet

Opzioni di assegnare il client e server una visione comune della connessione. Può essere negoziate in qualsiasi momento durante la connessione mediante l'uso di comandi. Vengono descritte nelle RFC separata.

Di seguito sono riportati esempi di opzioni comuni:

Codice decimaleNomeRFC
3eliminare Vai Avanti858
5stato859
1eco857
6segno di temporizzazione860
24tipo di terminale1091
31dimensioni finestra1073
32velocità terminale1079
33controllo di flusso remoto1372
34LineMode1184
36variabili di ambiente1408

Delle estremità di una conversazione di Telnet localmente o remotamente attivare o disattivare un'opzione. Il promotore invia un comando di 3 byte del modulo:
IACTipo di operazioneOpzione

La risposta è dello stesso modulo. Operazione è uno dei:


DescrizioneCodice decimaleAzione
VERRÀ251Mittente desidera eseguire un'operazione.
NON RIUSCITA252Mittente non desidera eseguire un'operazione.
ESEGUIRE253Mittente desidera che l'altra estremità a fare qualcosa.
NON254Mittente desidera non eseguire operazioni.


Associata a ciascuno di questi comandi sono possibili risposte diverse:

Mittente inviataRicevitore rispondeImplicazione
VERRANNOIl mittente desidera utilizzare una determinata funzionalità, se il destinatario può essere gestito.L'opzione è attiva.
VERRÀRicevitore afferma che non supporta l'opzione.Non è attiva.
VERRÀIl mittente afferma che è possibile gestire il traffico proveniente dal mittente se il mittente desidera utilizzare una determinata opzione.L'opzione è attiva.
RIESCORicevitore afferma che non supporta l'opzione.Non è attiva.
NON NON RIUSCITAOpzione disattivata.È solo risposta valida.
NON RIUSCITAOpzione disattivata.Non RIUSCITA è solo risposta valida.


Ad esempio, se il mittente desidera eliminare go-ahead l'altra estremità, invia la sequenza di byte:

IACVERRÀEliminare Vai Avanti

Il byte finale della sequenza di byte 3 identifica l'azione richiesta.

I valori dell'opzione alcuni necessario comunicare dopo aver concordato il supporto dell'opzione. Questa operazione viene eseguita mediante la negoziazione delle opzioni secondarie. Vengono negoziati valori utilizzando i comandi di query valore e le risposte nel formato seguente:

IACSBcodice di opzione1IACSE
e
IACSBcodice di opzione0IACSE


Ad esempio, se il client deve identificare il tipo di terminale al server, lo scambio seguente potrebbe aver luogo:


CLIENTIACVERRÀTipo di terminale
SERVERIACESEGUIRETipo di terminale
CLIENTIACSBTipo di terminale1IACSE
SERVERIACSBTipo di terminale0VT220IACSE

Il primo scambio stabilisce che il tipo di terminale (numero di opzione 24) viene gestito, il server quindi le interrogazioni del client il valore che desidera associare il tipo di terminale.

SB, 24, la sequenza 1 implica la negoziazione delle opzioni secondarie per il tipo di opzione 24, valore richiesto (1). L'IAC, sequenza SE indica la fine di questa richiesta.

La risposta IAC, SB, 24, 0, "V"... implica la negoziazione delle opzioni secondarie per il tipo di opzione 24 del valore fornito (0), l'IAC, sequenza SE indica la fine della risposta (e il valore specificato).

La codifica del valore è specifica per l'opzione, ma una sequenza di caratteri, come illustrato in precedenza, è comune.

Descrizioni delle opzioni Telnet

Molti di quelli elencati sono evidenti, ma alcuni chiamare per ulteriori informazioni.

Eliminare Vai Avanti

L'implementazione originale di Telnet predefiniti a metà operazione duplex. Ciò significa che il traffico di dati possibile andare solo in una direzione in un momento specifico che consente di indicare la fine del traffico in una direzione e che il traffico può essere avviato anche in altra direzione. [Questo simile all'utilizzo di "roger" e "più" non professionisti e CB radio operatori.] L'azione specifica è l'inserimento di caratteri GA nel flusso di dati.


Collegamenti moderni consentono in genere l'operazione di bi-direzionale e il "sopprimere go ahead" è attivata.

Eco

L'opzione eco è attivata, in genere dal server, per indicare che il server di eco ogni carattere che riceve. Una combinazione di "sopprimere Vai Avanti" e "echo" viene chiamato in modalità carattere in fase il che significa che ogni carattere è trasmessa separatamente e restituite.

Non c'è una conoscenza nota come modalità a riga kludge, il che significa che se il valore "sopprimere Vai Avanti" o "eco" è abilitato ma non entrambi, quindi Telnet funziona in modalità di riga per volta, ovvero righe vengono assemblate su ciascuna estremità e trasmesso in un "go".

LineMode

Questa opzione sostituisce e sostituisce il kludge modalità di riga.

Controllo di flusso remoto

Questa opzione controlla in cui vengono implementati gli effetti del controllo di flusso speciale di Ctrl + S oppure Ctrl + Q.

Funzioni di controllo di Telnet

Il protocollo Telnet include numerose funzioni di controllo. Questi vengono avviati in risposta alle condizioni rilevate dal server o client (in genere alcuni tasti speciali o combinazioni di tasti). La condizione causa un carattere speciale per essere incorporate nel flusso di dati.

Processo di interrupt

Viene utilizzato dal client per causare la sospensione o interruzione del processo server. In genere, l'utente digita Ctrl + C sulla tastiera. Un carattere IP (244) è incluso nel flusso di dati.

Interrompere l'Output

Viene utilizzato per eliminare la trasmissione di output del processo remoto. Un carattere AO (238) è incluso nel flusso di dati.

Ci sei

Viene utilizzato per attivare una risposta visibile dall'altra estremità della connessione di confermare l'operazione di collegamento e il processo remoto. Un carattere AYT (246) è incorporato nel flusso di dati.

Cancellare i caratteri

Questo messaggio viene inviato per la visualizzazione per indicare l'eliminazione del carattere che precede immediatamente dalla visualizzazione. Un carattere CE (247) è incorporato nel flusso di dati.

Cancella riga

Questa opzione comporta l'eliminazione della riga di input corrente. Un carattere EL (248) è incorporato nel flusso di dati.

Indicatore di dati

Alcune funzioni quali AO e IP richiedono un'azione immediata e questo potrebbe causare problemi se i dati sono contenuti nel buffer in attesa di richieste di input da un processo remoto (possibilmente malfunzionante). Per risolvere questo problema, un carattere DM (242) viene inviato in un segmento TCP urgente, in questo modo il ricevitore per esaminare il flusso di dati per i caratteri "interessanti" quali IP, AO e AYT. È nota come meccanismo di sincronizzazione Telnet.
Un DM non in un segmento TCP urgenti non ha alcun effetto.

Il comando Telnet

Nella maggior parte dei sistemi UNIX e Windows NT è possibile avviare una sessione Telnet con il comando Telnet. La maggior parte degli utenti è sufficiente digitano:
remote_host Telnet
Tuttavia, se l'utente digita semplicemente telnet, varie opzioni e i sottocomandi saranno disponibili.

Di seguito è riportato un esempio di una sessione Telnet da sfuclnt a sfusrvr.
C:\ > telnet

Microsoft (R) Windows NT (TM) versione 4.00 (Build 1381)
Installazione di Microsoft Telnet Client
Generazione di Client Telnet 5.00.99034.1
Carattere di escape ' CTRL +]'
Microsoft Telnet > aprire sfusrvr

Lo schermo verrà cancellato e vengono visualizzate le seguenti informazioni:

Microsoft (R) Windows NT (TM) versione 4.00 (Build 1381)
Benvenuti al servizio Microsoft Telnet
Generazione di Server Telnet 5.00.99034.1
accesso: sfu
password: * * *

Lo schermo verrà cancellato nuovamente e verranno visualizzate le informazioni seguenti:

*===============================================================
Installazione di Microsoft Telnet Server.
*===============================================================
C:\>
Proprietà

ID articolo: 231866 - Ultima revisione: 12 gen 2017 - Revisione: 1

Feedback