一尘不染

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

linux

机器是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状态图上看到它


阅读 289

收藏
2020-06-03

共1个答案

一尘不染

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

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

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

2020-06-03