RFC 854 à 861 rend obsolète RFC 764 et 651
Le protocole Telnet fournit un service de communication bidirectionnel permettant le transfert d'octets. Son premier objectif est d'offrir un méthode standard pour interfacer des terminaux et des appareils.
Une connexion Telnet est supportée par une connexion TCP.
Le protocole Telnet est construit sur trois idées simples : la notion de terminal virtuel, le principe d'options négociées et une vue symétrique des terminaux et des processus. Lorsqu'une connexion Telnet est établie, chacune de ses extrémités est supposée sortir d'un "terminal virtuel de réseau" (NVT) et y arriver. Ceci élimine la nécessité pour un "serveur" ou un "utilisateur" de garder des informations sur les caractéristiques de tous les terminaux à interconnecter. Chaque système met en correspondance les caractéristiques de ses propres terminaux avec un NVT et suppose que son correspondant fait de même. Le principe des options négociées permet à de nombreux systèmes hôtes de fournir des fonctions supplémentaires à celles disponibles dans un NVT (par usage des structures DO, DON'T, WILL, WON'T). Une extrémité peut toujours refuser de valider une option et ne doit jamais refuser d'en invalider une.
Le terminal virtuel Telnet (NVT) est un appareil de type caractère. Il a un dispositif d'affichage et un clavier. L'écho est normalement local (echo distant en option). Le codage par défaut des caractères est l'alphabet n°5; se ses 7 bits sont placés dans un octet. Même si le transfert de caractères est duplex, le service Telnet est vu comme un appareil demi-duplex opérant en mode bloc (ligne de texte)
Dans la mesure du possible les caractères doivent être accumulés dans un buffer local avant d'être transmis sur une fin de ligne ou un signal d'envoi explicite (le but en étant, avec l'écho local, la diminution des "coûts" au sens large). Parfois une fonction de contrôle de flux doit être utilisée; dans ce cas, en fin de chaque bloc transmis, la source envoie une commande Telnet GA (Go Ahead). Ceci permet d'utiliser des terminaux demi-duplex ou au système distant de signaler au système local qu'il peut rendre la main à un utilisateur pour envoyer un nouveau bloc.
Telnet fournit une représentation standard pour 5 commandes usuelles des systèmes hôtes:
IP : interruption de process
AO : avortement de la sortie (termine une sortie en cours)
AYT: Are You There (pour voir si une connexion est toujours vivante)
EC: effacement caractère
EL : effacement de ligne
Pour permettre l'exécution immédiate des tris premières de ces fonctions un mécanisme "Synch" a été introduit. Il utilise des commandes Data Mark (DM) émises dans des notifications "urgentes" de TCP (non soumises au contrôle de flux TCP). A la réception de ces notifications, la commande IP, AO ou AYT est recherchée dans le flux de données et toutes les autres données sont détruites au collecteur. Ainsi la séquence [IP, Synch] peut être utilisée comme un "signal" pour arrêter un processus qui ne peut recevoir de caractère de terminaison.
Les commandes Telnet sont passées dans une séquence d'au moins 2 octets: le caractère d'échappement "Interpret as Command" (IAC, valeur 255), suivi du code de commande (par exemple IP: 244, AO :245, GA: 249, DO: 253 etc.)
Une connexion Telnet est établie entre un port utilisateur U et un port serveur L; un serveur est à l'écoute permanente d'une demande de connexion sur les port L qui ne sont pas utilisés.
Les options sont négociées par des commandes WILL (offre d'option) ou DO (demande d'option au correspondant) par des séquence IAC WILL option ou IAC DO option. Une sous-négociation peut être engagée par la commande SB.
Les options spécifiées sont :
0 : transmission binaire
1 : écho distant
3 : suppression de l'option GA (Go Ahead)
5 : état courant des options
6 : marque de temps
255 : extension de la liste d'options
Dostları ilə paylaş: |