Résumé

  • La RFC 796 plaçait des adresses locales de taille et de sens différents — hôte, terminal, processus ou hôte logique — dans la partie locale d’une adresse Internet de 32 bits.
  • Les détails faisaient la différence : un hôte radio pouvait se déplacer sans changer de numéro local, une machine de SATNET pouvait porter plusieurs adresses logiques, et le champ d’hôte logique d’ARPANET restait à zéro faute de prise en charge par les IMP.

Un hôte de PRNET se déplace. Son adresse de seize bits reste avec lui. Plus loin, une machine de SATNET peut avoir plusieurs adresses logiques alors qu’elle ne multiplie pas ses boîtiers. Comment ces identités entrent-elles dans la même enveloppe IP de 32 bits ? En septembre 1981, Jon Postel a répondu avec les dessins de la RFC 796. Les traits sur le papier ont l’air sages ; ils représentent des réseaux qui n’avaient pas du tout la même manière de désigner un destinataire.

La première page rappelle les découpages de l’époque. Après son bit de classe, une adresse de classe A comporte sept bits de numéro de réseau et vingt-quatre bits locaux. Les classes B et C donnent respectivement quatorze/seize et vingt et un/huit bits pour le réseau et la partie locale, après leurs préfixes de classe. Le réseau identifié par le numéro détermine ensuite comment lire les bits locaux. C’est cette seconde étape qui occupe presque toute la note.

AUTODIN II attribuait seize bits à un abonné, hôte ou terminal, indépendamment de son emplacement. Postel les plaçait tout au bout des vingt-quatre bits locaux d’une adresse IP de classe A, avec un octet zéro devant. PRNET faisait de même pour ses hôtes radio de seize bits, mobiles par nature. La note donne six numéros de réseau pour les différentes PRNET. Un même petit format local pouvait donc voyager sous plusieurs numéros de réseau sans que l’on confonde les réseaux entre eux.

ARPANET utilisait une autre disposition : hôte, hôte logique et IMP occupaient les vingt-quatre bits locaux. Or les IMP ne prenaient pas encore en charge l’adressage d’hôte logique. Dans l’en-tête du réseau, l’octet correspondant restait à zéro. L’EDN expérimental reprenait le même type de découpage et la même limite. On peut dessiner une case en prévision de l’avenir ; les machines du jour continuent à envoyer zéro dedans.

Les réseaux de calcul distribués de COMSAT et de l’UCL plaçaient un identifiant d’hôte de huit bits et un identifiant de processus de huit bits après un octet zéro. Le LCSNET du MIT avait plusieurs formats de 32 bits ; son format courant utilisait les vingt-quatre bits inférieurs pour le sous-réseau, une zone réservée et l’hôte. Un détail plus savoureux apparaît chez COMSAT et l’UCL : le texte donne les numéros de réseau 29 et 30, puis le dessin voisin imprime 18 dans son premier octet. Cette divergence appartient au document lui-même. Elle mérite mieux qu’un copier-coller aveugle d’un schéma.

Avec les satellites, le nombre d’adresses ne suit pas le nombre de machines. SATNET utilisait des adresses d’hôte de seize bits attribuables indépendamment de la station au sol ; une machine physique pouvait en posséder plusieurs. WBCNET permettait aussi plusieurs adresses logiques par hôte et divisait ses seize bits entre numéro HAP et adresse locale. Dans son dessin IP, un octet zéro sépare ces deux morceaux, tandis que chez SATNET le zéro précède les seize bits. Les zéros se ressemblent à l’œil. Leur place raconte des formats différents.

Les sept pages de Postel montrent la couture derrière une adresse universelle. Un zéro peut compléter un petit numéro, ou signaler une possibilité encore inutilisable dans les IMP. Les derniers bits peuvent identifier un terminal, un processus ou un hôte mobile. L’adresse IP donne un contenant commun ; la clé de lecture de son contenu reste attachée au réseau auquel elle s’adresse.