【问题标题】:Best tutorial for application multicasting? [closed]应用程序多播的最佳教程? [关闭]
【发布时间】:2010-09-20 08:17:25
【问题描述】:

我最近意识到 IP 多播(显然在公共 Internet 上不能很好地工作)和应用程序多播(根据 http://en.wikipedia.org/wiki/Multicast 显然在 IRC 和 PSYC 中使用)之间存在区别。

有没有关于实现应用程序级多播的好教程?

我认为多播的全部意义在于减少公共网段的带宽,所以我很难理解应用级多播的作用。

【问题讨论】:

    标签: ip multicast irc


    【解决方案1】:

    IP 级多播的目的是减少许多用户希望接收相同流量的公共网段的带宽。它通常仅限于一个特定的子网,IP 路由器不会将多播传播到子网之外。这样做是出于可扩展性的原因 - 允许一台主机发起多播数据包并传播到 Internet 上的每个 IP 地址并不是一个好主意。

    对于“应用程序级”多播有不同的看法。一种方法是使用参与多播的主机来构建多播树。 Dijkstra 的算法可以用来做到这一点(维基百科对此有一个合理的描述)。但是,如果主机以相当大的速度加入和离开网络,维护参与计算机的列表并保持树是最新的可能是一项相当大的工作。而且您可能无法很好地估计应用程序级别的可用跃点成本。

    您应该查看的另一种方法是 Gnutella 网络的查询路由协议中使用的泛洪算法。 (Wikipedia 对此也有很好的描述。)这种方法减少了构建多播树的需要,但它的缺点是会产生更多的网络流量。事实上,网络流量增加了很多,因为流量随着节点数的平方而增长,即 O(n**2)。

    【讨论】:

      【解决方案2】:

      应用程序多播的另一个示例是在Amazon EC2Google App Engine 中使用JGroups,因为它们不支持IP 多播,但开发人员希望使用多播功能。

      【讨论】:

        猜你喜欢
        • 2011-06-13
        • 1970-01-01
        • 2016-05-04
        • 2014-01-10
        • 2015-06-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-23
        相关资源
        最近更新 更多