255.255.255.255 против 192.168.1.255

18

Мы пытаемся отладить некоторые приложения, выполняющие трансляцию.

В чем разница между широковещательным адресом 255.255.255.255 и, как, например, сообщается ifconfig, Bcast: 192.168.1.255

н.у.к.
источник
Этот вопрос и ответы объясняют.
Рон Мопин

Ответы:

37

Широковещательный адрес всегда относится к данной сети, широковещательная рассылка как таковая отсутствует ; когда у вас есть сеть, вы можете вычислить ее широковещательный адрес, заменив все биты хоста на 1; Проще говоря, широковещательный адрес - это наибольший адрес, который вы можете иметь в сети, в то время как сетевой адрес - наименьший (все биты хоста установлены в 0); Вот почему вы не можете использовать ни один из них в качестве фактического адреса хоста: они зарезервированы для этого использования.

Если ваша сеть 192.168.1.0/24, то ваш сетевой адрес будет 192.168.1.0, а ваш широковещательный адрес - 192.168.1.255.

Если ваша сеть 192.168.0.0/16, то ваш сетевой адрес будет 192.168.0.0, а ваш широковещательный адрес - 192.168.255.255.

И так далее...

255.255.255.255 - это специальный широковещательный адрес, который означает «эта сеть»: он позволяет отправлять широковещательный пакет в сеть, к которой вы подключены, фактически не заботясь о его адресе; в этом похож на 127.0.0.1, который является виртуальным адресом, означающим «локальный хост».

Более подробная информация здесь: http://en.wikipedia.org/wiki/Broadcast_address

Massimo
источник
127.0.0.1 считается "виртуальным адресом"? Насколько я понимаю, это реальный адрес, и RFC говорит, что он должен указывать на интерфейс виртуальной обратной связи. Однако я видел случаи, когда устройство фактически запрашивает мой DNS-сервер на 127.0.0.1.
Бельмин Фернандес
1
Может быть, мое использование слова «виртуальный» было немного упрощением, но это действительно зарезервированный адрес, который не может принадлежать ни одному физическому интерфейсу и никогда не должен просматриваться вне хоста; если что-то спрашивает у вашего DNS-сервера, кто является 127.0.0.1, он должен работать как можно быстрее до ближайшего класса IP :-p
Massimo
«позволяет отправлять широковещательный пакет в сеть, к которой вы подключены» ... что если вы подключены к нескольким сетям? Широковещательные пакеты отправлены всем им?
Натан Осман
11

Чтобы добавить к тому, что Массимо заявил в своем ответе:

255.255.255.255 считается широковещательным адресом физического уровня, а 192.168.1.255 - широковещательным адресом сетевого уровня. ARP будет генерировать широковещательную рассылку на физическом уровне, а NetBIOS - широковещательную рассылку на сетевом уровне.

joeqwerty
источник
11

В принципе, 255.255.255.255 является «глобальным» широковещательным адресом, что означает, что стек IP должен отправлять пакет на все сетевые интерфейсы, а маршрутизаторы, настроенные для пересылки широковещательных сообщений, должны отправлять их.

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

Широковещательный адрес подсети используется для выбора определенного интерфейса. В обоих случаях они должны быть сопоставлены с широковещательным адресом сетевого уровня (который будет FF: FF: FF: FF: FF: FF для Ethernet).

В общем, использование 255.255.255.255 является плохой идеей, поскольку существует несколько настроек, где интерфейс с маршрутом по умолчанию является совершенно неправильным выбором. Явный выбор интерфейса лучше, но нужно делать это осторожно.

Мое другое предложение будет использовать многоадресную рассылку, если это имеет смысл для вашего приложения. Применяются те же предостережения, что и для широковещательного трафика, но это позволяет незаинтересованным хостам быстро идентифицировать ваши пакеты и позволяет сетевым менеджерам устанавливать специальные правила пересылки для вашего протокола.

Саймон Рихтер
источник
1
Когда я ищу 255.255.255.255, одним из первых результатов является RFC 919 . В этом RFC я нашел следующее предложение: «Адрес 255.255.255.255 обозначает широковещательную рассылку в локальной аппаратной сети, которую нельзя пересылать». (Выделено мое) Так что, когда вы предлагаете настроить маршрутизаторы для пересылки пакетов, то это не так. скорее всего.
Касперд