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

 
 
6 страниц V  « < 2 3 4 5 6 >  
Reply to this topicStart new topic
> подскажите хороший tcp/ip стек, кроме uIP
MALLOY2
сообщение Sep 21 2007, 07:58
Сообщение #46


Знающий
****

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



я сейчас узаю lwip 1.2.0 на STR912F, результатми очень доволен, на тесте типа заполняем масив через memset и отпраляет получил на TCP 30.1 mbit/s на UDP до 60 mbit/s, с приемом немного хуже на UDP не измерял, а на TCP 19.8 mbit/s.
Go to the top of the page
 
+Quote Post
etoja
сообщение Sep 21 2007, 08:29
Сообщение #47


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

Группа: Свой
Сообщений: 1 121
Регистрация: 14-01-05
Из: Москва
Пользователь №: 1 952



Как на lwip сделать FTP клиента?
Или другими словами: как выглядит С программа в приборе со стеком lwip, чтобы прибор мог активно открыть на удалённом сервере два разных порта одновременно?
Go to the top of the page
 
+Quote Post
MALLOY2
сообщение Sep 21 2007, 08:54
Сообщение #48


Знающий
****

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



да как все делают, а открыть можно скок угодно портов, все зависит от того скоко у вас памяти и какая нужна производительность, у меня на данный момент работает 2 порта сервера, и 1 порт клиента TCP и 1 UDP порт. Использую метод Callback но кому нравятся сокеты можно и их использовать.

1 порт сервера под telnet может подключатся только 1 клиент. и 1 порт под http может подключатся до 4 клиентов одновременно.
Go to the top of the page
 
+Quote Post
e-yes
сообщение Sep 21 2007, 12:17
Сообщение #49


Участник
*

Группа: Новичок
Сообщений: 30
Регистрация: 16-06-07
Пользователь №: 28 483



LWIP, At91RM9200, GCC 4.1.2. HTTP-клиент. Скорость скачивания файлов - 5.7 Мбайт в секунду.
Интересно, а сколько вообще предел для этого процессора в скорости передачи (интересует траф входящий, с точки зрения железки)?

Сообщение отредактировал e-yes - Sep 21 2007, 12:22
Go to the top of the page
 
+Quote Post
Yra
сообщение Sep 24 2007, 18:13
Сообщение #50


Местный
***

Группа: Свой
Сообщений: 396
Регистрация: 22-10-04
Из: Воронеж
Пользователь №: 962



Насчёт где достать исходники LwIP: на сайте freertos.org скачиваете архив исходников операционки с примерами. Среди примеров- порт данного стека (и заодно uIP) под эту операционку. Существует также порт LwIP стека под uC/OSII (гдето на sourceforge.net - если надо могу уточнить но в поисковике ищется). Эти файлы и взял за основу когда прикручивал LwIP к uC/OSII.

Кто может дать сравнительный анализ uIP и LwIP по размеру кода и функциональности? Ато сомнения гложут...


--------------------
всё можно наладить, если достаточно долго вертеть в руках /Законы Мерфи/
Go to the top of the page
 
+Quote Post
Velund
сообщение Sep 24 2007, 22:54
Сообщение #51


Знающий
****

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



Кстати, о птицах...

А emBetter кто нибудь реально пробовал?

http://www.stzedn.de/index.php?id=6&L=1

Расписано красиво... А как на деле? wink.gif
Go to the top of the page
 
+Quote Post
etoja
сообщение Sep 25 2007, 03:20
Сообщение #52


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

Группа: Свой
Сообщений: 1 121
Регистрация: 14-01-05
Из: Москва
Пользователь №: 1 952



emBetter - неизвестный продукт неизвестной фирмы.
Лучше взять TCP/IP стек от фирмы CMX:
http://www.cmx.com/tcpstacks.htm
Он стоит 9500USD и свободно нигде не лежит.
Go to the top of the page
 
+Quote Post
scifi
сообщение Sep 25 2007, 05:28
Сообщение #53


Гуру
******

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



Цитата(Yra @ Sep 24 2007, 22:13) *
Кто может дать сравнительный анализ uIP и LwIP по размеру кода и функциональности? Ато сомнения гложут...

Лучше автора никто не сравнит:
http://www.sics.se/~adam/mobisys2003.pdf
Go to the top of the page
 
+Quote Post
e-yes
сообщение Sep 25 2007, 11:44
Сообщение #54


Участник
*

Группа: Новичок
Сообщений: 30
Регистрация: 16-06-07
Пользователь №: 28 483



Надо добавить, что сейчас LwIP свободно "доразрабатывается" на нонгну: savannah.nongnu.org/projects/lwip/
Пофиксено немало багов и функциональности добавлено.

Сообщение отредактировал e-yes - Sep 25 2007, 11:45
Go to the top of the page
 
+Quote Post
MALLOY2
сообщение Nov 6 2007, 07:29
Сообщение #55


Знающий
****

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



После отимизаций стека LwIP на STR912FA получил скорость TCP 5.6 метра в секунду smile.gif.
Go to the top of the page
 
+Quote Post
Waso
сообщение Nov 6 2007, 13:02
Сообщение #56


Местный
***

Группа: Свой
Сообщений: 268
Регистрация: 4-11-05
Пользователь №: 10 470



Цитата(MALLOY2 @ Nov 6 2007, 15:29) *
После отимизаций стека LwIP на STR912FA получил скорость TCP 5.6 метра в секунду smile.gif.
Весьма интересно в чем заключались эти оптимизации. Хотябы в общих словах.
Кстати у меня при попытке увеличить TCP_SND_BUF выше TCP_MSS сразу пропадала связь и на аки он отвечал ресетами. Неужели у at91sam7x256 ему памяти не хватает... А так скорость 300килоБАЙТ в секунду уверенно.
Go to the top of the page
 
+Quote Post
MALLOY2
сообщение Nov 7 2007, 07:49
Сообщение #57


Знающий
****

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



1) 8- битные и 16 битные переменные полей которые работали как счетчки или как переменные хранящие длинну, также все локальные счетчики счетчики были сделаны 32 битным типом.

2) критичные функции типа CRC перенесены в ОЗУ (в итоге программа в ОЗУ сьела 8к )

3) драйвер MAC буфиризирован.

4) в входном буфере нет копирования, тобиш выделяется место в PBUF под максимальную длинну пакета и в DMA подсовывается адресс, выделение происходит на опереженеие то есть раньше чем принят пакет, это сьедает больше памяти так как выделяется всегда на максимальный пакет, но колосально подымает производительность. В дальнейшем пакет никгде не копируется а по ходу продвижения по стеку разбирается.

5) естественно заменен алгоритм CRC на более быстрый, он кстати идет вместе с стеком но почемуто не включен в него.

6) выкинуты функции memcpy библиотечные и заменены на более быстрые.

7) ну и естественно выбраны оптимальные настройки памяти стека.

8) по итогу код стека во флеш. ~22К, в ОЗУ 8К, использовано памяти под кучу и другую фигню ~60к


Ну приблизительно вот.

Вот мои настройки стека
Прикрепленный файл  lwipopts.zip ( 3.27 килобайт ) Кол-во скачиваний: 232
Go to the top of the page
 
+Quote Post
ig_z
сообщение Nov 12 2007, 11:06
Сообщение #58


Местный
***

Группа: Свой
Сообщений: 437
Регистрация: 27-08-04
Пользователь №: 551



Цитата(MALLOY2 @ Nov 7 2007, 11:49) *
3) драйвер MAC буфиризирован.


Что это значит? можно подробнее?

Цитата(MALLOY2 @ Nov 7 2007, 11:49) *
4) в входном буфере нет копирования, тобиш выделяется место в PBUF под максимальную длинну пакета и в DMA подсовывается адресс, выделение происходит на опереженеие то есть раньше чем принят пакет, это сьедает больше памяти так как выделяется всегда на максимальный пакет, но колосально подымает производительность. В дальнейшем пакет никгде не копируется а по ходу продвижения по стеку разбирается.


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

Я так понимаю, вы проводили какое-то тестирование. Можно ли подробнее узнать:
1 насколько этот механизм увеличил пропускную способность стека
2 есть ли пропадание пакетов из-за блокировки емак-а
3 Я понял что исходящие пакеты вы обрабатываете "по старому". Почему здесь не применяете зеро сайз копи?
Go to the top of the page
 
+Quote Post
MALLOY2
сообщение Nov 13 2007, 07:32
Сообщение #59


Знающий
****

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



Код
Если ядро работает с езернет памятью


У STR912 нету езернет памяти, есть токо фифо которое в принципе скрыто от юзера, между фифо и озу стоит DMA.

Смысл буферизации заключается в том что б как можно меньше терять пакеты. Если не запустить DMA пакет не будет принят. Работает следующим как токо принят пакет, выделяется новый pbuf размером на макс пакет (1520 байт) и запускается DMA и так пока не кончатся pbuf smile.gif, приложения следит за этими pbuf и когда надо передвает в стек.

Код
1 насколько этот механизм увеличил пропускную способность стека

намного как при передачи так и при приеме. изначально при первом старете получил 13 mbit/s передача и 5-6 mbit/s прием, на данный момент 40-46 mbit/s передача, 25-30 прием

Код
2 есть ли пропадание пакетов из-за блокировки емак-а

Пропадаение пакетов есть, особенно если сеть перегружена броадкастами, но это не от блокировки емака, а от нехватки pbuf, память ведь ограничена.

Код
3 Я понял что исходящие пакеты вы обрабатываете "по старому". Почему здесь не применяете зеро сайз копи?

Да по старому, вся проблема в STR DMA, он требует выравнивание адреса 4, а payload pbuf не имеет выравнивания и приемущественно расположен на границе 2 из-за 6 байтового MAC адресса. В дальнейшем можно будет переписать управление PBUF так чтобы выходные пакеты имели выравниваение, но это потом.... сейчас меня такие параметры устраивают, а времени в обрез
Go to the top of the page
 
+Quote Post
ig_z
сообщение Nov 13 2007, 08:18
Сообщение #60


Местный
***

Группа: Свой
Сообщений: 437
Регистрация: 27-08-04
Пользователь №: 551



Цитата(MALLOY2 @ Nov 13 2007, 11:32) *
У STR912 нету езернет памяти, есть токо фифо которое в принципе скрыто от юзера, между фифо и озу стоит DMA.


Моя ошибка - невнимательно прочитал тред, я почему то был уверен, что вы используете лпс2300. Но в информация по любому очень интересная, большое спасибо a14.gif
Go to the top of the page
 
+Quote Post

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

 


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


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