реклама на сайте
подробности

 
 
5 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> Посоветуйте микроконтроллер, для IP (UDP) filtering
A. Fig Lee
сообщение Sep 17 2014, 18:56
Сообщение #1


Знающий
****

Группа: Участник
Сообщений: 974
Регистрация: 4-04-08
Из: далека
Пользователь №: 36 467



В общем, в одной ethernet сети по производственной необходимости оказалось наше устройство на STM32F107 и
много других, которые шлют UDP broadcast.
Так как это ethernet broadcast, приходится принимать все пакеты, потом сбрасывать, когда ясно что не нам.
В итоге периодически затыкается контроллер, так как есть и другие задачи.

Хочу разбить на 2: один микроконтроллер с ethernet будет фильтровать IP пакеты, другой делать другие задачи.
Как бы его и так хватает, это чисто раутер с 802.15.4 250 килобит на IP.
Если бы не затыкался. Какой взять не очень большой микроконтроллер с ethernet?
Хорошо бы еще канал пошире для обмена с другим микроконтролером, но это вряд ли.
Наверное, обычный SPI.

Думал поставить Wiz5100 для фильтра бродкаст пакетов, но он же, наверное, пропустит UDP бродкаст пакет?


--------------------
Верить нельзя никому, даже себе. Мне - можно.
Go to the top of the page
 
+Quote Post
doom13
сообщение Sep 17 2014, 20:01
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Что это за устройства такие, что broadcast-ами загадили всю сеть? И кто это придумал слать UDP с broadcast MAC-адресом?
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Sep 17 2014, 20:21
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



А какой мак адрес должен быть в UDP запросе, который должен быть получен несколькими адресатамиsm.gif?
Go to the top of the page
 
+Quote Post
doom13
сообщение Sep 17 2014, 20:30
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(Golikov A. @ Sep 17 2014, 23:21) *
А какой мак адрес должен быть в UDP запросе который должен быть получен несколькими адресатамиsm.gif?

Для этого используется IP multicast (для передачи сообщения нескольким адресатам). MAC-адрес в этом случае формируется по определённым правилам, а тут описано по каким.

Broadcast MAC-адрес используется только в ARP-запросах, но они-то точно не должны вешать сеть.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Sep 17 2014, 20:32
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



правильнее сказать должен быть использован....
Go to the top of the page
 
+Quote Post
doom13
сообщение Sep 17 2014, 20:52
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



В общем, использование для отправки какой-либо информации UDP с broadcast MAC-адресом - неправильное решение, поэтому и вопрос был - почему так сделано. При таком подходе и большом потоке данных можно заглушить половину устройств в сети, что и имеем. Ни один MAC-контроллер не умеет фильтровать пакеты с broadcast MAC-адресами, а вот при использовании multicast есть такое понятие как hash table. Данная hash table и используется MAC-контроллером для пропуска необходимых multicast MAC-адресов (тех что в ней прописаны) и фильтрации всех остальных.
Go to the top of the page
 
+Quote Post
A. Fig Lee
сообщение Sep 18 2014, 00:20
Сообщение #7


Знающий
****

Группа: Участник
Сообщений: 974
Регистрация: 4-04-08
Из: далека
Пользователь №: 36 467



Цитата(doom13 @ Sep 17 2014, 16:52) *
В общем, использование для отправки какой-либо информации UDP с broadcast MAC-адресом - неправильное решение, поэтому и вопрос был - почему так сделано. При таком подходе и большом потоке данных можно заглушить половину устройств в сети, что и имеем. Ни один MAC-контроллер не умеет фильтровать пакеты с broadcast MAC-адресами, а вот при использовании multicast есть такое понятие как hash table. Данная hash table и используется MAC-контроллером для пропуска необходимых multicast MAC-адресов (тех что в ней прописаны) и фильтрации всех остальных.

"В жизни все не так как на самом деле"

Спасибо, интересная теория. Моя задача не найти "кто прав, кто виноват", а придумать решение.
Имеем устройства, без которых нам не жить, и которые посылают именно UDP broadcast с MAC broadcast.
Это данность.


--------------------
Верить нельзя никому, даже себе. Мне - можно.
Go to the top of the page
 
+Quote Post
scifi
сообщение Sep 18 2014, 00:58
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(A. Fig Lee @ Sep 17 2014, 22:56) *
Так как это ethernet broadcast, приходится принимать все пакеты, потом сбрасывать, когда ясно что не нам.
В итоге периодически затыкается контроллер, так как есть и другие задачи.

Не верю, что это нельзя решить в прошивке. Верю, что может не хватить знаний/опыта/времени, и второй МК как костыль тогда вполне годное решение при условии, что уж для него знания/опыт/время есть. А вот это как раз не просматривается.
Может быть, тупо приладить дешёвый домашний маршрутизатор и настроить его на фильтрование?
Go to the top of the page
 
+Quote Post
A. Fig Lee
сообщение Sep 18 2014, 02:00
Сообщение #9


Знающий
****

Группа: Участник
Сообщений: 974
Регистрация: 4-04-08
Из: далека
Пользователь №: 36 467



Цитата(scifi @ Sep 17 2014, 20:58) *
Не верю, что это нельзя решить в прошивке. Верю, что может не хватить знаний/опыта/времени, и второй МК как костыль тогда вполне годное решение при условии, что уж для него знания/опыт/время есть. А вот это как раз не просматривается.
Может быть, тупо приладить дешёвый домашний маршрутизатор и настроить его на фильтрование?

В какой "прошивке"? Можно решить. И решается. Но времени больше ни на что не остается.
100 байтовый пакет занимает 10 микросекунд обработка. За столько же приходит следующий.


--------------------
Верить нельзя никому, даже себе. Мне - можно.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Sep 18 2014, 05:08
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Ну все верно. Не хватает ресурсов на работу, потому что задолбили пакетами - ставь выделенный обработчик. А поставить 2 одинаковых проца - дорого? Зачем элементную базу то плодить?

Можно кстати красиво решить: Ставьте в сеть 2 ваших устройства, на первом, что делает дело, выключайте UDP вообще, на втором создавайте TCP соединение с первым, и пусть он пакеты фильтрует, и те что к устройству по ТСР отдает первому, тот обрабатывает и возвращает обратно. Тогда даже плату переразводить не надо, просто 2 штуки поставить.
Go to the top of the page
 
+Quote Post
SM
сообщение Sep 18 2014, 05:44
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



А, просто, поставить более мощный процессор? Не с 72 МГЦ, а, например, с 720 МГЦ sm.gif ? Или свет клином именно на этом сошелся?
Go to the top of the page
 
+Quote Post
doom13
сообщение Sep 18 2014, 06:33
Сообщение #12


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(A. Fig Lee @ Sep 18 2014, 03:20) *
"В жизни все не так как на самом деле"

Спасибо, интересная теория. Моя задача не найти "кто прав, кто виноват", а придумать решение.
Имеем устройства, без которых нам не жить, и которые посылают именно UDP broadcast с MAC broadcast.
Это данность.

То была не теория, а элементарные правила, как должна осушествляться передача одной информации несколькии адресатам при использовании ethernet. Раз уж так сделано, то решение - только более мощный процессор, т.к. если бы использовались пакеты с multicast, их можно было бы фильтровать на уровне MAC железно, Вам же придётся задействовать ресурс процессора.
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Sep 18 2014, 08:53
Сообщение #13


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(A. Fig Lee @ Sep 17 2014, 22:56) *
...приходится принимать все пакеты, потом сбрасывать, когда ясно что не нам....


пока Вы не локализуете узкое место - говорить об направлении решения проблемы, мягко говоря не профессионально.
где затык то? обработка пдп, сборка на IP уровне, или где?

в тех стеках что общедоступны, обычно не оптимально по скорости код написан.
так-же важен размер памяти под кванты приёма пдп. если длина мусорных пакетов 100 байт, то делать больше 150-200 байт входные буфера не правильно.
так-же присмотритесь к обработчикам копирования, перемещения, выделение, освобождение и прочих по работе с памятью...
Go to the top of the page
 
+Quote Post
WitFed
сообщение Sep 18 2014, 10:09
Сообщение #14


Местный
***

Группа: Свой
Сообщений: 271
Регистрация: 6-12-11
Из: Taganrog
Пользователь №: 68 701



Лечить, естественно, нужно корень, в меру возможности доступа к его авторам, но пока можно приделать костыли.
(Анекдот на эту тему слышал об эмблеме софтверной компании: сверху перечёркнутый красным жук, в центре велик, внизу грабли, всё на фоне перекрещенных костылей wink.gif
Если даташиты все есть, в прерывании от Eth можно узнать первые байты пришедшего пакета и выкинуть его, если FF. Без проходов по официальным слоям стека это может занять 1 мкс.
Также вдруг в железке есть свойство запретить к приёму какие-то MAC-адреса совсем, от особо шумящих...
API своё надо прошерстить на предмет как можно более низких запретов.
Go to the top of the page
 
+Quote Post
doom13
сообщение Sep 18 2014, 10:21
Сообщение #15


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(WitFed @ Sep 18 2014, 13:09) *
Лечить, естественно, нужно корень, в меру возможности доступа к его авторам, но пока можно приделать костыли.

Говорят, костыль нужен, как должно быть неважно.

Цитата(WitFed @ Sep 18 2014, 13:09) *
Также вдруг в железке есть свойство запретить к приёму какие-то MAC-адреса совсем, от особо шумящих...

Какие-то запретить можно, но broadcast mac нет, его примут все устройства.
Go to the top of the page
 
+Quote Post

5 страниц V   1 2 3 > » 
Reply to this topicStart new topic
4 чел. читают эту тему (гостей: 4, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 12:22
Рейтинг@Mail.ru


Страница сгенерированна за 0.02442 секунд с 7
ELECTRONIX ©2004-2016