Назад | Перейти на главную страницу

Кто выбрал 127.0.0.1 в качестве localhost и почему? Что это значит?

Я почти уверен, что все здесь знают значение 127.0.0.1. Но почему это ВСЕГДА localhost? Кто выбрал этот произвольный IP-адрес? Почему был выбран этот IP-адрес? Почему бы не что-нибудь попроще, например 1.0.0.0? Есть ли какое-то особое значение в 127.0.0.1?

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

Перед Управление по присвоению номеров в Интернете взял на себя (RFC 3232) примерно во время его смерти (RFC 2468), он был «царем» назначения интернет-адресов и портов, по сути выдвинув себя для этой задачи. (RFC 349)

Еще в начале 1980-х, когда IPv4 в том виде, в каком мы его знаем, впервые подвергался хэшированию, существующим сетям были предоставлены блоки адресов «класса A» в 32-битном адресном пространстве, которые вступили в силу в 1983 году (RFC 801). И начальные назначения, и назначение 127, о котором вы спрашиваете, а также первые определения IP-адресов «класса A», «класса B» и «класса C» были впервые опубликованы в Postel RFC 790. (Обратите внимание, что "классы" были заменены CIDR в RFC 1519, сейчас RFC 4632.)

В RFC 790 Postel определил 127 как «зарезервировано».

      127.rrr.rrr.rrr                 Reserved                     [JBP]

Его первое формальное определение появляется в RFC 990, где определяется следующим образом:

Сетевому номеру 127 класса A назначается функция «обратной связи», то есть дейтаграмма, отправляемая протоколом более высокого уровня на адрес сети 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.

Из RFC:

127.0.0.0/8 - этот блок предназначен для использования в качестве адреса обратной связи узла Интернета. Дейтаграмма, отправленная протоколом более высокого уровня на адрес в любом месте этого блока, должна возвращаться внутри хоста. Обычно это реализуется с использованием только 127.0.0.1/32 для обратной связи, но никакие адреса в этом блоке никогда не должны появляться ни в какой сети где-либо [RFC1700, стр. 5].

Из википедия:

Как и в случае со всеми IP-адресами, определение синонимичного имени хоста просто упрощает жизнь пользователям-людям, а localhost - это псевдоним, на котором остановились пионеры сети.

Также обратите внимание, что 127 в двоичном формате 01111111, перевернутое и инвертированное значение 1 (00000001)