Назад | Перейти на главную страницу

Множественные TCP dup ACK с ложной повторной передачей

У меня есть сотовое IoT-устройство, подключенное к брокеру MQTT, с сохранением активности 15 секунд. Один раз в день устройство отключается от сервера (журнал сервера показывает: клиент остановлен из-за истечения срока действия поддержки активности, а клиент показывает: сокет закрыт удаленным хостом), но оно может мгновенно повторно подключиться к серверу. Я начал вести журнал с помощью tcpdump на моем брокере MQTT и сделал следующее наблюдение:

Я могу видеть запросы ping (отправленные устройством (клиентом) 79.XXX.XXX.XXX) и ответы ping (отправленные сервером 35.XXX.XXX.XXX). Иногда происходит повторная передача и все работает нормально:

Насколько я понимаю (поправьте меня, если я ошибаюсь), клиент отправляет запрос. Сервер отвечает ответом, клиент даже получает ответ (отсюда и ложная повторная передача), но сервер не получает ACK от клиента. Во второй попытке он снова работает.

Вот журнал отключения, которого я не понимаю. Насколько я понимаю, это то же самое, что и выше, но с той разницей, что ACK не работает 4 раза подряд (но повторная передача работает, следовательно, Dup ACK?), После чего сервер закрывает TCP-соединение (и сервер запускается в тайм-аут сохранения активности).

Может ли мой провайдер сотовой сети просто разорвать соединение? (Если это так, почему я вижу ложную повторную передачу TCP в Wireshark?)