我正在研究一个负载平衡器探测引擎,该引擎将探测请求发送到服务器以确定它们的可用性。 探针配置具有仅用于TCP的设置,该设置通过设置TCP连接并断开连接来检测服务器的可用性。
断开连接可以是TCP RST(取决于负载平衡器设置),这使得探测请求看起来像:
load balancer server
SYN ->
<- SYN/ACK
ACK ->
RST ->
第三次ACK似乎是不必要的,因为该连接将不会用于交换数据。
另外,如果仅收到RST,则在服务器上可能会更容易。
在这种情况下,服务器必须处理套接字(accept
)错误,而不是处理新连接的开销(例如创建线程)。
我可以通过将延迟时间设置为零(setsockopt
)来中止已建立的连接,但是在这种情况下,我有兴趣在建立连接之前发送RST。
Posix套接字接口可以支持以下TCP交换吗?
load balancer server
SYN ->
<- SYN/ACK
RST ->