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

 
 
> Стек uIP
vladik
сообщение Aug 5 2009, 13:17
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 26
Регистрация: 18-05-06
Пользователь №: 17 226



Периодически на форуме появляются вопросы по этому стеку, их немного, поэтому просто предлагаю свалить все в кучу, возможно потом сделать FAQ.

У меня возникла задача закачать на устройство несколько метров данных за возможно более короткое время. На ARM7 под FreeRTOS скорость получилась ~ 1.6 МБайта/сек ~ 10МБит. Но это после того как в системе оставил только одну задачу под стек и Main Loop стека сделал без задержек. На мой взгляд препятствием к дальнейшему увеличению скорости является отсутствие так называемого алгоритма Delayed Acknowledgement, когда ACK отправляется через один пакет, по крайней мере такое я наблюдал в винде при перекачке больших файлов.
Соответственно вопрос: какую скорость обмена данными можно выжать из этого стека и как этого достичь?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Rst7
сообщение Aug 12 2009, 15:34
Сообщение #2


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
основное различие между ними в том что


Основное различие в том, что lwIP поддерживает опережающую передачу. То, что называется Sliding window.

Вообще-то мне не понятна фраза
Цитата
Also, uIP does not buffer sent packets and a sliding window implementation that does not buffer sent packets will have to be supported by a complex application layer.


Слухи о сложности сильно преувеличены. Я у себя в стеке реализовал без особых проблем. Кстати, достаточно легко это допиливается исходя из такого требования к уровню приложения:
Цитата
As uIP does not keep track of packet contents after they have been sent by the device driver, uIP requires that the application takes an active part in performing the retransmission. When uIP decides that a segment should be retransmitted, it calls the application with a flag set indicating that a retransmission is required. The application checks the retransmission flag and produces the same data that was previously sent.


Т.е. в любом случае, уровень приложения должен уметь сформировать такой-же пакет. А от этого один шаг к поддержке опережающей передачи. У меня для уровня приложения есть 3 события по передаче - сгенерить не более стольки-то новых данных (каждый вызов приводит к генерации следующей порции), откат на состояние последних подтвержденных данных и подтверждение стольки-то уже переданных данных.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 15:17
Рейтинг@Mail.ru


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