我有一个充当TCP服务器(在端口上侦听的Java程序)的azure VM。 TCP客户端(ncat)位于公司网络中。两者之间有一个公司防火墙。客户端通过发送消息来启动与服务器的连接,然后服务器继续每3秒向客户端发送一条线路消息。客户端确实收到3或4条消息,但此后它停止接收任何消息。服务器端也不例外。当客户端和服务器都在公司网络中时,我不会遇到此问题。鲨鱼的捕获在下面。我不明白为什么客户端会在两者之间发送FIN(以黄色突出显示)。有任何建议请。
答案 0 :(得分:0)
问题出在Azure与企业网络之间的防火墙中的tcp-halfclose-timer值。它设置为10秒,因此一旦从客户端发送FIN,则10秒后服务器将无法向客户端发送任何消息,因为防火墙在10秒后关闭了半关闭的连接。该值更改为1小时,之后问题得到解决。