在Oracle Linux上“Linux bjzv0880 3.8.13-16.2.1.el6uek.x86_64#1 SMP Thu Nov 7 17:01:44 PST 2013 x86_64 x86_64 x86_64 GNU / Linux”

我有1个TCP服务器和2个TCP客户端运行,连接状态如下:

******[root]# netstat -anp | grep 58000
tcp 0 0 192.168.250.102:58000 0.0.0.0:* LISTEN 3614/AppServer
tcp 0 0 192.168.250.102:44500 192.168.250.102:58000 ESTABLISHED 3673/AppClient1
tcp 0 0 192.168.250.102:44488 192.168.250.102:58000 ESTABLISHED 3631/AppClient2
tcp 0 0 192.168.250.102:58000 192.168.250.102:44500 ESTABLISHED 3614/AppServer
tcp 0 0 192.168.250.102:58000 192.168.250.102:44488 ESTABLISHED 3614/AppServer******

然后我强行停止AppServer而不清理套接字 . 并使AppClient *尝试非常快速地重新连接到AppServer . 过了一会儿,我得到了一个奇怪的联系:

*[root]# netstat -anp | grep 58000
tcp 0 0 192.168.250.102:58000 192.168.250.102:58000 ESTABLISHED 3673/AppClient1*

注意:我已经在tcp通信上完成了wireshark捕获,并且从流量日志1开始 . 从OS 2选择的源端口连接有2轮重试 . 在第1轮中,OS 3未选择58000但是在第二轮中,58000被选中,它碰巧能够 Build 起来

怎么可能呢?感谢您的建议 .