|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Internet - Le protocole TelnetIntroduction au protocole TelnetLe protocole Telnet est un protocole standard d'Internet permettant l'interfaçage de terminaux et d'applications à travers Internet. Ce protocole fournit les règles de base pour permettre de relier un client (système composé d'un affichage et d'un clavier) à un interpréteur de commande (côté serveur). Le protocole Telnet s'appuie sur une connexion TCP pour envoyer des données au format ASCII codées sur 8 bits entre lesquelles s'intercalent des séquences de contrôle Telnet. Il fournit ainsi un système orienté communication, bi-directionnel (half-duplex), codé sur 8 bits facile à mettre en oeuvre. Le protocole Telnet repose sur trois concepts fondamentaux :
Ce protocole est un protocole de base, sur lequel s'appuient certains autres protocoles de la suite TCP/IP (FTP, SMTP, POP3, ...). Les spécifications de Telnet ne mentionnent pas d'authentification car Telnet est totalement séparé des applications qui l'utilisent (le protocole FTP définit une séquence d'authentification au-dessus de Telnet). En outre le protocole Telnet est un protocole de transfert de données non sûr, c'est-à-dire que les données qu'il véhicule circulent en clair sur le réseau (de manière non chiffrée). Lorsque le protocole Telnet est utilisé pour connecter un hôte distant à la machine sur lequel il est implémenté en tant que serveur, ce protocole est assigné au port 23. Hormis les options et les règles de négociation associées, les spécifications du protocole Telnet sont basiques. La transmission de données à travers Telnet consiste uniquement à transmettre les octets dans le flux TCP (le protocole Telnet précise tout de même que les données doivent par défaut, c'est-à-dire si aucune option ne précise le contraire, être groupées dans un tampon avant d'être envoyées. Plus exactement cela signifie que par défaut les données sont envoyées ligne par ligne). Lorsque l'octet 255 est transmis, l'octet suivant doit être interprété comme une commande. L'octet 255 est ainsi nommé IAC (Interpret As Command, traduisez Interpréter comme une commande). Les commandes sont décrites plus loin dans le document. Les spécifications basiques du protocole Telnet sont disponibles dans le RFC 854, tandis que les nombreuses options sont décrites par les RFC 855 à 861.
La notion de terminal virtuelAux débuts d'Internet, le réseau (ARPANET) était composé de machines dont les configurations étaient très peu homogènes (claviers, jeux de caractères, résolutions, longueur des lignes d'affichage). D'autre part, les sessions des terminaux possédaient également leur propre façon de contrôler les flux de données en entrée/sortie. Ainsi, au lieu de créer des adaptateurs pour chaque type de terminal afin qu'il puisse y avoir une interopérabilité de ces systèmes, il a été décidé de mettre au point une interface standard, appelée NVT (Network Virtual Terminal, traduisez Terminal réseau virtuel), fournissant une base de communication standard, composée de :
Le principe d'options négociéesLes spécifications du protocole Telnet permettent de prendre en compte le fait que certains terminaux puissent proposer des services additionnels, non définis dans les spécifications de base (mais conformes aux spécifications), afin de pouvoir utiliser des fonctions avancées. Ainsi, ces fonctionnalités se traduisent en terme d'options. Le protocole Telnet propose donc un système de négociations d'options permettant l'utilisation de fonctions avancées sous forme d'options de part et d'autre en initiant des requêtes pour en demander l'autorisation au système distant. Les options de Telnet affectent séparément chaque direction du canal de données. Ainsi, chaque extrémité est à même de négocier les options, c'est-à-dire de définir les options qu'elle :
De cette façon, chacune des parties peut émettre une demande d'utilisation d'une option. L'autre partie doit alors répondre si elle accepte ou non l'utilisation de l'option. Dans le cas où la requête concerne une désactivation d'option, le destinataire de la requête ne doit pas refuser pour être totalement compatible avec le modèle NVT.
Il existe 255 codes d'options. Le protocole Telnet prévoit tout de même
un espace d'adressage permettant de décrire de nouvelles options.
Les règles de négociationDes règles de négociation d'options permettent d'éviter des situations de bouclage (par exemple qu'une des parties envoie des requêtes de négociation d'options à chaque confirmation de l'autre partie).
Les caractères de contrôle de la sortieLes caractères suivants sont des commandes permettant de contrôler l'affichage du terminal réseau virtuel :
Ainsi, on définit la commande CRLF, composée des deux commandes CR et LF l'une après l'autre (dans n'importe quel ordre) permettant de déplacer le curseur d'impression à l'extrême gauche de la ligne suivante. Les caractères de contrôle optionnelsLes caractères précédents sont les seuls (parmi les 128 caractères du code ASCII de base et des 128 caractères du code ASCII étendu) à possèder une signification particulière pour le terminal réseau virtuel. Les caractères suivants peuvent éventuellement avoir une signification sur un terminal réseau virtuel mais ne sont pas nécessairement implémentés.
Les caractères de contrôle de la sessionLes caractères suivants sont des commandes permettant de contrôler la session Telnet. Ces commandes pour être interprétées en tant que telles doivent être précédées du caractère d'échappement IAC (Interpret As Command). Ainsi, si ces octets sont transmis sans être précédés du caractère IAC, ils seront traités comme de simples caractères. Pour transmettre le caractère IAC, il faut le faire précéder d'un caractère d'échappement (lui-même) autrement dit il doit être doublé. Les commandes correspondant à une négociation d'option doivent être suivies d'un octet précisant l'option. Ces commandes permettent d'interrompre des signaux, de supprimer des informations dans le cache du terminal, ...
Plus d'information
Article écrit par Jean-François PILLOU Discussions pertinentes trouvées dans le forum
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||