通过互联网UDP多播?

时间:2010-06-18 09:25:24

标签: c# udp multicast

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

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

但是,我希望能够通过互联网访问这些内容,而且从我收集到的内容中,这对于UDP多播来说几乎是不可能的。我可能会用另一种方法来实现这个目标吗?

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

2 个答案:

答案 0 :(得分:20)

通常,这是不可能的,因为不会路由多播数据包。

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

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

答案 1 :(得分:11)

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

许多IPv4路由器不支持多播或禁用多播,IPv6必须支持多播,并且已删除广播语义。