У меня проблема с рукопожатием tcp, на которую я не могу найти ответ в другом месте.
У меня есть программа, работающая на моем локальном устройстве, которая отправляет данные на порт 50000. В терминале на той же машине я использую netcat для подключения к порту. Однако при использовании tcpdump и wirehark я вижу, что пакеты SYN отправляются, но пакеты SYN / ACK никогда не отправляются в ответ. В моих iptables нет правил для подключений, а политика по умолчанию для всех цепочек - принимать подключение. Это происходит каждый раз, когда я пытаюсь подключиться, и пока я не могу понять, почему сервер не отвечает на пакеты SYN.
Я починил это. К моему ужасу, на самом деле это была проблема с кодом. Мы устанавливаем размер невыполненной работы listen () равным 0, что приводит к сбою любой попытки подключения. В случае TCP это означало повторную передачу пакетов. Не знаю, как это работало на одной машине, а не на другой, но теперь они обе работают. Всем спасибо за комментарии.