Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: TCP стек для LPC1768
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
andrewlekar
Посоветуйте наиболее полный и наименее сырой TCP стек из бесплатных (или платных, но доступных для скачивания) для RTOS.

Пока что наиболее подходящим вариантом представляется lwIP. Стек от микриума менее подходит из-за отсутствия в свободном доступе модулей DNS, DHCP, SSL для него и из-за отсутствия поддержки фрагментации, ограничений по ICMP.

Говорят, что неплох NicheLite, но это урезанная версия NicheStack, а урезанность это не очень приятно. В частности нет поддержки multicast пакетов. Это не страшно, если стек из-за них не будет валиться. С другой стороны, легче будет запихать в не очень большую память процессора.

Посоветуйте, что выбрать при таком раскладе.
zltigo
QUOTE (andrewlekar @ Jul 22 2010, 11:45) *
Посоветуйте, что выбрать при таком раскладе.

Например, FreeBSD. Часть порта есть в составе TNKernel http://www.tnkernel.com/tn_net_1.html .
andrewlekar
Слышал мнение что этот стек довольно жирный. Мне хватит в LPC1768 места для стека, SSL и ещё хотя бы 4K ОЗУ свободных?

Посмотрел TNKernel. Насколько это полноценный стек? Можно ли его сразу использовать в проекте?
zltigo
QUOTE (andrewlekar @ Jul 22 2010, 14:33) *
Слышал мнение...

Теперь возьмите и составьте СОБСТВЕННОЕ мнение.
Mahagam
а задачи то какие вообще стоят? а то может оказаться что и uIP - за глаза. на uIP DHCP/DNS/SNTP/mDNS клиентов поднимал, IPv4LL, HTTP-сервер, telnet. HTTP умел AJAX обрабатывать. что ещё надо для полного счастья? smile.gif
one_man_show
У меня ядрышко FreeBSD под AT91RM9200 занимает 2.6МБ, правда там нельзя сказать, что все по минимуму, например, вэб-интерфейс за собой потянул Perl и так далее. Для сравнения портированный Linux для этого же процессора сейчас занимает 1.6МБ и тоже с разными вкусностями.
VslavX
Цитата(andrewlekar @ Jul 22 2010, 14:33) *
Слышал мнение что этот стек довольно жирный. Мне хватит в LPC1768 места для стека, SSL и ещё хотя бы 4K ОЗУ свободных?

Вопрос "на засыпку" - SSL уже присмотрели?
zltigo
QUOTE (one_man_show @ Jul 22 2010, 16:30) *
У меня ядрышко FreeBSD ..

Ну по ссылке не ядрышко smile.gif. Там по мере надобности портируемый IP стек, который у FreeBSD более, чем вменяем в исходниках. Ну и по обкатке это далеко не одна из многих (да у меня самого пара накопилась smile.gif ) самоделка, пусть даже популярная и растиражированная.
one_man_show
Цитата(zltigo @ Jul 22 2010, 18:48) *
Ну по ссылке не ядрышко smile.gif

Согласен smile.gif
Perl, Midnight Commander, gettext, gawk и дальше потянулось, конечно избыточны
andrewlekar
Цитата
SSL уже присмотрели?

Вроде как PolarSSL достаточно реально прикрутить. Исходники не сильно страшные и требования к памяти приемлемые.

Цитата
а задачи то какие вообще стоят?

Задача - бессбойная, беспроблемная работа в сетях местного провайдера. Посему нужны DHCPc, DNSc, поддержка мультикаст, броадкаст, кое-каких ICMP, обработка фрагментированных пакетов, качественное шифрование. Ещё dynDNS желательно, но с ним я ещё не разбирался и это не так актуально.

Цитата
Теперь возьмите и составьте СОБСТВЕННОЕ мнение.

Я для того тему и поднял, чтобы не составлять собственное мнение по каждому из представленных продуктов, а с наибольшей вероятностью сразу выбрать лучшее решение.
VslavX
Цитата(andrewlekar @ Jul 23 2010, 07:41) *
Задача - бессбойная, беспроблемная работа в сетях местного провайдера. Посему нужны DHCPc, DNSc, поддержка мультикаст, броадкаст, кое-каких ICMP, обработка фрагментированных пакетов, качественное шифрование. Ещё dynDNS желательно, но с ним я ещё не разбирался и это не так актуально.

Качественное шифрование (SSL или IPSec, или что Вы имели ввиду?) ни в одном из доступных простых стеков (uIP, lwIP, Niche, K9) не реализовано, это придется делать Вам самому - тот же PolarSSL прикручивать.
Фрагментирование - насколько оно нужно вопрос спорный, если основным протоколом будет TCP, то фрагментирование может вообще не понадобится. АФАИК, в uIP фрагментирование не поддержано вообще, в lwIP очень ограничено (сборка только одного пакета в каждый момент времени), в полном Niche - не знаю.
А что имелось ввиду под мультикаст, броадкаст, на каком уровне сетевой модели? Для чего планируется это использовать?
andrewlekar
Да, будем прикручивать SSL, скорее всего. Качественное шифрование - это требование вообще, я тут ничего не имел в виду. Реализация на наше усмотрение.
Фрагментирование нужно в виде собирания пакетов, если те вдруг порежутся сетевым оборудованием. Фрагментирование на передачу скорее всего не понадобится, так как одна посылка будет не более 100 байт.
Полная поддержка броадкаст пакетов вообще-то не требуется (только ARP чтоб ходило) - нужно только чтобы стек не падал при большом потоке таких пакетов.
VslavX
Цитата(andrewlekar @ Jul 23 2010, 08:36) *
Фрагментирование нужно в виде собирания пакетов, если те вдруг порежутся сетевым оборудованием. Фрагментирование на передачу скорее всего не понадобится, так как одна посылка будет не более 100 байт.

Оно и на прием не понадобится - при установлении TCP-соединения просто укажется жедаемый MSS (max segment size) и все - не будет никакой фрагментации.

Цитата(andrewlekar @ Jul 23 2010, 08:36) *
Полная поддержка броадкаст пакетов вообще-то не требуется (только ARP чтоб ходило) - нужно только чтобы стек не падал при большом потоке таких пакетов.

ARP реализован во всех упомянутых стеках - без него IP по эзернету проблематично пропустить. Бродкаст на IP-уровне используется DHCP, тоже нет особых проблем. То есть - Вам никакой особой экзотики типа широковещания медиапотоков не нужно, поэтому можете вообще насчет бродкаста/малтикаста не заморачиваться.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.