Je suis Charlie

Autres trucs

Accueil

Seulement les RFC

Seulement les fiches de lecture

Mon livre « Cyberstructure »

Ève

Vers une programmation réseau orientée vers le nom de machine

Première rédaction de cet article le 25 novembre 2008


Aujourd'hui, une des raisons pour lesquelles il est difficile de déployer de nouveaux protocoles réseaux est la dépendance des applications aux adresses IP, utilisées comme identificateurs. D'où la proposition radicale de Christian Vogt : que les machines aient une pile réseau centrée sur le nom de machine, sans accès facile à l'adresse IP, de façon à permettre de changer celle-ci, voire de changer son format ou sa sémantique.

Christian Vogt est l'auteur de plusieurs RFC sur la mobilité et un participant actif du groupe de recherche RRG de l'IRTF. C'est un chercheur très concret, toujours soucieux de proposer des solutions réalistes.

Dans son article Towards A Hostname-Oriented Network Protocol Stack for Flexible Addressing in a Dynamic Internet, Vogt propose que les applications n'aient plus accès trop facilement aux adresses IP, comme c'est le cas actuellement avec l'API de très bas niveau des prises. Il propose qu'on remplace cette API, qui lie les applications au concept d'« adresse IP comme identificateur » par une nouvelle API qui comprendrait essentiellement deux primitives :

  • ConnectToHostname(host) qui prendrait comme paramètre le nom de la machine où on veut se connecter et,
  • AcceptFromHostname() qui accepterait les connexions.

Derrière, le système d'exploitation devrait faire la résolution de nom en adresse, bien sûr, mais aussi gérer le changement d'adresse IP en cours de session, si utile à la mobilité et au multihoming, et que des protocoles comme SCTP (RFC 3286) permet.

Certaines API existantes (par exemple celles de bibliothèques comme libcurl ou comme le WSAConnectByName de Microsoft) permettent un mécanisme du genre ConnectToHostname mais qui ne gère pas le changement d'adresse en cours de session.

L'adoption d'une telle API permettrait donc de résoudre le problème du « portage » des applications de IPv4 vers IPv6, qui est une aberration en soi. Normalement, un changement de format des adresses dans la couche 3 n'aurait dû avoir aucun impact sur les applications.

Mais cette API permettrait aussi de pouvoir un jour déployer des protocoles plus avancés, où l'adresse IP n'est pas exposée, comme LISP ou HIP (RFC 9063).

Hélas, l'expérience des migrations précédentes n'incite pas à l'optimisme. Les API sont très stables, voire immobiles, et il est très difficile d'obtenir un changement des habitudes. Il suffit de voir, par exemple, qu'on trouve encore des universités où on enseigne la résolution de noms via gethostbyname(), méthode spécifique à IPv4 et abandonnée depuis le RFC 2133 il y a plus de dix ans...

Version PDF de cette page (mais vous pouvez aussi imprimer depuis votre navigateur, il y a une feuille de style prévue pour cela)

Source XML de cette page (cette page est distribuée sous les termes de la licence GFDL)