TCP 连接 - 客户端在通信中间发送 FIN

TCP connection - client sending FIN in middle of communication

我有充当 TCP 服务器的 azure VM(java 侦听端口的程序)。 TCP 客户端 (ncat) 位于公司网络中。中间有企业防火墙。客户端通过发送消息启动与服务器的连接,之后服务器每 3 秒持续向客户端发送一行消息。客户端确实收到 3 或 4 条消息,但之后它停止接收任何消息。服务器端也不例外。当客户端和服务器都在公司网络中时,我不会遇到这个问题。电线鲨鱼捕获如下。我不明白为什么客户端在两者之间发送 FIN(以黄色突出显示)。请有任何建议。

问题出在 Azure 和企业网络之间的防火墙中的 tcp-halfclose-timer 值。它被设置为 10 秒,所以一旦从客户端发送 FIN,10 秒后服务器无法向客户端发送任何消息,因为防火墙在 10 秒后关闭了半关闭的连接。该值更改为 1 小时,此后问题得到解决。