TCP соединение - клиент отправляет FIN в середине связи - PullRequest
0 голосов
/ 03 июля 2018

У меня есть Azure VM, которая действует как TCP-сервер (Java-программа, которая прослушивает порт). TCP-клиент (ncat) сидит в корпоративной сети. Между ними есть корпоративный брандмауэр. Клиент инициирует соединение с сервером, отправляя сообщение, и после этого сервер продолжает отправлять однострочное сообщение клиенту каждые 3 секунды. Клиент получает 3 или 4 сообщения, но после этого он перестает получать любое сообщение. На стороне сервера нет исключений. Когда клиент и сервер находятся в корпоративной сети, я не испытываю этой проблемы. Захват проволочной акулы находится ниже. Я не понимаю, почему клиент отправляет FIN (выделено желтым) между ними. Любые предложения, пожалуйста.

Wireshark Capture

1 Ответ

0 голосов
/ 20 июля 2018

Проблема заключалась в значении tcp-halfclose-timer в брандмауэре между Azure и корпоративной сетью. Для него было установлено значение 10 секунд, поэтому после отправки FIN от клиента через 10 секунд сервер не смог отправить никаких сообщений клиенту, поскольку брандмауэр закрывал полузакрытое соединение через 10 секунд. Значение меняется на 1 час, после чего проблема решается.

...