Пакет не достигает пункта назначения при трансляции с адресом 255.255.255.255 - PullRequest
0 голосов
/ 16 ноября 2018

У меня есть приложение bacnet, которое передает сообщение всем подключенным устройствам. Когда я использую адрес 10.9.x.255, он работает, и устройство может получить ответ, но когда я использую глобальную широковещательную рассылку 255.255.255.255, пакет не достигает устройства, которого он должен достигнуть.

В чем может быть причина этого? Я могу использовать адрес 10.9.x.255, но я хотел бы знать причину этого.

На другом компьютере он работает с глобальным широковещательным адресом, но не работает на конкретном компьютере. оба компьютера работают на windows 10.

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 18 ноября 2018

Когда вы отправляете пакет в Windows на номер 255.255.255.255, он передает только из одного сетевого интерфейса.Это ошибка / дизайн ошибки в сетевом стеке Windows IPv4.

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

Ссылки:

0 голосов
/ 16 ноября 2018

Может быть, устройство, к которому вы хотите подключиться, не находится в вашей локальной сети?

Просто чтобы уточнить разницу:

  • 255.255.255.255 транслируется на любой IP-адрес в вашей локальной сети (так называемая ограниченная трансляция)
  • 10.9.X.255 - это направленная широковещательная рассылка, которая отправляется в сеть 10.9.X.0 с маской сети 255.255.255.0 и передается туда всем участникам, подключенным к соответствующей локальной сети.

Редактировать: Хотя кажется, что вы можете отправлять направленную трансляцию, многие маршрутизаторы отключили направленную трансляцию из-за риска DoS-атак (см. Спецификация RFC 2644 ).

...