Résumé

  • Le RFC 884, publié en décembre 1983, attribuait le numéro 24 à l'option Telnet TERMINAL-TYPE. DO et WILL ouvraient l'échange ; SEND demandait ensuite le nom, IS l'apportait.
  • Un terminal pouvait donner d'abord son nom précis, puis une appellation plus générale. La répétition du dernier nom mettait fin à la recherche. Le RFC 930 a ensuite imposé que chaque réponse attende une demande.

Un écran n'est pas une feuille de papier dotée d'une prise. Selon le modèle, déplacer le curseur, effacer une zone ou afficher une couleur exigeait des commandes différentes. Pourtant, sur une connexion distante, l'ordinateur ne voyait d'abord qu'un flot de caractères. Le menu soigneusement placé par le programmeur pouvait atterrir n'importe où. C'était l'époque où demander le nom d'un écran constituait une vraie mesure de prudence.

Le Telnet de base avait une solution élégante pour commencer : le « terminal virtuel de réseau ». Chacun savait parler à cette machine imaginaire. La conversation pouvait démarrer avant que le serveur ait appris les caprices du matériel réel. Puis venaient les applications ambitieuses, celles qui voulaient piloter le curseur plutôt que simplement imprimer des lignes. Marvin Solomon et Edward Wimmers ont consacré le RFC 884 à ce moment précis.

L'option reçut le code 24. Au départ, les deux côtés restent sur DON'T et WON'T : aucun type n'est annoncé. Le serveur demande la permission avec DO, l'autre côté offre son accord avec WILL. Ces deux commandes préparent seulement l'entretien. La question concrète arrive dans une sous-négociation SEND, numéro 1 ; la réponse IS, numéro 0, porte une chaîne ASCII NVT. L'exemple du document répond IBM-3278-2. La chaîne ignore les différences entre majuscules et minuscules.

Les auteurs alignaient des terminaux IBM, des noms employés sous TOPS20 et d'autres sous Unix. On y trouve DEC-VT100 à côté de TELETYPE-33. Cette galerie dit quelque chose de l'Internet de l'époque : une connexion commune devait traverser des bureaux équipés d'objets très différents. Un téléimprimeur et un écran capable d'adresser son curseur pouvaient entrer dans la même conversation réseau ; ils n'avaient pas la même idée d'une interface raffinée.

Le vrai trait d'esprit du protocole se cache dans les surnoms. Un appareil pouvait posséder une désignation exacte et un nom plus général. Le serveur demandait une deuxième réponse s'il ne reconnaissait pas la première ; le terminal passait alors de la plus précise à la moins précise. Le document cite deux graphies susceptibles de semer la zizanie, IBM3278-2 et IBM-3278/2. Aucun accusé de réception négatif n'était prévu pour un nom incompris. Il fallait essayer une autre présentation. Pour signaler la fin de la liste, le terminal répétait son dernier nom ; deux réponses identiques de suite invitaient le serveur à cesser ses questions. Un « Vous avez un autre prénom ? » codé en quelques octets.

Le serveur pouvait transmettre cette information à un pilote local, capable ensuite de produire des commandes adaptées au modèle. Le document évoquait l'adressage du curseur, les couleurs et l'option BINARY. La décision appartenait à la machine qui recevait le nom. La réponse UNKNOWN servait quand un nom utile manquait. Le réseau fournissait une présentation ; le logiciel local se chargeait de l'accueil.

La première version avait aussi une maladresse de conversation. En 1983, l'émetteur pouvait envoyer IS spontanément une fois la permission obtenue. Les auteurs jugeaient qu'une demande simultanée produirait tout au plus deux réponses. En janvier 1985, le RFC 930 a corrigé ce point : IS devait suivre SEND. Si la réponse spontanée croisait la demande, le serveur risquait de lire la réponse suivante comme un deuxième nom. Un simple tour de parole a retiré l'ambiguïté.

Le RFC 1091 a plus tard permis de parcourir plusieurs modes d'émulation et d'en changer à la demande du serveur. En 1983, l'enjeu était plus élémentaire et plus humain : pour rendre service à un écran inconnu, on commençait par lui demander comment il s'appelait. Et l'on avait la politesse de demander s'il utilisait aussi un nom plus passe-partout.