smk 0 23 апреля, 2014 Опубликовано 23 апреля, 2014 · Жалоба Раньше подобного не делал. Есть две задачи, которые нужно решить в одной программе. 1) Прием/передача данных по TCP при этом устройство и программа знают IP друг друга. 2) Программа мониторит общение устройства с другим компьютером. Устройство Server, программа Client. Есть ли возможность мониторить пакеты именно те, которые проходят непосредственно между устройством и другим компьютером программой работающей на третьем компьютере? Может можно как-то настроить сетевую карту? Да и как это все будет выглядеть в виде программного кода в VisualStudio201 C# пока не очень представляю. По идее эти две задачи можно разделить на две программы, наврядли обе эти функции понадобятся на одном компьютере одновременно. Вот и прошу помощи/подсказок. Готовые программы типа WireShark не подойдут, т.к. при мониторинге нужно правильно интерпретировать данные в пакете. Просто набор чисел не интересен. Нужен контроль телеметрии. Спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
megajohn 3 23 апреля, 2014 Опубликовано 23 апреля, 2014 · Жалоба думаю, что нужно читать API на winpcap Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dubov 0 23 апреля, 2014 Опубликовано 23 апреля, 2014 (изменено) · Жалоба Раньше подобного не делал. Есть две задачи, которые нужно решить в одной программе. 1) Прием/передача данных по TCP при этом устройство и программа знают IP друг друга. 2) Программа мониторит общение устройства с другим компьютером. Устройство Server, программа Client. Есть ли возможность мониторить пакеты именно те, которые проходят непосредственно между устройством и другим компьютером программой работающей на третьем компьютере? Может можно как-то настроить сетевую карту? Да и как это все будет выглядеть в виде программного кода в VisualStudio201 C# пока не очень представляю. По идее эти две задачи можно разделить на две программы, наврядли обе эти функции понадобятся на одном компьютере одновременно. Вот и прошу помощи/подсказок. Готовые программы типа WireShark не подойдут, т.к. при мониторинге нужно правильно интерпретировать данные в пакете. Просто набор чисел не интересен. Нужен контроль телеметрии. Спасибо. Wireshark предоставляет не просто набор чисел. Эта программа "знает" множество стандартизированных протоколов, в т.ч. и телеметрии. Изменено 23 апреля, 2014 пользователем Dubov Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
smk 0 23 апреля, 2014 Опубликовано 23 апреля, 2014 · Жалоба Wireshark предоставляет не просто набор чисел. Эта программа "знает" множество стандартизированных протоколов, в т.ч. и телеметрии. Ну вот скажем пришел пакет с 256 байтами. Мне нужно (например) первые три интерпретировать в число, два последующих разобрать так чтоб видеть какие флаги стоят. Еще другие числа показать и подписать. И т.д. Не уверен, что получится без самописного монитора. Да и сообщения хорошо бы в информационную строчку генерировать, логи вести нужные, а не все подряд. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dubov 0 23 апреля, 2014 Опубликовано 23 апреля, 2014 · Жалоба Ну вот скажем пришел пакет с 256 байтами. Мне нужно (например) первые три интерпретировать в число, два последующих разобрать так чтоб видеть какие флаги стоят. Еще другие числа показать и подписать. И т.д. Не уверен, что получится без самописного монитора. Да и сообщения хорошо бы в информационную строчку генерировать, логи вести нужные, а не все подряд. конечно, для этого вам надо писать программу самому. я лищь замолвил свово за wireshark. В нём удобно разбирать пакеты стандартизированых протоколов, тестировать свои программы... вобщем удобный снифер Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
smk 0 23 апреля, 2014 Опубликовано 23 апреля, 2014 · Жалоба Удобный, не спорю. Однако специфика диктует свои условия. Попутно вопрос, как в VisualStudio 2010 C# организовать прием/передачу буфера в (ну пусть 1024) байта. Порт и IP должны настраиваться т.к. могут меняться. С остальным, думаю разберусь для начала. Ну и в части мониторинга с третьего компьютера пока не ясно. Как это сделать, если это возможно? Сразу признаюсь, уровень опыта в этих делах маловат, но связь по UDP раз сделал. Не без помощи. Вот как оно в TCP? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
smk 0 23 апреля, 2014 Опубликовано 23 апреля, 2014 · Жалоба Еще появсился вопрос. Вот если у меня 2 сетевые карточки. Одна смотрит в интернет, а вторая в прибор. Как мне сказать программе, что использовать нужно ту, которая смотрит в прибор? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DpInRock 0 23 апреля, 2014 Опубликовано 23 апреля, 2014 · Жалоба У них разные IP. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
smk 0 23 апреля, 2014 Опубликовано 23 апреля, 2014 · Жалоба У них разные IP. Это я понимаю. А програмно как это будет не знаю. Вот чтоб интернет не тормозил я менял приоритет. А можно ли как-то прямо в программе указать, что связь нужно производить только с указанной карточки? Раньше я видел, что IP подхватывался текущий. Теперь их два. Вот и интересует какими средствами я привязываю программу к нужной карточке? Собственно и про мониторинг пока ничего не понятно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tdocs.su 0 23 апреля, 2014 Опубликовано 23 апреля, 2014 · Жалоба Схожую историю обсуждаем сейчас здесь - http://electronix.ru/forum/index.php?showtopic=120469 Вернее, решение задачки схожее. Любой снифер, разбирающий пакеты, строится на основе конечного автомата. Иначе никак. В VisualStudio наверняка полно соотвествующих исходных модулей с готовым кодом различных "сетевых" структур пакетов. По их подобию можно создавать свои структуры, чтобы проще было разбирать то, что сваливается в буфер (передается поверх самого TCP). ЗЫ. Коммуникационные задачки, конечно, кашмар кашмарный :) Тут только конечный автомат... А строиться он должен на основе RFC 1180. Можно, кстати, поискать в сети исходники снифферов, должно помочь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DpInRock 0 23 апреля, 2014 Опубликовано 23 апреля, 2014 · Жалоба но связь по UDP раз сделал Видать не делали. Есть такое понятие - сокет. Без него вы ничего не напишите. Надо изучать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kolobok0 0 23 апреля, 2014 Опубликовано 23 апреля, 2014 · Жалоба ..Как мне сказать программе, что использовать нужно ту, которая смотрит в прибор? 1) в протоколе TCP нет пакетов. это к сведению. 2) не важно в си бимоле или каком бэйсик - как правило везде напрямую или лёгкая оболочка над форточной реализацией сокета. 3) по поводу двух карточек... вы через апи енумерите набор каналов связи (это может быть какая нить сетевуха и через USB воткнута - как пример), выбираете нужную. указываете при открытии-связывании сокета. далее как везде... 4) если по сети общаются две станции, то третья может и не услышать поток (не зависимо от локальных настроек). см. понятие маршрутиризатор... 5) помимо сетевых заморочек, и юая - вам потребуется разобраться с многопоточностью и синхронизацией. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
smk 0 24 апреля, 2014 Опубликовано 24 апреля, 2014 · Жалоба Про маршрутизацию в курсе. Нужен концентратор. Глянул на цены - не понравилось. Как бы не пришлось еще его делать... Видать не делали. Есть такое понятие - сокет. Без него вы ничего не напишите. Надо изучать. Про сокет тоже в курсе. Благо помогли увидеть как надо его открыть/закрыть и пользовать. В ТСР должно быть аналогично, но по нему опыта нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kolobok0 0 24 апреля, 2014 Опубликовано 24 апреля, 2014 · Жалоба ...Как бы не пришлось еще его делать... тут есть товарищ (читай господин) iosik - вот у него опыт по использованию многопортовых готовых решений. частенько он приводит ссылку на свой ресурс в сети - думаю там можно подчерпнуть обзорного и наверное бОльшего плана инфу, по таким вещам. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться