java - FIN & RST set in socket communication

标签 java sockets ssl tcp

存在启用了 TLS 1.2 的现有套接字通信,我已经为此提供了单向/双向支持,在这样做时我观察到套接字中的频繁重置。 在使用 wire shark 分析数据包时观察到发送的 FIN、ACK 和 RST 标志,我认为这是重置或中止连接的原因。

我的查询:

  1. 我相信在套接字对话期间,在很多情况下,我在尝试读取对象 () 时会观察到 EOFexcetpion。这会导致套接字重置或断开连接吗?

  2. 如果我希望套接字连接永久连接,如何忽略 FIN 和 RST 标志并保持套接字连接永久?

  3. 每当套接字发现空闲然后断开连接时,它是否有效?是在传递 RST 或 FIN 标志时吗?

最佳答案

...how can i ignore FIN & RST flag ...

简单的答案是你不能。

该协议(protocol)规定,一旦您收到 FIN,连接就会被拆除。你可以尝试做任何你想做的事,但无论你做什么,FIN 数据包的发送者都会消失。

当您将数据发送到一个不希望收到您的数据包的端点时,即当您试图忽略 FIN 时,RST 标志会发回给您。

保持连接“永久”打开需要连接双方的合作,如果网络出现故障,连接仍可能因超时而失败。

关于java - FIN & RST set in socket communication,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57836957/

相关文章:

java - 如何使用 Spring Boot 微服务外部 log4j.properties 文件并将其作为 Linux 服务运行?

java - Android计算器应用程序阻止相邻的运算符(operator)输入

ssl - Internet Explorer 信任哪些证书颁发机构?

java多线程问题

java - 使用 Hibernate 和 HSQLDB 在数据库级别锁定实体

c套接字发送失败

java - 套接字连接意外关闭

java - 我的服务器和客户端套接字程序只是挂起而不打印任何内容

android - SSL 固定客户端加密

ssl - 无法绑定(bind)套接字 [0.0.0.0 :443] for HAproxy