@pvvx
Я не особо силен в анализе тсп пакетов, может вы глянете? У меня передатчик айфон, есп в роли ап. Я перевел карточку на ноуте в режиме монитора и сдампил немного трафика. Заметил там что пакеты длинной 79, это ответы девайса, т.е 192.168.4.1, а где посылка с телефона я только догадываюсь, но не увидел задержек здесь. Так же пробовал в программе на телефоне вырубить подготовку пакета, чтоб он слал одно и тоже, без подготовки контролек и прочего, померил там же таймером, между получением DONE#номер пакета с девайса и отправкой, 2-3мс таймер выдал. Помогите разобраться плиз. Точная длина данных в пакете 6160 байт.
дамп
tr-01.cap
Ну из вашего дампа, первые попавшиеся:
Конец передачи блока: 78 18:12:19.229408 192.168.4.3 192.168.4.1 TELNET 392 Telnet Data ... Len: 320
Пришел ответ: 84 18:12:19.229387 192.168.4.1 192.168.4.3 TELNET 79 Telnet Data ... Data: DONE:73
Следующая передача нового блока: 88 18:12:19.229410 192.168.4.3 192.168.4.1 TELNET 1532 TelnetData ... Len: 1460
-------
Конец передачи блока: 148 18:12:19.272418 192.168.4.3 192.168.4.1 TELNET 392 Telnet Data ... Len: 320
Пришел ответ: 154 18:12:19.279053 192.168.4.1 192.168.4.3 TELNET 79 Telnet Data ... DONE:79
Следующая передача нового блока:158 18:12:19.284703 192.168.4.3 192.168.4.1 TELNET 1532 Telnet Data ... Len: 1460
Т.е. ответ от 192.168.4.1 приходит через 0.000021 сек и второй раз через 0.006635 сек от времени отсылки к 192.168.4.1 последнего куска на 320 байт от передачи блока.
После приема ответа ваш софт тупит до передачи нового блока: 0.000023 и 0.00565 сек
Ещё:
Конец передачи блока: 273 18:12:19.391715 192.168.4.3 192.168.4.1 TELNET 392 Telnet Data ... Len: 320
Блок передается и через 0.005099 сек:
Пришел ответ: 277 18:12:19.396814 192.168.4.1 192.168.4.3 TELNET 79 Telnet Data ... DONE:84
Ответ принят и через 0.006673 сек:
Следующая передача нового блока: 281 18:12:19.403487 192.168.4.3 192.168.4.1 TELNET 1532 TelnetData ... Len: 1460
Т.е. пауза между блоками тут равна 0.005099+0.006673 сек.
Итого картина примерно такая:
не менее 320*10/4000000=0.0008 сек в TX ESP8266 передаются последние 320 байт блока и кто-то должен ответить - через сколько - неизвестно. Но отвечает 7 байт. Далее эти байты передаются с ESP8266 и принимаются на компе. Это итерация занимает почему-от 0.000021 до 0.006635 сек (из примеров лога).
Потом на компе идет обработка ответа и через от 0.000023 до 0.006673 сек он начинает пересылать новый блок...
Но и это пол беды, это влияет на скорость только. А вот порт закрывается ска при маленьких пакетах 6кб, это беда.
А может ESP перегревается? Китайское чудо не рассчитано на такие скорости работы на постоянку. Пробуйте снижать уровень передачи.
В логе много [TCP Retransmission] и [TCP Dup ACK]. Наверно теряются пакеты...
ЗЫЖ на сегодня лавочка бесплатных односторонних ответов закрыта
Еси не ответите на мой вопрос: На ADuC7061 SPI настроен на вызов прерывания после передачи 3-х байт. На шине SPI висит DAC8750. Ему надо передавать 24 бита и читать тоже 24 бита. После передачи 3-х байт у него срабатывает SS как строб для DAC8750. Что передача прошла узнаю по аппаратному прерыванию передачи 3-х байт по нему делаю и считывание принятых по SPI байт. Произвожу загрузкой 3-х байт в регистр передачи SPI и жду. Иногда, раз в час или более, при чтении статуса с DAC8750 (несколько раз в секунду) от него приходит голая шина 0x??FFFF или 0x??00FF. Первый байт (??) там не нужен и откидывается. Дык что не так ему, если скорость SPI 1 Mbit (и более и менее - результат тот-же). Анализатором словить не удалось. Слишком редко этот сбой, но это серьезно, т.к. в статусе есть бит перегрева и прочее... Кривая микросхема и не может отличить уровень (ADuC 2.5В, ref DAC8750 на 3.3В)? (повторяемость на нескольких платах)