Я майже впевнений, що всі знають значення 127.0.0.1. Але чому це ЗАВЖДИ локальний господар? Хто вибрав цей довільний IP? Чому був обраний ІР? Чому б не щось більш просте, наприклад 1.0.0.0? Чи є якесь особливе значення для 127.0.0.1?
Я майже впевнений, що всі знають значення 127.0.0.1. Але чому це ЗАВЖДИ локальний господар? Хто вибрав цей довільний IP? Чому був обраний ІР? Чому б не щось більш просте, наприклад 1.0.0.0? Чи є якесь особливе значення для 127.0.0.1?
Відповіді:
Джон Постель вибрав 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.
Від RFC :
127.0.0.0/8 - Цей блок призначений для використання в якості адреси зворотного зв'язку з хостом в Інтернеті. Данаграма, що надсилається протоколом вищого рівня на адресу в будь-якому місці цього блоку, повинна повертатися назад всередині хоста. Зазвичай це реалізується, використовуючи лише 127.0.0.1/32 для зворотного зв'язку, але жодна адреса в цьому блоці ніколи не повинна з’являтися в будь-якій мережі будь-де [RFC1700, стор. 5].
З Вікіпедії :
Як і у всіх IP-адресах, визначення синонімічного імені хоста просто полегшує життя користувачам - а localhost - це псевдонім мережевих піонерів.
Також зауважте, що 127 у двійковій формі становить 01111111 , зворотне та перевернене значення 1 ( 00000001 )
10000000 (128)
це not
з 01111111 (127)
. "Протилежне" не є трохи розумною операцією і не має сенсу в такому контексті.