Varför är Localhost IP 127.0.0.1?
Geeks världen över känner till sin lokala värd som 127.0.0.1, men varför är den specifika adressen, av alla tillgängliga adresser, reserverade för den lokala värd? Läs vidare för att dyka in i historien om lokala värdar.
Bild av GMPhoenix; tillgänglig som bakgrundsbild här.
Dagens Question & Answer-session kommer till oss med tillstånd av SuperUser-en indelning av Stack Exchange, en community-drive-gruppering av Q & A-webbplatser.
Frågan
SuperUser-läsare Roee Adler, nyfiken på standard localhost-IP, ställde följande fråga till samhället:
Jag undrade vad som är beslutets ursprung att göra
lokal värd
s IP-adress127.0.0.1
. Vad är meningen med127
? vad är meningen med0.0.1
?
Vad är meningen, faktiskt? Medan det är möjligt att leva ut hela din geekiska existens utan att veta svaret på dessa frågor, är vi redo att gräva i.
Svaren
Flera bidragsgivare slog in för att svara på Roes fråga, varje bidrag bidrar till att ge mer ljus på hur 127.0.0.1 är den plats vi alla kallar hemma. John T skriver:
127 är det sista nätverksnumret i ett klass A-nätverk med en subnätmask av
255.0.0.0
.127.0.0.1
är den första tilldelningsadressen i delnätet.127.0.0.0
kan inte användas eftersom det skulle vara trådnummeret. Men med hjälp av andra nummer för värddelen ska det fungera bra och återgå till att använda127.0.0.1
. Du kan prova det själv genom att pinga127.1.1.1
om du vill. Varför väntade de tills det sista nätverksnumret för att genomföra detta? Jag tycker inte att det är dokumenterat.
Hyperslug gör några arkivhjul genom att gräva igenom gamla memorandum om ämnet:
Tidigast omnämnande kan jag hitta om 127: s uppdrag som loopback är november 1986 RFC 990 författad av Reynolds och Postel:
Adress noll ska tolkas som "detta", som i "det här nätverket".
Till exempel kan adressen 0,0.0.37 tolkas som värd värd 37 på detta nätverk.
...
Klass A-nätverksnummer 127 tilldelas "loopback" -funktionen, det vill säga ett datagram som skickas av ett högre nivåprotokoll till ett nätverk 127 adress ska slingas tillbaka inuti värden. Inget datagram "skickas" till ett nätverk 127 adress ska någonsin visas på vilket nätverk som helst.
Redan i september 1981 var RFC 790, 0 och 127 redan reserverade:
000.rrr.rrr.rrr Reserverad [JBP] ... 127.rrr.rrr.rrr Reserverad [JBP]0 och 127 var de enda reserverade klass A-näten senast 1981. 0 användes för att peka på en viss värd, så att den lämnade 127 för loopback.
Jag vet att det här inte svarar på frågan, men det är så långt tillbaka som jag kunde gräva. Det kan ha gjort mer mening att välja 1.0.0.0 för loopback men det var redan givit BBN Packet Radio Network.
Medan vi alla känner och älskar 127.0.0.1 som lokala värd, är det värt att notera att det inte kommer att vara lokalhosten för alltid. 127.0.0.1 är hur lokalhosten är utsedd i IPv4-kommunikation och, som IPv6 sakta tar över, kommer den att betecknas med ett mycket mer intuitivt nummer: 0: 0: 0: 0: 0: 0: 0: 1.
Har du något att lägga till förklaringen? Ljud av i kommentarerna. Vill du läsa mer svar från andra tech-savvy Stack Exchange-användare? Kolla in hela diskussionsgruppen här.