Защо Localhost IP 127.0.0.1?

Отрепки по целия свят познават местния си хост като 127.0.0.1, но защо този конкретен адрес от всички налични адреси е запазен за локалния хост? Прочетете, за да се задълбочите в историята на местните домакини.

Изображение от GMPhoenix; наличен като тапет тук.

Днешната сесия „Въпроси и отговори“ идва при нас с любезното съдействие на SuperUser - подразделение на Stack Exchange, обединяващо групиране от уеб сайтове с въпроси и отговори.

Въпроса

Читателят на SuperUser Roee Adler, любопитен към IP адреса на localhost по подразбиране, зададе следния въпрос на общността:

Чудех се какъв е произходът на решението за вземане  localhostна IP адрес  127.0.0.1. Какво е „значението“ на  127? какво е „значението“ на  0.0.1?

Какво всъщност е значението? Въпреки че е възможно да изживеете цялото си отвратително съществуване, без да знаете отговора на тези въпроси, ние сме готови да разровим.

Отговорите

Няколко сътрудници се включиха, за да отговорят на въпроса на Roee, всеки от техните приноси помага да се хвърли повече светлина върху това как 127.0.0.1 е мястото, което всички наричаме дом. Джон Т пише:

127 е последният мрежов номер в мрежа от клас А с маска на подмрежата от  255.0.0.0127.0.0.1 е първият адресируем адрес в подмрежата. 127.0.0.0 не може да се използва, защото това би бил номерът на проводника. Но използването на други номера за хост частта трябва да работи добре и да се върне към използване 127.0.0.1. Можете да опитате сами, като пингнете,  127.1.1.1 ако искате. Защо изчакаха до последния номер на мрежата, за да приложат това? Не мисля, че е документирано.

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

Най-ранното споменаване, което мога да намеря по отношение на заданието на 127 като обратна връзка е ноември 1986 г. RFC 990, автор на Рейнолдс и Постел:

Нулевият адрес трябва да се тълкува в смисъл „това“, както в „тази мрежа“.

Например адресът 0.0.0.37 може да се интерпретира като означаващ хост 37 в тази мрежа.

...

Мрежовият номер клас 127 се присвоява на функцията „loopback”, т.е. дейтаграма, изпратена от протокол от по-високо ниво до адрес на мрежа 127, трябва да се върне обратно в хоста. Никоя датаграма, изпратена до адрес на мрежа 127, не бива да се появява във всяка мрежа.

Още през септември 1981 г. RFC 790, 0 и 127 вече бяха запазени:

000.rrr.rrr.rrr Запазено [JBP] ... 127.rrr.rrr.rrr Запазено [JBP]

0 и 127 бяха единствените запазени мрежи от клас А към 1981 г. 0 беше използван за насочване към конкретен хост, така че остави 127 за обратна връзка.

Знам, че това не отговаря на въпроса, но това е толкова назад, колкото можех да копая. Може да е имало по-голям смисъл да изберете 1.0.0.0 за обратна връзка, но това вече е дадено на BBN Packet Radio Network.

Въпреки че всички знаем и обичаме 127.0.0.1 като localhost, заслужава да се отбележи, че той няма да бъде localhost завинаги. 127.0.0.1 е начинът, по който localhost е обозначен в IPv4 комуникациите и, когато IPv6 бавно поеме, той ще бъде обозначен с много по-интуитивно число: 0: 0: 0: 0: 0: 0: 0: 1.

Имате какво да добавите към обяснението? Звук в коментарите. Искате ли да прочетете повече отговори от други технически интелигентни потребители на Stack Exchange? Вижте пълните дискусионни теми тук.