• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Arduino и ESP8266 на 0 и 1 ноге

Emmy

Member
из моих последних тестов. если микросхеме каждую секунду посылать UDP пакет а она принимает и отвечает (проходит секунды 3, атака получается) то где то через часов 7 зависает напрочь. если делать запрос раз в 3 сек- все норм
 

pvvx

Активный участник сообщества
А что будет если ESP-шке отправить UDP пакет килобайт так 30-40? UDP протокол сам-же на мелкие пакеты не разбивает. Как-бы это протестить. Может кто нибудь знает программу для винды в которой такой пакет можно отправить?
Он, такой пакет, просто не пройдет. У базовых программ в ESP пакет ограничен в LwIP MSS в 1460 байт, в https://github.com/pvvx/esp8266web/blob/master/app/main/eagle_lwip_if.c#L77 d 1500 байт, ...
из моих последних тестов. если микросхеме каждую секунду посылать UDP пакет а она принимает и отвечает (проходит секунды 3, атака получается) то где то через часов 7 зависает напрочь. если делать запрос раз в 3 сек- все норм
А из моих тестов, если передавать тысячу пакетов UDP или TCP на ESP8266 в секунду, то ничего не происходит. Они успешно обрабатываются.
В вашем случае ограничения только в скорости UART. Поставьте несколько MegaBaud и всё будет OK :)
Аппаратно-программные ограничения ESP8266 известны. Полудуплексный трансфер в режиме TCP к 1.2 мегабайта в секунду. В режиме дуплекса (прием пакета, передача пакета) скорость дико падает. В итоге с передачей по UART в режиме TCP это ограничение в 3 MBaud. При скорости UART более 3 MBaud, в режиме дуплекса, будут наблюдаться "дырки" в приемном канале, идущие со скоростью приема пакетов, а в передающемся на UART потоке будет част сигнал RTS.
Причина падения скорости при работе с UART кроется в отсутствии DMA на UART и низкой скорости шины CPU к регистрам UART. + низкая скорость отработки софтом переключений прием/передача аппаратной части WiFi.
Так что текущие ограничения при работе c UART ESP8266, если они менее 3MBaud, связаны с кривой реализацией либо вашего софта, либо arduino.

Прошивка AT >0.24 с AT+SAVETRANSLINK =<mode>,<IP>,<port>[,<type>] при 1000000 baud работает нормально (проверено). Прошивка TCP2UART работает и при больших MBaud - до 10 MBaud, но с RTS/CTS (при односторонней передаче поток на UART линеен до 3MBaud).
 
Последнее редактирование:
Сверху Снизу