Dobermann 1 16 августа, 2022 Опубликовано 16 августа, 2022 · Жалоба Всем привет, использую LwIP 2.0.0, линия связи WiFi, можно ли где то в настройках lwip уменьшить время ретрансмиссии пакета, если да, то укажите пожалуйста этот учсток кода. заране спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iamnot 0 16 августа, 2022 Опубликовано 16 августа, 2022 · Жалоба Могу ошибаться, но похоже вот тут pcb->rto = 3000 / TCP_SLOW_INTERVAL; pcb->sv = 3000 / TCP_SLOW_INTERVAL; файл tcp.c, строка 1901 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dobermann 1 16 августа, 2022 Опубликовано 16 августа, 2022 · Жалоба у меня это 1616строка))) какое минимальное значение могу поставить? Кто то экспериментировал с этими параметрами? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dobermann 1 16 августа, 2022 Опубликовано 16 августа, 2022 · Жалоба Основная цель, сократить время ожидания подтверждения отправки пакета до минимально необходимого и максимально быстрая переотправка пакета. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iamnot 0 16 августа, 2022 Опубликовано 16 августа, 2022 · Жалоба Не уверен что там надо что-то крутить в недрах LwIP, так как разработчики следовали стандартам RFC. Да и слишком там много действий происходит от момента получения пакета до решения отправить ACK. Вот пример лога установления соединения на контроллере STM32F427. 475 49.207230 172.16.16.45 172.16.16.121 TCP 74 52946 → 80 [SYN] Seq=0 Win=8192 Len=0 MSS=1460 WS=256 SACK_PERM=1 TSval=1910788 TSecr=0 478 49.208751 172.16.16.121 172.16.16.45 TCP 62 80 → 52946 [SYN, ACK] Seq=0 Ack=1 Win=2144 Len=0 MSS=536 WS=1 479 49.208780 172.16.16.45 172.16.16.121 TCP 54 52946 → 80 [ACK] Seq=1 Ack=1 Win=65792 Len=0 480 49.208903 172.16.16.45 172.16.16.121 HTTP 538 GET / HTTP/1.1 От момента получения пакета на установление соединения до выдачи ACK чуть больше 1,5мс Может подумать в сторону увеличения размера пакета? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 222 16 августа, 2022 Опубликовано 16 августа, 2022 · Жалоба 1 час назад, Dobermann сказал: Основная цель, сократить время ожидания подтверждения отправки пакета до минимально необходимого и максимально быстрая переотправка пакета. Желание что-то "крутить" часто возникает когда заранее не был толком продуман способ реализации задачи. Сделали "как получилось". А потом начинается "кручение", с целью - докостылить до приемлемой работы. Если проблемы со временем доставки, то может задуматься - зачем был выбран именно TCP? А не UDP например? И почему возник вопрос с ретрансмиссиями? При нормальной работе ретрансмиссии должны быть настолько редкими, что их почти не должно быть. Потому и интервалы для них выставлены такими большими. Если ретрансмиссии у вас частые, то надо менять что-то глобально в вашей системе. Костыли с правкой интервалов ретрансмиссий могут только ещё более ухудшить общую работу. Есть общее правило: не понимаешь - не лезь. Иначе вообще всё сломаешь. Может стоит задуматься и переделать работу под UDP? Если это конечно возможно. По-крайней мере с ним можно будет достичь бОльшей скорости работы. Вне зависимости от того - чем именно вызваны ваши тормоза: помехами в эфире или медленной работой CPU. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dobermann 1 16 августа, 2022 Опубликовано 16 августа, 2022 · Жалоба все возможно, только писать много\долго под UDP, в частности в клиентской части. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dobermann 1 17 августа, 2022 Опубликовано 17 августа, 2022 · Жалоба On 8/16/2022 at 2:43 PM, jcxz said: Может стоит задуматься и переделать работу под UDP? Если это конечно возможно. По-крайней мере с ним можно будет достичь бОльшей скорости работы. Вне зависимости от того - чем именно вызваны ваши тормоза: помехами в эфире или медленной работой CPU. Как бы вы реализовали протокол передачи данных по UDP, если необходимо передавать видео поток (RTP) Поделитесь здравыми мыслями на этот счет? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 222 17 августа, 2022 Опубликовано 17 августа, 2022 · Жалоба Никогда не занимался видео. Меня это не интересует. Но даже в вики написано: Протокол TCP, хотя и стандартизирован для передачи RTP,[3] как правило, не используется в RTP-приложениях, так как надежность передачи в TCP формирует временные задержки. Вместо этого большинство реализаций RTP базируется на UDP. Т.е. - похоже вы один из немногих оригиналов, которые пытаются запрячь для этого TCP. И проблемы ваши уже заранее были известны. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 48 17 августа, 2022 Опубликовано 17 августа, 2022 · Жалоба Для видео всегда использовал UDP. Даже если потеряется пакет и фиг с ним. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dobermann 1 17 августа, 2022 Опубликовано 17 августа, 2022 · Жалоба 2 hours ago, x893 said: Для видео всегда использовал UDP. Даже если потеряется пакет и фиг с ним. а как протокол был устроен, если не секрет? было какое то подтверждение пакетов или без? Т.к. у меня передача по wifi 2.4, то помех очень много из-за обилия различных устройств, рабртающих в этом диапазоне. 5гГц в данный момент нет возможности использовать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 48 17 августа, 2022 Опубликовано 17 августа, 2022 · Жалоба 23 minutes ago, Dobermann said: а как протокол был устроен, если не секрет? было какое то подтверждение пакетов или без? Т.к. у меня передача по wifi 2.4, то помех очень много из-за обилия различных устройств, рабртающих в этом диапазоне. 5гГц в данный момент нет возможности использовать. Для передачи видео без подтверждений. через 1/20 сек этот пакет уже не нужен. видео потоком идёт. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dobermann 1 17 августа, 2022 Опубликовано 17 августа, 2022 · Жалоба все так, но если у вас не собрался I-frame, то секунда видео выпала (если I-frame передается раз в сек), если это не критично, тогда конечно вопросов нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 48 17 августа, 2022 Опубликовано 17 августа, 2022 · Жалоба 1 hour ago, Dobermann said: секунда видео выпала Да и хрен с ней. Через секунду новая придёт. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться