Перейти к содержанию
    

Протокол UDP

Всем доброго дня! Делаю устройство с управлением по UDP и столкнулся с таким непонятным эффектом. Данные перехватываю программой Wireshark, вижу что обмен данными проходит нормально, программа на компе посылает команды и получает ответы от устройства,никаких претензий нет. Но стоит мне только отключить Wireshark и всё ломается. Видно что пакеты уходят в устройство, устройство отвечает , а программа на компе этих ответов не видит. Запускаю Wireshark - опять всё нормально принимается. Может кто сталкивался с таким поведением? На что обратить внимание? Работаю в WinXP, вместо управляющей программы пока использую TCP Port Toolkit.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Может ли такое поведение быть связано с какой-то хитрой ошибкой в пакете отправляемом устройством? Неправильно выбранный номер порта и т.д. Хотя Shark не ругается и врукопашную проверял не раз...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Wireshark переводит интерфейс в режим прослушивания всех пакетов, может что-то в кадре не так, и в обычном режиме пакеты от устройства игнорируются.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Всем доброго дня! Делаю устройство с управлением по UDP и столкнулся с таким непонятным эффектом. Данные перехватываю программой Wireshark, вижу что обмен данными проходит нормально, программа на компе посылает команды и получает ответы от устройства,никаких претензий нет. Но стоит мне только отключить Wireshark и всё ломается. Видно что пакеты уходят в устройство, устройство отвечает , а программа на компе этих ответов не видит. Запускаю Wireshark - опять всё нормально принимается. Может кто сталкивался с таким поведением? На что обратить внимание? Работаю в WinXP, вместо управляющей программы пока использую TCP Port Toolkit.

Попробуйте проверить, что Вы отправляете - пакет и поля...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Был у нас когда-то конфликт между широковещательным MAC-адресом и конкретным IP-адресом. Драйвер такие пакеты выкидывал, а шарк говорил, что все хорошо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что-то ни к чему не могу придраться,вроде всё правильно. Датаграмма ответа устройства с комментариями прилагается.

MyUdp.doc

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На что обратить внимание?

На firewall и прочую подобную мутотень, конечно. Все остальное потом.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На firewall и прочую подобную мутотень, конечно. Все остальное потом.

Спасибо.А можно чуть подробнее?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо.А можно чуть подробнее?

В смысле? Все это штатное (по умолчанию включено) и не штатное (если взгромоздили) ОТКЛЮЧИТЬ полностью. Практически наверняка все на этом и кончится. Если нет, то сменить ломано-шареварный TCP Port Toolkit на, например, http://www.hw-group.com/products/hercules/index_en.html По крайней мере для быстро-лениво посмотреть он у меня никогда не чудил.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В смысле? Все это штатное (по умолчанию включено) и не штатное (если взгромоздили) ОТКЛЮЧИТЬ полностью. Практически наверняка все на этом и кончится. Если нет, то сменить ломано-шареварный TCP Port Toolkit на, например, http://www.hw-group.com/products/hercules/index_en.html По крайней мере для быстро-лениво посмотреть он у меня никогда не чудил.

Дело не TCP Port Toolkit , программа написанная в Visual тоже не видит пакетов без шарка.

За совет спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну и что после отключения firewall? Если не задышал, то посмотрите список открытых портов ДО того, как запустите приложение, на предемет конфликтов.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А нулями Ваши данные дополняются (за это должен конечно MAC контроллер отвечать, но мало ли)? Для Ethernet frame получается размер данных 37 байт, а минимальное число должно быть 46 байт.

post-63539-1439378912_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А нулями Ваши данные дополняются (за это должен конечно MAC контроллер отвечать, но мало ли)? Для Ethernet frame получается размер данных 37 байт, а минимальное число должно быть 46 байт.

Вот это называется наступить на грабли! Всё заработало,спасибо огромное!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

...заработало,спасибо огромное!

 

в добавок это настраиваемый параметр обычно...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А нулями Ваши данные дополняются (за это должен конечно MAC контроллер отвечать, но мало ли)? Для Ethernet frame получается размер данных 37 байт, а минимальное число должно быть 46 байт.

Прикольно. Не то, что минимальный фрейм по традиции (разрешениее коллизий в первых чипах) 64 байта/512 бит, с этим понятно, а то, Wireshark насилует по умолчанию настроенный MAC на прием укороченных пакетов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...