Перейти к содержанию
    

подскажите хороший tcp/ip стек

Возвращаясь к теме подскажите хороший tcp/ip стек, кроме uIP:

Кто-нибудь использовал Keil'овский RL-TCPnet?

Как он по скорости, в сравнении с теми же uIP/lwIP?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Возвращаясь к теме подскажите хороший tcp/ip стек, кроме uIP:

Кто-нибудь использовал Keil'овский RL-TCPnet?

Как он по скорости, в сравнении с теми же uIP/lwIP?

вот здесь Keil выкладывает тесты скорости (опять же - как тестировали, какие еще задачи"болтались" и т.д. - непонятно)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вот здесь Keil выкладывает тесты скорости (опять же - как тестировали, какие еще задачи"болтались" и т.д. - непонятно)
Да видел я это... KB/s - это килобит или килобайт?

 

NXP LPC2368 at 48MHz 3,350 UDP, 1,718 TCP/IP
если килобит, то получается для TCP 1.8Мбитт/сек - маловато...

 

Просто сейчас стоит задача организовать передачу данных в ПК с максимальной скоростью. Скорость чем больше - тем лучше. Процессор - LPC2468 (в будущем планируется заменить на LPC3250 или около того, но пока LPC2468). Протокол TCP (данные терять и путать нельзя - там длинные куски по 2 - 100Кбайт).

Тем по uIP/lwIP на форуме много, а вот по кейловскому стеку я ничего не нашел, вот и хотелось узнать о нем мнение, что лучше выбрать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да видел я это... KB/s - это килобит или килобайт?

 

если килобит, то получается для TCP 1.8Мбитт/сек - маловато...

Надо думать, все же килобайт. Но все равно маловато. Обратите еще внимание на одинаковую скорость TCP на разных платформах для 1400 байт - что-то в консерватории явно не так.

 

Протокол TCP (данные терять и путать нельзя - там длинные куски по 2 - 100Кбайт).

Ну, чтобы обеспечить целостность данных вовсе не обязательно использовать именно TCP.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Обратите еще внимание на одинаковую скорость TCP на разных платформах для 1400 байт - что-то в консерватории явно не так.
Да, и к тому же в предпоследней строчке TCP быстрее UDP... Будем считать это банальная опечатка - скопировался результат с предыдущей платформы:)

 

Ну, чтобы обеспечить целостность данных вовсе не обязательно использовать именно TCP.
Согласен, можно прописывать в начало пакета номер и использовать UDP и самому отправлять квитанции. Если квитанций нет какое-то время - отправлять повторно. Но получается почти тот-же TCP, только заголовок проще... Вот я и решил сразу TCP и использовать.
Изменено пользователем i.cf

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мне всего-то надо отправлять с компа на девайс 64-битные посылки.

 

Если устраиват UDP - дейтаграмные посылки, а не собираетесь использовать TCP, то нет нужды заморачиваться особенно со стеком - на сайте у атмела должны быть тесты типа BasicEthernet

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мне всего-то надо отправлять с компа на девайс 64-битные посылки.
Это писал не я и два года назад. Писавший это уже получил ответы на свои вопросы.

 

Если устраиват UDP - дейтаграмные посылки, а не собираетесь использовать TCP, то нет нужды заморачиваться особенно со стеком
Та в том-то и дело, что не совсем устраивает (см. мой предыдущий пост). И использовать собираюсь я использовать именно TCP!

 

Что-то так и не встретились пользователи RL-TCPnet, что немного настораживает...

Изменено пользователем i.cf

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На вот такой платке: http://www.starterkit.ru/html/index.php?na...p=view&id=9 ,

TCP/IP стэк кейловский (RTL), при частоте тактирования контроллера 72 МГц, в thumb mode (ибо библиотека там только для thumb),

удалось пропихнуть в сторону компа

~20000 коротких (18 байт) UDP пакетов в секунду...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На вот такой платке: http://www.starterkit.ru/html/index.php?na...p=view&id=9 ,

TCP/IP стэк кейловский (RTL), при частоте тактирования контроллера 72 МГц, в thumb mode (ибо библиотека там только для thumb),

удалось пропихнуть в сторону компа

~20000 коротких (18 байт) UDP пакетов в секунду...

К сравнению - у меня lwip, TCP, пакеты по 1024 байта, функции RAW API tcp_write() - 1638400 байта в сек поток работает отлично. Разработанная система - восьмиканальный анализатор. Только нужно комп брать многоядерный и выделить поток независимый на прием. Плата - та-же, стартеркита, на LPC2368, 64 МГЦ тактовая, ARM-mode

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Только нужно комп брать многоядерный и выделить поток независимый на прием.

Многоядерный для приема 1600 кБайт/с? Или какая-то обработка все же делается?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Многоядерный для приема 1600 кБайт/с? Или какая-то обработка все же делается?

Спектральная обработка в реальном времени, конечно. А отдельный поток на прием для того, чтобы не делать очень длинный буффер передачи (да и ограничение по памяти). А винда имеет особенность иногда отвлекаться на что-то и происходит переполнение. Да и замирание данных на экране не приветствуется...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

К сравнению - у меня lwip, TCP, пакеты по 1024 байта, функции RAW API tcp_write() - 1638400 байта в сек поток работает отлично. Разработанная система - восьмиканальный анализатор. Только нужно комп брать многоядерный и выделить поток независимый на прием. Плата - та-же, стартеркита, на LPC2368, 64 МГЦ тактовая, ARM-mode

 

Ну у меня масштабы попроще ;)

Полный мониторинг одновременно двух CAN шин.

Достигнутой скорострельности вполне достаточно для этого.

Без лишних заморочек с буферизацией и пр.

Один udp пакетик - для каждого CAN сообщения. Многое упрощает..

Оврхед UDP не нарягает...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

TCP/IP стэк кейловский (RTL), при частоте тактирования контроллера 72 МГц, в thumb mode (ибо библиотека там только для thumb), удалось пропихнуть в сторону компа ~20000 коротких (18 байт) UDP пакетов в секунду...
Это получается 0,34Мбайт/с, а если учесть (основываясь на все той же же кейловской RL-TCPnet Performance) что при увеличении пакета в 140 раз скорость увеличилась раз так в 30, то для большого пакета должно быть около 10Мбайт/с. Или около 5Мбайт/с для TCP.

 

К сравнению - у меня lwip, TCP, пакеты по 1024 байта, функции RAW API tcp_write() - 1638400 байта в сек поток работает отлично. Разработанная система - восьмиканальный анализатор. Только нужно комп брать многоядерный и выделить поток независимый на прием. Плата - та-же, стартеркита, на LPC2368, 64 МГЦ тактовая, ARM-mode
1638400байт/сек = 1,56Мбайт/сек - это максимальная скорость, или просто быстрее передавать не было необходимости?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1,56Мбайт/сек

На pc на 10Мбитном интефейсе реально получить 8 мегабит на длинных пакетах, а на 100Мбитном 60.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На pc на 10Мбитном интефейсе реально получить 8 мегабит на длинных пакетах, а на 100Мбитном 60.

PC-шки, они же разные.. :biggrin:

 

На Marvel'е, на 100-Мбитном линке можно и 100:

 

:rolleyes:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...