В чем разница между 0.0.0.0 и петлевым IP-адресом?

19

Из книги « Компьютерные сети» :

IP-адрес 0.0.0.0 , самый низкий адрес, используется хостами во время загрузки. Это означает «эта сеть» или «этот хост».

... Все адреса формы 127.xx.yy.zz зарезервированы для проверки по шлейфу. Пакеты, отправленные на этот адрес, не выводятся на провод; они обрабатываются локально и рассматриваются как входящие пакеты. Это позволяет отправлять пакеты на хост без того, чтобы отправитель знал его номер, что полезно для тестирования.

Если я прав, петлевой IP-адрес относится к текущему хосту.

В чем разница между 0.0.0.0 и петлевым IP-адресом?

Тим
источник
Комментарии не для расширенного обсуждения; этот разговор был перемещен в чат .
Рон Мопин

Ответы:

36

Заявление:

IP-адрес 0.0.0.0 [...] означает «эта сеть» или «этот хост».

вводит в заблуждение. Это не «или», а «этот хост в этой сети».

Из RFC1122 :

{0, 0}

             This host on this network.  MUST NOT be sent, except as
             a source address as part of an initialization procedure
             by which the host learns its own IP address.

Адрес обратной связи (фактически любой адрес в сети 127.0.0.0/8) объясняется в том же RFC следующим образом:

{127, любой}

             Internal host loopback address.  Addresses of this form
             MUST NOT appear outside a host.

Таким образом, и адрес обратной связи, и адрес с нулевым адресом могут называться «этот хост», но на самом деле они имеют очень разные применения:

  • адрес 0.0.0.0 можно наблюдать в сети, но только во время процесса DHCP / BOOTP и только как адрес источника.

  • Любой адрес в 127.0.0.0/8 нельзя просмотреть нигде в сети, и его можно использовать только для:

    • тестирование стека TCP / IP хоста.

    • два приложения на одном хосте, чтобы общаться вместе.

Адрес 127.XXX присоединен к интерфейсу обратной связи. К такому интерфейсу не прикреплен нижележащий уровень (т. Е. Он не привязан к канальному уровню). Пакет обрабатывается и отвечает на интернет-уровне. Таким образом, у этого пакета нет возможности достичь чего-либо за пределами хоста.

Но пакет, отправленный с 0.0.0.0, обычно обрабатывается сетевым стеком, за исключением того, что нет решения о маршрутизации, он привязан к интерфейсу, который инициализируется, поэтому он отправляется из этого интерфейса и проходит через канальный уровень (который может быть что-то еще, кроме Ethernet), то в сети.

JFL
источник
Другими словами, 0.0.0.0с точки зрения принимающей стороны это «я». 127адрес - это не ссылка на хост, а скорее симуляция внешнего хоста (хотя на самом деле он не внешний). Это верно ? В RFC также указывается «датаграмма, адрес источника которой не определяет один хост - например, нулевой адрес, адрес обратной связи». Поэтому, если я правильно понимаю, в отличие от других адресов, они не означают внешний хост на сети, но служат эталоном для разных вещей - для себя и своего рода «тест» хоста.
Сергей Колодяжный
Ваша цитата из части ICMP. В нем говорится, что ICMP недоступный не может быть отправлен на адрес 0. Такой ICMP-ответ должен был бы быть отправлен по адресу 0, что нарушало бы правило «НЕ ДОЛЖНО отправляться, кроме как в качестве адреса источника». Кроме того, адрес 0 не может использоваться, кроме как как часть процесса BOOTP / DHCP, который является широковещательным по своей природе, поэтому нет смысла отправлять сообщение об ошибке ICMP для широковещательной передачи.
JFL
@SergiyKolodyazhnyy отредактировал ответ
JFL
12

Если я прав, петлевой IP-адрес относится к текущему хосту.

Нет. Трафик, отправленный на адрес обратной связи, возвращается обратно в хост. Вы можете отправить трафик на адрес обратной связи в качестве адреса назначения, а затем прочитать его. Это полезно при тестировании.

В чем разница между 0.0.0.0 и петлевым IP-адресом?

Адреса в 0.0.0.0/8сети не могут использоваться в качестве адресов назначения. Единственное практическое использование - в качестве адреса источника, когда хост не имеет адреса и просит что-то вроде DHCP-сервера назначить ему адрес.


Существует реестр адресов IANA IPv4 специального назначения, в котором перечислены все блоки специальных адресов, и он имеет ссылки на RFC, которые определяют каждый из этих блоков.

Рон Маупин
источник
Комментарии не для расширенного обсуждения; этот разговор был перемещен в чат .
Рон Мопин