我有一个 TCP 服务器在 Windows 7 计算机上监听 10.10.10.101,端口 2000。以下是该命令的相应输出行netstat -aon
:
TCP 10.10.10.101:2000 0.0.0.0:0 LISTENING 2340
我还有一个 FPGA,它每秒发送一个 TCP SYN 数据包,直到服务器响应。
FPGA 物理上直接连接到 Windows 7 机器上的网络接口,该接口已配置为静态 IP 地址 10.10.10.101。SYN 数据包的源 IP 地址为 10.10.10.100。
我可以使用 WireShark 查看网络接口上接收到的 SYN 数据包,但 TCP 服务器没有回复 SYN/ACK。我假设 TCP 服务器没有看到 SYN 数据包是因为路由问题。
我手动添加了两条路由如下(IF 16
指的是静态IP的接口10.10.10.101
):
route add 10.10.10.100 MASK 255.255.255.255 10.10.10.1 METRIC I IF 16
route add 10.10.10.101 MASK 255.255.255.255 10.10.10.1 METRIC I IF 16
我是否正确添加了路由?如何确认 TCP 服务器确实没有转发带有 TCP SYN 的 IP 数据包?我该怎么做才能更深入地了解问题所在?
答案1
我敢打赌服务器没有地址解析协议SYN 来自的 IP 地址的条目,因此它无法将答复数据包放在以太网线上,因为它不知道将答复发送到哪个以太网硬件地址。
答案2
根据您在帖子中所说的内容,我认为您正在运行的服务器绑定了错误的接口。
如果可以选择,请尝试禁用已在其他机器上测试过的界面,然后重新启动服务器软件。
如果您无法禁用或断开另一个接口,因为您正在使用该接口通过远程桌面连接到服务器计算机,那么如何将 FPGA 插入该接口并将远程桌面连接插入 FPGA 当前连接到的接口?
如果您能够修改服务器软件,我建议您检查它绑定到哪个接口 - 我以前在使用 Windows 网络绑定时遇到过类似的问题(在错误的接口上发送/接收 UDP 广播)..