Mengapa IP Localhost 127.0.0.1?

Geeks di seluruh dunia mengetahui hos tempatan mereka sebagai 127.0.0.1, tetapi mengapa alamat khusus itu, dari semua alamat yang tersedia, disediakan untuk tuan rumah tempatan? Teruskan membaca untuk mengetahui sejarah tuan rumah tempatan.

Gambar oleh GMPhoenix; boleh didapati sebagai kertas dinding di sini.

Sesi Pertanyaan & Jawapan hari ini diberikan kepada kami oleh SuperUser — subdivisi Stack Exchange, kumpulan laman web Q&A yang mendorong masyarakat.

Soalan

Pembaca SuperUser Roee Adler, penasaran dengan IP localhost lalai, mengemukakan soalan berikut kepada masyarakat:

Saya tertanya-tanya apa asal keputusan membuat  localhostalamat IP  127.0.0.1. Apa maksudnya  127? apa maksudnya  0.0.1?

Apa maksudnya? Walaupun ada kemungkinan untuk menghayati keseluruhan keberadaan anda yang tidak mengetahui jawapan kepada soalan-soalan itu, kami bersedia untuk mencarinya.

Jawapannya

Beberapa penyumbang berusaha untuk menjawab soalan Roee, masing-masing sumbangan mereka membantu menjelaskan bagaimana 127.0.0.1 adalah tempat yang kita semua panggil pulang. John T menulis:

127 adalah nombor rangkaian terakhir dalam rangkaian kelas A dengan subnet mask  255.0.0.0127.0.0.1 adalah alamat pertama yang boleh diberikan dalam subnet. 127.0.0.0 tidak boleh digunakan kerana itu adalah nombor wayar. Tetapi menggunakan nombor lain untuk bahagian host harus berfungsi dengan baik dan kembali ke penggunaan 127.0.0.1. Anda boleh mencubanya sendiri dengan melakukan ping  127.1.1.1 jika mahu. Mengapa mereka menunggu hingga nombor rangkaian terakhir untuk melaksanakannya? Saya rasa ia tidak didokumentasikan.

Hyperslug melakukan beberapa arkib dengan menggali memorandum lama mengenai perkara ini:

Penyebutan paling awal yang dapat saya dapati mengenai tugas 127 sebagai loopback adalah November 1986 RFC 990 yang dikarang oleh Reynolds dan Postel:

Alamat nol harus ditafsirkan sebagai makna "ini", seperti dalam "jaringan ini".

Sebagai contoh, alamat 0.0.0.37 dapat ditafsirkan sebagai makna host 37 di rangkaian ini.

Nombor rangkaian kelas A 127 diberikan fungsi "loopback", iaitu, datagram yang dihantar oleh protokol tahap yang lebih tinggi ke alamat rangkaian 127 harus kembali ke dalam host. Tidak ada datagram yang "dikirim" ke alamat jaringan 127 yang seharusnya muncul di mana-mana rangkaian di mana sahaja.

Walaupun pada awal September 1981, RFC 790, 0 dan 127 sudah ditempah:

000.rrr.rrr.rrr Terpelihara [JBP] ... 127.rrr.rrr.rrr Terpelihara [JBP]

0 dan 127 adalah satu-satunya rangkaian Kelas A yang diperuntukkan pada tahun 1981. 0 digunakan untuk menunjuk ke host tertentu, sehingga kiri 127 untuk loopback.

Saya tahu ini tidak menjawab soalan, tetapi ini adalah sejauh yang saya dapat menggali. Mungkin lebih masuk akal untuk memilih 1.0.0.0 untuk loopback tetapi itu sudah diberikan kepada BBN Packet Radio Network.

Walaupun kita semua tahu dan menyukai 127.0.0.1 sebagai localhost, perlu diingat bahawa ia tidak akan menjadi localhost selamanya 127.0.0.1 adalah bagaimana localhost ditunjuk dalam komunikasi IPv4 dan, ketika IPv6 perlahan-lahan mengambil alih, ia akan ditentukan oleh nombor yang jauh lebih intuitif: 0: 0: 0: 0: 0: 0: 0: 1.

Ada yang perlu ditambah dengan penjelasannya? Bunyi dalam komen. Ingin membaca lebih banyak jawapan daripada pengguna Stack Exchange yang mahir berteknologi lain? Lihat utas perbincangan lengkap di sini.