Windows 7上的C#:慢速IP多播发送

本文关键字:IP 多播 慢速 上的 Windows | 更新日期: 2023-09-27 18:19:26

我有一个应用程序,它在Windows上运行良好,但在Windows 7上似乎变得非常慢。我已经将问题追踪到一个未绑定的套接字,我在该套接字上使用"sendto"进行IP多播发送。这些调用通常在大约1ms内完成,但在我的Windows7 64位配置中,我看到一些完成时间为1s到2s(是的,慢了1000倍)。我的数据包相当大,我已经相应地重新配置了套接字缓冲区。

在这些特定的测试中,我有六个应用程序在我的一台笔记本电脑上运行,形成了一个多播组,因此多播发送实际上是循环的,永远不需要在网上发送。我不知道我的应用程序在不同的机器上是否会出现问题;将测试该情况,但即使问题在其他配置中消失,我也需要Isis2以这种方式工作。

以前有人见过这样的东西吗?

我很乐意分享我的代码(这是Isis2系统的一部分,可从康奈尔大学免费下载http://www.cs.cornell.edu/ken/isis2)但我没有这个问题的两行演示。然而,我要说的是,Isis2的这一部分现在已经相当成熟了,随着我对库的扩展和工作,它已经愉快地进行了3年左右的多播。如前所述,我怀疑这可能是windows7的问题。

我从来没有看到小包裹的问题,所以这肯定与我发送大包裹有关。

Windows 7上的C#:慢速IP多播发送

我认为Benjie可能对NIC的建议是正确的。我在另外两台机器上尝试过,同样的代码运行起来没有问题。在我的苹果Mac上运行Windows,被"卡住"了。。。非常好奇。所以,Benjie,现在我可以确认它可能是NIC,你知道我应该看什么吗?一定是我在做什么。。。事实上,Mac的行为也很奇怪:IPMC流量的爆发导致我的VPN会话中断。很明显,NIC在这些运行过程中确实以某种方式参与其中,即使所有接收器都在一台机器上。

目前,我已经通过在Mac上运行的单个Windows平台上进行实验时将TTL值设置为0来解决这个问题。这还有一个额外的好处,那就是我不会对楼下的互联网广播和电视进行DDoS攻击。但我很好奇,很想知道在我家无线进行IPMC时,什么可能会导致2秒的延迟!

不管怎样,谢谢本杰。好主意