Résumé

  • Le RFC 1078 propose TCPMUX : connexion au port TCP 1, nom du service suivi de CRLF, puis réponse + ou avec éventuellement une explication. Avec +, le protocole choisi commence sur la même connexion ; avec , celle-ci se ferme.
  • HELP énumère les services offerts par cet hôte. Les services possédant déjà un port attribué doivent y rester accessibles, même s'ils rejoignent aussi l'accueil. La liste officielle de 1987 classait encore les ports 1 à 4 parmi les numéros non attribués.

Les ports étaient les adresses de visite des services TCP. Pour rencontrer un service connu, on frappait à son numéro de contact. La liste officielle des numéros attribués de mai 1987 plaçait ces numéros dans les huit bits de poids faible ; 1 à 4 étaient encore libres. TCP disposait d'un espace numérique bien plus vaste. Ce qui se gérait avec parcimonie, c'était le petit ensemble de portes connues et enregistrées. Un protocole privé pouvait avoir des clients et du travail à faire sans obtenir sa plaque officielle.

Le RFC 1078 de Mark Lottor, paru en novembre 1988, proposa un réceptionniste. Son TCP Port Service Multiplexer, ou TCPMUX, écoutait au port 1. Le client ouvrait une connexion et envoyait un nom de service terminé par retour chariot et saut de ligne. La casse n'avait aucune importance. Cette première phrase était minuscule ; elle décidait pourtant à qui la conversation serait confiée.

La réponse commençait par un caractère : + ou . Le plus annonçait une acceptation, éventuellement suivie d'une explication et de CRLF. Le protocole du service sélectionné prenait alors la suite sur la connexion déjà ouverte. Le moins annonçait un refus, suivi éventuellement de son motif ; la connexion se terminait. Le client avait atteint la machine : l'accueil décidait quelle pièce, parmi celles du bâtiment, pouvait prendre son appel.

Le texte répartissait même la rédaction des réponses. Si le nom demandé était introuvable, le refus viendrait généralement du multiplexeur. L'acceptation viendrait généralement du service lancé pour répondre. Le réceptionniste connaît l'annuaire ; l'occupant de la pièce dit s'il est prêt à parler. Cette nuance évite de confondre une inscription dans une liste et une conversation effectivement prise en charge.

L'accueil possédait son panneau d'information. HELP était un nom réservé. Une demande de ce nom produisait une liste sur plusieurs lignes, avec un service par ligne, puis fermait la connexion. On demandait le plan du bâtiment avant de choisir une porte. Les noms déjà inscrits dans la liste officielle des protocoles et services conservaient leur définition. Le bureau d'accueil pouvait orienter ; il ne pouvait rebaptiser une activité enregistrée.

Les services installés de longue date conservaient aussi leur entrée principale. Le RFC exigeait qu'un service disposant d'un port attribué reste accessible à ce port ; sa présence au port 1 était facultative. Un client connaissant l'ancien numéro continuait donc son chemin habituel. Le hall commun servait surtout aux futurs services et aux protocoles privés qui n'avaient pas de numéro de contact propre.

Ces protocoles devaient toutefois choisir des noms distinctifs. Lottor conseillait un préfixe reprenant le nom de l'organisation et un suffixe de version au besoin. Deux bureaux appelés « archives » font perdre du temps au réceptionniste ; un nom plus précis aide à conduire la connexion à la bonne équipe. Les noms enregistrés gardent leur sens officiel, tandis que les nouveaux venus prennent soin d'éviter les collisions.

Tout le projet tient dans un échange facile à retenir. On rejoint un numéro unique, on dit le nom voulu, on reçoit une marque d'accord ou de refus, puis une véritable conversation commence ou s'arrête. HELP présente le répertoire local. TCPMUX donnait aux services sans plaque leur place dans le bâtiment, avec une règle presque polie pour les anciens occupants : leur porte d'origine restait ouverte.