Das Telnet-Protokoll

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 854 Telnet Protocol Specifications
RFC 855 Telnet Option Specifications
RFC 856 Telnet Binary Transmission
RFC 857 Telnet Echo Option
RFC 858 Telnet suppress go ahead Option
RFC 859 Telnet Status Option
RFC 860 Telnet Timing Mark Option
RFC 861 Telnet 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
Anfrage Antwort Interpretierung
DO WILL Der Sender setzt eine Option an.
WON'T Der Empfänger darf die Option nicht anwenden.
WILL DO Der Sender verwendet die Option nach dem Senden von DO.
DON'T Der Empfänger darf die Option nicht anwenden.
DON'T WON'T Der Sender meldet eine stillgelegte Option an.
WON'T DON'T Der 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
Nummer Code Name Bedeutung
0 NULL Null Dieser Befehl verschickt Daten an den Ferngast, ohne dass sie interpretiert werden müssen (etwa um zu melden, dass der lokale Gast online ist).
1 LF Line Feed Dieser Befehl veranlasst eine Cursor-Bewegung zur nächsten Zeile auf derselben Spalte.
2 CR Carriage Return Dieses 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 Code Name Bedeutung
7 BEL Bell Sendet ein sichtbares oder hörbares Signal ohne Einfluss auf den Cursor.
8 BS BackSpace Bringt den Cursor an die vorherige Stelle.
9 HT Horizontal Tab Bringt den Cursor auf die nächste rechte Tabulatorstelle derselben Zeile.
11 VT Vertical Tab Bringt den Cursor auf die nächste rechte Tabulatorstelle in der darunterliegenden Zeile.
12 FF Form Feed Bringt 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
Nummer Code Name Bedeutung
240 SE   Ende der Optionsverhandlung
241 NOP No Operation Daten werden an den Ferngast ohne vorherige Interpretation gesendet (etwa um zu melden, dass der lokale Gast online ist).
243 DM Data Mark Lö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.
243 BRK Break Break Zeichen am virtuellen Terminal
244 IP Interrupt Process Veranlasst ein Aufheben, Unterbrechen oder Aufgeben des Fernprozesses.
245 AO Abort Output Veranlasst ein Aufheben, Unterbrechen oder Aufgeben des Fernprozesses.
246 AYT Are You There Prüft, ob das Fernsystem da ist.
247 EC Erase Character Löscht das vorherige Zeichen.
248 EL Erase Line Löscht die gesamte vorherige Zeile.
249 GA Go Ahead Invertiert den Kontrollgang (bei Half-Duplex-Verbindungen)
250 SB SB Die Daten sind die Folge der vorherigen Optionsverhandlung.
251 WILL Optionsargument  
252 WON'T Optionsargument  
253 DO Optionsargument  
254 DON'T Optionsargument  
255 IAC Interpret 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

Unsere Inhalte werden in Zusammenarbeit mit IT-Experten erstellt, unter der Leitung von Jean-François Pillou, Gründer von CCM.net. CCM ist eine führende internationale Technologie-Webseite und in elf Sprachen verfügbar.
Das Dokument mit dem Titel « Das Telnet-Protokoll » wird auf CCM (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.