Wer hat 127.0.0.1 als Localhost ausgewählt und warum? Welche Bedeutung hat es?

21

Ich bin mir fast sicher, dass jeder hier die Bedeutung von 127.0.0.1 kennt. Aber warum ist das IMMER localhost? Wer hat diese willkürliche IP ausgewählt? Warum wurde diese IP ausgewählt? Warum nicht etwas Einfacheres wie 1.0.0.0? Hat 127.0.0.1 eine besondere Bedeutung?

James Graham
quelle
3
Sucht und ihr werdet den RFC
SpacemanSpiff am
@SpacemanSpiff RFC?
James Graham
4
RFCs ( Request For Comments ) sind die Grundbausteine ​​des Internets. Siehe meine Antwort unten für mehr.
Michael Hampton

Antworten:

41

Jon Postel wählte 127 aus.

Bevor die Internet Assigned Numbers Authority ( RFC 3232 ) zum Zeitpunkt seines Todes ( RFC 2468 ) die Macht übernahm , war er der "Zar" für die Zuweisung von Internetadressen und -ports, nachdem er sich im Wesentlichen für diese Aufgabe nominiert hatte. ( RFC 349 )

In den frühen 1980er Jahren, als IPv4, wie wir es kennen, zum ersten Mal gehasht wurde, erhielten vorhandene Netzwerke Adressblöcke der Klasse A im 32-Bit-Adressraum, die 1983 in Kraft treten sollten ( RFC 801 ). Sowohl die anfänglichen Zuweisungen als auch die 127 Zuweisungen, nach denen Sie fragen, sowie die ersten Definitionen der IP-Adressen "Klasse A", "Klasse B" und "Klasse C" wurden erstmals im RFC 790 von Postel veröffentlicht . (Beachten Sie, dass "Klassen" in RFC 1519 , jetzt RFC 4632, von CIDR abgelöst wurden .)

In RFC 790 definierte Postel 127 als "reserviert".

      127.rrr.rrr.rrr                 Reserved                     [JBP]

Die erste formale Definition findet sich in RFC 990 und ist wie folgt definiert:

Der Klasse-A-Netzwerknummer 127 wird die "Loopback" -Funktion zugewiesen, dh ein Datagramm, das von einem übergeordneten Protokoll an eine Netzwerkadresse 127 gesendet wird, sollte innerhalb des Hosts zurückgeschleift werden. Kein Datagramm, das an eine Netzwerkadresse 127 "gesendet" wurde, sollte jemals in einem Netzwerk irgendwo auftauchen.

Und noch einmal in RFC 1060 :

(g) {127, <any>}

Interne Host-Loopback-Adresse. Sollte niemals außerhalb eines Hosts erscheinen.

Daher ist jede Adresse innerhalb von 127.0.0.0/8 als Loopback zu betrachten und an den lokalen Host zurückzuleiten.

Die aktuelle Liste der IPv4-Adressen für spezielle Verwendungszwecke lautet RFC 6890 und hat RFC 5735 und RFC 3330 veraltet . RFC 5735 besagt:

127.0.0.0/8 - Dieser Block wird zur Verwendung als Loopback-Adresse des Internet-Hosts zugewiesen. Ein Datagramm, das von einem übergeordneten Protokoll an eine beliebige Adresse in diesem Block gesendet wird, kehrt im Host zurück. Dies wird normalerweise nur mit 127.0.0.1/32 für Loopback implementiert. Wie in [RFC1122], Abschnitt 3.2.1.3 beschrieben , werden Adressen im gesamten 127.0.0.0/8-Block in keinem Netzwerk legitim angezeigt .

Schließlich kann in keinem IPv4-Subnetz die niedrigste Adresse verwendet werden, da sie die Netzwerkroute darstellt. Die erste verwendbare Adresse im Subnetz und daher die am häufigsten verwendete Adresse ist 127.0.0.1.

Michael Hampton
quelle
28

Aus dem RFC :

127.0.0.0/8 - Dieser Block wird zur Verwendung als Loopback-Adresse des Internet-Hosts zugewiesen. Ein Datagramm, das von einem übergeordneten Protokoll an eine beliebige Adresse innerhalb dieses Blocks gesendet wird, sollte innerhalb des Hosts zurückgeschleift werden. Dies wird normalerweise nur mit 127.0.0.1/32 für Loopback implementiert, aber in keinem Netzwerk sollten Adressen innerhalb dieses Blocks jemals irgendwo auftauchen [RFC1700, Seite 5].

Aus Wikipedia :

Wie bei allen IP-Adressen erleichtert die Definition eines synonymen Hostnamens den menschlichen Benutzern das Leben - und localhost ist der Alias, auf den sich die Netzwerkpioniere festgelegt haben.

Beachten Sie auch, dass 127 in binär 01111111 ist , der umgekehrte und invertierte Wert von 1 ( 00000001 ).

oɔɯǝɹ
quelle
4
Vielen Dank! Ich würde abstimmen. Aber leider ist mein Ruf der eines Kindes.
James Graham
7
Äh, 10000000 (128)ist das notvon 01111111 (127). "Gegenteil" ist keine bitweise Operation und macht in einem solchen Kontext keinen Sinn.
Chris S
Ich vermute, dass die bitweisen Werte der Adressen umständlich sind und keine maßgebliche Bedeutung bei der Wahl von 127 als Loopback-Netzwerkblock haben.
Matthew Ife
6
@Mlfe der bitweise Wert von 127 ist nicht zufällig: Es ist die "letzte" Klasse-A-Adresse, die alle ein führendes Bit von 0 haben.
KutuluMike