Клиент не может подключиться к нашему веб-серверу. Я обнюхал клиента и веб-сервер только для того, чтобы обнаружить, что клиент видит, что TCP-соединение было успешным, в то время как сервер видит его как сбой. Каковы вероятные причины этой проблемы? Был ли ACK-пакет, отправленный клиентом на сервер, поврежден при прохождении через сеть.
Скриншоты для обоих показаны по ссылке ниже.
Клиент
Сервер
У вас определенно есть что-то между этими двумя устройствами, которое переписывает пакеты. Клиент открывает соединение с TCP / 80 через собственный порт TCP / 58055. Сервер видит пакет SYN, исходящий от TCP / 5822. Это может произойти только в том случае, если какое-то сетевое устройство перезаписывает пакеты, например, устройство NAT или некоторые брандмауэры.
Это дополнительно подтверждается наличием "SACK_PERM = 1" в представлении клиента. Это выборочные подтверждения, и это опция TCP. Пакет SYN, который видел сервер, где-то был удален. Это классическая настройка брандмауэра, поскольку SACK считались небезопасными или могли быть подвергнуты DDoS-атакам.
У вас есть устройство где-то между этими двумя, которое мешает. Вы не можете исправить это в конечных точках.
Мое первое предположение - это межсетевой экран с отслеживанием состояния где-то между двумя системами, который плохо себя ведет. Это также может быть локальный брандмауэр. Обратите внимание, что ни один из пакетов ACK не проходит.