当前位置: 首页 > 面试题库 >

如何将TCP连接返回到同一端口?

邓翼
2023-03-14
问题内容

机器是RHEL 5.3(内核2.6.18)。

有时我在netstat中注意到,我的应用程序已建立连接,并且 本地地址外部地址相 同时建立了TCP连接。

这里也有人报告过同样的问题。

症状与链接中描述的相同-
客户端连接到本地运行的服务器的端口X端口。一段时间后,netstat显示客户端已从连接127.0.0.1:X127.0.0.1:X

怎么可能?

编辑01

同时打开会导致问题(非常感谢Hasturkun)。您可以在从SYN_SENT状态到SYNC_RECEIVED过渡的经典TCP状态图上看到它


问题答案:

这可能是由TCP同时连接引起的(在本文中提到LKML。

/proc/sys/net/ipv4/ip_local_port_range在服务器未监听该端口的情况下,尝试连接到动态本地端口范围内的端口(可以在中看到)的程序循环可能会成功。

在足够多的尝试下,用于连接的套接字可能会绑定到要连接的同一端口,由于前面提到的同时连接,该端口成功了。您现在已经神奇地将一个客户端连接到了自己



 类似资料:
  • 问题内容: 我有一个称为消息的SQL表,它有三列 此表是用来从一个用户传送到另一个存储信息,它存储了从替代的,现在我需要创建一个视图,显示并通过获取的名称从使用表在表中的消息。 提前致谢 问题答案: 您需要使用不同的别名连接两次aspnet_Users表: 解释: 在这里,aspnet_Users表以不同的别名U1,U2连接了两次。并且每个用户名都从相应的表中获取。

  • 我正在做jndi查找JBOSS AS. Code中配置的数据源,如下所示。 initialContext=新的initialContext(道具); dataSource=(dataSource)initialContext。查找(bundle.getString(“jndiName”); ource.get连接; 这段代码放在servlet的doPost中。我也很安全地打电话给你 联系关闭()

  • 使用来自DBCP的BasicDataSource,如果我们执行getConnection()并且在最后一个块中我们关闭连接,它是真的将连接返回到池还是关闭连接。我正在检查的代码片段是这样的 我正在检查BasicDataSource的源代码,并访问了这个包装类以获取连接。 委托对象的类型为java。sql。联系包装器代码调用委托的close方法,该方法将关闭集合,而不是将连接返回到池。这是DBCP的

  • PostgreSQL出现错误: 和文件是正常的(参见下面)。 服务器正在运行 我的文件:

  • 在我的java进程中,我使用以下spring配置连接到MySql: Entity-Manager由容器注入到数据访问层: 并且我的公共业务逻辑方法使用注释进行了注释。 据我所知,容器负责确保实体管理器在事务完成后将连接返回到池(在我的例子中是HikariCP),但我没有找到任何描述如何管理连接的官方文档。有没有人可以给我解释一下,或者提供一个很好的参考,可以说明使用这样的配置时,连接到底是什么时候