Qui a choisi 127.0.0.1 pour être localhost et pourquoi? Quel sens cela a-t-il?

21

Je suis presque certain que tout le monde ici connaît la signification de 127.0.0.1. Mais pourquoi est-ce TOUJOURS localhost? Qui a choisi cette adresse IP arbitraire? Pourquoi cette adresse IP a-t-elle été choisie? Pourquoi pas quelque chose de plus simple comme 1.0.0.0? Y a-t-il une signification particulière à 127.0.0.1?

James Graham
la source
3
Cherchez et vous trouverez le RFC
SpacemanSpiff
@SpacemanSpiff RFC?
James Graham
4
Les RFC ( Request For Comments ) sont les éléments de base d'Internet. Voir ma réponse ci-dessous pour en savoir plus.
Michael Hampton

Réponses:

41

Jon Postel en a choisi 127.

Avant que l' Internet Assigned Numbers Authority ne prenne le relais ( RFC 3232 ) au moment de sa mort ( RFC 2468 ), il était le "tsar" des attributions d'adresses Internet et de ports, s'étant essentiellement nommé lui-même pour la tâche. ( RFC 349 )

Au début des années 80, lorsque IPv4, comme nous le savons, a été haché pour la première fois, les réseaux existants ont reçu des blocs d'adresse "classe A" dans l'espace d'adressage 32 bits qui entreraient en vigueur en 1983 ( RFC 801 ). Les assignations initiales et les 127 assignations dont vous parlez, ainsi que les premières définitions des adresses IP "classe A", "classe B" et "classe C", ont été publiées pour la première fois dans le RFC 790 de Postel . (Notez que les "classes" ont été remplacées par le CIDR dans la RFC 1519 , maintenant RFC 4632. )

Dans la RFC 790, Postel a défini 127 comme "réservé".

      127.rrr.rrr.rrr                 Reserved                     [JBP]

Sa première définition formelle apparaît dans la RFC 990 , où elle est définie comme suit:

Le numéro de réseau de classe A 127 se voit attribuer la fonction de "bouclage", c'est-à-dire qu'un datagramme envoyé par un protocole de niveau supérieur à une adresse de réseau 127 doit reboucler à l'intérieur de l'hôte. Aucun datagramme «envoyé» à une adresse réseau 127 ne doit jamais apparaître sur un réseau, où que ce soit.

Et encore dans RFC 1060 :

(g) {127, <tout>}

Adresse de bouclage de l'hôte interne. Ne doit jamais apparaître en dehors d'un hôte.

Ainsi, toute adresse dans 127.0.0.0/8 doit être considérée comme un bouclage et être redirigée vers l'hôte local.

La liste actuelle des adresses IPv4 à usage spécial est la RFC 6890 , qui obsolète la RFC 5735 , qui à son tour obsolète la RFC 3330 . La RFC 5735 déclare:

127.0.0.0/8 - Ce bloc est affecté pour être utilisé comme adresse de bouclage de l'hôte Internet. Un datagramme envoyé par un protocole de niveau supérieur à une adresse située n'importe où dans ce bloc reboucle à l'intérieur de l'hôte. Ceci est généralement implémenté en utilisant uniquement 127.0.0.1/32 pour le bouclage. Comme décrit dans [RFC1122], Section 3.2.1.3 , les adresses dans l'ensemble du bloc 127.0.0.0/8 n'apparaissent légitimement sur aucun réseau.

Enfin, dans tout sous - réseau IPv4 , l'adresse la plus basse n'est pas utilisable car elle représente l'itinéraire réseau. Ainsi, la première adresse utilisable du sous-réseau, et donc la plus courante, est 127.0.0.1.

Michael Hampton
la source
28

Du RFC :

127.0.0.0/8 - Ce bloc est affecté pour être utilisé comme adresse de bouclage de l'hôte Internet. Un datagramme envoyé par un protocole de niveau supérieur à une adresse n'importe où dans ce bloc devrait reboucler à l'intérieur de l'hôte. Ceci est généralement implémenté en utilisant uniquement 127.0.0.1/32 pour le bouclage, mais aucune adresse dans ce bloc ne devrait jamais apparaître sur un réseau n'importe où [RFC1700, page 5].

De wikipedia :

Comme pour toutes les adresses IP, la définition d'un nom d'hôte synonyme simplifie simplement la vie des utilisateurs humains - et localhost est l'alias des pionniers du réseautage.

Notez également que 127 en binaire est 01111111 , la valeur inversée et inversée de 1 ( 00000001 )

oɔɯǝɹ
la source
4
Merci! Je voterais. Mais, hélas, ma réputation est celle d'un enfant.
James Graham
7
Euh, 10000000 (128)c'est le notde 01111111 (127). "Opposé" n'est pas une opération peu sage et n'a aucun sens dans un tel contexte.
Chris S
Je soupçonne que les valeurs au niveau du bit des adresses sont circonstancielles et n'ont aucune signification faisant autorité dans le choix de 127 comme bloc de réseau de bouclage.
Matthew Ife
6
@Mlfe la valeur au niveau du bit de 127 n'est pas circonstancielle: c'est la "dernière" adresse de classe A, qui ont toutes un bit de tête de 0.
KutuluMike