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

 
 
5 страниц V  « < 3 4 5  
Reply to this topicStart new topic
> Посоветуйте микроконтроллер, для IP (UDP) filtering
jcxz
сообщение Sep 19 2014, 08:38
Сообщение #61


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(AlexandrY @ Sep 19 2014, 14:19) *
Возмем реалистичный 70 Mbit поток по Ethernet. Это 8 Мбат в сек данных.

У меня далеко не 70Мбит.
Скорость ограничивается ПО на компе, которое принимает и передаёт данные. Оно тормозное - устройство периодически успевает заполнить его приёмное окно
и постоянно из-за этого идут приостановки потока на приёмном конце (tcp.window == 0).
Скорость там всего = неск. килобайт/сек.
Go to the top of the page
 
+Quote Post
doom13
сообщение Sep 19 2014, 08:42
Сообщение #62


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

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



Цитата(Golikov A. @ Sep 19 2014, 11:25) *
снова невнимательно читаете. Идея была заглушить UDP вообще. Для этого и надо 2 устройства. Одно полное живет в сети отвечает на все вопросы ARP и так далее, и жует входной поток. Из него выдирает те сообщения что нужно и по ТСР на четки IP передает их, так же получает ответы и шлет в сеть. Второе устройство с урезанным езернет функционалом, без UDP ваще, все пакеты UDP просто игнорирует, и принимает только ТСР от первого устройства. В экстрим режиме, даже не ТСР а вообще raw ethernet.

Таким образом все UDP пакеты что бродкаст размером 100 байт и идут через 10 мкс, отвергаются значительно быстрее по признаку UDP, чем по разбору содержимого, и высвобождают ресурсы. Вот такое было предложение. Это костыль и заплатка- это не решение. Оно просто позволяет на существующей плате только подправив софт получить готовое устройство и не более того.

Читаю внимательно, это Ваша идея была - два устройства, одно глушит UDP с broadcast и т.д., AlexandrY broadcast фильтровать собрался, ну или по крайней мере знает, как это сделать.
Но, видимо, это какая-то государственная тайна, она так и не озвучена.
Go to the top of the page
 
+Quote Post
A. Fig Lee
сообщение Sep 19 2014, 10:34
Сообщение #63


Знающий
****

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



Цитата(Golikov A. @ Sep 19 2014, 01:15) *
Я понимаю что на 90% целью форума является загнобить человека, для этого надо найти единомышленика, не понять задачу, и начать кидать шапками.

Если почитать внимательно, станет понятно следующее
1. Сеть UDP brodcastami грузит не устройство ТС, а внешние устройства, чужие, которые не переделаешь, с этим просто надо жить.
2. Устройство ТС не успевает жевать бродкасты потому что занято другими делами помимо Ethernet

Зачем столько жевать что сделано не верно, если это изменить нельзя? ЧУЖИЕ устройства так сделаны, и в такой сети надо просто выживать.

3. Когда оцениваете 15 летний опыт, хорошо бы затратить хотя бы 15 минут своего времени на разбор задачи.
ARP и RARP дают вторую часть пары IP - MAC, когда известна первая.
То есть зная MAC можно получить IP, зная IP можно получить MAC.

Теперь вопрос к клубу "знатаков" как узнать IP и MAC одновременно?

Вот! Спасибо. Похоже единственный человек, кто понял задачу.


Цитата(jcxz @ Sep 19 2014, 04:38) *
У меня далеко не 70Мбит.
Скорость ограничивается ПО на компе, которое принимает и передаёт данные. Оно тормозное - устройство периодически успевает заполнить его приёмное окно
и постоянно из-за этого идут приостановки потока на приёмном конце (tcp.window == 0).
Скорость там всего = неск. килобайт/сек.

Бьюсь об заклад, что у вас траффик намного слабее. Во вторых процессор в 1.5 раза быстрее.
Мой тоже успевает. Почти. Но гдето раз в сутки в итоге очередь таки заполняется.
Попробуйте устроить в лупе с нескольких машин UDP бродкаст корокими пакетами и проверьте, получится, ли.

Цитата(doom13 @ Sep 19 2014, 04:34) *
Да, должно, но для этого надо потратить время и деньги. И можно говорить о кривости и несовместимости тех остальных девайсов. И если не указать на ошибки, то broadcast так и будет использоваться для передачи огромного потока данных, а другие будут этот поток фильтровать и не расскажут остальным - КАК?! biggrin.gif


Да ну!

Молодежь! Меня не для того наняли чтоб указывать на кривость чегото, а чтоб решать проблемы. Как только заикнусь, через минуту уволят


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


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

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



Цитата(A. Fig Lee @ Sep 19 2014, 13:34) *
Молодежь!

Спасибо, всегда приятно быть молодым.
Цитата(A. Fig Lee @ Sep 19 2014, 13:34) *
Меня не для того наняли чтоб указывать на кривость чегото, а чтоб решать проблемы. Как только заикнусь, через минуту уволят

Из Ваших слов следует, что Вы сами являетесь стороннником возможности использования broadcast для отправки данных (массивных данных), следовательно сами и создаёте себе проблемы. Была указана грубейшая ошибка с которой многие не согласились, и Вы в их числе. Ну и способы решения предложены так же, но это временное решение. Если то, о чём вы утверждаете, соответствует стандартам, - всегда найдутся "умельцы", которые отправят broadcast-ом ещё больший поток, что тогда будете делать? Придуманное Вами решение уже не будет работать, и тогда....
А может быть уволят тех, кто создал тот мега-девайс sm.gif, с которым другие нормальные устройства совместно не могут работать.
Go to the top of the page
 
+Quote Post
WitFed
сообщение Sep 19 2014, 12:26
Сообщение #65


Местный
***

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



Да, в Эту Студию бы тех, кто организовали этот бредкастный поток !
Наверняка это наши же собратья, так же плохо учившие матчасть... Но могущие быть пристыженными в отличие от Альтер всяких и быстро повиниться и исправиться wink.gif

Цитата(A. Fig Lee @ Sep 19 2014, 05:25) *
Данные реального времени, идет поток с датчиков. О другой части, кто принимает эти сигналы, они ничего не знают. Поэтому и UDP broadcast.

Я бы лично датчик сделал управляемым -- если получает пакет ON с некоего адреса, запоминает его в очередь рассылок и шлёт свои данные на конкретный IP, его все маршрутизаторы отлично больше никому не передадут.
Ну и пакет OFF на всякий случай, вдруг система может выключаться частями...
Или там вся пропускная способность сети (100 байт х 100 000 раз в секунду == 10 000 000 выходит, это 100-Мбитную сеть затопит, на 1Г нормально будет) занята единичными бродкастами, к каждому по отдельности не пролезть уже будет ?
По-любому, такой поток лучше пустить по выделенной линии к конкретному получателю, на отдельный вход, это недорого и упрощает сеть.

Вообще, можно пытаться идти ещё более другим путём -- разделить "извра-сеть" и обычную, в которой есть слабые устройства, одно из которых сейчас 1 раз в день падает, и которое решено заменить костыльным, но тоже как-то странно... Но в наших кругах ЛПРцы часто так себя ведут sad.gif
Если датчики смогут слать своим потребителям, а "наш" девайс с ними не связан... Ну или связан несильно, да настройкой маршрутизаторов за 3 коп можно всё-таки не пересылать нам эти дурные пакеты...
Go to the top of the page
 
+Quote Post
WitFed
сообщение Sep 22 2014, 10:40
Сообщение #66


Местный
***

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



Пока наш "чёртик" отдыхает, можно предложить ещё один путь -- поисследовать, от чего "затык" в "шумном" подключении. И вообще, что такое есть "затык" ? Зависание ядра, потеря важного пакета, неотработка чего-то вовремя ?
По идее, сеть Eth может терять "лишние" пакеты, которые нет ресурсов обработать, и железо нашего контроллера, если не всё софтом отработано из прошлых данных, просто что-то отбросит, не передав в ОЗУ.
В текущей конфигурации можно нарастить буфера и обрабатывать максимально имеющийся объём полученных данных, если получен один пакет ? После обработки одного можно быстро увидеть, сколько ещё торчит в памяти принятых пакетов, не возвращаясь к обычной работе ? Это должно быть гораздо быстрее, особенно если основная обработка -- проверить первые байты и выбросить.
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Sep 23 2014, 07:14
Сообщение #67


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

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



Цитата(WitFed @ Sep 22 2014, 14:40) *
...что такое есть "затык" ? Зависание ядра, потеря важного пакета, неотработка чего-то вовремя ?..


вообще то сам приёмник можно сделать таким образом, что скорость приёма будет зависеть только от размера буферов под это выделенных. сам обработчик будет только
управлять "сигналами" и указателями.

свои девайсы обычно гоняю на приём максимально возможных 65535 пингах. ответ не делаю(дабы жора памяти не было), а вот принимается весь хвост. там собственно постоянно валяться фрагменты, с максимально
допустимой скоростью для сегмента сети(100mb). никаких затыков физически нет. при обработке(отдача клиенту), подготовка какого нить HTML, и обратная отсылка - то конечно же немножечко больше. но всё равно ударные
нагрузки (типа рефреш HTML) и несколько пингов (мелкие, среднии, максимальные) протаскивает. с большим таймингом конечно же, но на работоспособность влиять не должно (STM32F417).

Сообщение отредактировал kolobok0 - Sep 23 2014, 07:17
Go to the top of the page
 
+Quote Post
jcxz
сообщение Sep 23 2014, 08:03
Сообщение #68


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(A. Fig Lee @ Sep 19 2014, 16:34) *
Мой тоже успевает. Почти. Но гдето раз в сутки в итоге очередь таки заполняется.

Возможно у Вас где-то кратковременная пиковая загрузка CPU возникает.
Поройте код на предмет более равномерного распределения обработки.

Цитата(kolobok0 @ Sep 23 2014, 13:14) *
вообще то сам приёмник можно сделать таким образом, что скорость приёма будет зависеть только от размера буферов под это выделенных. сам обработчик будет только
управлять "сигналами" и указателями.

Это называется "flowcontrol". sm.gif
Но боюсь это справедливо только для конкретных протоколов точка-точка (типа TCP-сокета).
Если-бы такое делать для всех пакетов в сети, то самое медленное устройство будет тормозить всю сеть. А если оно ещё и повиснет...
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Sep 24 2014, 11:53
Сообщение #69


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

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



Цитата(jcxz @ Sep 23 2014, 12:03) *
...Это называется "flowcontrol". sm.gif..


Вы меня не поняли..речь шла о стандартной библиотеки lwip и в частности об обработчике прерывания пдп от Ethernet-а
никаких затыков на всём многообразии поддерживаемых, данной библиотекой, протоколов не наблюдаю.

в ответе попытался обратить внимание на
1) правильность написания обработчика прерывания от пдп (без всяких там выделений памяти и не дай бог копирования данных)
2) от размерности буфера блока выделяемого под приём.

в оригинале там совсем не комильфо. и использовать тупо в лоб - максимум скорости не получить.

Go to the top of the page
 
+Quote Post
A. Fig Lee
сообщение Sep 28 2014, 16:43
Сообщение #70


Знающий
****

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



Вернулся из отпуска.
Почитал последние постинги.
"Для тех, кто не слышал, повторяем": основная задача это форвард радио пакетов в ethernet.
Так что на чисто ethernet остается не так много времени.
Это STM32F107 @ 72 MHz.
Да, в прерывании идет копирование пакета.

Получил плату с 2х ядерным кортексом. Буду пробовать.


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


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(A. Fig Lee @ Sep 28 2014, 22:43) *
Да, в прерывании идет копирование пакета.

Ну вот.... А ведь Вас предупреждали... smile3046.gif
Если у Вас весь код так построен, то ничего удивительного, что он не успевает UDP-пакеты разгребать...
Go to the top of the page
 
+Quote Post
A. Fig Lee
сообщение Sep 28 2014, 17:28
Сообщение #72


Знающий
****

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



Цитата(jcxz @ Sep 28 2014, 13:11) *
Ну вот.... А ведь Вас предупреждали... smile3046.gif
Если у Вас весь код так построен, то ничего удивительного, что он не успевает UDP-пакеты разгребать...

A как надо? В прерывании производить всю обработку? Или оставить и ждатъ пока следующий пакет затрет предыдущий?
Проблема не в этом. Там без граблей не обойтись. А грабли не наш метод.


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


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(A. Fig Lee @ Sep 28 2014, 23:28) *
A как надо? В прерывании производить всю обработку? Или оставить и ждатъ пока следующий пакет затрет предыдущий?
Проблема не в этом. Там без граблей не обойтись. А грабли не наш метод.

Я конечно не знаком с Ethernet-контроллером STM, но в LPC-шном RX-часть Ethernet-контроллера аппаратно поддерживает очередь доступных для заполнения
буферов: ПО заполняет очередь дескрипторами буферов; кадр принимается в очередной буфер; ПО извлекает дескриптор заполненного буфера из очереди;
приём после этого не останаливается и ничего не затирает - он идёт в след. буфер в очереди.
А в это время кадр в принятом буфере обрабатывается (хоть в ISR хоть в фоновом процессе). И эта обработка проводится прямо в этом-же самом буфере без каких-либо копирований.
Приём может приостановиться только после исчерпания всех буферов в очереди доступных. Но это может произойти только если ПО не успевает обработать поток кадров в течение длительного времени.
К кратковременным задержкам в обработке кадров такой алгоритм работы устойчив - этому помогает глубина очереди доступных для заполнения буферов.
И строить обработку нужно с минимумом копирований, раз у вас проблемы с быстродействием.
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Sep 29 2014, 16:16
Сообщение #74


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

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



Цитата(jcxz @ Sep 28 2014, 22:22) *
Я конечно не знаком с Ethernet-контроллером STM...


в STM так-же есть возможность заменять указатель на буффер, в дескрипторах ставящихся на ПДП. Проблема, как Вы правильно сказали, в резервации таких буферов(дабы этим не заниматься в прерывании) - т.е.
её глубины (собственно это можно сделать авто-подстройкой)

Go to the top of the page
 
+Quote Post

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

 


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


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