Цитата(AleksBak @ Mar 17 2016, 07:13)

Вот, вчера это пропустил - еще там есть по этой теме:
Maximizing throughput. Для обоих видов протокола TCP и UDP приводят рекомендации.
А в этой версии есть эти функции: tcp_nagle_enable/tcp_nagle_disable ? Если взять сгенерированное от Куба, то там 1.4.1 (и функции эти есть и еще кое-какие дефайны по этой теме), но правда полученный код уже будет привязан к HAL от Куба. Хотя при желании его (этот HAL) не трудно переписать/убрать на свой.
Спасибо за ссылку!!!
Там оказался прямой ответ/совет:
"Try to prevent sending small chunks of data waiting for an ACK: delayed ACK on the remote host might destroy performance (often, only every 2nd packet is ACKed)"
Также совет чуть выше:
"If you write small chunks turn off the nagle algorithm (see wikipedia for more info!) to let the stack send data right away instead of waiting for more data to form bigger packets (see tcp_nagle_disable())."
Иными словами найденный мной вариант и есть лучшее решение - нейгл отключается и шлется 2 "неполных" пакета немедленно. И именно пара пакетов подтверждается ACK.
В WEB сервере от ST эта проблема замаскирована и не вылезает:D
Там если файл больше пары пакетов (т.е. целого буфера) - буфер заполняется полностью и LwIP шлет 2 пакета добровольно.
А если остаток файла маленький - он шлется и соединение тут же закрывается. Что естественным образом снимает вопрос ожидания ACK на одиночный пакет.
Кстати у меня исходники не от Куба!
Оригинальный пример от ST и заменен HAL путем замены 2-х файлов.
Переделку делал один мой приятель из Штатов.
Версии LwIP пока пробовать не буду, пока не допилю проект.
И опыта поднаберусь и железо получше выучу.