Настройка параметров стека для достижения высокой скорости передачи

IgorPV

New member
Есть задача быстрой передачи данных на медленный удалённый сервер, для её решения нужно иметь большой буфер TCP(от 80КБайт). Планирую применить для этого модуль на основе RTL871Х. Подскажите на какой примерно размер TCP стека(TCP_WND) хватит ОЗУ модулей RAK476(RTL8710) и RAK473(+2MB SDRAM, RTL8711AM).
 
Последнее редактирование:

pvvx

Активный участник сообщества
Во первых в LwIP желательно задать динамические буфера... Для RTL8711AM и RTL8195AM TCP_WND можно задать большой, но нет смысла больше, чем на другой стороне (сервер-клиент, клиент-сервер).
Вообще TCP_WND подстраивают динамически и для этого существует разные алгоритмы...
По этому и советовал для решения вашей задачи взять модуль с *nix, а не с жесткой урезанной реализацией TCP стека. Тут вы закопаетесь в куче параметров и дельного ничего не получите... А модули с *nix, к примеру тот-же Omega2p, стоят в том том-же диапазоне ~ $5 за шт и потребляют в три/четыре раза больше... На *nix есть и более дешевые варианты и с меньшим потреблением, но не в виде SMD модулей.
 
Последнее редактирование:

IgorPV

New member
Я правильно понял что 80-100КБайт можно будет выделить под TCP стек? Встречаются упоминания что для пользователя доступно только 48КБ.
Прибор имеет малые габариты и автономное питание, поэтому подходят только малопотребляющие SMD сборки.
 

pvvx

Активный участник сообщества
Я правильно понял что 80-100КБайт можно будет выделить под TCP стек? Встречаются упоминания что для пользователя доступно только 48КБ.
Это "heap" при работе базового примера "AT" из SDK на RTL8710AF/RTL8711AF описанный в конфигурации RTOS, и даже не свободная RAM.
У AM - свободно более 2-х Мегабайт.

В местной интрасети увеличение TCP_WIN до 100 килобайт дало только увеличение пиков трансфера TCP файла с модуля (размером 1 Гег) на Chrome до ровно 2-х мегабайт в секунду, а монитора сети WiFi до 2.2. При стандартном в 4*MSS держится чуть более 1.8 мегабайт в секунду. WiFi роутер при этом не сильно загружен другими устройствами.
Не думаю, что вас спасет простое увеличение размеров окна, без переписывания всего, включая LwIP.
 
Последнее редактирование:
Сверху Снизу