免责声明:我是一名软件开发人员,所以这些低级的东西不是我的专业领域!我希望我在正确的 Stack Exchange 网站上回答这个问题。
我正在开发一个通过 TCP/IP 与硬件设备通信的 Windows 应用程序。该设备是一个 FPGA 板,我相信它运行 Linux。交互涉及 PC 向设备发送一个小的“请求”消息,该消息以大约 32kb 长的数据块进行响应。
到目前为止,我已经编写了一个非常基本的 PC 客户端来测试通信。我单击一个向 FPGA 发送请求的按钮,然后读回响应。整个过程(从单击按钮到接收整个 32kb 响应)通常需要大约 2-3 毫秒。我可以每隔一两秒点击一次按钮,时间将保持在这个水平。
但是我发现如果我开始更快地单击按钮(每秒几次),那么几秒钟后这个时间将下降到大约 12 毫秒。即使我放慢按钮点击速度,它也会保持在这个水平。如果我断开/重新连接客户端*,然后再试一次,时间会回到 2-3 毫秒的水平。(* 我只是关闭连接然后重新连接,我实际上并没有重新启动应用程序)。
我尽我所能确信这不是 PC 或 FPGA 上的软件,两者都非常简单。直觉是它是“协议”的东西吗?下面是 Wireshark 屏幕截图,显示了“快速”响应的痕迹,以及它下降到 12 毫秒时的痕迹。有什么想法吗?

