用于“玩具应用程序”的UDP广播,多播或单播

时间:2012-11-21 19:30:49

标签: udp ip multicast

我正在寻找一个玩具应用程序供我个人使用(并可能与朋友分享),以获得本地网络上的点对点共享状态。例如,假设我想将它实现为您所在的当前建筑物的名称(让我们假设网络拓扑结构很奇怪,并且多个建筑物占用相同的LAN)。我们的想法是,如果您运行该应用程序,您可以设置您所在的建筑物,并且您可以看到在本地网络上运行该应用程序的每个其他用户的建筑物。

问题是,用于实现此目的的最佳传输/网络层技术是什么?

我最初的倾向是使用UDP多播,但我对它做的研究越多,我就越害怕它:虽然技术很棒并且看起来很容易使用,但如果应用程序不适合于特定的站点部署,似乎最有可能让你从一个愤怒的网络管理员访问。

因此,我想知道,因为这是一个相对低带宽的应用程序 - 每个客户端每4-5分钟左右可能最多一次更新,可能不超过25-50个客户端 - 是否可能“更便宜” “在许多方面使用另一种策略:

  • 多播:找到一种方法从239.255 / 16中选择一个众所周知的多播地址,并让感兴趣的应用程序在启动时加入该群组。
  • 广播:每当某人的状态发生变化时发出一条UDP广播消息(并在应用启动时发送一次“刷新”广播,之后每个客户端以其当前状态直接向请求用户回复)。
  • 单播:在应用程序启动时发送UDP广播以宣布兴趣,当客户端状态发生变化时,它会直接向已宣布的每个客户端发送UDP数据包。这导致最高流量,但可能不太可能惹恼其他系统使用不必要的广播数据包。它还引入了应用程序崩溃时的潜在复杂性(在产生不必要的流量方面)。

多播肯定是这项工作的最佳技术,但我想知道相关的麻烦是否值得避免,因为这只是一个“玩具应用程序”,而不是用于专业网络管理员部署和配置的关键业务服务

0 个答案:

没有答案