微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Jetty 不会删除关闭的套接字 -> 具有相同端口的连接失败

如何解决Jetty 不会删除关闭的套接字 -> 具有相同端口的连接失败

我们的 Jetty 服务器面临一个问题,即连接建立期间的 SYN 包不会被 Jetty 确认。我们可以缩小范围,这只发生在 SYN 包中,这些包通过客户端端口传输,以前用于另一个连接到 Jetty。 正如我在日志中看到的,之前的连接被关闭,客户端和服务器提交了 FIN ACK。 重要的是:并非所有带有“已使用”端口的连接都会被忽略,但大多数会被忽略。当通过使用的端口传输时,服务器会确认 SYN 包的实例。但是,我无法确定这些情况之间有什么区别。

我目前的假设是 Sockets 没有正确关闭,并且在这个混乱中的一些相关方将忽略或基本上拒绝连接,因为他们仍然看到关闭的 socket。

在它不起作用的情况下,Jetty 的调试日志中几乎没有任何内容。在我的 Wireshark 跟踪中,我可以看到,SYN 包被重传了 2 次(总共 3 次),然后客户端声明 408(超时)。

我们使用 码头:v9.4.38, Java:Oracle JRE 版本 1.8.0.202, Javax Servlet:v3.1.0

有没有人有想法或类似的情况? ACK 是由 Jetty 传输还是由某些标准 Java 实现传输?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。