Хто вибрав 127.0.0.1 для локального прийому і чому? Яке значення він має?


21

Я майже впевнений, що всі знають значення 127.0.0.1. Але чому це ЗАВЖДИ локальний господар? Хто вибрав цей довільний IP? Чому був обраний ІР? Чому б не щось більш просте, наприклад 1.0.0.0? Чи є якесь особливе значення для 127.0.0.1?


3
Знайдіть і ви знайдете RFC
SpacemanSpiff

@SpacemanSpiff RFC?
Джеймс Грем

4
RFC ( Запит коментарів ) є основними складовими частинами Інтернету. Дивіться мою відповідь нижче для отримання додаткової інформації.
Майкл Хемптон

Відповіді:


41

Джон Постель вибрав 127.

До того, як Інтернетна служба присвоєння номерів взяла на озброєння ( RFC 3232 ) приблизно в момент смерті ( RFC 2468 ), він був «царем» Інтернет-адреси та присвоєння портів, по суті призначивши себе за це завдання. ( RFC 349 )

Ще на початку 1980-х, коли IPv4, як ми знаємо, вперше було вимкнено, існуючим мережам було надано блоки адрес "класу А" у 32-бітному адресному просторі, який набуде чинності у 1983 році ( RFC 801 ). І початкові завдання, і 127 завдання, про які ви запитуєте, а також перші визначення IP-адрес "класу А", "класу В" та "класу С" вперше були опубліковані в RFC 790 Postel . (Зауважте, що "класи" були замінені CIDR в RFC 1519 , зараз RFC 4632. )

У RFC 790 Postel 127 визначав як "зарезервований".

      127.rrr.rrr.rrr                 Reserved                     [JBP]

Перше його формальне визначення з'являється в RFC 990 , де воно визначається наступним чином:

Мережі класу А класу 127 присвоюється функція "зворотного звороту", тобто дейтаграма, що надсилається протоколом вищого рівня на мережеву адресу 127, повинна повертатися назад всередині хоста. Жодна дейтаграма, "надіслана" за мережевою адресою 127, ніколи не повинна з’являтися в будь-якій мережі.

І знову в RFC 1060 :

(g) {127, <всі>}

Внутрішня адреса петлі хосту. Ніколи не повинен з’являтися поза хостом.

Таким чином, будь-яка адреса в межах 127.0.0.0/8 повинна вважатись зворотною ланкою і переадресовуватись на місцевий хост.

Поточний перелік IPv4 адрес спеціального призначення - це RFC 6890 , який застарів RFC 5735 , що в свою чергу застаріло RFC 3330 . RFC 5735 заявляє:

127.0.0.0/8 - Цей блок призначений для використання як адреса зворотного зв'язку з хостом в Інтернеті. Данаграма, що надсилається протоколом вищого рівня на адресу в будь-якій точці цього блоку, повертається всередину хоста. Зазвичай це реалізується, використовуючи лише 127.0.0.1/32 для зворотного зв'язку. Як описано в [RFC1122], Розділ 3.2.1.3 , адреси в усьому блоці 127.0.0.0/8 не можуть законно відображатися в будь-якій мережі.

Нарешті, у будь-якій підмережі IPv4 найнижчу адресу не можна використовувати, оскільки вона представляє мережевий маршрут. Отже, першою корисною адресою в підмережі, і тому найбільш часто зустрічається, є 127.0.0.1.


28

Від RFC :

127.0.0.0/8 - Цей блок призначений для використання в якості адреси зворотного зв'язку з хостом в Інтернеті. Данаграма, що надсилається протоколом вищого рівня на адресу в будь-якому місці цього блоку, повинна повертатися назад всередині хоста. Зазвичай це реалізується, використовуючи лише 127.0.0.1/32 для зворотного зв'язку, але жодна адреса в цьому блоці ніколи не повинна з’являтися в будь-якій мережі будь-де [RFC1700, стор. 5].

З Вікіпедії :

Як і у всіх IP-адресах, визначення синонімічного імені хоста просто полегшує життя користувачам - а localhost - це псевдонім мережевих піонерів.

Також зауважте, що 127 у двійковій формі становить 01111111 , зворотне та перевернене значення 1 ( 00000001 )


4
Дякую! Я б проголосував. Але, на жаль, моя репутація - це дитина.
Джеймс Грем

7
Е, 10000000 (128)це notз 01111111 (127). "Протилежне" не є трохи розумною операцією і не має сенсу в такому контексті.
Chris S

Я підозрюю, що побитові значення адрес є косвенними і не мають авторитетного значення, коли вибір 127 є блоком мережі петлі.
Метью Іфе

6
@Mlfe порозрядне значення 127 не є навколишнім: це "остання" адреса класу A, у якої всі біти провідні 0.
KutuluMike
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.