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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Стеки TCP/IP с примерами на STR912, OpenTCP, lwIP, тесты производительности
Pechka
сообщение Mar 25 2010, 17:24
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 144
Регистрация: 25-03-10
Из: Москва
Пользователь №: 56 210



Здравствуйте! Понадобилось реализовать "быстрый" канал по Ethernet на str912. Нашёл много упоминаний о openTCP, lwIP, даже какие-то тестовые результаты скорости по TCP. Однако нигде не нашёл исходников используемых портов. (общий C код есть, однако хочется с примерами на конкретном железе). Кто может поделиться такими реализациями? (обязательное условие - без операционки).
Заранее благодарю.
Go to the top of the page
 
+Quote Post
blackfin
сообщение Mar 25 2010, 17:36
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 106
Регистрация: 18-04-05
Пользователь №: 4 261



NicheLite, на ST не сгодится?

Сообщение отредактировал blackfin - Mar 25 2010, 17:38
Go to the top of the page
 
+Quote Post
Pechka
сообщение Mar 25 2010, 18:03
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 144
Регистрация: 25-03-10
Из: Москва
Пользователь №: 56 210



Цитата(blackfin @ Mar 25 2010, 20:36) *
NicheLite, на ST не сгодится?

Как у него со скоростью? Может и сгодится smile.gif
Go to the top of the page
 
+Quote Post
scifi
сообщение Mar 25 2010, 18:30
Сообщение #4


Гуру
******

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



Цитата(Pechka @ Mar 25 2010, 21:03) *
Как у него со скоростью? Может и сгодится smile.gif

Скорость - понятие весьма относительное. Опишите свою задачу, тогда люди что-нибудь дельное посоветуют. Описание типа "погуще, потолще, посильнее" не годится.
Go to the top of the page
 
+Quote Post
MALLOY2
сообщение Mar 25 2010, 19:39
Сообщение #5


Знающий
****

Группа: Validating
Сообщений: 838
Регистрация: 31-01-05
Пользователь №: 2 317



Порты относятся к опарационкам, вы же хотите без нее, так какой тут порт ?, для LWIP нужен только драйвер для MAC контроллера и все. Примеры есть на сайте ST но они не оптимизированные. И какую вы хотите скорость от STR912? 100% загрузки канала на TCP не получите, максимум 60-70% это на чистом стеке, тобиш проц ничего не делает кроме обслуживания стека и пакеты гоняет в никуда в одну сторону, чисто на чтение загрузка канала порядка 85% - 90% но принятые данные никак не обрабатываются. Также пропускная будет зависеть от количества выделенной вами для стека памяти.
Go to the top of the page
 
+Quote Post
Pechka
сообщение Mar 25 2010, 20:13
Сообщение #6


Частый гость
**

Группа: Свой
Сообщений: 144
Регистрация: 25-03-10
Из: Москва
Пользователь №: 56 210



Цитата(MALLOY2 @ Mar 25 2010, 22:39) *
Порты относятся к опарационкам, вы же хотите без нее, так какой тут порт ?, для LWIP нужен только драйвер для MAC контроллера и все. Примеры есть на сайте ST но они не оптимизированные. И какую вы хотите скорость от STR912? 100% загрузки канала на TCP не получите, максимум 60-70% это на чистом стеке, тобиш проц ничего не делает кроме обслуживания стека и пакеты гоняет в никуда в одну сторону, чисто на чтение загрузка канала порядка 85% - 90% но принятые данные никак не обрабатываются. Также пропускная будет зависеть от количества выделенной вами для стека памяти.

Прошу прощения за неточность формулировки. я имел ввиду именно стэк с драйвером и всеми настройками типа DMA и т.д.

Задача проста: нужно взять из Ethernet поток и запихнуть его в EMI с максимальной скоростью... и соответственно наоборот из EMI запихнуть поток в Ethernet. Предполагаю обрабатывать пакеты в прерываниях соответствующих и заряжать там DMA. Процессор никакими рассчетами не занят, памяти тоже свободной хватает. Так что хочется найти пример максимально быстрого стека практически не замарачиваясь на ресурсы... Максимальный размер пакета в ethernet спецификации вроде 1.5к, значит на него не нужно много памяти... Обрабатывать как-то параллельно что-то или вроде того не планирую вовсе. Кроме того хочу сгребать все tcp пакеты, независимо от порта. Вобщем есть что упростить и прооптимизировать...

Из довеска к TCP нужно только DHCP.

Сообщение отредактировал Pechka - Mar 25 2010, 20:18
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Mar 25 2010, 20:22
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Pechka @ Mar 25 2010, 23:13) *
...хочу сгребать все tcp пакеты, независимо от порта.

Это, простите, как? TCP соединение устанавливается между двумя конкретными портами.
Go to the top of the page
 
+Quote Post
Pechka
сообщение Mar 25 2010, 20:30
Сообщение #8


Частый гость
**

Группа: Свой
Сообщений: 144
Регистрация: 25-03-10
Из: Москва
Пользователь №: 56 210



Цитата(aaarrr @ Mar 25 2010, 23:22) *
Это, простите, как? TCP соединение устанавливается между двумя конкретными портами.

Очень просто: "слушать" сразу все порты т.е. 1024-65535 и обрабатывать их одинаково...
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Mar 25 2010, 20:34
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



А смысл какой открывать до 64K соединений?
Go to the top of the page
 
+Quote Post
Pechka
сообщение Mar 25 2010, 20:47
Сообщение #10


Частый гость
**

Группа: Свой
Сообщений: 144
Регистрация: 25-03-10
Из: Москва
Пользователь №: 56 210



Цитата(aaarrr @ Mar 25 2010, 23:34) *
А смысл какой открывать до 64K соединений?

Никто не собирается открывать 64к соединений, соединений будет не более 2х. Однако какие порты при этом будут участвовать - не важно. т.е. это будет сервер, который будет доступен по любому из портов протокола TCP.
Грубо говоря это просто некий широкий канал обмена между другими частями системы (которые висят на EMI) и PC.
При этом поскольку EMI у нас всего 1, то и соединений нам много не нужно.

Сообщение отредактировал Pechka - Mar 25 2010, 20:50
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Mar 25 2010, 20:55
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Pechka @ Mar 25 2010, 23:47) *
Никто не собирается открывать 64к соединений, соединений будет не более 2х. Однако какие порты при этом будут участвовать - не важно. т.е. это будет сервер, который будет доступен по любому из портов протокола TCP.

Сомнительное "упрощение", ну да ладно.

Цитата(Pechka @ Mar 25 2010, 23:47) *
Грубо говоря это просто некий широкий канал обмена между другими частями системы (которые висят на EMI) и PC.
При этом поскольку EMI у нас всего 1, то и соединений нам много не нужно.

Так может и TCP не нужен, если нужна скорость, а PC рядом? Накрутите просто свой протокол поверх UDP.
Go to the top of the page
 
+Quote Post
Pechka
сообщение Mar 25 2010, 21:04
Сообщение #12


Частый гость
**

Группа: Свой
Сообщений: 144
Регистрация: 25-03-10
Из: Москва
Пользователь №: 56 210



Свой протокол поверх UDP не хочется городить т.к. тогда понадобится писать драйвер для этого сетевого устройства, иначе программисты PC будут ругаться, плеваться и т.д. Хочется что-то стандартное, возможно упрощенное. Да и в целом TCP достаточно удобно сделан для соединений с гарантированой доставкой: вроде бы ничего лишнего. Однако в моем случае можно будет ещё упростить его тем, что пакеты будут приходить в верном порядке.
Go to the top of the page
 
+Quote Post
KRS
сообщение Mar 25 2010, 21:08
Сообщение #13


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

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(aaarrr @ Mar 25 2010, 23:55) *
Так может и TCP не нужен, если нужна скорость, а PC рядом? Накрутите просто свой протокол поверх UDP.

+1
Если все происходит в одной физической локальной сети, без маршрутизаторов. TCP точно не нужен. UDP сэкономит и время и место.
В TCP много лишнего - измерение скорости канала и т.п. что в локальной сети абсолютно лишнее.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Mar 25 2010, 21:16
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Pechka @ Mar 26 2010, 00:04) *
Свой протокол поверх UDP не хочется городить т.к. тогда понадобится писать драйвер для этого сетевого устройства, иначе программисты PC будут ругаться, плеваться и т.д.

Если "программисты PC" плюются, когда слышат о непонятном протоколе UDP, то значит это совсем даже не программисты.

Цитата(Pechka @ Mar 26 2010, 00:04) *
Хочется что-то стандартное, возможно упрощенное. Да и в целом TCP достаточно удобно сделан для соединений с гарантированой доставкой: вроде бы ничего лишнего. Однако в моем случае можно будет ещё упростить его тем, что пакеты будут приходить в верном порядке.

Если все же решите использовать TCP, то лучше воздержитесь от таких "упрощений" хотя бы на начальном этапе.
Go to the top of the page
 
+Quote Post
Pechka
сообщение Mar 25 2010, 21:19
Сообщение #15


Частый гость
**

Группа: Свой
Сообщений: 144
Регистрация: 25-03-10
Из: Москва
Пользователь №: 56 210



Нет, я имел ввиду не UDP непонятный, а надстройка будет самодельная и из-за неё будут проблемы.
Ну, раз все настаивают - буду лобировать сей вопрос завтра smile.gif

Но всё-таки хотелось бы получить ещё и lwIP, openTCP примеры для STR912 smile.gif

Сообщение отредактировал Pechka - Mar 25 2010, 21:21
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 20th June 2025 - 20:24
Рейтинг@Mail.ru


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