Многоадресный пакет не достигает телефона из сети Ethernet

Я не могу отправить многоадресный / широковещательный пакет udp с ноутбука, подключенного к Wi-Fi-маршрутизатору, на телефон Android, подключенный к тому же маршрутизатору по беспроводной сети. Работает наоборот (с телефона на ноутбук). Кроме того, телефон может получить пакет, если я явно укажу IP-адрес телефона в своем коде. Во-вторых, нет проблем, если оба устройства подключены через Wi-Fi. Я даже пробовал jmdns, но возникает та же проблема. В чем может быть проблема? Любая неправильная конфигурация маршрутизатора? Пожалуйста, помогите.


person madridista    schedule 24.10.2011    source источник
comment
Вероятно, это вызвано тем, что маршрутизатор не пересылает широковещательный UDP; Лучший способ проверить это - подключить ноутбук по беспроводной сети и повторно запустить трансляцию с телефона на ноутбук. Какая марка / модель роутера?   -  person Phil Lello    schedule 24.10.2011
comment
Все работает отлично, когда я подключаю ноутбук по беспроводной сети. Проблема возникает, в частности, когда я подключаю ноутбук с помощью кабеля Ethernet. Это странно, потому что они находятся в одной подсети и оба получают внутренние IP-адреса от маршрутизатора. И я не думаю, что это конкретная проблема с маршрутизатором, поскольку такая же проблема возникла и на маршрутизаторе dlink моего друга.   -  person madridista    schedule 24.10.2011
comment
Если он работает должным образом, когда у вас есть ноутбук и телефон, подключенные по беспроводной сети к одной и той же точке доступа, то это должно быть проблемой из-за того, что маршрутизатор не пересылает широковещательные пакеты Ethernet в Wi-Fi; без подробностей о роутере я не думаю, что кто-то может вам помочь.   -  person Phil Lello    schedule 24.10.2011
comment
Это маршрутизатор, предоставленный моим поставщиком услуг DSL. Модель - Beetel 450TC1 ADSL2 +.   -  person madridista    schedule 24.10.2011
comment
Может ли ваша машина получать многоадресный трафик ... Вы можете проверить в wirehark ... на порте 5353 ...   -  person twid    schedule 24.10.2012


Ответы (2)


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

person Justin Breitfeller    schedule 24.10.2011
comment
Я сделал это, и в коде нет проблем. Как я упоминал ранее, мой телефон получает многоадресные пакеты, когда я подключаю свой ноутбук по беспроводной сети. Проблема возникает, когда я подключаю свой ноутбук с помощью кабеля Ethernet. - person madridista; 24.10.2011
comment
У вас есть другой компьютер, чтобы проверить, не локализована ли проблема на вашем ноутбуке? У вас есть другой компьютер, подключенный к маршрутизатору, чтобы проверить, действительно ли при использовании Ethernet пакет многоадресной рассылки также поступает на этот компьютер? Вы использовали wirehark на ноутбуке, чтобы увидеть, идет ли многоадресный пакет так, как вы ожидаете, на самом ноутбуке? - person Justin Breitfeller; 24.10.2011
comment
Я попытался использовать другой ноутбук, он временно работал, а затем остановился. Очень странно. Так что я предполагаю, что это не проблема маршрутизатора. Я заметил, что возникают проблемы, когда я переключаюсь с беспроводной сети на Ethernet. например: если беспроводная связь работает правильно, и я переключаюсь на Ethernet, отправка может не работать, но когда я снова переключаюсь на беспроводную связь, все снова начинает работать. очень странный. - person madridista; 25.10.2011
comment
Понятно. Лучший способ отлаживать подобные вещи - использовать Wireshark. Вы можете видеть, какие пакеты отправляются и получаете ли вы их. Запуск его на обоих ноутбуках должен дать вам представление о том, в чем проблема. Откуда вы знаете, что ваш телефон больше не получает трафик? Вы использовали WifiLock и WakeLock, чтобы убедиться, что ваш Wi-Fi и процессор не выключаются. - person Justin Breitfeller; 25.10.2011
comment
Я нашел обходной путь. Мне приходится перезагружать свой ноутбук каждый раз, когда я хочу переключиться с беспроводной сети на Ethernet. (Переход от Ethernet к беспроводной сети происходит плавно) В противном случае я предполагаю, что ноутбук не выполняет многоадресную рассылку пакетов. И поэтому на телефон его не поступает. Хотя мне придется это подтвердить с помощью wirehark. Нужно научиться им пользоваться. После перезапуска пакеты передаются правильно, и телефон их получает. Все это время приложение на телефоне остается нетронутым. Так что это, скорее всего, проблема с ноутбуком (в частности, с сетевой картой). В лучшем случае проблема с маршрутизатором, но маловероятная. - person madridista; 25.10.2011
comment
Казалось бы, да. Вы уверены, что это не тестовое приложение, которое вы используете? Я могу представить, что вы обрушили это на него после переключения интерфейсов? - person Justin Breitfeller; 25.10.2011
comment
Нет, приложение на телефоне остается активным. Он просто принимает многоадресные пакеты udp и отображает сообщение чата, как мессенджер. - person madridista; 25.10.2011
comment
Извините, я имел в виду приложение на вашем ноутбуке. Вы понижаете и повышаете его, когда переключаетесь с Wi-Fi на Ethernet? - person Justin Breitfeller; 25.10.2011
comment
Да, я пробовал повторно запустить код при переключении, но безуспешно. Мне приходится перезагружаться каждый раз, когда мне нужно использовать многоадресную передачу в сети Ethernet. И что странно, эта проблема ограничивается многоадресными / широковещательными пакетами. Если я явно укажу свой IP-адрес телефона, он все равно будет работать нормально! Возможно, проблема с драйвером NIC ... - person madridista; 25.10.2011
comment
при разработке FrostWire для Android мы в конечном итоге полагались как на многоадресную, так и на широковещательную рассылку, чтобы телефоны находили друг друга (и ноутбуки) в одной сети (Ethernet + Wi-Fi). Даже если ваш код выглядит безупречно, все дело в том, как многоадресная рассылка была реализована в разных маршрутизаторах / коммутаторах. И мы узнали, что большинство WiFi-роутеров действительно плохо работают не только с многоадресной рассылкой, но и с UPnP и переадресацией портов. - person Gubatron; 01.11.2011
comment
Для протокола: проблемы возникли из-за неисправности моего беспроводного маршрутизатора. Иногда он пересылает многоадресные пакеты, когда я выполняю «sysrestart». В большинстве случаев это не так. Должна быть проблема с прошивкой. - person madridista; 19.03.2012

Та же проблема здесь, но исправлена, это проблема конфигурации маршрутизатора.

В моем случае мне пришлось активировать «IGMP snooping» в меню конфигурации моего маршрутизатора (расширенный-> LAN) И «стандартный режим» вместо режима блокировки.

Это заставило мой маршрутизатор передавать все многоадресные пакеты из сети Ethernet по Wi-Fi.

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

person meyo    schedule 29.08.2013