TCP:服务器从客户端接收到[SYN]后立即发送[RST,ACK]

问题描述 投票:22回答:2

Host_A尝试通过TCP向Host_B发送一些数据。 Host_B正在侦听端口8181。Host_A和Host_B均为Linux机器(Red Hat Enterprise)。 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 = 72)Host_B(8181)> Host_A(33253):[RST,ACK] Seq = 1 Ack = 1 Win = 0 Len = 0

日志显示Host_A向Host_B发送[SYN]标志以建立连接。但是Host_B响应[RST,ACK]而不是[SYN,ACK]来重置/关闭连接。始终观察到此行为。

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

linux tcp nio redhat
2个回答
36
投票

RST, ACK表示该端口已关闭。您确定Host_B正在侦听正确的IP /接口吗?

还检查防火墙是否有-j REJECT --reject-with tcp-reset


0
投票

发生这种情况是因为我没有在服务器c ++程序中将sockaddr_in.sin_family设置为AF_INET

© www.soinside.com 2019 - 2024. All rights reserved.