【发布时间】:2011-03-11 10:56:45
【问题描述】:
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=7
2) Host_B (8181) > Host_A (33253): [RST, ACK] Seq=1 Ack=1 Win=0 Len=0
日志显示 Host_A 向 Host_B 发送 [SYN] 标志以建立连接。但不是 [SYN, ACK] Host_B 以 [RST, ACK] 进行响应,它重置/关闭连接。始终会观察到这种行为。
我想知道 TCP 侦听器在什么情况下会发送 [RST,ACK] 以响应 [SYN]?
【问题讨论】: