Chi ha scelto 127.0.0.1 come localhost e perché? Che significato ha?


21

Sono quasi sicuro che tutti qui conoscano il significato di 127.0.0.1. Ma perché è sempre localhost? Chi ha scelto quell'IP arbitrario? Perché è stato scelto quell'IP? Perché non qualcosa di più semplice come 1.0.0.0? C'è qualche significato speciale per 127.0.0.1?


3
Cerca e troverai la RFC
SpacemanSpiff il

@SpacemanSpiff RFC?
James Graham,

4
Gli RFC ( Request For Comments ) sono i mattoni di base di Internet. Vedi la mia risposta di seguito per ulteriori informazioni.
Michael Hampton

Risposte:


41

Jon Postel ha scelto 127.

Prima che l' Internet Assigned Numbers Authority prendesse il controllo ( RFC 3232 ) intorno al momento della sua morte ( RFC 2468 ), era lo "zar" degli indirizzi Internet e delle assegnazioni di porte, avendo essenzialmente nominato se stesso per il compito. ( RFC 349 )

All'inizio degli anni '80, quando IPv4, come sappiamo, era stato sottoposto a hash, le reti esistenti ricevettero blocchi di indirizzi di "classe A" nello spazio degli indirizzi a 32 bit che sarebbero entrati in vigore nel 1983 ( RFC 801 ). Sia i compiti iniziali che i 127 incarichi richiesti, così come le prime definizioni degli indirizzi IP di "classe A", "classe B" e "classe C", sono stati pubblicati per la prima volta nella RFC 790 di Postel . (Si noti che le "classi" sono state sostituite dal CIDR in RFC 1519 , ora RFC 4632. )

In RFC 790, Postel ha definito 127 come "riservato".

      127.rrr.rrr.rrr                 Reserved                     [JBP]

La sua prima definizione formale appare in RFC 990 , dove è definita come segue:

Alla classe di rete A numero 127 viene assegnata la funzione "loopback", ovvero un datagramma inviato da un protocollo di livello superiore a un indirizzo di rete 127 dovrebbe tornare indietro all'interno dell'host. Nessun datagramma "inviato" a un indirizzo di rete 127 dovrebbe mai apparire su qualsiasi rete ovunque.

E ancora in RFC 1060 :

(g) {127, <any>}

Indirizzo di loopback dell'host interno. Non dovrebbe mai apparire all'esterno di un host.

Pertanto, qualsiasi indirizzo all'interno di 127.0.0.0/8 deve essere considerato loopback e reindirizzato all'host locale.

L'attuale elenco di indirizzi IPv4 per uso speciale è RFC 6890 , che ha obsoleto RFC 5735 , che a sua volta ha obsoleto RFC 3330 . RFC 5735 afferma:

127.0.0.0/8 - Questo blocco è assegnato per l'uso come indirizzo di loopback dell'host Internet. Un datagramma inviato da un protocollo di livello superiore a un indirizzo in qualsiasi punto di questo blocco ritorna all'interno dell'host. Questo è normalmente implementato usando solo 127.0.0.1/32 per il loopback. Come descritto in [RFC1122], Sezione 3.2.1.3 , gli indirizzi all'interno dell'intero blocco 127.0.0.0/8 non compaiono legittimamente su nessuna rete.

Infine, in qualsiasi sottorete IPv4 , l'indirizzo più basso non è utilizzabile in quanto rappresenta il percorso di rete. Quindi il primo indirizzo utilizzabile nella sottorete, e quindi il più comunemente visto, è 127.0.0.1.


28

Dalla RFC :

127.0.0.0/8 - Questo blocco è assegnato per l'uso come indirizzo di loopback dell'host Internet. Un datagramma inviato da un protocollo di livello superiore a un indirizzo in un punto qualsiasi di questo blocco dovrebbe tornare all'interno dell'host. Questo è normalmente implementato usando solo 127.0.0.1/32 per il loopback, ma nessun indirizzo all'interno di questo blocco dovrebbe mai apparire su nessuna rete ovunque [RFC1700, pagina 5].

Da Wikipedia :

Come per tutti gli indirizzi IP, la definizione di un nome host sinonimo semplifica la vita degli utenti umani e localhost è il pioniere della rete alias stabilito.

Si noti inoltre che 127 in binario è 01111111 , il valore invertito e invertito di 1 ( 00000001 )


4
Grazie! Vorrei votare in alto. Ma, ahimè, la mia reputazione è quella di un bambino.
James Graham,

7
Ehm, 10000000 (128)è il notdi 01111111 (127). "Di fronte" non è un'operazione un po 'saggia e non ha senso in un simile contesto.
Chris S,

Sospetto che i valori bit a bit degli indirizzi siano circostanziali e non abbiano alcun significato autorevole nella scelta di 127 come blocco di rete di loopback.
Matthew Ife,

6
@Mlfe il valore bit a bit di 127 non è circostanziale: è l '"ultimo" indirizzo di classe A, che hanno tutti un bit iniziale di 0.
KutuluMike
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.