Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Обработка TCP/IP
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
Кузьмич А.В.
Доброго времени суток!

Проблема в следующем: я вообще в этом деле начинающий, и не знаю с чего начать и за что браться smile.gif Необходимо собрать такую железку, к которой с одной стороны подключался кабель с локальной сети (RJ-45), с другой стороны она подключалась к компютеру. Функции она должна выполнять следующие: 1) перехват пакетов сети;
2) разбор каждого пакета (т.е. выделение заголовка, IP, и др)
причем незнаю как осуществить передачу разобранных данных. думал, через USB, или СОМ;
3) Фильтр пакетов (т.е. не нужные пакеты не передовать в компьютер.

Я вычитал что для таких действий больше подойдет WIZnet W3100A, (естественно с доработками) но не знаю на сколько этот чип подойдет. И вообще может кто эти занимался?
bve
А простая сетевая карта в компьютере - не подойдет?
Тут можно и разбор, и передачу в компьютер и т.д., и т.п...
Andrew_
Цитата(Кузьмич А.В. @ Jul 15 2005, 13:21)
Доброго времени суток!

Проблема в следующем: я вообще в этом деле начинающий, и не знаю с чего начать и за что браться smile.gif  Необходимо собрать такую железку, к которой с одной стороны подключался кабель с локальной сети (RJ-45), с другой стороны она подключалась к компютеру. Функции она должна выполнять следующие: 1) перехват пакетов сети;
                  2) разбор каждого пакета (т.е. выделение заголовка, IP, и др)
                      причем незнаю как осуществить передачу разобранных          данных. думал, через USB, или СОМ;
                  3) Фильтр пакетов (т.е. не нужные пакеты не передовать в компьютер.

Я вычитал что для таких действий больше подойдет WIZnet W3100A, (естественно с доработками) но не знаю на сколько этот чип подойдет. И вообще может кто эти занимался?
*

Нужна программа-сниффер траффика. И комп с сетевухой. Если цель - создание своего устройства, то W3100 будет использоваться не целиком, т.к. надо будет работать на МАС уровне, т.е. подойдет и RTL8019AS. Но она только 10мб держит, т.е. будучи воткнутой в хаб на 100 положит всю сетку на 10. Естественно устройство это воткнутое в свитч работать не будет smile.gif

Передачу в комп (если это не сетевуха) можно сделать на FT232/245 или CP2102 - не надо будет с дровами возиться. Но это уже в ветку про USB smile.gif
Кузьмич А.В.
Цель естественно создание своего устройства, желательно максимально независимого от компа. Если можно по подробнее, где вообще можно про это почитать, мне бы желательно чтобы скорость была 100мб.
MALLOY2
Это девайс не для начинающих, и визнет мало чем тут поможет он уже высоко уровня, нужно брать RTL8201BL подключать ее к хорошему DSP и разгрибать поток. Сначала MAC потом начинается самое сложное, по сети могут литеть не только пакеты TCP/IP но и IPX и куча других протоколов.
Вобщем такие девайсы стоят 10 килобаксов, проще снифер на тачку поставить если хоч могу скинуть прогу снифера хорошого.
Кузьмич А.В.
Жаль конечно, я не думал что все так сложно. А снифер хочется smile.gif
Кузьмич А.В.
Вот вчера подумал и решил.
Если соборать так называемый программно-аппаратный комплекс. Часть функций, наиболее затруднительных возмет на себя программный модуль. Ну например перехватываем пакет (аппаратно, не важно какой) передаем его программе она его распознает, делает нужные операции и передает управление обратнор. Или наоборот перехватываем программно, а все остальное аппаратно.
Так вот вопрос: Насколько это все реально, и как лучше это сделать? Может где литература про это есть?
id_gene
Какие данные вы хотите получить на выходе железки?

Если в сети все данные полезные (не отфильтрованы) - то вам 100 Мбит нужно будет дальше прокачивать (заголовки ethernet займут не так много места в больших пакетах).
usb2.0 ?

Для примера, посмотрите, как устроены сетевые анализаторы.
Кузьмич А.В.
В лучшем случае, на выходе хотелось бы развернутый заголовок. Т.е. IP адреса отдельно, размер отдельно, тип пакета и др. Программа должна проверять эти данные, вести статистику, и решать что делать дальше: пропускать пакет или нет.
Прогу написать с такими функция, возможно, но хочется создать программно-аппаратный комплекс.
bve
А взять SWITCH с интеллектом и запрограммировать его?
Кузьмич А.В.
Нет свич и другие устройства не подходят, т.к. необходимо создать свое устройство. Просто разрабатываемое устройство, часть дипломной работы, поэтому чужие модули или готовые устройства не подходят.
andk
Могу посоветовать сразу, на берегу внести ограничения в проект в стиле:
Разгребаем только IP стек (по вкусу )
Быстродействие ограничиваем до ххх мб/с
Стоимость ограничиваем до ххх р.
Срок разработки - ххх часов.

После принятия подобных ограничений можно реально садиться и искать элементную базу. Дальше - дело техники.

Про проц для этой железки могу предположить:
DSP не катит ни коим образом. Это не DSPшная задача. Вычислений тут нет. Здесь нужен шустрый процессор, желательно с памятью на борту и умеющий быстро дергать ногами. Также весьма желательно иметь на борту Eth контроллер (а то и два - один в сеть, другой в комп), DMA (по вкусу), Очень хорошо если есть - поддержка внешней памяти.
Ну есть, конечно еще куча всяких полезностей и вкусностей, но для начала хотя бы это.
bve
Вроде-бы были когда-то Ethernet-платы с некоторым интеллектом, например,
им можно было задать реакцию на определенные MAC-адреса и т.п..
Найдите такую плату для шины ISA и навесьте на нее какой-либо свой контроллер
( шина ISA довольно простая ) - и вперед!!!
MALLOY2
Зря вы так про DSP он как рахз тут в тему у него быстрые ноги имеет DMA и быструю память, а это само главное для этой роли прекрасно подойдет TMS320VC5502. И не надо смотреть что это DSP это таже ATMEGA128 толь ОЧЕНЬ БЫСТРАЯ, и еще а зачем вым быстро ногами дергать ?
Кузьмич А.В.
Добрый вечер!
Маленькая просьба: можно немного поподробнее, ну например, нужна такая-то микросхема для того-то, при и этом без такой-то мир-мы не обойтись и т.д. А то, как я уже говорил я в этом новичек, максимум что умею собрать какой-нибуть усилитель или что-то подобно легкое. А с сетевыми делами занялся только не давно. И я немного не понял, а для чего TMS320VC5502, насколько я знаю это процессор, или я не прав?
andk
Цитата
Зря вы так про DSP он как рахз тут в тему у него быстрые ноги имеет DMA и быструю память, а это само главное для этой роли прекрасно подойдет TMS320VC5502. И не надо смотреть что это DSP это таже ATMEGA128 толь ОЧЕНЬ БЫСТРАЯ, и еще а зачем вым быстро ногами дергать ?


Про TMS ничего не скажу, не знаю.
Мой опыт работы с DSP (AD21xx) говорит об обратном. DSP задачи - в первую очередь вычисления. Соответственно и заточка архитектуры и системы команд на это. Согласитесь, система команд у ATMega много понятнее и прозрачнее чем у DSP. Ну не умеет DSP быстро работать с байтами, битами - не нужно ему это. Основные потери производительности у меня были именно при решении такого рода задач. В оконцовке получалось, что быстрый DSP не намного опережает ту же ATMegа по выходному результату.
Ну а если прикинуть кто сколько стоит, то и вовсе грустно становится.
В задаче, которая предложена Кузьмичу - нужно быстро разобраться именно с байтиками, перетолкнуть массив данных на выход или забить на него.

Сравнение DSP с ATMega, конечно же, абсолютно не корректное. 8 разрядный проц с заточкой на контроллерные функции (быстрая работа с битами, встроеная память, развитая периферия) и 16-32 разрядный проц с заточкой на вычисления, специфичной периферией.

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

To Кузьмич
Цитата
Маленькая просьба: можно немного поподробнее, ну например, нужна такая-то микросхема для того-то, при и этом без такой-то мир-мы не обойтись и т.д.

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

Цитата
И я немного не понял, а для чего TMS320VC5502, насколько я знаю это процессор, или я не прав?

Абсолютно прав! Начали мы с выбора процессора. О том и спорим. smile.gif
Кузьмич А.В.
Подождите немного, я совсем запуталься smile.gif

Насколько я понял ситуация следующая:
1) для того что-бы перехватить пакет мне нужна RTL8201BL или что-то подобное. И это микросхема только перехватывает данные из сети, но не разбирает их;
2) Для того чтобы разобрать пакет (по составляющим) мне нужен процессор что-то типа ATMEGA128.
Суть состоит в том, что для перехвата нужна одна микросхема а для разбора нужна другая. И насколько я понимаю, необходимо писать программу разбора, которую можно записать в память железки.
Правильно ли я все понял?
andk
Да, все правильно в общем. С некоторыми уточнениями.
Для реализации нужно минимум следующие штуки:
1. Узел физического уровня езернет (PHY)
2. Узел контроллера езернет (MAC)
3. Узел разбора протоколов (проц)

Очень хороших чипов, которые в себе несут все пункты оч. мало
Бывают хорошие чипы, которые на себе несут пункты 2 и 3.
А бывает, что каждый пункт делается на разных чипах.
Ну вот.
RTL8201BL - это PHY. Отработанный, надежный.
Дальше пытаемся найти хороший чип smile.gif чтобы уменьшить количество чипов на плате. Если это нам не удастся, придется лепить минимум 3 чипа.

Протокольный уровень(разбор пакетов) (при правильно подобранном процессоре) находим в и-нете, вставляем в проект, компиляем и улыбаемся. smile.gif
Если берем уникальный проц - пишем сами, отлаживаем, если остаются силы и время - улыбаемся. smile.gif

Соответственно, пробегаем поисковиком по и-нету в поисках исходников сетевых протоколов для разных процессоров. Делаем выводы о применяемости выбранного нами проца.
Кузьмич А.В.
Вот мне не совсем понятно насчет сетевыйх протоколов для процессоров. Это получается что существуют процессоры которые занимаются "раздеванием" пакетов? или я что-то не догоняю? И что значит правильно подобранный процессор? честно говоря я об этом первый раз слышу smile.gif))
/dev/sink
Цитата(Кузьмич А.В. @ Jul 18 2005, 15:27)
Нет свич и другие устройства не подходят, т.к. необходимо создать свое устройство. Просто разрабатываемое устройство, часть дипломной работы, поэтому чужие модули или готовые устройства не подходят.
*


А вам правда всё с нуля необходимо сделать?
попробуйте достать какой-нибудь чипсет для PC-шной сетевухи
с готовыми схемами печатной платы, закажете, Вам всё соберут,
а потом воткнёте в какой-нить старый писюк с Linux'om - таам всё для этого.

Или так, берёте популярную платформу (не для PC, а для "embedded" систем)
на которой уже Linux работает, вставляете туды обычную сетевуху
и сниффер готов. Вы только не говорите, что собрали компьютер. wink.gif

запускаете tcpdump - и никакого вам разбора TCP/IP smile.gif

Удачи.
bve
Можно попробовать поставить BF536/537 - сигнальники от Analog Devices со
встроенным Ethernet MAC. На них есть Linux. Ставите его с любым PHY и вперед...
Hercules
Цитата(Кузьмич А.В. @ Jul 21 2005, 15:18)
Вот мне не совсем понятно насчет сетевыйх протоколов для процессоров. Это получается что существуют процессоры которые занимаются "раздеванием" пакетов? или я что-то не догоняю? И что значит правильно подобранный процессор? честно говоря я об этом первый раз слышу smile.gif))
*


Да нет, специализированных процессоров, которые занимаются "раздеванием" пакетов нет. Есть программы, кторые умеют это делать, но они написаны каждая под свой тип процессора (или семейство процессоров). Поэтому, чтобы сократить время написания программы, проще взять (найти) готовый код и выбрать такой процессор, для которого данный код написан. Собсвенно, это и имелось ввиду когда говорилось "правильно подобранный процессор".
MALLOY2
ну вопервых TMS контролллер хотя это не важно в принципе одно и тоже что контроллер что процессор, но факт в том что без контроллера(процессора) тебе не обойтись, кокой он будет это тибе решать просто я выбрал этот из своего опыта, на этом я бы зделал быстрее хотя не факт что он сюда притендует как лучший.

во вторых советую сначала разобраться как работает сеть. Лучше всего разбираться на такой связке Wiznet(модуль IIM7010A) + ATMEGA8515. Напишеш пару программ покидаеш байтики дуда сюда помигаеш светодиодом через сеть, ну и т.д. В процессе ты много узнаеш о сети и картина станет более яркая и понятная для изготовления твоего девайса. И у тибя появятся более четкие воросы.
Кузьмич А.В.
Спасибо за помощь всем. Я уже достаточно много для себя открыл нового. smile.gif Конечно мне этого мало, но почва уже есть дальше сам постараюсь smile.gif
iosifk
Цитата(Кузьмич А.В. @ Jul 15 2005, 13:21)
Доброго времени суток!

Проблема в следующем: я вообще в этом деле начинающий, и не знаю с чего начать и за что браться smile.gif  Необходимо собрать такую железку, к которой с одной стороны подключался кабель с локальной сети (RJ-45), с другой стороны она подключалась к компютеру. Функции она должна выполнять следующие: 1) перехват пакетов сети;
                  2) разбор каждого пакета (т.е. выделение заголовка, IP, и др)
                      причем незнаю как осуществить передачу разобранных          данных. думал, через USB, или СОМ;
                  3) Фильтр пакетов (т.е. не нужные пакеты не передовать в компьютер.

Я вычитал что для таких действий больше подойдет WIZnet W3100A, (естественно с доработками) но не знаю на сколько этот чип подойдет. И вообще может кто эти занимался?
*


То, что Вам нужно есть у Micrel - в двух вариантах,
причем второй вариант называется Многопортовый Fast Ethernet-PCI Шлюз - CENTAUR KS8695P
И он точно делает то, что вам нужно.
Поставка - Элтех
С уважением,
Иосиф mailto:iosif.karshenboim@eltech.spb.ru
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.