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 Kommando Interpreter (Server Seite).
Das Telnet Protokoll nutzt eine TCP Verbindung und verschickt ASCII formatierte, 8-bit kodierte Daten getrennt durch Telnet Kontrollsequenzen. Es bildet somit ein leicht zu bedienendes bi-direktional (half-duplex), 8-bit kodiertes Kommunikationsorientes System .
Das Telnet Protokoll ruht auf drei Aufbausäulen :
Das Protokol, ist an sich ein Basisprotokoll auf dem sonstige andere Protokolle aus der TCP/IP Familie (FTP, SMTP, POP3, …) geknüpft wurden. Die Telnet Spezifikationen beschreiben keinerlei Authentifizierungsmassnahmen - Ein Authentifizierungsprozess findet oberhalb von Telnet, auf FTP Ebene statt - da Telnet vollständig von Benutzer-Applikationen getrennt abläuft. Ausserdem ist das Telnet Protokoll als solches kein sichers Datentransfermittel, weil Daten unverhüllt ( ungekryptet) durch das Netz gehen. Bei der Verbindung eines Gastes mit dem Rechner auf dem Telnet implementiert ist, nutzt das Protokoll den Port 23.
Von den assoziierten Optionen und Verhandlungsregeln abgesehen, sind die Telnet Protokollspezifikation grundliegend. Die Datenübertragung über Telnet besteht aus dem Übermitteln von Bytes im TCP Strom (das Telnet beschreit aber trotzdem dass Grunddaten - wenn keine Option gegenliegende Massnahmen vorgibt - zunächst zusammen in einen Puffer gelegt bevor sie gesendet werden. Noch genauer bedeutet dies, Daten werden in Ermangelung dessen Zeile für Zeile übertragen). Wenn ein Byte 255 übertragen wird, so wird das folgende Byte als Befehl verstanden. Das Byte 255 heisst in diesem Fall IAC (Interpret As Command, zu deutsch wie ein Befehl interpretieren). Die Befehle sind weiter unten im Dokument erläutert.
Die Grundspezifikationen vom Telnet Protokoll stehen im RFC 854 zu Verfügung, wogegen die zahlreichen Optionen in den RFC 855 bis 861 beschrieben sind.
| 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 Option |
Zu früheren Internet Zeiten, bestand das Netz (ARPANET) aus sehr wenig homogene Maschinenkonfigurationen (Tastaturen Zeichensätze, Auflösungen, Bildschirmzeilenlänge). Auf der anderen Seite besassen Sitzungsterminals ihre eigene Art der I/O Datenflusskontrolle.
So wurde von Adapter für jeden Endbenutzergerätetyp zwecks Zwischenverstädigung der Système, abgesehen und eine Standard Schnittstelle entwickelt, die NVT (Network Virtual Terminal, zu deutsch Virtuelles Netzwerk Endbenutzergerät), mit einem Basiskommunikationsstandard, aufgebaut durch :
Die Telnet eigenen Protokollspezifikationen machen es möglich, bei bestimmten Terminals zu ihren eigenen nicht Spezifikationskonformen Eigenshaften ergänzend, anhand von zusätzliche Dienste gewisse erweiterte Funktionen angeboten werden. Diese neue Funktionalitäten werden in Form von Optionen aufgerufen. Das Telnet Protokoll schlägt somit ein Optionenverhandlungssystem vor mit dem erweiterte Funktionen als Optionen beiderseits des Prozesses durch das Einsetzen von Erlaubnisanfragen beim Fernsystem.
Die Telnet Optionen beeinflussen Die Datenkanäle in beiden Richtungen. Jede Endestelle ist im Stande Optionen zu verhandeln, d.h. die Optionen zu definieren die sie :
Auf dieser Weiser kann jede Partei Benutzungsanträge für Optionen senden. Die Gegenüberstelle muss dann die Option annehmen oder ablehnen. Im Falle einer Anfrage zur Verriegelung einer Option, und um völlig NVT-kompatibel zu bleiben, darf der Anfrage-Empfänger dies nicht ablehnen.
| 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 das der Empfänger eine Option still legen muss |
Die Optionencodes sind 255 an der Zahl. Telnet sind aber einen zusätzlichen Adresseraum für neue Optionen vor.
Le RFC 855 explique comment documenter toute nouvelle option.
Die Optionenverhandlungsregeln sind so ausgelegt dass Rundschleifen verhindert werden (z.B. Eine Seite leitet Optionverhandlungsanfragen bei jeder Bestätigung der anderen Seite).
Folgende Zeichen sind Befehle zur Kontrolle des virtuellen Netzterminal-Bildschirm :
| Bildschirmkontrollbefehle | |||
|---|---|---|---|
| Nummer | Code | Name | Bedeutung |
| 0 | NULL | Null | Dieses 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 | Das Befehl veranlasst eine cursorbewegung zur Nächsten Zeile, auf der selben Spalte |
| 2 | CR | Carriage Return | Dieses Komando (Wagenrücklauf) plaziert den Cursor auf die extrem linke Spalte der gleiche Zeile |
So definiert das Befehl CRLF, bestückt aus beiden Befehel CR und LF eine nach der anderen (in beliebiger Ordnung). Der cursor geht auf die extrem linke Spalte der nächsten Zeile
Die vorhergehenden Zeichen sind die einzigen ( aus den 128 Zeichen des ASCII Basiscode und den 128 Zeichen des erweiterten Code) mit einer eigenen Bedeutung am virtuelen Netz Terminal. Folgende dagegen können evetuell eine Bedeutung haben aber sind nicht unbedingt implementiert.
| Befehle zur Bilschirmkontrolle | |||
|---|---|---|---|
| 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 auf die vorherige Stelle |
| 9 | HT | Horizontal Tab | Bringt den Cursor auf die nächste rechte Tabulatorstelle |
| 11 | VT | Vertical Tab | Bringt den Cursor auf die gleiche Tabulatorstelle auf der nächsten Stelle |
| 12 | FF | Form Feed | Bringt den Cursor auf die gleiche Stelle der nächsten Seite |
Folgende Zeichen dienen der Kontrolle einer Telnet Sitzung. Diese Befehle dürfen als solche interpretiert nur wenn sie nach dem sogenannten Escape-Zeichen stehen IAC (Interpret As Command). Ohne die Sequenz IAC, werden sie als reine Zeichen abgesetzt. Um das Zeichen IAC selbst zu benutzen wird ihm auch eine Escape-Sequenz vorgelegt (sich selbst)
Der Befehle der Optionenverhandlung wird ein Byte angehängt zur näher Beschreibung der Option. Sie erlauben unter anderem Signalunterbrechungen, Löschung von Informationen aus dem Terminal-cache, …
| Sitzungskontrollzeichen | |||
|---|---|---|---|
| Nummer | Code | Name | Bedeutung |
| 240 | SE | Ende der Optionverhandlung | |
| 241 | NOP | No Operation | Daten werden an den Ferngast ohne vorherige Interpretierung (etwa um zu melden dass der lokale Gast online ist) |
| 243 | DM | Data Mark | Löscht sämtliche Pufferspeicher zwischen dem virtuellen Netzterminal und dem Ferngast. Wird durch Drücken auf die Sync-Taste von NVT ausgelöst und muss unbedingt mit dem Setzen des TCP Bit DRINGEND gefolgt werden. |
| 243 | BRK | Break | Break Zeichen am virtuellen Terminal |
| 244 | IP | Interrupt Process | Veranlasst ein Aufheben, ein Unterbrechen oder ein Aufgeben des Fernprozess |
| 245 | AO | Abort Output | Veranlasst ein Aufheben, ein Unterbrechen oder ein Aufgeben des Fernprozess |
| 246 | AYT | Are You There | Prüft den "Existenz" Zustand des Fernsystem |
| 247 | EC | Erase Character | Löscht das vorrige Zeichen |
| 248 | EL | Erase Line | Löscht die gesamte vorrige Zeile |
| 249 | GA | Go Ahead | Invertiert den Kontrollgang (bei Half-Duplex Verbindungen) |
| 250 | SB | SB | Die Daten sind die Folge der vorherigen Optionverhandlung |
| 251 | WILL | Option Argument | |
| 252 | WON'T | Option Argument | |
| 253 | DO | Option Argument | |
| 254 | DON'T | Option Argument | |
| 255 | IAC | Interpret As Command | ändert das folgenden Zeichen-Byte zu einem interpretiebaren Befehl. Das Befehl IAC ist mächtiger als die Basis-Befehle |
Verfasser ist Jean-François PILLOU