据我所知,SO_REUSEADDR允许服务器绑定到处于TIME_WAIT状态的地址。但是在接受新连接时它如何影响服务器的动作呢?
假设我们正在主机A和服务器B之间进行通信,其侦听套接字已设置为启用了SO_REUSEADDR,并且存在连接C1 =(A,PortA,B,ListenPort),它现在处于TIME_WAIT状态(来自服务器B&#39) ; s观点)。
现在如果主机A尝试使用同一对(A,PortA)连接到B,即使C1仍在TIME_WAIT,也会建立重复连接C2 =(A,PortA,B,ListenPort)吗?为什么呢?
答案 0 :(得分:1)
连接尝试(SYN)将以TIME_WAIT状态传递给连接,这将导致它发出RST,这将导致客户端发生连接拒绝。
答案 1 :(得分:-1)
如果服务器套接字和客户端套接字都使用SO_REUSEADDR,则双方将能够绑定到之前使用的同一端口,并且客户端将能够建立与服务器的连接。
我在具有内核2.6.18的RedHat 5服务器上的两个本地套接字之间验证了这一点。