Почему IP-адрес Localhost 127.0.0.1?

Гики во всем мире знают свой локальный хост как 127.0.0.1, но почему этот конкретный адрес из всех доступных адресов зарезервирован для локального хоста? Читайте дальше, чтобы погрузиться в историю местных хозяев.

Изображение GMPhoenix; доступны в качестве обоев здесь.

Сегодняшняя сессия вопросов и ответов предоставлена ​​нам благодаря SuperUser - подразделению Stack Exchange, группы веб-сайтов вопросов и ответов, созданной сообществом.

Вопрос

Читатель SuperUser Рои Адлер, заинтересовавшись IP-адресом localhost по умолчанию, задал сообществу следующий вопрос:

Мне было интересно, каково происхождение решения о  localhostвыборе IP-адреса России  127.0.0.1. В чем «смысл»  127? в чем «смысл»  0.0.1?

Действительно, в чем смысл? Хотя можно прожить всю свою странную жизнь, не зная ответа на эти вопросы, мы готовы копнуть.

Ответы

Несколько участников предложили ответить на вопрос Рои, каждый из которых помогает пролить свет на то, как 127.0.0.1 - это место, которое мы все называем своим домом. Джон Т пишет:

127 - это последний номер сети в сети класса A с маской подсети  255.0.0.0127.0.0.1 - это первый назначаемый адрес в подсети. 127.0.0.0 нельзя использовать, потому что это будет номер провода. Но использование любых других номеров для хост-части должно работать нормально и вернуться к использованию 127.0.0.1. Вы можете попробовать это сами, выполнив pinging,  127.1.1.1 если хотите. Почему они дождались последнего номера сети, чтобы реализовать это? Я не думаю, что это задокументировано.

Hyperslug проводит поиск в архивах, копаясь в старых меморандумах на эту тему:

Самое раннее упоминание о назначении 127 в качестве обратной связи, которое я могу найти, - это RFC 990 от ноября 1986 года, созданный Рейнольдсом и Постелем:

Нулевой адрес следует интерпретировать как означающий «это», например «эта сеть».

Например, адрес 0.0.0.37 можно интерпретировать как обозначающий хост 37 в этой сети.

Сетевому номеру 127 класса A назначается функция «обратной связи», то есть дейтаграмма, отправляемая протоколом более высокого уровня на адрес сети 127, должна возвращаться обратно внутри хоста. Никакая дейтаграмма, «отправленная» на адрес сети 127, никогда не должна появляться ни в какой сети где-либо.

Еще в сентябре 1981 года RFC 790, 0 и 127 были уже зарезервированы:

000.rrr.rrr.rrr Зарезервировано [JBP] ... 127.rrr.rrr.rrr Зарезервировано [JBP]

К 1981 г. 0 и 127 были единственными зарезервированными сетями класса A. 0 использовалось для указания на конкретный хост, так что оставалось 127 для кольцевой проверки.

Я знаю, что это не отвечает на вопрос, но это все, что я мог копать. Возможно, было бы разумнее выбрать 1.0.0.0 для кольцевой проверки, но это уже было предоставлено BBN Packet Radio Network.

Хотя все мы знаем и любим 127.0.0.1 как локальный хост, стоит отметить, что он не будет локальным навсегда. 127.0.0.1 - это то, как локальный хост обозначается в IPv4-коммуникациях, и, поскольку IPv6 постепенно берет верх, он будет обозначаться гораздо более интуитивным числом: 0: 0: 0: 0: 0: 0: 0: 1.

Есть что добавить к объяснению? Отключи в комментариях. Хотите узнать больше ответов от других технически подкованных пользователей Stack Exchange? Ознакомьтесь с полными обсуждениями здесь.