路由期间丢失 UDP 消息?

路由期间丢失 UDP 消息?

我正在尝试测试我编写的用于发送 UDP 消息的软件。如果我不将套接字绑定到端口(即默认为 NIC 1),此软件可以工作。我可以在 PC 上运行 Wireshark 来查看消息。但是,如果我将 IP 套接字绑定到 NIC 2(具有静态 IP 地址),Wireshark 不会嗅探 192.168.1.100 的任何 UDP 数据包。最初我以为我的软件有问题,但我在另一台 PC 上进行了测试,它按预期工作。

这让我认为存在路由问题,但我不知所措。

设置:PC(Windows 10)物理上直接连接到具有静态 IP 192.168.1.100 的 FPGA。PC 有两个 NIC:(a) 板载 NIC,自动配置 IP 地址 192.168.55.XXX;(2) 外部 NIC,配置静态 IP 192.168.1.125 并启用巨型帧。

我尝试过的事情:

  1. 不同的电脑上运行相同的软件:按预期运行。

  2. 刷新路由表

  3. 正在 ping 192.168.1.100 -> 结果是 Pinging 192.168.1.100 with 32 bytes of data: Reply from 209.53.192.YYY: Destination host unreachable.

  4. 通过以下方式更新路由表route ADD:到表的几条不同路由(目标 192.168.1.0 和 192.168.1.100)。结果无变化 [route print][1]

  5. 使用以下方法更新路由表netsh

  6. tracert 192.168.1.100

    
      1 <1 ms   <1 ms   <1 ms  192.168.55.NNN
      2     1 ms    1 ms    1 ms  207.216.41.VVV
      3     4 ms    1 ms    1 ms  96.1.221.ZZZ
      4     1 ms    1 ms    1 ms  209.53.192.YYY
      5  209.53.192.YYY  reports: Destination host unreachable. 
    
    
  7. 确保所有程序都以管理员模式启动

  8. 将以太网电缆和静态 IP 移至板载 NIC。行为相同

  9. 用另一台配置了 IP 地址的 PC 替换 FPGA。行为相同。

  10. 从第二台 PC 执行 ping 操作(见上文):ping 192.168.1.125(另一个方向)成功

其他的建议:

  1. 在所需配置中,Wireshark 上仅看到的相关消息是: ARP 42 Who has 192.168.1.100? Tell 192.168.1.125
  2. 我的软件是用 C++ 编写的,使用 winsock

我感觉我缺少了一些简单的东西......TIA [1]:https://i.stack.imgur.com/7mnmj.png

相关内容