0s в IP-адресах - PullRequest
       14

0s в IP-адресах

2 голосов
/ 26 июля 2011

У меня проблемы с пониманием IP-адресов, в частности, с 0-ю в них.

Я понимаю, что IP-адрес со всеми 0 для идентификатора хоста относится к сети, например 128.52.0.0/16.

Может ли сетевой идентификатор IP-адреса содержать 0 и быть действительным?Например, 128.52.0.1 с маской подсети 255.255.255.0.

Может ли идентификатор хоста IP-адреса содержать 0 и быть действительным?Например, 128.52.0.1 с маской подсети 255.255.0.0.

Кроме того, почему-то мне пришло в голову, что IP-адреса с 0 для идентификатора сети относятся к хосту с идентификатором хоста в той же сети.Например, 0.0.0.1 в сети 192.168.1.0 с маской подсети 255.255.255.0 относится к 192.168.1.1.Это правильно?

Ответы [ 2 ]

4 голосов
/ 26 июля 2011

Может ли сетевой идентификатор IP-адреса содержать 0 и быть действительным?Например, 128.52.0.1 с маской подсети 255.255.255.0?

Да.Совершенно нормально, чтобы у идентификатора сети был нулевой октет.

Может ли идентификатор узла IP-адреса содержать 0 и быть действительным?Например, 128.52.0.1 с маской подсети 255.255.0.0?

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

Кроме того, по какой-то причине я получил его в голову ...

Это правильно, 0.0.0.0/8 используется для самоидентификации в соответствии с RFC5735:

0.0.0.0/8 - Адреса в этом блоке относятся к исходным хостам в этой сети.Адрес 0.0.0.0/32 может использоваться в качестве адреса источника для этого хоста в этой сети;другие адреса в пределах 0.0.0.0/8 могут использоваться для ссылки на указанные хосты в этой сети ([RFC1122], раздел 3.2.1.3).

Соглашение состоит в том, чтобы использовать все единичные биты для обозначения каждого«объект» и все нулевые биты означают этот «объект».Цитирование из "Internetworking with TCP/IP", Douglas E. Comer:

Использование netid 0 особенно важно в тех случаях, когда хост хочет установить связь по сети, но еще не знает сетевой IP-адрес.Хост временно использует сетевой идентификатор 0, а другие хосты в сети интерпретируют адрес как означающий «эту» сеть.В большинстве случаев в ответах будет полностью указан сетевой адрес, что позволит исходному отправителю записать его для использования в будущем.

В "обычном" мире он может использоваться не так часто, поскольку и BOOTP, иDHCP использует вариант ограниченной широковещательной передачи (все в одном бите) в ситуациях, когда они еще не знают свой идентификатор сети.Но, поскольку RFC не устарел, я думаю, что он все еще действителен.

0 голосов
/ 26 июля 2011

128.52.0.1 - это просто IP-адрес в сети 128.52.0.0/16.Идентификатор сети в этом случае 128.52.0.0.Маска подсети, hoverver, составляет 255.255.0.0.Маска 255.255.255.0 соответствует подсети / 24.

Ваш последний абзац кажется правильным.

...