Miks on Localhost IP 127.0.0.1?

Geeksid tunnevad kogu maailmas oma kohalikku hostit kui 127.0.0.1, kuid miks on see konkreetne aadress kõigist saadaolevatest aadressidest reserveeritud kohalikule hostile? Loe edasi, et süveneda kohalike võõrustajate ajalukku.

GMPhoenixi pilt; saadaval taustpildina siin.

Tänane küsimuste ja vastuste seanss tuleb meile SuperUseri nõusolekul - see on Stack Exchange'i alajaotus, mis on kogukondlik draiver Q&A veebisaitidel.

Küsimus

SuperUseri lugeja Roee Adler, kes on huvitatud localhost vaikeprogrammist, esitas kogukonnale järgmise küsimuse:

Mõtlesin, mis on otsuse langetamise päritolukohalik hostIP-aadress127.0.0.1. Mis on “tähendus”127? mis on “tähendus”0.0.1?

Mis on tegelikult tähendus? Ehkki on võimalik kogu oma geeky eksistents välja elada, teadmata neile küsimustele vastust, oleme valmis uurima.

Vastused

Roee küsimusele vastamiseks astusid üles mitmed kaastöötajad. Igaüks nende panusest aitab rohkem valgustada, kuidas 127.0.0.1 on koht, mida me kõik koduks kutsume. John T kirjutab:

127 on viimane võrgu number A-klassi võrgus, mille alamvõrgu mask on255.0.0.0127.0.0.1 on alamvõrgus esimene määratav aadress.127.0.0.0 ei saa kasutada, sest see oleks traadi number. Kuid mis tahes muude numbrite kasutamine hostiosa jaoks peaks toimima hästi ja pöörduma tagasi kasutamise poole127.0.0.1. Pingitades saate seda ise proovida127.1.1.1 kui soovite. Miks nad selle rakendamiseks viimase võrgunumbrini ootasid? Ma arvan, et see pole dokumenteeritud.

Hyperslug teeb mõned arhiivid, kaevates läbi vanad memorandumid sellel teemal:

Varasem mainimine, mis puudutab 127 ülesande tagasisidet, on 1986. aasta novembri RFC 990, autorid Reynolds ja Postel:

Aadressi nulli tuleb tõlgendada tähendusega „see”, nagu ka „selles võrgus”.

Näiteks aadressi 0.0.0.37 võib tõlgendada kui selle võrgu hosti 37.

Klass A võrgunumbrile 127 määratakse funktsioon "loopback", see tähendab, et datagramm, mille kõrgema taseme protokoll saadab võrgu 127 aadressile, peaks ringlema tagasi hostis. Ühtegi võrgu 127 aadressile „saadetud” datagrammi ei tohiks kunagi kusagil võrgus ilmuda.

Isegi juba 1981. aasta septembris olid RFC 790, 0 ja 127 juba reserveeritud:

000.rrr.rrr.rrr reserveeritud [JBP] ... 127.rrr.rrr.rrr reserveeritud [JBP]

0 ja 127 olid 1981. aastaks ainsad reserveeritud A-klassi võrgud. 0-d kasutati konkreetsele hostile osutamiseks, nii et 127 jäeti tagasiside jaoks.

Ma tean, et see ei vasta küsimusele, kuid see on nii kaugele tagasi, kui ma suutsin kaevata. Võib-olla oleks olnud mõttekam valida tagasisideks 1.0.0.0, kuid see anti juba BBN pakettraadiosidevõrgule.

Kuigi me kõik tunneme ja armastame 127.0.0.1 kui kohalikku hostimist, tasub märkida, et see ei ole igavesti kohalik host. 127.0.0.1 on see, kuidas kohalik host määratakse IPv4-sides ja kui IPv6 aeglaselt üle võtab, tähistab seda palju intuitiivsem number: 0: 0: 0: 0: 0: 0: 0: 1.

Kas teil on selgitusele midagi lisada? Heli kommentaarides välja. Kas soovite lugeda rohkem vastuseid teistelt tehnikatarkust pakkuvatelt Stack Exchange'i kasutajatelt? Tutvuge täielike arutelulõngadega siin.