Warum ist der Localhost IP 127.0.0.1?

Geeks auf der ganzen Welt kennen ihren lokalen Host als 127.0.0.1, aber warum ist diese spezifische Adresse aller verfügbaren Adressen für den lokalen Host reserviert? Lesen Sie weiter, um mehr über die Geschichte der lokalen Hosts zu erfahren.

Bild von GMPhoenix; hier als Hintergrundbild erhältlich.

Die heutige Frage-Antwort-Sitzung wird uns mit freundlicher Genehmigung von SuperUser zur Verfügung gestellt - einer Unterteilung von Stack Exchange, einer Community-Drive-Gruppierung von Q & A-Websites.

Die Frage

Der SuperUser-Leser Roee Adler, der neugierig auf die Standard-IP des lokalen Hosts war, stellte der Community die folgende Frage:

Ich habe mich gefragt, woher die Entscheidung für die  localhostIP-Adresse stammt  127.0.0.1. Was ist die "Bedeutung" von  127? Was ist die "Bedeutung" von  0.0.1?

Was bedeutet das eigentlich? Es ist zwar möglich, Ihre gesamte geekige Existenz zu leben, ohne die Antwort auf diese Fragen zu kennen, aber wir sind bereit, uns darauf einzulassen.

Die Antworten

Mehrere Mitwirkende haben sich gemeldet, um Roees Frage zu beantworten. Jeder ihrer Beiträge hilft dabei, mehr Licht darauf zu werfen, wie 127.0.0.1 der Ort ist, den wir alle als Zuhause bezeichnen. John T schreibt:

127 ist die letzte Netzwerknummer in einem Netzwerk der Klasse A mit einer Subnetzmaske von  255.0.0.0127.0.0.1 ist die erste zuweisbare Adresse im Subnetz. 127.0.0.0 kann nicht verwendet werden, da dies die Drahtnummer wäre. Die Verwendung anderer Zahlen für den Host-Teil sollte jedoch einwandfrei funktionieren und zur Verwendung zurückkehren 127.0.0.1. Sie können es selbst versuchen, indem Sie pingen,  127.1.1.1 wenn Sie möchten. Warum haben sie bis zur letzten Netzwerknummer gewartet, um dies zu implementieren? Ich denke nicht, dass es dokumentiert ist.

Hyperslug führt einige Archivrecherchen durch, indem es alte Memoranden zu diesem Thema durchblättert:

Die früheste Erwähnung, die ich in Bezug auf die Zuweisung von 127 als Loopback finden kann, ist der November 1986 RFC 990, verfasst von Reynolds und Postel:

Die Adresse Null ist als "dies" zu interpretieren, wie in "dieses Netzwerk".

Beispielsweise könnte die Adresse 0.0.0.37 so interpretiert werden, dass sie Host 37 in diesem Netzwerk bedeutet.

Der Netzwerknummer 127 der Klasse A 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 „gesendet“ wurde, sollte jemals in einem Netzwerk irgendwo erscheinen.

Bereits im September 1981 waren RFC 790, 0 und 127 reserviert:

000.rrr.rrr.rrr Reserviert [JBP] ... 127.rrr.rrr.rrr Reserviert [JBP]

0 und 127 waren 1981 die einzigen reservierten Klasse-A-Netzwerke. 0 wurde verwendet, um auf einen bestimmten Host zu verweisen, sodass 127 für Loopback übrig blieb.

Ich weiß, dass dies die Frage nicht beantwortet, aber das ist so weit zurück, wie ich graben konnte. Es wäre vielleicht sinnvoller gewesen, 1.0.0.0 für Loopback zu wählen, aber das wurde BBN Packet Radio Network bereits gegeben.

Obwohl wir alle 127.0.0.1 als Localhost kennen und lieben, ist es erwähnenswert, dass es nicht für immer der Localhost sein wird. In 127.0.0.1 wird der lokale Host in der IPv4-Kommunikation festgelegt. Wenn IPv6 langsam übernimmt, wird er durch eine viel intuitivere Nummer festgelegt: 0: 0: 0: 0: 0: 0: 0: 0: 1.

Haben Sie der Erklärung etwas hinzuzufügen? Ton aus in den Kommentaren. Möchten Sie weitere Antworten von anderen technisch versierten Stack Exchange-Benutzern lesen? Lesen Sie hier die vollständigen Diskussionsthreads.