Le protocole Telnet est un protocole standard d'Internet permettant l'interfaage de terminaux et
d'applications travers Internet. Ce protocole fournit les rgles de base pour permettre de relier un client (systme compos d'un affichage et d'un clavier) un interprteur de commande (ct serveur). Le protocole Telnet s'appuie sur une connexion TCP pour envoyer des donnes au format ASCII codes sur 8 bits entre lesquelles s'intercalent des squences de contrle Telnet. Il fournit ainsi un systme orient communication, bi-directionnel (half-duplex), cod sur 8 bits facile mettre en oeuvre. Le protocole Telnet repose sur trois concepts fondamentaux : Le paradigme du terminal rseau virtuel (NVT, Network Virtual Terminal) ; Le principe d'options ngocies ; Les rgles de ngociation.
Ce protocole est un protocole de base, sur lequel s'appuient certains autres protocoles de la suite TCP/IP (FTP, SMTP, POP3, ...). Les spcifications de Telnet ne mentionnent pas d'authentification car Telnet est totalement spar des applications qui l'utilisent (le protocole FTP dfinit une squence d'authentification au-dessus de Telnet). En outre le protocole Telnet est un protocole de transfert de donnes non sr, c'est--dire que les donnes qu'il vhicule circulent en clair sur le rseau (de manire non chiffre). Lorsque le protocole Telnet est utilis pour connecter un hte distant la machine sur lequel il est implment en tant que serveur, ce protocole est assign au port 23. Hormis les options et les rgles de ngociation associes, les spcifications du protocole Telnet sont basiques. La transmission de donnes travers Telnet consiste uniquement transmettre les octets dans le flux TCP (le protocole Telnet prcise tout de mme que les donnes doivent par dfaut, c'est-- dire si aucune option ne prcise le contraire, tre groupes dans un tampon avant d'tre envoyes. Plus exactement cela signifie que par dfaut les donnes sont envoyes ligne par ligne). Lorsque l'octet 255 est transmis, l'octet suivant doit tre interprt comme une commande. L'octet 255 est ainsi nomm IAC(Interpret As Command, traduisez Interprter comme une commande). Les commandes sont dcrites plus loin dans le document. Les spcifications basiques du protocole Telnet sont disponibles dans le RFC854, tandis que les nombreuses options sont dcrites par les RFC 855 861.
La notion de terminal virtuel Aux dbuts d'Internet, le rseau (ARPANET) tait compos de machines dont les configurations taient trs peu homognes (claviers, jeux de caractres, rsolutions, longueur des lignes d'affichage). D'autre part, les sessions des terminaux possdaient galement leur propre faon de contrler les flux de donnes en entre/sortie. Ainsi, au lieu de crer des adaptateurs pour chaque type de terminal afin qu'il puisse y avoir une interoprabilit de ces systmes, il a t dcid de mettre au point une interface standard, appele NVT (Network Virtual Terminal, traduisezTerminal rseau virtuel), fournissant une base de communication standard, compose de : Caractres ASCII 7 bits auxquels s'ajoutent le code ASCII tendu Trois caractres de contrle Cinq caractres de contrle optionnels Un jeu de signaux de contrle basique
Le protocole Telnet consiste ainsi crer une abstraction du terminal, permettant n'importe quel hte (client ou serveur) de communiquer avec un autre hte sans connatre ses caractristiques.
Le principe d'options ngocies Les spcifications du protocole Telnet permettent de prendre en compte le fait que certains terminaux puissent proposer des services additionnels, non dfinis dans les spcifications de base (mais conformes aux spcifications), afin de pouvoir utiliser des fonctions avances. Ainsi, ces fonctionnalits se traduisent en terme d'options. Le protocole Telnet propose donc un systme de ngociations d'options permettant l'utilisation de fonctions avances sous forme d'options de part et d'autre en initiant des requtes pour en demander l'autorisation au systme distant. Les options de Telnet affectent sparment chaque direction du canal de donnes. Ainsi, chaque extrmit est mme de ngocier les options, c'est--dire de dfinir les options qu'elle : veut utiliser (DO) refuse d'utiliser (DON'T) veut que l'autre extrmit utilise (WILL) refuse que l'autre extrmit utilise (WON'T)
De cette faon, chacune des parties peut mettre une demande d'utilisation d'une option. L'autre partie doit alors rpondre si elle accepte ou non l'utilisation de l'option. Dans le cas o la requte concerne une dsactivation d'option, le destinataire de la requte ne doit pas refuser pour tre totalement compatible avec le modle NVT.
La ngociation d'options Telnet <span class="texte2">Requte</span> <span class="texte2">Rponse</span> <span class="texte2">Interprtation</span> DO WILL L'metteur commence en utilisant l'option WON'T L'metteur ne doit pas utiliser l'option WILL DO L'metteur commence en utilisant l'option, aprs avoir envoy un DO DON'T L'metteur ne doit pas utiliser l'option DON'T WON'T L'metteur signale qu'il a dsactiv l'option WON'T DON'T L'metteur signale que l'metteur doit dsactiver l'option
Il existe 255 codes d'options. Le protocole Telnet prvoit tout de mme un espace d'adressage permettant de dcrire de nouvelles options. Le RFC 855 explique comment documenter toute nouvelle option. Les rgles de ngociation Des rgles de ngociation d'options permettent d'viter des situations de bouclage (par exemple qu'une des parties envoie des requtes de ngociation d'options chaque confirmation de l'autre partie). <ol> Les requtes ne doivent tre mises que lors d'un changement de mode Lorsqu'une des parties reoit une requte de changement de mode, il ne doit l'aquitter que s'il ne se trouve pas dj dans le mode appropri Une requte ne doit tre insre dans le flux de donnes qu' l'endroit o elle prend effet.
</ol>
Les caractres de contrle de la sortie Les caractres suivants sont des commandes permettant de contrler l'affichage du terminal rseau virtuel :
Commandes de contrle de l'affichage <span class="texte2">Numro< /span> <span class="texte2">Code</ span> <span class="texte2">Nom</ span> <span class="texte2">Signification </span> 0 NULL Null Cette commande permet d'envoyer des donnes l'hte distant sans que celles-ci ne soient interprtes (notamment pour signaler que l'hte local est toujours en ligne) 1 LF Line Feed Cette commande permet de dplacer le curseur d'impression la ligne suivante, la mme position horizontale 2 CR Carriage Return Cette commande (Retour Chariot) permet de dplacer le curseur d'impression l'extrme gauche de la ligne courante
Ainsi, on dfinit la commande CRLF, compose des deux commandes CR et LFl'une aprs l'autre (dans n'importe quel ordre) permettant de dplacer le curseur d'impression l'extrme gauche de la ligne suivante. Les caractres de contrle optionnels Les caractres prcdents sont les seuls (parmi les 128 caractres du code ASCII de base et des 128 caractres du code ASCII tendu) possder une signification particulire pour le terminal rseau virtuel. Les caractres suivants peuvent ventuellement avoir une signification sur un terminal rseau virtuel mais ne sont pas ncessairement implments.