У меня есть два сервера, и я использовал свою собственную встроенную систему с LwIP для подключения к этим серверам.
Моя встроенная система с LwIP является клиентом, и у меня есть server1 и server2. Я подключился к серверу 1 и завершил соединение перед подключением к серверу 2.
Дальнейшая разбивка по течению:
- Клиент создает новый сокет с server1
- Клиент отправил DNS-пакет для получения IP-адреса server1; получил ACK от точки доступа
- Клиент отправляет пакет TCP SYN;
- Server1 отправляет TCP SYN-ACK и выполняет некоторую передачу данных
- Клиент завершает соединение с server1, отправляя пакет TCP RST; и закрыть сокет
- Клиент создает новый сокет с server2
- Клиент отправил DNS-пакет для получения IP-адреса server2; получил ACK от точки доступа
- Клиент отправляет пакет TCP SYN на server2
- Server2 отправляет TCP SYN-ACK и выполняет некоторую передачу данных
- Клиент завершает соединение с server2, отправляя пакет TCP RST; и закрыть сокет
Однако иногда server2 не отвечал на пакет SYN клиента, который находится на шаге 9. Это происходит только иногда. Я проверил несколько форумов, таких как:
[1] Почему сервер не отправляет пакет SYN/ACK в ответ на пакет SYN
[2] Сервер не отправляет пакет SYN/ACK в ответ на пакет SYN
Мой код не позволяет масштабировать окно. Я не могу проверить сервер как частный сервер, поэтому я не очень уверен, что он был удален. Моя среда довольно шумная и занята множеством маршрутизаторов и коммуникационных устройств. Эта проблема возникает только в шумной среде, но не в более чистой среде.
Что я могу сделать как клиент, чтобы решить эту проблему?