Полная версия этой страницы:
Протокол UDP
_Anatoliy
Aug 11 2015, 08:44
Всем доброго дня! Делаю устройство с управлением по UDP и столкнулся с таким непонятным эффектом. Данные перехватываю программой Wireshark, вижу что обмен данными проходит нормально, программа на компе посылает команды и получает ответы от устройства,никаких претензий нет. Но стоит мне только отключить Wireshark и всё ломается. Видно что пакеты уходят в устройство, устройство отвечает , а программа на компе этих ответов не видит. Запускаю Wireshark - опять всё нормально принимается. Может кто сталкивался с таким поведением? На что обратить внимание? Работаю в WinXP, вместо управляющей программы пока использую TCP Port Toolkit.
_Anatoliy
Aug 12 2015, 03:52
Цитата(_Anatoliy @ Aug 11 2015, 11:44)

Может ли такое поведение быть связано с какой-то хитрой ошибкой в пакете отправляемом устройством? Неправильно выбранный номер порта и т.д. Хотя Shark не ругается и врукопашную проверял не раз...
halfdoom
Aug 12 2015, 04:31
Wireshark переводит интерфейс в режим прослушивания всех пакетов, может что-то в кадре не так, и в обычном режиме пакеты от устройства игнорируются.
Maverick
Aug 12 2015, 04:35
Цитата(_Anatoliy @ Aug 11 2015, 11:44)

Всем доброго дня! Делаю устройство с управлением по UDP и столкнулся с таким непонятным эффектом. Данные перехватываю программой Wireshark, вижу что обмен данными проходит нормально, программа на компе посылает команды и получает ответы от устройства,никаких претензий нет. Но стоит мне только отключить Wireshark и всё ломается. Видно что пакеты уходят в устройство, устройство отвечает , а программа на компе этих ответов не видит. Запускаю Wireshark - опять всё нормально принимается. Может кто сталкивался с таким поведением? На что обратить внимание? Работаю в WinXP, вместо управляющей программы пока использую TCP Port Toolkit.
Попробуйте проверить, что Вы отправляете - пакет и поля...
Alex11
Aug 12 2015, 06:31
Был у нас когда-то конфликт между широковещательным MAC-адресом и конкретным IP-адресом. Драйвер такие пакеты выкидывал, а шарк говорил, что все хорошо.
_Anatoliy
Aug 12 2015, 07:00
Что-то ни к чему не могу придраться,вроде всё правильно. Датаграмма ответа устройства с комментариями прилагается.
zltigo
Aug 12 2015, 09:00
QUOTE (_Anatoliy @ Aug 11 2015, 11:44)

На что обратить внимание?
На firewall и прочую подобную мутотень, конечно. Все остальное потом.
_Anatoliy
Aug 12 2015, 09:56
Цитата(zltigo @ Aug 12 2015, 12:00)

На firewall и прочую подобную мутотень, конечно. Все остальное потом.
Спасибо.А можно чуть подробнее?
zltigo
Aug 12 2015, 09:59
QUOTE (_Anatoliy @ Aug 12 2015, 12:56)

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

В смысле? Все это штатное (по умолчанию включено) и не штатное (если взгромоздили) ОТКЛЮЧИТЬ полностью. Практически наверняка все на этом и кончится. Если нет, то сменить ломано-шареварный TCP Port Toolkit на, например,
http://www.hw-group.com/products/hercules/index_en.html По крайней мере для быстро-лениво посмотреть он у меня никогда не чудил.
Дело не TCP Port Toolkit , программа написанная в Visual тоже не видит пакетов без шарка.
За совет спасибо.
zltigo
Aug 12 2015, 11:12
Ну и что после отключения firewall? Если не задышал, то посмотрите список открытых портов ДО того, как запустите приложение, на предемет конфликтов.
doom13
Aug 12 2015, 11:28
А нулями Ваши данные дополняются (за это должен конечно MAC контроллер отвечать, но мало ли)? Для Ethernet frame получается размер данных 37 байт, а минимальное число должно быть 46 байт.
_Anatoliy
Aug 12 2015, 11:43
Цитата(doom13 @ Aug 12 2015, 14:28)

А нулями Ваши данные дополняются (за это должен конечно MAC контроллер отвечать, но мало ли)? Для Ethernet frame получается размер данных 37 байт, а минимальное число должно быть 46 байт.
Вот это называется наступить на грабли! Всё заработало,спасибо огромное!
kolobok0
Aug 12 2015, 14:05
Цитата(_Anatoliy @ Aug 12 2015, 14:43)

...заработало,спасибо огромное!
в добавок это настраиваемый параметр обычно...
zltigo
Aug 12 2015, 14:06
QUOTE (doom13 @ Aug 12 2015, 14:28)

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