如何在Windows XP应用程序中加速UDP通信

我正在做一些软件维护,并有一个我不明白的问题。

应用程序是使用Microsoft Visual C ++ 6开发的,并在Windows XP上运行。 它由21个通过UDP套接字相互通信的应用程序组成。 它是用于在PC环境中debugging系统的embedded式航空电子系统的模拟。 每个应用程序模拟embedded式系统中的一个节点,embedded式networking通过UDP模拟。 该系统最初运行在多台PC上,但现在可以在一台四核心机器上运行。

系统正在工作,但通讯速度很慢。 然而,打开Internet Explorer并访问一个或两个网站会导致我的应用程序突然间相互之间突然通信。

所以我的问题是Internet Explorer在访问一个网站时设置了什么,以便我的应用程序也可以设置它? 系统的原始作者都还没有,我有很less的Windows编程经验。

毕竟它可能不是Windows的问题

  1. 检查你的API,检查你的缓冲区,并检查错误消息'getlasterror()'不会导致无效(-1),并停止程序尝试使用它,即使你的程序运行perfectit可能有用的警告

  2. 检查ACK或攻击速度,这是通过网络连接传输大量数据的常见问题(< – 90%是您的问题),这是一个有关该主题的有用话题(support.microsoft.com/kb/823764)

  3. 如果这两个解决方案都不起作用,请尝试在manfucturer网站上查看您的驱动程序版本。

  4. 最后的手段是那些有用的想法:。 使用此程序www.lvllord.de将最大半/开连接数从8增加到50。 使用服务器版本的Windows可以提高一些基于互联网的程序。 如果你在多线程应用程序的不同线程上使用了2个以上的套接字,那么使用异步套接字或类似的东西来优化性能(msdn.microsoft.com/en- us / library / ms738551(VS.85).aspx)

所以我的问题是Internet Explorer在访问一个网站时设置了什么,以便我的应用程序也可以设置它? 系统的原始作者都还没有,我有很少的Windows编程经验。

可能是ACK在维基上检查它..这意味着在其他方式的攻击速度..如果不是那么它将是接收窗口的大小
这两个设置对用户来说都是不可见的,但是可以通过诸如调谐工具或任何通用网络隐藏设置调节器之类的程序来设置
它可能只是做伎俩..

如果UDP上面的协议实现可靠性,速度损失将是由于localhost上的大量UDP丢包造成的。 本地主机上的UDP性能是可怕的,你最好的选择是将套接字API封装在TCP层中。

如果是UDP广播或多播,则必须考虑实现代理进程以通过TCP复用消息。

可能更容易查看在进程级别(例如ZeroMQ)上运行良好的现有消息传递API。

尝试使用Wireshark来查看Internet Explorer正在做什么。