如何调查通过环回接口连接到服务器的TCP客户端端口上的随机重置
我有一个测试套件,该套件在localhost上初始化服务器,然后运行成千上万的压力测试,其中包括启动和停止连接到同一计算机上此本地服务器的客户端。我正在尝试查找客户端发送到服务器的RST的原因。 这是事件的顺序: 客户端初始化SYN 服务器发回SYN,ACK 客户端发送RST(而不是ACK和建立连接) 一个观察结果是,在许多情况下,服务器运行大约99%的CPU,尽管它在几秒钟/分钟后恢复正常。 最初,我认为这可能是因为客户端使用的是先前关闭的连接中的端口,该端口处于TIME_WAIT状态,因此当服务器在该连接上发送SYN,ACK时,客户端会发出RST。尽管我对为什么客户端应该在TIME_WAIT状态下使用端口表示怀疑,但是后来我使用的是旧的fedora核心4,并认为可能没有正确的TCP / IP实现:-)。 现在,我不认为这是原因,因为围绕解决上述问题所做的所有调整都无法缓解问题。仅供参考,以下是我尝试过的更改/etc/sysctl.conf: net.ipv4.ip_local_port_range = 1024 65535 net.ipv4.tcp_fin_timeout = 15 net.ipv4.tcp_rfc1337 = 1 net.ipv4.tcp_tw_reuse = 1 还有一点,这个问题并不一致。实际上,只有经过15到35个重新启动服务器并运行所有客户端测试的周期后,我才能重现此问题。 我没有所有可以想到的原因,所以请让我知道是否有人对可能发生的事情有任何想法。 封包详细资料 Date & Time No. Time Source Destination Protocol Length Source port Dest port Info 2014-06-25 14:49:45.378209 1032719 1858.494749 ::1 ::1 TCP 94 netview-aix-5 navisphere …