Мы пытаемся отладить некоторые приложения, выполняющие трансляцию.
В чем разница между широковещательным адресом 255.255.255.255 и, например, об этом сообщает ifconfig, Bcast: 192.168.1.255
Широковещательный адрес всегда относится к данной сети, широковещательной передачи нет. как таковой; когда у вас есть сеть, вы можете вычислить ее широковещательный адрес, заменив все биты хоста на единицы; Проще говоря, широковещательный адрес - это адрес с наибольшим номером, который вы можете иметь в сети, а сетевой адрес - наименьший (со всеми битами хоста, установленными в 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
Чтобы добавить к тому, что сказал Массимо в своем ответе:
255.255.255.255 будет считаться широковещательным адресом физического уровня, а 192.168.1.255 будет считаться широковещательным адресом сетевого уровня. ARP будет генерировать широковещательную рассылку физического уровня, а NetBIOS - широковещательную рассылку сетевого уровня.
В принципе, 255.255.255.255 - это «глобальный» широковещательный адрес, что означает, что IP-стек должен отправлять пакет на все сетевые интерфейсы, а маршрутизаторы, настроенные для пересылки широковещательных сообщений, должны отправлять их.
На практике почти нет маршрутизаторов, пересылающих широковещательные рассылки, и множество стеков просто отправляют одну копию пакета на интерфейс, на который указывает маршрут по умолчанию.
Широковещательный адрес подсети используется для выбора определенного интерфейса. В обоих случаях они должны быть сопоставлены с широковещательным адресом сетевого уровня (который будет FF: FF: FF: FF: FF: FF для Ethernet).
В общем, использование 255.255.255.255 - плохая идея, так как есть несколько настроек, в которых интерфейс с маршрутом по умолчанию является совершенно неправильным выбором. Явный выбор интерфейса лучше, но это нужно делать осторожно.
Другое мое предложение - использовать многоадресную рассылку, если это имеет смысл для вашего приложения. Те же предостережения, что и для широковещательного трафика, по-прежнему применяются, но это позволяет незаинтересованным хостам быстро идентифицировать ваши пакеты, а также позволяет администраторам сети устанавливать определенные правила пересылки для вашего протокола.
255.255.255.255 и 192.168.1.255 имеют одинаковый эффект, если в сети нет подсетей. Однако есть разница, когда вы разбиваете свою сеть на подсети. 255.255.255.255 (называемый «Limited-Broadcast») используется хостом для широковещательной передачи всем своим непосредственным соседям, то есть всем этим интерфейсам в локальной подсети.
Принимая во внимание, что вы должны использовать 192.168.1.255 (называемое «направленное широковещание») для широковещательной передачи на все интерфейсы во всей LAN или WAN.
Кроме того, 255.255.255.255 используется узлом для широковещательной передачи в подсети, если он не знает о своей сети (или просто до конфигурации IP) и запрашивает свой динамический IP-адрес у DHCP-сервера. Обратитесь к RFC 919 для получения более подробной информации.