【问题标题】:UDP Multicast over the internet?UDP组播在互联网上?
【发布时间】:2010-06-18 09:25:23
【问题描述】:

我不确定如何最好地解决我的问题。我有一个在远程机器上运行的服务,它接收和处理 UDP 数据包。我希望服务能够将这些数据包重新发送给碰巧需要它们的任何人(可能没有人,通常是一台机器,但可能更多)

我认为 UDP 多播将是理想的 - 服务可以发送到多播组,无论有多少接收者已注册,或者即使没有。

但是,我希望能够通过互联网访问它,据我所知,使用 UDP 多播几乎不可能。我可以使用另一种方法来实现这一目标吗?

如果相关,我的客户端和服务都是用 C# 编写的。

【问题讨论】:

    标签: c# udp multicast


    【解决方案1】:

    一般来说这是不可能的,因为多播数据包没有被路由。

    有一些技术可以解决这个问题(DVMRP、MOSPF 等),但它们都要求您可以配置服务器和客户端之间的所有路由器(或创建隧道)。有支持多播的骨干网络(Abilene、Mbone),但这些是大学等最感兴趣的。普通消费者的互联网没有多播。

    不幸的是,您需要点对点通信。但是你的公司很好,互联网、广播和电视都是点对点的,多次传输相同的数据。相当浪费带宽。

    【讨论】:

    • Mbone 很久以前就被关闭了,IPv6 强制组播,一些 ISP 为 DVB 提供 IPv4 组播,例如德国和英国。
    • 许多服务使用 UDP 或 PGM 进行本地多播。如果您需要连接其他站点,例如通过 Internet 连接的远程站点,您可以使用 TCP 隧道,该隧道侦听本地 UDP 并将流量路由到重新广播的另一端。这非常适合连接两个办公室等。如果您需要有关 UDP 的帮助,这里有一个教程:jarloo.com/code/networking/c-udp-multicasting-tutorial
    【解决方案2】:

    首选方法是使用覆盖多播,即在对等方之间使用 TCP 链接并在此之上实现多播语义。

    许多 IPv4 路由器不支持或禁用多播,IPv6 被强制支持多播,广播语义已被删除。

    【讨论】:

      猜你喜欢
      • 2015-08-05
      • 1970-01-01
      • 1970-01-01
      • 2020-06-09
      • 2012-09-20
      • 2012-03-28
      • 1970-01-01
      • 2017-01-03
      • 1970-01-01
      相关资源
      最近更新 更多