Das Telnet-Protokoll

Mai 2018
Das Telnet-Protokoll ist als Standard-Protokoll eine Aufbau-Schnittstelle (Interface) für Terminals und Applikationen im Internet. Es sorgt für Basisregeln bei einer Verbindung zwischen einem Client (ein System mit Bildschirm und Tastatur) und einem Server.


Was ist das Telnet-Protokoll?

Das Telnet-Protokoll nutzt eine TCP-Verbindung und verschickt in ASCII formatierte, 8-bit-codierte Daten getrennt durch Telnet-Kontrollsequenzen. Es bildet somit ein leicht zu bedienendes, bidirektionales (half-duplex), 8-bit.codiertes und kommunikationsorientes System.


Das Telnet-Protokoll beruht auf drei Säulen:

dem Paradigma des virtuellen Netzwerkterminals NVT (Network Virtual Terminal),

dem Prinzip der verhandelten Optionen und

den Verhandlungsregeln.

Das Protokoll ist an sich ein Basisprotokoll, auf das andere Protokolle aus der TCP/IP-Familie (FTP, SMTP, POP3 usw.) geknüpft wurden. Die Telnet-Spezifikationen beschreiben keinerlei Authentifizierungsmaßnahmen. Ein Authentifizierungsprozess findet oberhalb von Telnet auf FTP-Ebene statt, da Telnet vollständig von Benutzer-Applikationen getrennt abläuft. Außerdem ist das Telnet-Protokoll als solches kein sicheres Datentransfermittel, weil Daten unverschlüsselt durch das Netz gehen. Bei der Verbindung eines Gasts mit einem Rechner, auf dem Telnet implementiert ist, nutzt das Protokoll den Port 23.

Von den assoziierten Optionen und Verhandlungsregeln abgesehen sind die Telnet-Protokollspezifikation grundlegend. Die Datenübertragung über Telnet besteht aus dem Übermitteln von Bytes im TCP-Strom. Grunddaten werden aber, wenn nicht anders vorgesehen, zunächst zusammen in einen Puffer gelegt, bevor sie gesendet werden. Daten werden Zeile für Zeile übertragen. Wenn ein Byte 255 übertragen wird, so wird das folgende Byte als Befehl verstanden. Das Byte 255 heißt in diesem Fall IAC (Interpret as Command, zu deutsch wie einen Befehl interpretieren). Weitere Informationen zu den Telnet-Befehlen finden Sie weiter unten und hier.

Die Grundspezifikationen vom Telnet-Protokoll stehen im RFC 854 zu Verfügung, die zahlreichen Optionen sind in den RFC 855 bis 861 beschrieben.

Telnet-bezogene RFC
RFC 854Telnet Protocol Specifications
RFC 855Telnet Option Specifications
RFC 856Telnet Binary Transmission
RFC 857Telnet Echo Option
RFC 858Telnet suppress go ahead Option
RFC 859Telnet Status Option
RFC 860Telnet Timing Mark Option
RFC 861Telnet Extended Options-List

Das Konzept des virtuellen Netzwerkterminals

In den Anfangzeiten des Internets bestand das Netz (ARPANET) aus sehr wenigen, homogenen Rechnerkonfigurationen (Tastaturen Zeichensätze, Auflösungen, Bildschirmzeilenlänge). Auf der anderen Seite besaßen Sitzungsterminals ihre eigene Art der I/O-Datenflusskontrolle.


So wurde von Adaptern für jeden Endbenutzergerätetyp zwecks Zwischenverständigung der Systeme abgesehen und eine Standard-Schnittstelle entwickelt, die NVT (Network Virtual Terminal) genannt wurde. Der Basiskommunikationsstandard war aufgebaut durch: 7 Bits ASCII-Zeichensatz mit dem erweiterten ASCII-Code, drei Kontrollzeichen, fünf optionale Kontrollzeichen und einen trivialen Signalkontrollsatz. So bestückt ermöglicht das Telnet-Protokoll eine Befreiung vom Terminal, was zur Folge hat, dass jeder Benutzer (sei es Client oder Server) mit einem anderen Gast kommunizieren kann, ohne dessen Kenndaten zu wissen.

Das Prinzip der verhandelten Optionen

Die Telnet-eigenen Protokollspezifikationen machen es möglich, bei bestimmten Terminals - ergänzend zu ihren eigenen nicht spezifikationskonformen Eigenschaften - mittels zusätzlicher Dienste gewisse erweiterte Funktionen anzubieten. Diese neue Funktionalitäten werden in Form von Optionen aufgerufen. Das Telnet-Protokoll schlägt somit ein Optionenverhandlungssystem vor mit erweiterten Funktionen als Optionen auf beiden Seiten des Prozesses durch das Einsetzen von Erlaubnisanfragen beim Fernsystem.

Die Telnet-Optionen beeinflussen sie Datenkanäle in beide Richtungen. Jede Endstelle ist imstande, Optionen zu verhandeln, das heißt die Optionen zu definieren, die sie:

benutzen will (DO),

ablehnen will (DON'T),

der anderen Endstelle aufzwingen will (WILL) oder

der anderen Endstelle verbieten will (WON'T).

Auf diese Weise kann jede Partei Benutzungsanträge für Optionen senden. Die andere Stelle muss dann die Option annehmen oder ablehnen. Im Fall einer Anfrage zur Verriegelung einer Option darf der Anfrage-Empfänger dies nicht ablehnen, um völlig NVT-kompatibel zu bleiben.

Die Verhandlungsoptionen im Telnet
AnfrageAntwortInterpretierung
DOWILLDer Sender setzt eine Option an.
WON'TDer Empfänger darf die Option nicht anwenden.
WILLDODer Sender verwendet die Option nach dem Senden von DO.
DON'TDer Empfänger darf die Option nicht anwenden.
DON'TWON'TDer Sender meldet eine stillgelegte Option an.
WON'TDON'TDer Empfänger meldet, dass der Empfänger eine Option stilllegen muss.

Die Anzahl der Optionencodes beträgt 255. Telnet sieht aber einen zusätzlichen Adressenraum für neue Optionen vor. Die Dokumentierung neuer Optionen ist in RFC 855 erklärt.

RFC 855: Kommentieren von neuen Optionen

Die Verhandlungsregeln für Optionen sind so ausgelegt, dass Rundschleifen verhindert werden (zum Beispiel wenn eine Seite Optionsverhandlungsanfragen bei jeder Bestätigung der anderen Seite stellt). Dafür gelten die folgenden Regeln:


Anfragen dürfen nur gesendet werden, wenn sich der Modus ändert.

Wenn eine Seite eine Anfrage zum Modus-Ändern empfängt, darf sie nur antworten, wenn sie selbst im besagten Modus ist.

Eine Anfrage darf nur an der Stelle im Datenstrom gestellt werden, wo sie aktiv wird.

Der Ausgangskontrollsatz

Folgende Zeichen sind Befehle zur Kontrolle des virtuellen Netzterminal-Bildschirms:


Bildschirmkontrollbefehle
NummerCodeNameBedeutung
0NULLNullDieser Befehl verschickt Daten an den Ferngast, ohne dass sie interpretiert werden müssen (etwa um zu melden, dass der lokale Gast online ist).
1LFLine FeedDieser Befehl veranlasst eine Cursor-Bewegung zur nächsten Zeile auf derselben Spalte.
2CRCarriage ReturnDieses Kommando (Wagenrücklauf) platziert den Cursor auf die linke, äußerste Spalte derselben Zeile.

Mit dem Befehl CRLF, bestehend aus den beiden Befehlen CR und LF, geht der Cursor geht auf die linke, äußerste Spalte der nächsten Zeile.

Die optionalen Kontrollzeichen

Die vorhergehenden Zeichen sind die einzigen (aus den 128 Zeichen des ASCII-Basiscodes und aus den 128 Zeichen des erweiterten Codes) mit einer eigenen Bedeutung am virtuellen Netzwerkterminal. Die folgenden Zeichen dagegen können eventuell eine Bedeutung haben, sind aber nicht unbedingt implementiert.


Befehle zur Bildschirmkontrolle
Nummer CodeNameBedeutung
7BELBellSendet ein sichtbares oder hörbares Signal ohne Einfluss auf den Cursor.
8BSBackSpaceBringt den Cursor an die vorherige Stelle.
9HTHorizontal TabBringt den Cursor auf die nächste rechte Tabulatorstelle derselben Zeile.
11VTVertical TabBringt den Cursor auf die nächste rechte Tabulatorstelle in der darunterliegenden Zeile.
12FFForm FeedBringt den Cursor auf die gleiche Stelle der nächsten Seite.

Sitzungskontrollzeichen

Die folgenden Zeichen dienen der Kontrolle einer Telnet-Sitzung. Diese Befehle dürfen nur dann als Kontrollzeichen interpretiert werden, wenn sie nach dem Escape-Zeichen IAC (Interpret As Command) stehen. Ohne die Sequenz IAC werden sie als reine Zeichen abgesetzt. Um das Zeichen IAC selbst zu benutzen, wird diesem eine Escape-Sequenz vorgelegt.

Den Befehlen der Optionsverhandlung wird ein Byte zur näheren Beschreibung der Option angehängt. So werden unter anderem Signalunterbrechungen und die Löschung von Informationen aus dem Terminal-Cache bewerkstelligt.

Sitzungskontrollzeichen
NummerCodeNameBedeutung
240SE Ende der Optionsverhandlung
241NOPNo OperationDaten werden an den Ferngast ohne vorherige Interpretation gesendet (etwa um zu melden, dass der lokale Gast online ist).
243DMData MarkLöscht sämtliche Pufferspeicher zwischen dem virtuellen Netzwerkterminal und dem Ferngast. Wird durch Drücken auf die Sync-Taste von NVT ausgelöst und folgend muss unbedingt das TCP-Bit DRINGEND gesetzt werden.
243BRKBreakBreak Zeichen am virtuellen Terminal
244IPInterrupt ProcessVeranlasst ein Aufheben, Unterbrechen oder Aufgeben des Fernprozesses.
245AOAbort OutputVeranlasst ein Aufheben, Unterbrechen oder Aufgeben des Fernprozesses.
246AYTAre You TherePrüft, ob das Fernsystem da ist.
247ECErase CharacterLöscht das vorherige Zeichen.
248ELErase LineLöscht die gesamte vorherige Zeile.
249GAGo AheadInvertiert den Kontrollgang (bei Half-Duplex-Verbindungen)
250SBSBDie Daten sind die Folge der vorherigen Optionsverhandlung.
251WILLOptionsargument 
252WON'TOptionsargument 
253DOOptionsargument 
254DON'TOptionsargument 
255IACInterpret As CommandÄndert das folgenden Zeichen-Byte zu einem interpretiebaren Befehl. Der Befehl IAC ist mächtiger als die Basis-Befehle.

Foto: © Martial Red - Shutterstock.com

Lesen Sie auch


Telnet protocol
Telnet protocol
Protocolo Telnet
Protocolo Telnet
Le protocole Telnet
Le protocole Telnet
Il protocollo Telnet
Il protocollo Telnet
O Protocolo Telnet
O Protocolo Telnet
Letztes Update am 20. Dezember 2017 12:27 von SilkeCCM.
Das Dokument mit dem Titel "Das Telnet-Protokoll" wird auf CCM (https://de.ccm.net/) unter den Bedingungen der Creative Commons-Lizenz zur Verfügung gestellt. Unter Berücksichtigung der Lizenzvereinbarungen dürfen Sie das Dokument verwenden, verändern und kopieren, wenn Sie dabei CCM deutlich als Urheber kennzeichnen.
IP
POP3, SMTP, IMAP