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

 
 
> Вопрос по LwIP, Скорость отправки
Petr_
сообщение Mar 15 2016, 18:12
Сообщение #1





Группа: Участник
Сообщений: 14
Регистрация: 15-03-16
Пользователь №: 90 876



Передаю большой файл.
Использую цепочку колбеков, как и задумано в lwIP.
Но заполняю буфер передачи не полностью(узнаю из tcp_sndbuf(pcb); ).
Далее вызываю tcp_write(pcb, Data_Bf, wMaxPut, 0); и завершаю функцию.
Скорость никакущая.
Смотрю что идет по сетке - FTP клиент не посылает ACK добрых 0,3 сек.
Крепко думаю - доходит, что размер окна равен 2, а пакет уходит 1.
Рою сеть.
Нахожу вариант:
Код:
Код
    pcb->flags |= TF_NODELAY;                                   //отключаем  Nagle
    tcp_write(pcb, Data_Bf, wMaxPut >> 2, 1);                   //первый пакет
    tcp_output(pcb);                                            //передать что влезло
    //второй пакет
    tcp_write(pcb, &Data_Bf[wMaxPut >> 2], wMaxPut-(wMaxPut >> 2), 1);
    tcp_output(pcb);                                            //передать что влезло (опционально)

ACK сразу вываливаются на каждую пару пакетов и скорость вырастает в сотни раз. Здорово...
Только решение кривое.
Можно конечно набивать буфер под завязку
(как криво и не полностью сделано в WEB сервере ST).
Но это крайне неудобно.
Бить данные всегда на 2 куска - тоже левизна.

Кто то знает нормальное решение?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Petr_   Вопрос по LwIP   Mar 15 2016, 18:12
- - romas2010   Цитата(Petr_ @ Mar 15 2016, 21:12) Переда...   Mar 15 2016, 19:50
|- - Petr_   Цитата(romas2010 @ Mar 15 2016, 19:50) Ну...   Mar 15 2016, 20:11
|- - aaarrr   Цитата(Petr_ @ Mar 15 2016, 23:11) для пе...   Mar 15 2016, 20:32
|- - Petr_   Цитата(aaarrr @ Mar 15 2016, 20:32) В ваш...   Mar 15 2016, 20:54
|- - aaarrr   Цитата(Petr_ @ Mar 15 2016, 23:54) Я посм...   Mar 15 2016, 21:09
|- - Petr_   Цитата(aaarrr @ Mar 15 2016, 21:09) Где и...   Mar 16 2016, 07:57
|- - alag57   Цитата(Petr_ @ Mar 16 2016, 12:57) Обновл...   Mar 16 2016, 14:14
||- - Petr_   Цитата(alag57 @ Mar 16 2016, 14:14) git c...   Mar 17 2016, 06:56
|- - AleksBak   Цитата(Petr_ @ Mar 16 2016, 11:57) ... Та...   Mar 16 2016, 18:01
|- - scifi   Цитата(AleksBak @ Mar 16 2016, 21:01) Пох...   Mar 16 2016, 18:12
- - AleksBak   Вот, вчера это пропустил - еще там есть по этой те...   Mar 17 2016, 07:13
|- - Petr_   Цитата(AleksBak @ Mar 17 2016, 07:13) Вот...   Mar 17 2016, 11:04
|- - AleksBak   Цитата(Petr_ @ Mar 17 2016, 15:04) Спасиб...   Mar 17 2016, 11:33
|- - Petr_   Цитата(AleksBak @ Mar 17 2016, 11:33) Вы ...   Mar 17 2016, 11:55
|- - Petr_   Решил свои проблемы с LwIP и делюсь результатом(мо...   Mar 22 2016, 06:59
- - AleksBak   Спасибо большое, что отписались! Я вот тоже не...   Mar 22 2016, 15:55
- - Petr_   Цитата(AleksBak @ Mar 22 2016, 15:55) Спа...   Mar 22 2016, 18:13


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

 


RSS Текстовая версия Сейчас: 18th July 2025 - 05:49
Рейтинг@Mail.ru


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