【问题标题】:C# on Windows 7: Slow IP multicast sends?Windows 7 上的 C#:IP 多播发送速度慢?
【发布时间】:2012-01-05 00:56:54
【问题描述】:

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

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

有人见过这样的事情吗?

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

我从来没有看到小数据包的问题,​​所以它肯定与我发送大数据包有关。

【问题讨论】:

  • 不过,我可以保证,如果你们当中有人对我有好的见解,我一定会接受。
  • Ken,如果您最终在网站之外找到了答案,请随时回答您自己的问题并将其标记为已接受。这些信息将来也可能对其他人有用!
  • 好建议,我会这样做的。非常旧的线程现在被标记为关闭,所以我不能追溯。有点遗憾,因为事实上你的观点已经死了。
  • “我从来没有看到小包的问题,​​所以它肯定与我发送大包有关。”你的“大”有多大?
  • Bengie,它会有所不同,但在这种情况下,我将发送和接收缓冲区大小设置为 32kbytes

标签: c# .net multicast


【解决方案1】:

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

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

无论如何,谢谢本杰。好主意。

【讨论】:

    猜你喜欢
    • 2014-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-06
    • 2014-08-30
    • 2023-03-03
    • 1970-01-01
    相关资源
    最近更新 更多