127 ist die letzte Netzwerknummer in einem Klasse-A-Netzwerk mit einer Subnetzmaske von 255.0.0.0
. 127.0.0.1
ist die erste zuweisbare Adresse im Subnetz. 127.0.0.0
kann nicht verwendet werden, da dies die Drahtnummer ist. Die Verwendung anderer Zahlen für den Host-Teil sollte jedoch funktionieren und zur Verwendung zurückkehren 127.0.0.1
. Sie können es selbst ausprobieren, indem Sie einen Ping-Befehl machen, 127.1.1.1
wenn Sie möchten. Warum haben sie bis zur letzten Netzwerknummer gewartet, um dies zu implementieren? Ich glaube nicht, dass es dokumentiert ist.
Warum ist localhost IP 127.0.0.1?
Ich habe mich gefragt, woher die Entscheidung stammt, die localhost
IP-Adresse festzulegen 127.0.0.1
. Was ist die "Bedeutung" von 127
? Was ist die "Bedeutung" von 0.0.1
?
6 Antworten auf die Frage
- Beliebte
- Neu
- Mit Kommentaren
- Aktiv
Die früheste Erwähnung, die ich bezüglich 127s Zuordnung als Loopback finden kann, ist November 1986 RFC 990, verfasst von Reynolds und Postel:
Die Adresse Null ist als "dieses" zu verstehen, wie in "dieses Netzwerk".
Zum Beispiel könnte die Adresse 0.0.0.37 als Host 37 in diesem Netzwerk interpretiert werden.
...
Der Klasse A-Netzwerknummer 127 wird die "Loopback" -Funktion zugewiesen, das heißt, ein Datagramm, das von einem Protokoll einer höheren Ebene an eine Netzwerkadresse gesendet wird, sollte innerhalb des Hosts zurücklaufen. Kein Datagramm, das an eine Netzwerkadresse "127" 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 die einzigen reservierten Class-A-Netzwerke bis 1981. 0 wurde für das Verweisen auf einen bestimmten Host verwendet, sodass 127 für Loopback übrig blieb.
Ich weiß, das beantwortet die Frage nicht, aber das ist so weit zurück, wie ich es könnte. Es wäre vielleicht sinnvoller gewesen, 1.0.0.0 für Loopback zu wählen, dies wurde jedoch bereits an BBN Packet Radio Network übermittelt.
Die Designer des Internets wussten wirklich, wie die Hardware funktionierte, und sie wurden für eine einfache Implementierung konzipiert.
Die Werte 0, 127 und 255 sind speziell für die 8-Bit-Assemblierungs- und Maschinensprachen-Programmierung, da Sie mit Hilfe von "Tricks" auf diese Werte testen und mit kleineren Anweisungen, die schneller ausgeführt werden als andere Ganzzahlen, in anderen Code verzweigen können. 127 ist die höchste vorzeichenbehaftete 8-Bit-Ganzzahl. Wenn Sie die Zahl um 1 erhöhen, wird dies zu einem vorzeichenbehafteten Überlauf. In ähnlicher Weise führt das Inkrementieren von 255 zu einem vorzeichenlosen Überlauf. Wenn Sie lediglich den Wert 0 in ein Register laden, wird auf dem Chip normalerweise ein Null-Flag gesetzt. Stellen Sie sich das Netzwerkprogramm im Pseudocode folgendermaßen vor:
if (value == 0) doLocal(); if (value == 127) doLoopback(); if (value == 255) doNetwork();
Obwohl dies vom Chip abhängt, konnten die meisten Chips zu dieser Zeit diese Tests mit 2 Wörtern, 3 Wörtern bzw. 3 Wörtern (insgesamt 8 Wörter) codieren, und alle diese Tests würden wahrscheinlich alle in einem Taktzyklus ausgeführt. Die Verwendung eines anderen Wertes würde wahrscheinlich jeweils 4 Wörter (insgesamt 12 Wörter) erfordern, eine 50% ige Zunahme der Codegröße und wahrscheinlich eine um 50% höhere Ausführungszeit.
Wenn Sie darüber nachdenken, was eine localhost- oder loopback-IP-Adresse bedeutet, stellen Sie fest, dass Sie diese Adresse oder das Netzwerk, zu dem diese Adresse gehört, außerhalb eines Hosts nie sehen möchten. (In einem Host ist es zu dunkel, um es zu sehen. Entschuldigung an Mark Twain.)
Daher musste jemand ein IP-Netzwerk auswählen, um diese localhost-Adresse darzustellen. Ich kann mich nicht erinnern, wer sich zuerst dafür entschieden hat, aber es wird in der IETF Request for Comments angegeben, die regelmäßig als "Host-Anforderungen" ausgegeben wird.
Es wurde vor so langer Zeit gemacht, dass die Idee, eine komplette Klasse-A-Adresse zu "verschwenden", damals zu keinem Zeitpunkt in den Sinn kam.
Das Dienstprogramm von localhost besteht darin, dass Sie mit einer hartcodierten IP-Adresse mit sich selbst sprechen können. Es wurde lange vor dem Domain Name System verwendet. Sie können tatsächlich eine der gültigen 127.xxx-Adressen verwenden, aber niemand tut dies. Sie können 127 nicht als echtes Netzwerk verwenden, da der RFC "Router Requirements" (Routinganforderungen) das Routing dieses Netzwerks in keinem Internet zulässt.
Zunächst zeigt der gesamte 127.xxx-Bereich auf Ihren localhost.
127 im Binärformat ist "01111111". "11111111" = 255 und 0 sind reserviert, die Wahl liegt also auf der Hand :)
Als diese Standards erstellt wurden, waren Computer langsam und normalerweise auf 8-Bit-Register beschränkt. Der Vergleich von Zahlen mit Zahlen war sehr langsam, vor allem, wenn diese Zahlen von der Rückseite abgerufen werden mussten, und zwar WIRKLICH langsamer Speicher. Register, das heißt "CPU on Board" -Speicher waren wesentlich schneller.
Außerdem hatten diese alten Computer spezielle, schnellere Anweisungen, um "gleich Null", "anders als Null", "negative / positive Ganzzahl" zu erkennen (wo das Zeichen war ... raten Sie mal, das ganz linke Bit sieht jetzt eine Verbindung mit 127), das ist die Zahl mit allen binären "1", mit Ausnahme des linken Zeichens?).
Dies waren daher spezielle Zahlen, da es das Programmieren von Tricks war, um bei häufig durchgeführten Operationen eine Menge CPU-Zyklen einzusparen.
Sie würden niemals eine "IF CallerIP =" 0 "- Anweisung sehen, sondern eine" IF NotZero (CallerIP) "- Anweisung.
Sie können alte Installationsanweisungen wie "BEQ, BNE" (6502-CPUs) auf längere Erklärungen überprüfen. Auch überprüfen Sie diese Seite .
Schlussendlich:
Auf 0, 255 und 127 konnte mit einer schnellsten Anweisung geprüft werden. Noch mehr Hochsprachen wie C verfügen über Vergleichsfunktionen, die der Compiler intern zu einer einzigen Anweisung optimieren kann.
Die Programmierer der 70er und 80er Jahre haben wirklich großartige Architekturen mit äußerst knappen Ressourcen produziert. Hinter Standards wie der IP-Nummerierung gibt es viel Nachdenken und Genialität.
Verwandte Probleme
-
2
Erinnert sich Windows 7 Home Premium an Netzwerkfreigaben-Passwörter?
-
5
XP-Netzwerkverbindung ohne Neustart freigeben?
-
5
Wie richte ich Windows ein, 802.11 gegenüber 3G zu bevorzugen?
-
4
Gibt es eine Möglichkeit, den Scanner eines Multifunktionsdruckers gemeinsam zu nutzen?
-
3
Gibt es eine Möglichkeit, zwei Computer über USB anzuschließen?
-
3
Wie halten Sie mehrere Verbindungen zum Internet?
-
4
iPod-Touch zum Abspielen von Filmen vom PC auf der PS3?
-
2
Mac tritt der Windows-Arbeitsgruppe nicht bei
-
1
Wie kann ich die Sicherheit meines Portals erhöhen?
-
1
Wie vernetzt man Windows XP und Ubuntu Linux?