TCP:服务器从客户端收到后立即发送

Host_A尝试通过TCP向Host_B发送一些数据。 Host_B正在侦听端口8181.Host_A和Host_B都是Linux机器(红帽企业版)。 TCP层是使用Java NIO API实现的。

无论Host_A发送什么,Host_B都无法接收。 使用WireShark嗅探线上的数据导致以下日志:

1)Host_A(33253)> Host_B(8181):[SYN] Seq = 0 Win = 5840 Len = 0 MSS = 1460 TSV = 513413781 TSER = 0 WS = 7
2)Host_B(8181)> Host_A(33253):[RST,ACK] Seq = 1 Ack = 1 Win = 0 Len = 0

日志显示Host_A发送一个[SYN]标志给Host_B以build立连接。 但不是[SYN,ACK],Host_B用一个[RST,ACK]来响应,它重置/closures连接。 这种行为总是被观察到的。

我想知道在什么情况下TCP侦听器发送[RST,ACK]响应[SYN]?

RST, ACK表示端口关闭。 你确定Host_B正在监听正确的IP /接口?

同时检查你的防火墙的-j REJECT –reject-with tcp-reset